Platform / Visualization & Curation
02 · Visualization & Curation

Turn raw logs into training-ready datasets.

Merge heterogeneous traces onto one timeline, explore episode diversity visually, and curate with real tools, not scripts. Every training run points back to the exact synchronized snapshot it used.

The synchronization engine

Every trace, merged onto one timeline.

The core engine merges video, depth, joints, poses, language, and point clouds into training-ready SynchronizedPoints, with quality guardrails, cross-embodiment resolution, and deterministic caching that makes re-syncing an identical request free.

Reference clock

Fixed-Hz or densest-stream

Align to a target frequency (integer-stepped to avoid drift) or to the highest-rate sensor, with nearest-neighbor temporal matching.

Guardrails

Quality enforced

A max_delay tolerance rejects mismatches, sparse streams are detected, and trim_start_end clips episode boundaries cleanly.

Cross-embodiment

Mixed robots align

Per-robot data-type and sensor-name selection with wildcard remapping resolves mixed-robot datasets to a canonical layout.

Load & synchronize

Pick a frequency, get clean episodes.

Synchronize any set of data types at a target frequency and iterate episode by episode. Each SynchronizedPoint is the same structure training and inference consume.

Outputs are hashed by recording and params, so identical requests reuse the cached result instantly.

synchronize.py
dataset = nc.get_dataset("Cube Handover")

# Align chosen modalities onto one clock
synced = dataset.synchronize(
    frequency=10,
    data_types=[
        DataType.JOINT_POSITIONS,
        DataType.RGB_IMAGES,
        DataType.LANGUAGES,
    ],
)

print(f"{len(synced)} episodes")
for episode in synced[:5]:
    for step in episode:  # SynchronizedPoint
        rgb = step[DataType.RGB_IMAGES]
        qpos = step[DataType.JOINT_POSITIONS]
In the browser

Explore it, then curate it.

See where your demonstrations cluster, catch the outliers and redundant takes, and cut clean dataset versions, all in the browser.

3D URDF trajectory visualization

End-effector trajectories computed via forward kinematics over synchronized joints, streamed live over Server-Sent Events with duplicate and collinear-point cleanup.

UMAP dataset embedding

A 2D projection of whole-recording trajectory vectors for at-a-glance episode-diversity exploration, spot clusters, outliers, and redundant demonstrations in a scatter plot.

Per-modality statistics

Mean, std, count, min, max, and robust q01/q99 quantiles per data type and per item, the exact normalization statistics training consumes.

Dataset surgery

Merge, clone, split, move recordings between datasets, filter by type/date/status, one-click ZIP export, and cascade-safe deletion reporting bytes freed.

Get Started

See your dataset the way
your model does.