Backed by Y Combinator

Verify quality of robotics data for model training

uv add hflow
Read the docs
sample episode · 42 s · head camera every band is a span a check flagged · click to seek

One pipeline for every way you collect.

  • First-person view from a wearable camera as a person manipulates a component at a robotics workbench

    Egocentric

  • Handheld UMI-style gripper with an action camera picking up an object on a workbench

    UMI

  • Operator using a control console and hand controller to teleoperate a tabletop robot arm

    Teleoperation

  • Autonomous robot arm sorting objects beneath fixed perception cameras without a human operator

    Autonomous rollout

Models trained for robotics data QC.

General models were not built to judge robotics data. We train and host checks for the questions robotics data teams actually ask: are the wearer's hands in view, is there active manipulation, and more.

Apply for early access to the models

Video-hours processed per day

sampled at 1 fps

Video-hours processed per day: hbr-preview 88.4, sonnet-5 10.3, gemini-3.8-flash 6.9 0 25 50 75 100 hbr-preview : 88.4 88.4 hbr-preview sonnet-5 (no reasoning): 10.3 10.3 sonnet-5 no reasoning gemini 3.8 flash (low thinking): 6.9 6.9 gemini 3.8 flash low thinking

Cost per video-hour

sampled at 1 fps

Cost per video-hour in USD: hbr-preview 1.16, sonnet-5 12.40, gemini-3.8-flash 5.83 $0 $4 $8 $12 $16 hbr-preview : $1.16 $1.16 hbr-preview sonnet-5 (no reasoning): $12.40 $12.40 sonnet-5 no reasoning gemini 3.8 flash (low thinking): $5.83 $5.83 gemini 3.8 flash low thinking

Build the pipeline with our open source SDK.

HFlow is an SDK built for first class support of our APIs. Register our checks or write your own as plain Python functions, run them against every episode, and keep the inputs, outputs, versions, and measurements around each step.

  • Test the complete pipeline locally without Docker.
  • Schedule the same steps as an Airflow 3 DAG.
  • Keep every durable output in standard formats.
Read the quickstart on GitHub
pipeline.py
import hflow

app = hflow.App("kitchen-pipeline", data_root="./data")

@app.check(critical=True)
def camera_blackout(episode: hflow.Episode) -> hflow.CheckResult:
    frame_stats = hflow.ffmpeg.frame_stats(episode.video("wrist_cam"))
    return hflow.CheckResult(
        measurements={"black_pct": frame_stats.black_frame_pct},
        verdict=frame_stats.black_frame_pct < 50.0,
    )

app.test("episode_0042.mcap")
uv add hflow

From raw recordings to reliable datasets.

HFlow turns multimodal recordings into traceable, quality-scored episodes and a queryable catalog. Each stage produces an output you can inspect, reproduce, and own.

  1. 01

    Collect

    Land synchronized video, state, action, and sensor streams as one MCAP episode.

    episode_0042.mcap
  2. 02

    Process

    Run your transformations, quality checks, labels, and enrichments as a visible pipeline.

    transform → check → enrich
  3. 03

    Curate

    Query metadata and quality evidence across the corpus without loading the recordings.

    SELECT … FROM episodes
  4. 04

    Deliver

    Produce version-pinned manifests and curated episodes for downstream applications.

Evidence you own.

Recordings stay MCAP, results stay Parquet, schedules stay Airflow DAGs. Everything we produce about your data is readable without us.

Provenance
Every episode records the pipeline and tool versions that produced it.
Evidence, not verdicts
Checks store measurements, so each dataset sets its own thresholds.
A catalog you can query
Results land in Parquet and answer to plain SQL, with no HFlow in the loop.
Reproducible curation
Manifests are version-pinned and state exactly what they cover.

Questions we get asked.

About Hebbian Robotics, the hosted checks and models, and HFlow. Questions about using the SDK itself are answered in the repository.

Read the HFlow FAQ
How do I check the quality of robotics data before training a model?

