Foxglove Technologies · Schema
foxglove.SceneEntity
A visual element in a 3D scene. An entity may be composed of multiple primitives which all share the same frame of reference.
RoboticsObservabilityVisualizationData PlatformPhysical AIAutonomyFleet ManagementDeveloper ToolsMCAPROS
Properties
| Name | Type | Description |
|---|---|---|
| timestamp | object | Timestamp of the entity |
| frame_id | string | Frame of reference |
| id | string | Identifier for the entity. A entity will replace any prior entity on the same topic with the same `id`. |
| lifetime | object | 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 | boolean | 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 t |
| metadata | array | Additional user-provided metadata associated with the entity. Keys must be unique. |
| arrows | array | Arrow primitives |
| cubes | array | Cube primitives |
| spheres | array | Sphere primitives |
| cylinders | array | Cylinder primitives |
| lines | array | Line primitives |
| triangles | array | Triangle list primitives |
| texts | array | Text primitives |
| models | array | Model primitives |
JSON Schema
{
"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.",
"$comment": "Generated by https://github.com/foxglove/foxglove-sdk",
"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": {
"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"
]
},
"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": "Vertices to use for triangles, interpreted as a list of triples (0-1-2, 3-4-5, ...)"
},
"color": {
"title": "foxglove.Color",
"description": "Solid color to use for the whole shape. 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-vertex colors (if specified, 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": [
"pose",
"points",
"color",
"colors",
"indices"
]
},
"description": "Triangle list primitives"
},
"texts": {
"type": "array",
"items": {
"title": "foxglove.TextPrimitive",
"description": "A primitive representing a text label",
"type": "object",
"properties": {
"pose": {
"title": "foxglove.Pose",
"description": "Position of the center of the text box and orientation of the text. Identity orientation means the text is oriented in the xy-plane and flows from -x to +x.",
"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"
# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/foxglove-technologies/refs/heads/main/json-schema/foxglove-technologies-sceneentity.json