foxglove.SceneUpdate

An update to the entities displayed in a 3D scene

RoboticsObservabilityVisualizationData PlatformPhysical AIAutonomyFleet ManagementDeveloper ToolsMCAPROS

Properties

Name Type Description
deletions array Scene entities to delete
entities array Scene entities to add or replace
View JSON Schema on GitHub

JSON Schema

foxglove-technologies-sceneupdate.json Raw ↑
{
  "title": "foxglove.SceneUpdate",
  "description": "An update to the entities displayed in a 3D scene",
  "$comment": "Generated by https://github.com/foxglove/foxglove-sdk",
  "type": "object",
  "properties": {
    "deletions": {
      "type": "array",
      "items": {
        "title": "foxglove.SceneEntityDeletion",
        "description": "Command to remove previously published entities",
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "object",
            "title": "time",
            "properties": {
              "sec": {
                "type": "integer",
                "minimum": 0
              },
              "nsec": {
                "type": "integer",
                "minimum": 0,
                "maximum": 999999999
              }
            },
            "description": "Timestamp of the deletion. Only matching entities earlier than this timestamp will be deleted."
          },
          "type": {
            "title": "foxglove.SceneEntityDeletionType",
            "description": "Type of deletion action to perform",
            "oneOf": [
              {
                "title": "MATCHING_ID",
                "const": 0,
                "description": "Delete the existing entity on the same topic that has the provided `id`"
              },
              {
                "title": "ALL",
                "const": 1,
                "description": "Delete all existing entities on the same topic"
              }
            ]
          },
          "id": {
            "type": "string",
            "description": "Identifier which must match if `type` is `MATCHING_ID`."
          }
        },
        "required": [
          "timestamp",
          "type",
          "id"
        ]
      },
      "description": "Scene entities to delete"
    },
    "entities": {
      "type": "array",
      "items": {
        "title": "foxglove.SceneEntity",
        "description": "A visual element in a 3D scene. An entity may be composed of multiple primitives which all share the same frame of reference.",
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "object",
            "title": "time",
            "properties": {
              "sec": {
                "type": "integer",
                "minimum": 0
              },
              "nsec": {
                "type": "integer",
                "minimum": 0,
                "maximum": 999999999
              }
            },
            "description": "Timestamp of the entity"
          },
          "frame_id": {
            "type": "string",
            "description": "Frame of reference"
          },
          "id": {
            "type": "string",
            "description": "Identifier for the entity. A entity will replace any prior entity on the same topic with the same `id`."
          },
          "lifetime": {
            "type": "object",
            "title": "duration",
            "properties": {
              "sec": {
                "type": "integer"
              },
              "nsec": {
                "type": "integer",
                "minimum": 0,
                "maximum": 999999999
              }
            },
            "description": "Length of time (relative to `timestamp`) after which the entity should be automatically removed. Zero value indicates the entity should remain visible until it is replaced or deleted."
          },
          "frame_locked": {
            "type": "boolean",
            "description": "False indicates the entity should keep its location in the fixed frame until a new entity is published. True indicates the entity should follow the frame specified in `frame_id` as it moves relative to the fixed frame when new transform messages are received."
          },
          "metadata": {
            "type": "array",
            "items": {
              "title": "foxglove.KeyValuePair",
              "description": "A key with its associated value",
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "description": "Key"
                },
                "value": {
                  "type": "string",
                  "description": "Value"
                }
              },
              "required": [
                "key",
                "value"
              ]
            },
            "description": "Additional user-provided metadata associated with the entity. Keys must be unique."
          },
          "arrows": {
            "type": "array",
            "items": {
              "title": "foxglove.ArrowPrimitive",
              "description": "A primitive representing an arrow",
              "type": "object",
              "properties": {
                "pose": {
                  "title": "foxglove.Pose",
                  "description": "Position of the arrow's tail and orientation of the arrow. Identity orientation means the arrow points in the +x direction.",
                  "type": "object",
                  "properties": {
                    "position": {
                      "title": "foxglove.Vector3",
                      "description": "Point denoting position in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x component"
                        },
                        "y": {
                          "type": "number",
                          "description": "y component"
                        },
                        "z": {
                          "type": "number",
                          "description": "z component"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    },
                    "orientation": {
                      "title": "foxglove.Quaternion",
                      "description": "Quaternion denoting orientation in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x value"
                        },
                        "y": {
                          "type": "number",
                          "description": "y value"
                        },
                        "z": {
                          "type": "number",
                          "description": "z value"
                        },
                        "w": {
                          "type": "number",
                          "description": "w value"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z",
                        "w"
                      ]
                    }
                  },
                  "required": [
                    "position",
                    "orientation"
                  ]
                },
                "shaft_length": {
                  "type": "number",
                  "description": "Length of the arrow shaft"
                },
                "shaft_diameter": {
                  "type": "number",
                  "description": "Diameter of the arrow shaft"
                },
                "head_length": {
                  "type": "number",
                  "description": "Length of the arrow head"
                },
                "head_diameter": {
                  "type": "number",
                  "description": "Diameter of the arrow head"
                },
                "color": {
                  "title": "foxglove.Color",
                  "description": "Color of the arrow",
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "number",
                      "description": "Red value between 0 and 1"
                    },
                    "g": {
                      "type": "number",
                      "description": "Green value between 0 and 1"
                    },
                    "b": {
                      "type": "number",
                      "description": "Blue value between 0 and 1"
                    },
                    "a": {
                      "type": "number",
                      "description": "Alpha value between 0 and 1"
                    }
                  },
                  "required": [
                    "r",
                    "g",
                    "b",
                    "a"
                  ]
                }
              },
              "required": [
                "pose",
                "shaft_length",
                "shaft_diameter",
                "head_length",
                "head_diameter",
                "color"
              ]
            },
            "description": "Arrow primitives"
          },
          "cubes": {
            "type": "array",
            "items": {
              "title": "foxglove.CubePrimitive",
              "description": "A primitive representing a cube or rectangular prism",
              "type": "object",
              "properties": {
                "pose": {
                  "title": "foxglove.Pose",
                  "description": "Position of the center of the cube and orientation of the cube",
                  "type": "object",
                  "properties": {
                    "position": {
                      "title": "foxglove.Vector3",
                      "description": "Point denoting position in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x component"
                        },
                        "y": {
                          "type": "number",
                          "description": "y component"
                        },
                        "z": {
                          "type": "number",
                          "description": "z component"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    },
                    "orientation": {
                      "title": "foxglove.Quaternion",
                      "description": "Quaternion denoting orientation in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x value"
                        },
                        "y": {
                          "type": "number",
                          "description": "y value"
                        },
                        "z": {
                          "type": "number",
                          "description": "z value"
                        },
                        "w": {
                          "type": "number",
                          "description": "w value"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z",
                        "w"
                      ]
                    }
                  },
                  "required": [
                    "position",
                    "orientation"
                  ]
                },
                "size": {
                  "title": "foxglove.Vector3",
                  "description": "Size of the cube along each axis",
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "number",
                      "description": "x component"
                    },
                    "y": {
                      "type": "number",
                      "description": "y component"
                    },
                    "z": {
                      "type": "number",
                      "description": "z component"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ]
                },
                "color": {
                  "title": "foxglove.Color",
                  "description": "Color of the cube",
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "number",
                      "description": "Red value between 0 and 1"
                    },
                    "g": {
                      "type": "number",
                      "description": "Green value between 0 and 1"
                    },
                    "b": {
                      "type": "number",
                      "description": "Blue value between 0 and 1"
                    },
                    "a": {
                      "type": "number",
                      "description": "Alpha value between 0 and 1"
                    }
                  },
                  "required": [
                    "r",
                    "g",
                    "b",
                    "a"
                  ]
                }
              },
              "required": [
                "pose",
                "size",
                "color"
              ]
            },
            "description": "Cube primitives"
          },
          "spheres": {
            "type": "array",
            "items": {
              "title": "foxglove.SpherePrimitive",
              "description": "A primitive representing a sphere or ellipsoid",
              "type": "object",
              "properties": {
                "pose": {
                  "title": "foxglove.Pose",
                  "description": "Position of the center of the sphere and orientation of the sphere",
                  "type": "object",
                  "properties": {
                    "position": {
                      "title": "foxglove.Vector3",
                      "description": "Point denoting position in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x component"
                        },
                        "y": {
                          "type": "number",
                          "description": "y component"
                        },
                        "z": {
                          "type": "number",
                          "description": "z component"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    },
                    "orientation": {
                      "title": "foxglove.Quaternion",
                      "description": "Quaternion denoting orientation in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x value"
                        },
                        "y": {
                          "type": "number",
                          "description": "y value"
                        },
                        "z": {
                          "type": "number",
                          "description": "z value"
                        },
                        "w": {
                          "type": "number",
                          "description": "w value"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z",
                        "w"
                      ]
                    }
                  },
                  "required": [
                    "position",
                    "orientation"
                  ]
                },
                "size": {
                  "title": "foxglove.Vector3",
                  "description": "Size (diameter) of the sphere along each axis",
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "number",
                      "description": "x component"
                    },
                    "y": {
                      "type": "number",
                      "description": "y component"
                    },
                    "z": {
                      "type": "number",
                      "description": "z component"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ]
                },
                "color": {
                  "title": "foxglove.Color",
                  "description": "Color of the sphere",
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "number",
                      "description": "Red value between 0 and 1"
                    },
                    "g": {
                      "type": "number",
                      "description": "Green value between 0 and 1"
                    },
                    "b": {
                      "type": "number",
                      "description": "Blue value between 0 and 1"
                    },
                    "a": {
                      "type": "number",
                      "description": "Alpha value between 0 and 1"
                    }
                  },
                  "required": [
                    "r",
                    "g",
                    "b",
                    "a"
                  ]
                }
              },
              "required": [
                "pose",
                "size",
                "color"
              ]
            },
            "description": "Sphere primitives"
          },
          "cylinders": {
            "type": "array",
            "items": {
              "title": "foxglove.CylinderPrimitive",
              "description": "A primitive representing a cylinder, elliptic cylinder, or truncated cone",
              "type": "object",
              "properties": {
                "pose": {
                  "title": "foxglove.Pose",
                  "description": "Position of the center of the cylinder and orientation of the cylinder. The flat face(s) are perpendicular to the z-axis.",
                  "type": "object",
                  "properties": {
                    "position": {
                      "title": "foxglove.Vector3",
                      "description": "Point denoting position in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x component"
                        },
                        "y": {
                          "type": "number",
                          "description": "y component"
                        },
                        "z": {
                          "type": "number",
                          "description": "z component"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    },
                    "orientation": {
                      "title": "foxglove.Quaternion",
                      "description": "Quaternion denoting orientation in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x value"
                        },
                        "y": {
                          "type": "number",
                          "description": "y value"
                        },
                        "z": {
                          "type": "number",
                          "description": "z value"
                        },
                        "w": {
                          "type": "number",
                          "description": "w value"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z",
                        "w"
                      ]
                    }
                  },
                  "required": [
                    "position",
                    "orientation"
                  ]
                },
                "size": {
                  "title": "foxglove.Vector3",
                  "description": "Size of the cylinder's bounding box",
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "number",
                      "description": "x component"
                    },
                    "y": {
                      "type": "number",
                      "description": "y component"
                    },
                    "z": {
                      "type": "number",
                      "description": "z component"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ]
                },
                "bottom_scale": {
                  "type": "number",
                  "description": "0-1, ratio of the diameter of the cylinder's bottom face (min z) to the bottom of the bounding box"
                },
                "top_scale": {
                  "type": "number",
                  "description": "0-1, ratio of the diameter of the cylinder's top face (max z) to the top of the bounding box"
                },
                "color": {
                  "title": "foxglove.Color",
                  "description": "Color of the cylinder",
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "number",
                      "description": "Red value between 0 and 1"
                    },
                    "g": {
                      "type": "number",
                      "description": "Green value between 0 and 1"
                    },
                    "b": {
                      "type": "number",
                      "description": "Blue value between 0 and 1"
                    },
                    "a": {
                      "type": "number",
                      "description": "Alpha value between 0 and 1"
                    }
                  },
                  "required": [
                    "r",
                    "g",
                    "b",
                    "a"
                  ]
                }
              },
              "required": [
                "pose",
                "size",
                "bottom_scale",
                "top_scale",
                "color"
              ]
            },
            "description": "Cylinder primitives"
          },
          "lines": {
            "type": "array",
            "items": {
              "title": "foxglove.LinePrimitive",
              "description": "A primitive representing a series of points connected by lines",
              "type": "object",
              "properties": {
                "type": {
                  "title": "foxglove.LineType",
                  "description": "Drawing primitive to use for lines",
                  "oneOf": [
                    {
                      "title": "LINE_STRIP",
                      "const": 0,
                      "description": "Connected line segments: 0-1, 1-2, ..., (n-1)-n"
                    },
                    {
                      "title": "LINE_LOOP",
                      "const": 1,
                      "description": "Closed polygon: 0-1, 1-2, ..., (n-1)-n, n-0"
                    },
                    {
                      "title": "LINE_LIST",
                      "const": 2,
                      "description": "Individual line segments: 0-1, 2-3, 4-5, ..."
                    }
                  ]
                },
                "pose": {
                  "title": "foxglove.Pose",
                  "description": "Origin of lines relative to reference frame",
                  "type": "object",
                  "properties": {
                    "position": {
                      "title": "foxglove.Vector3",
                      "description": "Point denoting position in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x component"
                        },
                        "y": {
                          "type": "number",
                          "description": "y component"
                        },
                        "z": {
                          "type": "number",
                          "description": "z component"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    },
                    "orientation": {
                      "title": "foxglove.Quaternion",
                      "description": "Quaternion denoting orientation in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "description": "x value"
                        },
                        "y": {
                          "type": "number",
                          "description": "y value"
                        },
                        "z": {
                          "type": "number",
                          "description": "z value"
                        },
                        "w": {
                          "type": "number",
                          "description": "w value"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z",
                        "w"
                      ]
                    }
                  },
                  "required": [
                    "position",
                    "orientation"
                  ]
                },
                "thickness": {
                  "type": "number",
                  "description": "Line thickness"
                },
                "scale_invariant": {
                  "type": "boolean",
                  "description": "Indicates whether `thickness` is a fixed size in screen pixels (true), or specified in world coordinates and scales with distance from the camera (false)"
                },
                "points": {
                  "type": "array",
                  "items": {
                    "title": "foxglove.Point3",
                    "description": "A point representing a position in 3D space",
                    "type": "object",
                    "properties": {
                      "x": {
                        "type": "number",
                        "description": "x coordinate position"
                      },
                      "y": {
                        "type": "number",
                        "description": "y coordinate position"
                      },
                      "z": {
                        "type": "number",
                        "description": "z coordinate position"
                      }
                    },
                    "required": [
                      "x",
                      "y",
                      "z"
                    ]
                  },
                  "description": "Points along the line"
                },
                "color": {
                  "title": "foxglove.Color",
                  "description": "Solid color to use for the whole line. Ignored if `colors` is non-empty.",
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "number",
                      "description": "Red value between 0 and 1"
                    },
                    "g": {
                      "type": "number",
                      "description": "Green value between 0 and 1"
                    },
                    "b": {
                      "type": "number",
                      "description": "Blue value between 0 and 1"
                    },
                    "a": {
                      "type": "number",
                      "description": "Alpha value between 0 and 1"
                    }
                  },
                  "required": [
                    "r",
                    "g",
                    "b",
                    "a"
                  ]
                },
                "colors": {
                  "type": "array",
                  "items": {
                    "title": "foxglove.Color",
                    "description": "A color in RGBA format",
                    "type": "object",
                    "properties": {
                      "r": {
                        "type": "number",
                        "description": "Red value between 0 and 1"
                      },
                      "g": {
                        "type": "number",
                        "description": "Green value between 0 and 1"
                      },
                      "b": {
                        "type": "number",
                        "description": "Blue value between 0 and 1"
                      },
                      "a": {
                        "type": "number",
                        "description": "Alpha value between 0 and 1"
                      }
                    },
                    "required": [
                      "r",
                      "g",
                      "b",
                      "a"
                    ]
                  },
                  "description": "Per-point colors (if non-empty, must have the same length as `points`)."
                },
                "indices": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "description": "Indices into the `points` and `colors` attribute arrays, which can be used to avoid duplicating attribute data.\n\nIf omitted or empty, indexing will not be used. This default behavior is equivalent to specifying [0, 1, ..., N-1] for the indices (where N is the number of `points` provided)."
                }
              },
              "required": [
                "type",
                "pose",
                "thickness",
                "scale_invariant",
                "points",
                "color",
                "colors",
                "indices"
              ]
            },
            "description": "Line primitives"
          },
          "triangles": {
            "type": "array",
            "items": {
              "title": "foxglove.TriangleListPrimitive",
              "description": "A primitive representing a set of triangles or a surface tiled by triangles",
              "type": "object",
              "properties": {
                "pose": {
                  "title": "foxglove.Pose",
                  "description": "Origin of triangles relative to reference frame",
                  "type": "object",
                  "properties": {
                    "position": {
                      "title": "foxglove.Vector3",
                      "description": "Point denoting position in 3D space",
                      "type": "object",
                      "properties": {
                        "x": {
                    

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/foxglove-technologies/refs/heads/main/json-schema/foxglove-technologies-sceneupdate.json