Run checks over every recording and keep the evidence, so a dataset is assembled from what was measured rather than from what was assumed. HFlow, Hebbian Robotics' open source SDK, does this as a pipeline: it ingests recordings, runs built-in checks for camera and timing faults, calls our hosted checks for questions such as what the wearer's hands are doing, and records every result in a catalog you own. Beyond that, we build checks and models for specific tasks and embodiments, run the system at corpus scale, and work with data teams directly on what their training runs need.

Which robotics data formats can be quality-checked: MCAP, ROS 2 bags, LeRobot datasets?

MCAP files with ROS 2 topics are read directly, LeRobot v3 datasets are imported by the built-in importer, and any other format takes a small converter written once. The recordings themselves can be human egocentric capture, UMI-style handheld gripper demonstrations, robot teleoperation, or autonomous policy rollouts. If your collection system produces something else, we can help you bring it in.

What data quality problems show up in teleoperation and egocentric recordings?

Black frames, frozen cameras, camera shake, irregular or missing timestamps, duplicate recordings, keyframe intervals that make video slow to seek, and, when robot state is present, joint discontinuities and idle stretches. HFlow's built-in checks find all of these. Its hosted checks judge the footage itself, such as whether the wearer's hands are visible and if there is active manipulation. Every finding is a measurement or a timestamped span on the episode's own clock, so you can see where in a recording each problem occurred. For failure modes specific to your task, embodiment, or collection setup, we build the check.

How can hands and manipulation be detected automatically in egocentric video?

With a hosted check that answers a fixed question about each sampled frame, such as how many of the wearer's hands are visible or whether there is active manipulation. HFlow samples frames at a rate you choose, sends only those frames, and folds the answers into intervals and measurements next to every other check's results. Each check is versioned so results stay comparable over time, and no API key is needed. Questions that span whole episodes, several streams, or a corpus need more than a per-frame check, and we build and run those to fit.

Can a general-purpose vision model do quality control for robotics data?

Inconsistently. General-purpose models struggle with robotics footage, where hands are foreshortened, partly out of frame, and often the only thing moving, and they know nothing about your task or embodiment. Our checks are built for the questions robotics data teams ask of their own data, and each holds a fixed output contract per version so results stay comparable as the implementation improves. HFlow can route the same questions to a model you name through an OpenAI-compatible endpoint so you can compare, and when the general question is not the right one for your data, we build the model that is.

Can robotics data quality checks run without uploading recordings to a third party?

Yes. HFlow, its built-in checks, and the catalog run where you run them, locally or in an Airflow environment you operate, and recordings, catalogs, and manifests stay in your storage. Calling a hosted check sends only the sampled frames that check needs, and nothing is sent unless you register one. When we deploy with you, what the system can see is agreed up front.

How do I run robotics data QC pipelines at scale on my own cloud or on-premises?

HFlow packages the same pipeline you test locally as Airflow 3 DAGs you operate, with data roots on local disk or in S3, GCS, or Azure storage, so scaling is a scheduling and storage decision rather than a rewrite. If you would rather not run it yourselves, we integrate it into your environment, in your cloud or on-premises, and operate the checks and models alongside your team.

Is there an open source SDK for robotics data quality checks?

Yes. HFlow is Apache 2.0 licensed and pre-v1: the core lifecycle of ingest, checks, catalog, and curation works end to end today, while formats and APIs can still change between releases. The quickstart generates a small synthetic episode, so the full pipeline runs on a laptop without robot hardware, Docker, or Airflow.

How can I work with Hebbian Robotics?

Write to launch@hebbianrobotics.com or tell Brandon or Kingston what you are building and what your data needs, or apply for early access to the model preview. If you want to use or improve the open source SDK, the contribution guide lists current priorities and every kind of contribution is welcome.

Help build the future of robotics

Hebbian Robotics builds in the open. The SDK, the checks, and the formats are public, and the people using them shape what comes next.

Want to work with Hebbian Robotics?

Show us what you have built and tell us where you want to take Physical AI next.