Data Types
Look up the primitive, nested, and semantic data types that SPQL functions accept and return.
Every SPQL function signature names the data types of its parameters and its result. This page uses the same type names as the signatures. Primitive types hold scalar values. Nested types combine other types into structs and lists. Semantic types attach a meaning, such as an image, a tensor, or a timestamp, to a storage layout.
A ? after a type name means that the value can be null. For example, i64? is a nullable 64-bit signed integer.
Primitive Types
| Type | Description |
|---|---|
bool | Boolean truth values. |
i8 | 8-bit signed integer. |
i16 | 16-bit signed integer. |
i32 | 32-bit signed integer. |
i64 | 64-bit signed integer. |
u8 | 8-bit unsigned integer. |
u16 | 16-bit unsigned integer. |
u32 | 32-bit unsigned integer. |
u64 | 64-bit unsigned integer. |
f16 | 16-bit IEEE 754 floating point. |
f32 | 32-bit IEEE 754 floating point. |
f64 | 64-bit IEEE 754 floating point. |
utf8 | Variable-length UTF-8 string. |
binary | Variable-length binary data. |
decimal(precision, scale) | Fixed-point decimal with a precision and a scale. |
Nested Types
Combine any types into structs and lists, nested to any depth. Each struct field and each list element has its own nullability.
| Type | Description |
|---|---|
struct { name, ... } | A struct with named fields. Each field has its own type. |
list(type) | A variable-length list of type values. |
Semantic Types
A semantic type gives a stable meaning to a storage layout. The Type ID identifies the semantic type in schemas and function signatures. Two types with the same storage layout and different Type IDs do not match: a vector is not an arbitrary fixed-size list. Parameters, such as a vector dimension or a time unit, refine the type.
Type parameter tables describe values shared by a column. A trailing ? in a parameter kind means that parameter can be absent.
The time_unit kind uses s, ms, us, ns or d. The period_frequency kind uses D, W, MS, ME, QS, QE, YS or YE.
Types defined by Spiral list their stability. A stable type keeps its Type ID and storage from one release to the next, so files you write today stay readable. An experimental type can still change. A deprecated type names the type that replaces it.
An alias is an earlier Type ID that Spiral still reads. Spiral always writes the Type ID, so a column read under an alias is written back under its current Type ID. When a type exports to Arrow under an extension name that differs from its Type ID, the type lists that name.
Type IDs that start with vortex. belong to the Vortex file format, an open columnar format, so any Vortex reader recognizes them without Spiral. Visualization components in the spql.viz namespace are presentation values, not data types; the visualization components page documents them.
The semantic types on this page, with their storage, stability, and aliases, are also published as one JSON file, spql-types.v1.json, described by the JSON Schema spql-types.v1.schema.json. Each Rust SDK release attaches both files, so code generators and validators can read the types of the release they build against.
Date and Time
| Type ID | Stability | Summary |
|---|---|---|
spql.Duration | stable | Fixed elapsed time in the parameter's unit. |
spql.Interval | stable | Calendar-relative SQL interval. |
spql.Period | stable | Regular period label at the parameter's frequency. |
vortex.date | Calendar dates counted from the Unix epoch, in days (days) or milliseconds (ms). | |
vortex.time | Time of day counted from midnight, in seconds (s), milliseconds (ms), microseconds (us) or nanoseconds (ns). | |
vortex.timestamp | Timestamps counted from the Unix epoch in seconds (s), milliseconds (ms), microseconds (us) or nanoseconds (ns), with an optional IANA timezone name or fixed offset. The timezone describes calendar interpretation without changing the stored instant. |
spql.Duration
Fixed elapsed time in the parameter's unit.
- Stability:
stable - Storage:
i64 - Aliases:
spql.dt.Duration
Type parameters
| Name | Kind | Description |
|---|---|---|
unit | time_unit |
spql.Interval
Calendar-relative SQL interval.
- Stability:
stable - Storage:
struct { months, days, nanos } - Aliases:
spql.dt.Interval
Fields
| Name | Type | Description |
|---|---|---|
months | i32? | |
days | i32? | |
nanos | i64? |
spql.Period
Regular period label at the parameter's frequency.
- Stability:
stable - Storage:
i64 - Aliases:
spql.dt.Period
Type parameters
| Name | Kind | Description |
|---|---|---|
freq | period_frequency |
vortex.date
Calendar dates counted from the Unix epoch, in days (days) or milliseconds (ms).
- Defined by: the Vortex file format
- Storage:
i32for days;i64for milliseconds. - Arrow: exports as the native Arrow type
Type parameters
| Name | Kind | Description |
|---|---|---|
unit | utf8 |
vortex.time
Time of day counted from midnight, in seconds (s), milliseconds (ms), microseconds (us) or nanoseconds (ns).
- Defined by: the Vortex file format
- Storage:
i32for seconds or milliseconds;i64for microseconds or nanoseconds. - Arrow: exports as the native Arrow type
Type parameters
| Name | Kind | Description |
|---|---|---|
unit | utf8 |
vortex.timestamp
Timestamps counted from the Unix epoch in seconds (s), milliseconds (ms), microseconds (us) or nanoseconds (ns), with an optional IANA timezone name or fixed offset. The timezone describes calendar interpretation without changing the stored instant.
- Defined by: the Vortex file format
- Storage:
i64in the selected unit. - Arrow: exports as the native Arrow type
Type parameters
| Name | Kind | Description |
|---|---|---|
unit | utf8 | |
timezone | utf8? |
Blobs
| Type ID | Stability | Summary |
|---|---|---|
spql.Blob | stable | Inline bytes, a Spiral address or a direct provider URI, exposed as spql.Blob. |
spql.Blob
Inline bytes, a Spiral address or a direct provider URI, exposed as spql.Blob.
- Stability:
stable - Storage:
struct { bytes, uri, offset, size, mime_type, version, etag, digest } - Aliases:
spql.io.Blob
Fields
| Name | Type | Description |
|---|---|---|
bytes | binary? | Inline payload bytes. |
uri | utf8? | spiral://<resource-id>/<key>, or a direct provider URI. |
offset | u64? | Byte offset of the payload inside the referenced object; null is 0. |
size | u64? | Payload length in bytes; null means to the end of the object. |
mime_type | utf8? | Optional media type. |
version | utf8? | Provider object version a read must return. |
etag | utf8? | Entity tag a read must match. |
digest | binary? | Multihash of the payload bytes. |
Media
| Type ID | Stability | Summary |
|---|---|---|
spql.ClipRef | stable | A half-open encoded temporal selection over some or all streams of a media asset. |
spql.EncodedMedia | stable | Blob-backed encoded temporal media with an optional container name and index. |
spql.EncodedPacket | stable | A normalized encoded packet with exact timing in its stream's time base and a Blob payload. |
spql.MediaIndex | experimental | Index of one encoded media value: per track, the container's sample tables and a GOP table, from which presentation order, byte offsets and each frame's decode closure are derived on read. Row data, never layout or dtype metadata; an EncodedMedia carries it in its index field. |
spql.StreamRef | stable | A stream selected from one encoded media asset by its structural container index. |
spql.ClipRef
A half-open encoded temporal selection over some or all streams of a media asset.
- Stability:
stable - Storage:
struct { media, stream_indices, start, end } - Aliases:
spql.media.ClipRef
Fields
| Name | Type | Description |
|---|---|---|
media | spql.EncodedMedia? | |
stream_indices | list<i32>? | |
start | duration_ns? | |
end | duration_ns? |
spql.EncodedMedia
Blob-backed encoded temporal media with an optional container name and index.
- Stability:
stable - Storage:
struct { source, container, index } - Aliases:
spql.media.EncodedMedia
Fields
| Name | Type | Description |
|---|---|---|
source | spql.Blob? | |
container | utf8? | Container name, such as mp4. |
index | spql.MediaIndex? |
spql.EncodedPacket
A normalized encoded packet with exact timing in its stream's time base and a Blob payload.
- Stability:
stable - Storage:
struct { payload, stream, codec, framing, pts, dts, duration_ticks, time_base_num, time_base_den, keyframe, codec_config } - Aliases:
spql.media.EncodedPacket
Fields
| Name | Type | Description |
|---|---|---|
payload | spql.Blob? | |
stream | spql.StreamRef? | |
codec | utf8? | |
framing | utf8? | |
pts | i64? | |
dts | i64? | |
duration_ticks | i64? | |
time_base_num | i32? | |
time_base_den | i32? | |
keyframe | bool? | |
codec_config | spql.Blob? |
spql.MediaIndex
Index of one encoded media value: per track, the container's sample tables and a GOP table, from which presentation order, byte offsets and each frame's decode closure are derived on read. Row data, never layout or dtype metadata; an EncodedMedia carries it in its index field.
- Stability:
experimental - Storage:
struct { primary_track_id, tracks }
Fields
| Name | Type | Description |
|---|---|---|
primary_track_id | u32 | Identifier of the primary media track. |
tracks | list<spql.media.index.MediaTrack> | Track metadata, sample tables and GOP indexes for the media. |
spql.StreamRef
A stream selected from one encoded media asset by its structural container index.
- Stability:
stable - Storage:
struct { media, stream_index } - Aliases:
spql.media.StreamRef
Fields
| Name | Type | Description |
|---|---|---|
media | spql.EncodedMedia? | |
stream_index | i32? |
Images
| Type ID | Stability | Summary |
|---|---|---|
spql.EncodedImage | stable | A lazy encoded image over a Blob with the facts a header read can give. |
spql.Image | stable | Decoded display image: contiguous top-left-origin HWC pixels, treated as sRGB. Each row's pixel_format fixes its channel layout: 1 is RGB8 and 2 is RGBA8 with straight alpha. |
spql.Yuv420Image | stable | Decoded planar 8-bit YUV 4:2:0 image with coded and display sizes, per-plane strides and colour metadata. Timing stays on the frame row. |
spql.EncodedImage
A lazy encoded image over a Blob with the facts a header read can give.
- Stability:
stable - Storage:
struct { source, format, mime_type, width, height } - Aliases:
spql.image.EncodedImage
Fields
| Name | Type | Description |
|---|---|---|
source | spql.Blob? | |
format | utf8? | Image codec, such as jpeg, png, webp, avif or tiff. |
mime_type | utf8? | |
width | u32? | |
height | u32? |
spql.Image
Decoded display image: contiguous top-left-origin HWC pixels, treated as sRGB. Each row's pixel_format fixes its channel layout: 1 is RGB8 and 2 is RGBA8 with straight alpha.
- Stability:
stable - Storage:
struct { data, width, height, pixel_format } - Frame: image pixels, top-left origin
- Aliases:
spql.image.Image
Fields
| Name | Type | Description |
|---|---|---|
data | list<u8> | Interleaved pixels, width * height * channels bytes. |
width | u32 | |
height | u32 | |
pixel_format | u8 | 1 for RGB8, 2 for RGBA8. |
spql.Yuv420Image
Decoded planar 8-bit YUV 4:2:0 image with coded and display sizes, per-plane strides and colour metadata. Timing stays on the frame row.
- Stability:
stable - Storage:
struct { y, u, v, coded_width, coded_height, display_width, display_height, y_stride, u_stride, v_stride, range, matrix, primaries, transfer } - Aliases:
spql.image.Yuv420Image
Fields
| Name | Type | Description |
|---|---|---|
y | list<u8> | |
u | list<u8> | |
v | list<u8> | |
coded_width | u32 | |
coded_height | u32 | |
display_width | u32 | |
display_height | u32 | |
y_stride | u32 | |
u_stride | u32 | |
v_stride | u32 | |
range | utf8? | |
matrix | utf8? | |
primaries | utf8? | |
transfer | utf8? |
Video
| Type ID | Stability | Summary |
|---|---|---|
spql.FrameIndices | experimental | Ordered presentation-frame positions for spql.video.read. Order and duplicates are preserved. |
spql.FrameNeighborhood | experimental | A fixed-count frame neighborhood around a presentation time, for spql.video.read. |
spql.FrameRef | stable | One presentation frame without pixels. A valid row sets exactly one of stream, resolved through the media's index, or packets, the decode-order packets of the MCAP path. |
spql.FrameSlice | experimental | A half-open slice over display-order presentation-frame positions, for spql.video.read. |
spql.FrameTimes | experimental | Ordered presentation times that spql.video.read resolves to frames. Order and duplicates are preserved. |
spql.ImageSequence | experimental | Encoded images in presentation order at a fixed rate; every frame decodes alone. |
spql.FrameIndices
Ordered presentation-frame positions for spql.video.read. Order and duplicates are preserved.
- Stability:
experimental - Storage:
struct { indices } - Aliases:
spql.video.selection.FrameIndices
Fields
| Name | Type | Description |
|---|---|---|
indices | list<i64> | Display-order frame positions. Negative positions count from the end. |
spql.FrameNeighborhood
A fixed-count frame neighborhood around a presentation time, for spql.video.read.
- Stability:
experimental - Storage:
struct { time, count, start_offset, step, mode, boundary } - Aliases:
spql.video.selection.FrameNeighborhood
Fields
| Name | Type | Description |
|---|---|---|
time | duration_ns | Presentation time used to resolve the anchor frame. |
count | u32 | Number of output frame references. |
start_offset | i64? | First frame offset from the anchor. A null value centers the neighborhood. |
step | i64? | Nonzero frame-position increment. A null value means one. |
mode | utf8? | Anchor resolution mode: nearest, exact, floor, or ceil. A null value means nearest. |
boundary | utf8? | Boundary mode: clamp, truncate, or error. A null value means clamp. |
spql.FrameRef
One presentation frame without pixels. A valid row sets exactly one of stream, resolved through the media's index, or packets, the decode-order packets of the MCAP path.
- Stability:
stable - Storage:
struct { stream, packets, presentation_index, decode_index, pts, dts, duration_ticks, time_base_num, time_base_den, keyframe, group_id, local_index, codec_config } - Aliases:
spql.video.FrameRef
Fields
| Name | Type | Description |
|---|---|---|
stream | spql.StreamRef? | |
packets | list<spql.EncodedPacket?>? | |
presentation_index | i64? | |
decode_index | i64? | |
pts | i64? | |
dts | i64? | |
duration_ticks | i64? | |
time_base_num | i32? | |
time_base_den | i32? | |
keyframe | bool? | |
group_id | utf8? | Identifies frames that share packets, so they decode together. |
local_index | i64? | The frame's presentation position within packets. |
codec_config | spql.Blob? |
spql.FrameSlice
A half-open slice over display-order presentation-frame positions, for spql.video.read.
- Stability:
experimental - Storage:
struct { start, stop, step } - Aliases:
spql.video.selection.FrameSlice
Fields
| Name | Type | Description |
|---|---|---|
start | i64? | Inclusive start position. A null value selects from the first frame. |
stop | i64? | Exclusive stop position. A null value selects through the last frame. |
step | i64? | Nonzero position increment. A null value means one. |
spql.FrameTimes
Ordered presentation times that spql.video.read resolves to frames. Order and duplicates are preserved.
- Stability:
experimental - Storage:
struct { times, mode } - Aliases:
spql.video.selection.FrameTimes
Fields
| Name | Type | Description |
|---|---|---|
times | list<duration_ns> | Requested presentation times. |
mode | utf8? | Resolution mode: nearest, exact, floor, or ceil. A null value means nearest. |
spql.ImageSequence
Encoded images in presentation order at a fixed rate; every frame decodes alone.
- Stability:
experimental - Storage:
struct { images, frame_rate } - Aliases:
spql.video.ImageSequence
Fields
| Name | Type | Description |
|---|---|---|
images | list<spql.EncodedImage?> | |
frame_rate | f64 |
Audio
| Type ID | Stability | Summary |
|---|---|---|
spql.AudioBuffer | experimental | Decoded PCM samples. |
spql.AudioBuffer
Decoded PCM samples.
- Stability:
experimental - Storage:
struct { data, sample_format, sample_rate, channels }
Fields
| Name | Type | Description |
|---|---|---|
data | binary | PCM payload in the layout described by sample_format. |
sample_format | utf8 | FFmpeg sample format name, such as s16 or fltp. |
sample_rate | u32 | Number of samples per second in each channel. |
channels | u32 | Number of audio channels. |
Depth Maps
| Type ID | Stability | Summary |
|---|---|---|
spql.DepthMap | stable | A two-dimensional depth value: rank-two f32 sample and confidence tensors shaped [height, width], the representation of the samples and an optional linear calibration. |
spql.DepthMap
A two-dimensional depth value: rank-two f32 sample and confidence tensors shaped [height, width], the representation of the samples and an optional linear calibration.
- Stability:
stable - Storage:
struct { values, confidence, width, height, representation, unit, scale, offset } - Frame: image pixels, top-left origin
- Aliases:
spql.depth.DepthMap
Fields
| Name | Type | Description |
|---|---|---|
values | spql.Tensor<f32, 2>? | Row-major depth samples. |
confidence | spql.Tensor<f32, 2>? | Optional row-major confidence. |
width | u32 | |
height | u32 | |
representation | utf8 | One of relative_inverse_depth, metric_depth, inverse_depth or disparity. |
unit | utf8? | Metric unit of metric depth samples. |
scale | f32? | Linear calibration scale. |
offset | f32? | Linear calibration offset. |
Object Detection
| Type ID | Stability | Summary |
|---|---|---|
spql.LabeledBox | stable | A labeled axis-aligned bounding box with optional confidence. |
spql.LabeledBox
A labeled axis-aligned bounding box with optional confidence.
- Stability:
stable - Storage:
struct { label, bbox, score } - Frame: image pixels, top-left origin
- Aliases:
spql.detect.LabeledBox
Fields
| Name | Type | Description |
|---|---|---|
label | utf8 | |
bbox | vortex.st.box | |
score | f32? |
Annotations
| Type ID | Stability | Summary |
|---|---|---|
spql.Annotations2D | experimental | Collection of image-space annotations. |
spql.Circle2D | experimental | Styled image-space circle. |
spql.Text2D | experimental | Styled image-space text annotation. |
spql.Annotations2D
Collection of image-space annotations.
- Stability:
experimental - Storage:
struct { circles, points, text } - Frame: image pixels, top-left origin
Fields
| Name | Type | Description |
|---|---|---|
circles | list<spql.Circle2D>? | Circle annotations in image coordinates. |
points | list<spql.Points2D>? | Point annotations in image coordinates. |
text | list<spql.Text2D>? | Text annotations in image coordinates. |
spql.Circle2D
Styled image-space circle.
- Stability:
experimental - Storage:
struct { center, radius, thickness, fill_color, outline_color, metadata } - Frame: image pixels, top-left origin
Fields
| Name | Type | Description |
|---|---|---|
center | spql.Position2D | Center of the circle in image pixels. |
radius | f64 | Radius of the circle in image pixels. |
thickness | f64? | Outline thickness in image pixels. |
fill_color | spql.Color? | Color of the filled interior. |
outline_color | spql.Color? | Color of the circle outline. |
metadata | list<spql.KeyValue>? | Additional key-value attributes of the annotation. |
spql.Text2D
Styled image-space text annotation.
- Stability:
experimental - Storage:
struct { position, text, color, background_color, font_size, metadata } - Frame: image pixels, top-left origin
Fields
| Name | Type | Description |
|---|---|---|
position | spql.Position2D | Text position in image pixels. |
text | utf8 | Text to display. |
color | spql.Color? | Text foreground color. |
background_color | spql.Color? | Text background color. |
font_size | f64? | Font size in image pixels. |
metadata | list<spql.KeyValue>? | Additional key-value attributes of the annotation. |
Cameras
| Type ID | Stability | Summary |
|---|---|---|
spql.CameraCalibration | experimental | Foxglove CameraCalibration and ROS CameraInfo fields; a pinhole has no distortion. |
spql.CameraCalibration
Foxglove CameraCalibration and ROS CameraInfo fields; a pinhole has no distortion.
- Stability:
experimental - Storage:
struct { width, height, distortion_model, distortion_coefficients, intrinsic, rectification, projection }
Fields
| Name | Type | Description |
|---|---|---|
width | u32 | Width of the calibrated image in pixels. |
height | u32 | Height of the calibrated image in pixels. |
distortion_model | utf8? | Name of the lens distortion model, when present. |
distortion_coefficients | list<f64>? | Coefficients in the order defined by the distortion model. |
intrinsic | list<f64> | Intrinsic matrix K, 3x3 row-major. |
rectification | list<f64>? | Rectification matrix R, 3x3 row-major. |
projection | list<f64>? | Projection matrix P, 3x4 row-major. |
Point Clouds
| Type ID | Stability | Summary |
|---|---|---|
spql.EncodedPointCloud | experimental | An encoded point cloud, such as PCD, LAS, LAZ or Draco, over a Blob. |
spql.Grid | experimental | A two-dimensional grid of packed cells; Foxglove Grid layout. |
spql.LaserScan | experimental | Planar range scan sample. |
spql.PointCloud | experimental | Packed points with a field table; Foxglove PointCloud and ROS PointCloud2 layout. |
spql.EncodedPointCloud
An encoded point cloud, such as PCD, LAS, LAZ or Draco, over a Blob.
- Stability:
experimental - Storage:
struct { source, format, pose }
Fields
| Name | Type | Description |
|---|---|---|
source | spql.Blob | Blob containing the encoded point-cloud payload. |
format | utf8 | Point-cloud encoding name, such as pcd, las, laz or draco. |
pose | spql.Pose3D? | Pose of the point cloud in the row's frame. |
spql.Grid
A two-dimensional grid of packed cells; Foxglove Grid layout.
- Stability:
experimental - Storage:
struct { pose, column_count, cell_size, row_stride, cell_stride, fields, data }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D? | Pose of the grid in the row's frame. |
column_count | u32 | Number of cells in each grid row. |
cell_size | spql.Vector2D | Width and height of one cell in grid coordinates. |
row_stride | u32 | Bytes from the start of one row to the start of the next. |
cell_stride | u32 | Bytes from the start of one cell to the start of the next. |
fields | list<spql.PackedField> | Field names, types and byte offsets within each packed cell. |
data | binary | Packed cell records using the declared fields and strides. |
spql.LaserScan
Planar range scan sample.
- Stability:
experimental - Storage:
struct { pose, start_angle, end_angle, ranges, intensities }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Pose of the range sensor in the row's frame. |
start_angle | f64 | Angle of the first range measurement. |
end_angle | f64 | Angle of the last range measurement. |
ranges | list<f64> | Range measurements ordered from start_angle to end_angle. |
intensities | list<f64>? | Per-measurement intensities aligned with ranges. |
spql.PointCloud
Packed points with a field table; Foxglove PointCloud and ROS PointCloud2 layout.
- Stability:
experimental - Storage:
struct { pose, point_stride, fields, data }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D? | Pose of the point cloud in the row's frame. |
point_stride | u32 | Bytes from the start of one point to the start of the next. |
fields | list<spql.PackedField> | Field names, types and byte offsets within each packed point. |
data | binary | Packed point records using the declared fields and point_stride. |
Poses and Transforms
| Type ID | Stability | Summary |
|---|---|---|
spql.Points2D | experimental | Aligned two-dimensional point components. |
spql.Points3D | experimental | Aligned three-dimensional point components. |
spql.Pose3D | stable | Position and orientation of one object in the row's frame. |
spql.Position2D | stable | Two-dimensional position in a declared coordinate system. |
spql.Position3D | stable | Three-dimensional position in a declared coordinate system. |
spql.Quaternion | stable | Unit quaternion in x, y, z, w order. |
spql.Transform3D | stable | Rigid or similarity transform from the child frame to the parent frame. |
spql.Vector2D | stable | Two-dimensional direction or displacement. |
spql.Vector3D | stable | Three-dimensional direction or displacement. |
spql.Points2D
Aligned two-dimensional point components.
- Stability:
experimental - Storage:
struct { positions, colors, radii, labels, topology } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
positions | list<spql.Position2D> | Two-dimensional point positions in order. |
colors | list<spql.Color>? | Per-point colors aligned with positions. |
radii | list<f64>? | Per-point radii aligned with positions. |
labels | list<utf8>? | Per-point text labels aligned with positions. |
topology | utf8? | Connectivity description for the points. |
spql.Points3D
Aligned three-dimensional point components.
- Stability:
experimental - Storage:
struct { positions, colors, radii, labels } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
positions | list<spql.Position3D> | Three-dimensional point positions in order. |
colors | list<spql.Color>? | Per-point colors aligned with positions. |
radii | list<f64>? | Per-point radii aligned with positions. |
labels | list<utf8>? | Per-point text labels aligned with positions. |
spql.Pose3D
Position and orientation of one object in the row's frame.
- Stability:
stable - Storage:
struct { position, orientation } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
position | spql.Position3D | Position of the object in the row's frame. |
orientation | spql.Quaternion | Orientation of the object in the row's frame. |
spql.Position2D
Two-dimensional position in a declared coordinate system.
- Stability:
stable - Storage:
struct { x, y } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
x | f64 | X coordinate in the declared coordinate system. |
y | f64 | Y coordinate in the declared coordinate system. |
spql.Position3D
Three-dimensional position in a declared coordinate system.
- Stability:
stable - Storage:
struct { x, y, z } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
x | f64 | X coordinate in the declared coordinate system. |
y | f64 | Y coordinate in the declared coordinate system. |
z | f64 | Z coordinate in the declared coordinate system. |
spql.Quaternion
Unit quaternion in x, y, z, w order.
- Stability:
stable - Storage:
struct { x, y, z, w } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
x | f64 | X component of the unit quaternion. |
y | f64 | Y component of the unit quaternion. |
z | f64 | Z component of the unit quaternion. |
w | f64 | Scalar component of the unit quaternion. |
spql.Transform3D
Rigid or similarity transform from the child frame to the parent frame.
- Stability:
stable - Storage:
struct { translation, rotation, scale, parent_frame_id, child_frame_id } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
translation | spql.Vector3D | Translation from the child frame into the parent frame. |
rotation | spql.Quaternion | Rotation from the child frame into the parent frame. |
scale | spql.Vector3D? | Scale along each child-frame axis, when supplied. |
parent_frame_id | utf8? | Identifier of the frame the transform maps into. |
child_frame_id | utf8? | Identifier of the frame the transform maps from. |
spql.Vector2D
Two-dimensional direction or displacement.
- Stability:
stable - Storage:
struct { x, y } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
x | f64 | X component of the direction or displacement. |
y | f64 | Y component of the direction or displacement. |
spql.Vector3D
Three-dimensional direction or displacement.
- Stability:
stable - Storage:
struct { x, y, z } - Units: REP 103 (metres, radians); frame by column
Fields
| Name | Type | Description |
|---|---|---|
x | f64 | X component of the direction or displacement. |
y | f64 | Y component of the direction or displacement. |
z | f64 | Z component of the direction or displacement. |
Kinematics
| Type ID | Stability | Summary |
|---|---|---|
spql.JointState | experimental | Instantaneous state of one revolute or prismatic joint. |
spql.JointState
Instantaneous state of one revolute or prismatic joint.
- Stability:
experimental - Storage:
struct { name, position, velocity, acceleration, effort }
Fields
| Name | Type | Description |
|---|---|---|
name | utf8 | Name of the joint. |
position | f64? | Angular or linear joint position, when known. |
velocity | f64? | Angular or linear joint velocity, when known. |
acceleration | f64? | Angular or linear joint acceleration, when known. |
effort | f64? | Torque or force applied at the joint, when known. |
Navigation
| Type ID | Stability | Summary |
|---|---|---|
spql.GeoPosition | experimental | Geographic position in latitude, longitude, and altitude. |
spql.LocationFix | experimental | Instantaneous geographic location estimate. |
spql.Odometry | experimental | Instantaneous pose and velocity estimate. |
spql.GeoPosition
Geographic position in latitude, longitude, and altitude.
- Stability:
experimental - Storage:
struct { latitude, longitude, altitude }
Fields
| Name | Type | Description |
|---|---|---|
latitude | f64 | Latitude in degrees. |
longitude | f64 | Longitude in degrees. |
altitude | f64? | Altitude of the geographic position, when known. |
spql.LocationFix
Instantaneous geographic location estimate.
- Stability:
experimental - Storage:
struct { position, covariance, covariance_type, heading, velocity, color, metadata }
Fields
| Name | Type | Description |
|---|---|---|
position | spql.GeoPosition | Estimated geographic position. |
covariance | list<f64>? | Covariance values for the geographic position estimate. |
covariance_type | i32? | Code describing how to interpret the covariance. |
heading | f64? | Heading of the location estimate, when known. |
velocity | spql.Vector3D? | Estimated three-dimensional velocity, when known. |
color | spql.Color? | Display color for the location estimate. |
metadata | list<spql.KeyValue>? | Additional key-value attributes of the estimate. |
spql.Odometry
Instantaneous pose and velocity estimate.
- Stability:
experimental - Storage:
struct { pose, linear_velocity, angular_velocity, pose_covariance, velocity_covariance, metadata }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Estimated position and orientation. |
linear_velocity | spql.Vector3D? | Estimated linear velocity. |
angular_velocity | spql.Vector3D? | Estimated angular velocity. |
pose_covariance | list<f64>? | Covariance values for the pose estimate. |
velocity_covariance | list<f64>? | Covariance values for the velocity estimate. |
metadata | list<spql.KeyValue>? | Additional key-value attributes of the estimate. |
Scenes
| Type ID | Stability | Summary |
|---|---|---|
spql.Arrow3D | experimental | Posed three-dimensional arrow. |
spql.Box3D | experimental | Posed three-dimensional box. |
spql.Color | stable | Unit-interval RGBA color. |
spql.Cylinder3D | experimental | Posed cylinder or frustum. |
spql.Line3D | experimental | Posed three-dimensional line topology. |
spql.Mesh3D | experimental | Posed triangle mesh. |
spql.Model3D | experimental | Posed model asset reference or embedded payload. |
spql.SceneEntity3D | experimental | Identified collection of three-dimensional primitives. |
spql.SceneEntityDeletion | experimental | Deletion of one matching scene entity or all entities. |
spql.SceneUpdate3D | experimental | Ordered additions, replacements, and deletions for a 3D scene. |
spql.Sphere3D | experimental | Posed ellipsoid. |
spql.Text3D | experimental | Posed three-dimensional text. |
spql.Arrow3D
Posed three-dimensional arrow.
- Stability:
experimental - Storage:
struct { pose, shaft_length, shaft_diameter, head_length, head_diameter, color }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Position and orientation of the arrow. |
shaft_length | f64 | Length of the arrow shaft in scene units. |
shaft_diameter | f64 | Diameter of the arrow shaft in scene units. |
head_length | f64 | Length of the arrow head in scene units. |
head_diameter | f64 | Diameter of the arrow head in scene units. |
color | spql.Color? | Color of the arrow. |
spql.Box3D
Posed three-dimensional box.
- Stability:
experimental - Storage:
struct { pose, size, color }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Position and orientation of the box. |
size | spql.Vector3D | Box dimensions along its local axes. |
color | spql.Color? | Color of the box. |
spql.Color
Unit-interval RGBA color.
- Stability:
stable - Storage:
struct { r, g, b, a }
Fields
| Name | Type | Description |
|---|---|---|
r | f64 | Red channel in the unit interval. |
g | f64 | Green channel in the unit interval. |
b | f64 | Blue channel in the unit interval. |
a | f64 | Alpha channel in the unit interval; zero is transparent. |
spql.Cylinder3D
Posed cylinder or frustum.
- Stability:
experimental - Storage:
struct { pose, size, top_scale, bottom_scale, color }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Position and orientation of the cylinder. |
size | spql.Vector3D | Cylinder dimensions along its local axes. |
top_scale | f64 | Scale factor for the top cap. |
bottom_scale | f64 | Scale factor for the bottom cap. |
color | spql.Color? | Color of the cylinder. |
spql.Line3D
Posed three-dimensional line topology.
- Stability:
experimental - Storage:
struct { pose, points, color, colors, indices, topology, thickness, scale_invariant }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Pose that places the line points in the scene. |
points | list<spql.Position3D> | Line vertices in local coordinates. |
color | spql.Color? | Shared color of the line. |
colors | list<spql.Color>? | Per-vertex colors aligned with points. |
indices | list<u32>? | Vertex indices defining connectivity. |
topology | utf8 | Connectivity description for the line vertices. |
thickness | f64? | Thickness of the line. |
scale_invariant | bool? | Whether line thickness stays constant as the view scale changes. |
spql.Mesh3D
Posed triangle mesh.
- Stability:
experimental - Storage:
struct { pose, vertices, indices, color, colors }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Pose that places the mesh in the scene. |
vertices | list<spql.Position3D> | Mesh vertices in local coordinates. |
indices | list<u32>? | Vertex indices defining the mesh triangles. |
color | spql.Color? | Shared color of the mesh. |
colors | list<spql.Color>? | Per-vertex colors aligned with vertices. |
spql.Model3D
Posed model asset reference or embedded payload.
- Stability:
experimental - Storage:
struct { pose, scale, source, media_type, color, override_color }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Position and orientation of the model. |
scale | spql.Vector3D? | Scale along each local model axis. |
source | spql.Blob? | Blob containing the model asset. |
media_type | utf8? | Media type of the model asset. |
color | spql.Color? | Color applied to the model. |
override_color | bool? | Whether the supplied color overrides model material colors. |
spql.SceneEntity3D
Identified collection of three-dimensional primitives.
- Stability:
experimental - Storage:
struct { id, frame_id, lifetime_ns, frame_locked, arrows, boxes, cylinders, spheres, lines, meshes, text, models, metadata } - Frame:
frame_idfield: the frame its primitives are posed in
Fields
| Name | Type | Description |
|---|---|---|
id | utf8 | Identifier used to replace or delete this entity. |
frame_id | utf8 | Frame in which the entity primitives are posed. |
lifetime_ns | i64? | Lifetime of the entity in nanoseconds, when supplied. |
frame_locked | bool? | Whether the entity remains attached to its frame as that frame moves. |
arrows | list<spql.Arrow3D>? | Arrow primitives belonging to the entity. |
boxes | list<spql.Box3D>? | Box primitives belonging to the entity. |
cylinders | list<spql.Cylinder3D>? | Cylinder primitives belonging to the entity. |
spheres | list<spql.Sphere3D>? | Ellipsoid primitives belonging to the entity. |
lines | list<spql.Line3D>? | Line primitives belonging to the entity. |
meshes | list<spql.Mesh3D>? | Mesh primitives belonging to the entity. |
text | list<spql.Text3D>? | Text primitives belonging to the entity. |
models | list<spql.Model3D>? | Model primitives belonging to the entity. |
metadata | list<spql.KeyValue>? | Additional key-value attributes of the entity. |
spql.SceneEntityDeletion
Deletion of one matching scene entity or all entities.
- Stability:
experimental - Storage:
struct { id, all }
Fields
| Name | Type | Description |
|---|---|---|
id | utf8? | Identifier of the entity to delete when all is false. |
all | bool | Whether the deletion targets every scene entity. |
spql.SceneUpdate3D
Ordered additions, replacements, and deletions for a 3D scene.
- Stability:
experimental - Storage:
struct { entities, deletions }
Fields
| Name | Type | Description |
|---|---|---|
entities | list<spql.SceneEntity3D>? | Entities to add or replace in the scene. |
deletions | list<spql.SceneEntityDeletion>? | Entity deletion operations for the scene update. |
spql.Sphere3D
Posed ellipsoid.
- Stability:
experimental - Storage:
struct { pose, size, color }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Position and orientation of the ellipsoid. |
size | spql.Vector3D | Ellipsoid dimensions along its local axes. |
color | spql.Color? | Color of the ellipsoid. |
spql.Text3D
Posed three-dimensional text.
- Stability:
experimental - Storage:
struct { pose, text, color, font_size, billboard, scale_invariant }
Fields
| Name | Type | Description |
|---|---|---|
pose | spql.Pose3D | Position and orientation of the text. |
text | utf8 | Text to display. |
color | spql.Color? | Text color. |
font_size | f64? | Size of the displayed text. |
billboard | bool? | Whether the text faces the viewer. |
scale_invariant | bool? | Whether text size stays constant as the view scale changes. |
Logs
| Type ID | Stability | Summary |
|---|---|---|
spql.LogEntry | experimental | One structured log record. |
spql.LogEntry
One structured log record.
- Stability:
experimental - Storage:
struct { level, message, name, file, line }
Fields
| Name | Type | Description |
|---|---|---|
level | i32 | Severity code of the log record. |
message | utf8 | Text of the log message. |
name | utf8? | Name of the logger or emitting component. |
file | utf8? | Source file associated with the record. |
line | u32? | Source line associated with the record. |
Tensors
| Type ID | Stability | Summary |
|---|---|---|
spql.Tensor | stable | A dense tensor whose shape may differ from value to value, with optional dimension names, the permutation from logical to physical dimensions and the dimension sizes every value shares, as Arrow's canonical variable-shape tensor defines them. |
vortex.tensor.fixed_shape_tensor | A dense primitive tensor with the same logical shape for every value. Dimension names describe logical dimensions; permutation[i] gives the physical dimension for logical dimension i. Without a permutation, logical and physical order are identical. | |
vortex.tensor.vector | A fixed-length one-dimensional vector of non-nullable floating-point elements. |
spql.Tensor
A dense tensor whose shape may differ from value to value, with optional dimension names, the permutation from logical to physical dimensions and the dimension sizes every value shares, as Arrow's canonical variable-shape tensor defines them.
- Stability:
stable - Storage:
struct {data: list<E>, shape: fixed_size_list<i32, N>}, writtenspql.Tensor<E, N>in field types: the row-major samples of primitive typeEand the sizes of the tensor'sNdimensions.dim_names,permutationanduniform_shape, when present, have one entry per dimension. - Aliases:
vortex.tensor.variable_shape_tensor - Arrow extension name:
arrow.variable_shape_tensor
Type parameters
| Name | Kind | Description |
|---|---|---|
dim_names | list<utf8>? | |
permutation | list<u32>? | |
uniform_shape | list<i32?>? |
vortex.tensor.fixed_shape_tensor
A dense primitive tensor with the same logical shape for every value. Dimension names describe logical dimensions; permutation[i] gives the physical dimension for logical dimension i. Without a permutation, logical and physical order are identical.
- Defined by: the Vortex file format
- Storage:
fixed_size_list<E, product(shape)>, whereEis a non-nullable primitive element type. Optional names and permutation each have one entry per dimension. - Arrow extension name:
arrow.fixed_shape_tensor
Type parameters
| Name | Kind | Description |
|---|---|---|
shape | list<u32> | |
dim_names | list<utf8>? | |
permutation | list<u32>? |
vortex.tensor.vector
A fixed-length one-dimensional vector of non-nullable floating-point elements.
- Defined by: the Vortex file format
- Storage:
fixed_size_list<E, N>, whereEisf16,f32orf64andNis the vector dimension. The element type and dimension come from the storage; there are no metadata parameters.
Vector Quantization
| Type ID | Stability | Summary |
|---|---|---|
spql.RaBitQ | stable | A vector quantized with RaBitQ for approximate distance estimation: sign codes and optional extra-bit codes of its coordinates after a deterministic rotation, with the per-row factors that correct the estimate. |
vortex.turboquant | stable | A vector compressed with TurboQuant: split into blocks, each stored as its norm and the scalar-quantized coordinates of its unit direction after a structured random rotation. Lossy; spql.vector.dequantize decodes it. |
spql.RaBitQ
A vector quantized with RaBitQ for approximate distance estimation: sign codes and optional extra-bit codes of its coordinates after a deterministic rotation, with the per-row factors that correct the estimate.
- Stability:
stable - Storage:
struct {signs, extra_codes?, norm_sq, one_bit_scale, full_scale?, full_error_scale?, error_scale}:fixed_size_list<u8, code_dimensions>sign codes, extra-bit codes whennum_bitsis above 1, and per-rowf32orf64correction factors, the multi-bit ones whennum_bitsis above 1. - Aliases:
vortex.rabitq
Type parameters
| Name | Kind | Description |
|---|---|---|
dimensions | u32 | Dimensions of the original vectors, before zero padding. |
code_dimensions | u32 | Dimensions of the rotated codes, dimensions rounded up to a multiple of 64. |
num_bits | u8 | Bits per coordinate, including the sign bit, from 1 to 9. |
seed | u64 | Seed of the deterministic rotation. |
rotation | rabitq_rotation | The rotation contract, fht_kac_v1. |
vortex.turboquant
A vector compressed with TurboQuant: split into blocks, each stored as its norm and the scalar-quantized coordinates of its unit direction after a structured random rotation. Lossy; spql.vector.dequantize decodes it.
- Stability:
stable - Defined by: the Vortex file format
- Storage:
struct {block_0: struct {norms: E, codes: fixed_size_list<u8, B0>}, ...}: one struct per entry ofblock_sizes, holding each row's norm of typeelement_ptypeand one quantizer code per coordinate of the block.
Type parameters
| Name | Kind | Description |
|---|---|---|
element_ptype | ptype | Element type of the original vectors and of the stored norms; f16, f32 or f64. |
dimensions | u32 | Dimensions of the original vectors, before block decomposition. |
bit_width | u8 | Bits per coordinate in the scalar quantizer's codebook, from 1 to 8. |
seed | u64 | Global seed from which each block's structured random rotation derives. |
num_rounds | u8 | Sign-diagonal and Walsh-Hadamard rounds in each block's rotation. |
block_sizes | list<u32> | Power-of-two block widths, in coordinate order, summing to at least dimensions. |
Geospatial
| Type ID | Stability | Summary |
|---|---|---|
vortex.st.box | Exports to Arrow as geoarrow.box. | |
vortex.st.linestring | Exports to Arrow as geoarrow.linestring. | |
vortex.st.multilinestring | Exports to Arrow as geoarrow.multilinestring. | |
vortex.st.multipoint | Exports to Arrow as geoarrow.multipoint. | |
vortex.st.multipolygon | Exports to Arrow as geoarrow.multipolygon. | |
vortex.st.point | Exports to Arrow as geoarrow.point. | |
vortex.st.polygon | Exports to Arrow as geoarrow.polygon. | |
vortex.st.wkb | Exports to Arrow as geoarrow.wkb. |
vortex.st.box
Exports to Arrow as geoarrow.box.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.box
vortex.st.linestring
Exports to Arrow as geoarrow.linestring.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.linestring
vortex.st.multilinestring
Exports to Arrow as geoarrow.multilinestring.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.multilinestring
vortex.st.multipoint
Exports to Arrow as geoarrow.multipoint.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.multipoint
vortex.st.multipolygon
Exports to Arrow as geoarrow.multipolygon.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.multipolygon
vortex.st.point
Exports to Arrow as geoarrow.point.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.point
vortex.st.polygon
Exports to Arrow as geoarrow.polygon.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.polygon
vortex.st.wkb
Exports to Arrow as geoarrow.wkb.
- Defined by: the Vortex file format
- Arrow extension name:
geoarrow.wkb