Doors open Friday 4:00 PM — arrive early to check inDoors Friday 4:00 PM — arrive early
Embodied Metal Hackathon
Get API Key

Record

Capture and curate

~2 min read

You drove the arm. Recording turns that driving into data. Each time you complete the task, the kit saves one episode — the synchronized robot state and both camera streams for that single attempt.

Recording happens in the Starter Kit's recording tool — the same local site you drove from. With the kit installed, launch it from the repo root:

pixi run learn

Then open http://localhost:3000 and go to its Collect page. This chapter is the map of what you'll do there and the two things that decide whether an episode is worth keeping: the instruction attached to it, and whether the attempt actually succeeded.

An empty task label trains nothing

The task label is what makes an episode trainable. The model is language-conditioned, so every episode carries a written instruction, and an empty or placeholder task label produces a dataset that trains nothing.

The catch is that the kit does not fill this in for you — its task field defaults to empty. A real instruction on every episode is something you set, not something you inherit. Decide the exact words once — the same plain sentence from the last chapter, put the red cube in the bowl — and give every episode that same instruction.

What you'll do on the Collect and Refine pages

  • Collect — operate the arm live, and hit record when you're ready. For each take you set the dataset name, the task (your instruction), and a tag (Good episode, Bad episode, Needs review). The take writes straight to the local catalog. Record a couple dozen short attempts of the same task, scene and cameras fixed between takes.
  • Refine — query what you recorded and curate it. You filter by tag and cull the misses; tagging is curating, because the export keeps only the good ones by default. A bad take costs nothing — re-record, and bad episodes stay useful as counterexamples.
You should see

each completed take appear with your non-empty instruction attached, and Good episode on the ones you're keeping.

Culling is your half of the honesty

You will not perform the task perfectly every time, and you shouldn't try to. Record honestly, then cull the takes that missed — the ball rolled out of the gripper, the arm ran short of reach, the attempt didn't finish. Catching a miss at the table costs one tag; the same miss found after upload is a hunt through look-alike episodes. That judgment — which takes are worth keeping — is yours, and it's the highest-leverage thing you do in this pocket.

Your dataset, ready by name

There's no separate export to run here. The next chapter's one command reads straight from what you just recorded — the dataset name you set on the Collect page — and does the LeRobot conversion, the upload, and the launch itself.

your dataset has a name and good takes behind it. The next chapter turns it into a model.