{ "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" }, "z": { "type": "number", "description": "z value" }, "w": { "type": "number", "description": "w value" } }, "required": [ "x", "y", "z", "w" ] } }, "required": [ "position", "orientation" ] }, "billboard": { "type": "boolean", "description": "Whether the text should respect `pose.orientation` (false) or always face the camera (true)" }, "font_size": { "type": "number", "description": "Font size (height of one line of text)" }, "scale_invariant": { "type": "boolean", "description": "Indicates whether `font_size` is a fixed size in screen pixels (true), or specified in world coordinates and scales with distance from the camera (false)" }, "color": { "title": "foxglove.Color", "description": "Color of the text", "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" ] }, "text": { "type": "string", "description": "Text" } }, "required": [ "pose", "billboard", "font_size", "scale_invariant", "color", "text" ] }, "description": "Text primitives" }, "models": { "type": "array", "items": { "title": "foxglove.ModelPrimitive", "description": "A primitive representing a 3D model file loaded from an external URL or embedded data", "type": "object", "properties": { "pose": { "title": "foxglove.Pose", "description": "Origin of model 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" ] }, "scale": { "title": "foxglove.Vector3", "description": "Scale factor to apply to the model 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": "Solid color to use for the whole model if `override_color` is true.", "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" ] }, "override_color": { "type": "boolean", "description": "Whether to use the color specified in `color` instead of any materials embedded in the original model." }, "url": { "type": "string", "description": "URL pointing to model file. One of `url` or `data` should be non-empty." }, "media_type": { "type": "string", "description": "[Media type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of embedded model (e.g. `model/gltf-binary`). Required if `data` is provided instead of `url`. Overrides the inferred media type if `url` is provided." }, "data": { "type": "string", "contentEncoding": "base64", "description": "Embedded model. One of `url` or `data` should be non-empty. If `data` is non-empty, `media_type` must be set to indicate the type of the data." } }, "required": [ "pose", "scale", "color", "override_color", "url", "media_type", "data" ] }, "description": "Model primitives" } }, "required": [ "timestamp", "frame_id", "id", "lifetime", "frame_locked", "metadata", "arrows", "cubes", "spheres", "cylinders", "lines", "triangles", "texts", "models" ] }