Data
vector
Multi-channel numeric time-series with variable width. Generic dtype for any N-channel signal that doesn't have a specialized dtype (IMU, pose, joint_angles) already.
Chunk format
- Format:
jsonl - Decoder:
jsonlDecoder
JSONL shape
{
ts: number
data: number[] // length N — same N across every sample in the track
}| Field | Type | Required | Notes |
|---|---|---|---|
ts | number | yes | Monotonically increasing. |
data | number[] | yes | Length-N vector. All samples in the track share the same N. |
Sample data
{"ts": 0.00, "data": [0.11, 0.22, 0.33]}
{"ts": 0.01, "data": [0.12, 0.23, 0.34]}
{"ts": 0.02, "data": [0.13, 0.24, 0.35]}Sample m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXTINF:5.000,
chunk-001.jsonl
#EXT-X-ENDLISTCompatible timeline lanes
| Lane | Notes |
|---|---|
LineChartLane | Default. Draws one curve per channel (golden-angle hues). |
Compatible standalone views
| View | Notes |
|---|---|
BarTrackView | Generic N-channel bar display. |
Default props
None. Per-track you'll often want to supply shape: [N], channelNames, and/or range:
{
"id": "force",
"path": "sensors/force_xyz",
"dtype": "vector",
"src": "...",
"props": {
"shape": [3],
"channelNames": ["Fx", "Fy", "Fz"],
"range": [-50, 50],
"unit": "N"
}
}Python generator
import numpy as np
from dreamlake import Episode
ep = Episode.create("ep1")
force = ep.track("sensors/force_xyz", dtype="vector")
t = 0.0
while t < 10.0:
fx, fy, fz = np.random.normal(0, 5, size=3)
force.append({"ts": t, "data": [float(fx), float(fy), float(fz)]})
t += 0.02