RAPID: Turning a Single Human Demo Into a Reusable Robot Program
Coding agents have proven effective at complex programming tasks, and RAPID asks whether that strength can be redirected at robot systems. Given a single visual human demonstration, RAPID automatically generates, verifies, and refines robot programs in an iterative agentic loop. To make this work it infers three ingredients from the demonstration alone: a testable task specification, the action primitives for execution, and an interactive environment for program execution and verification. To let the resulting program generalize beyond the demonstration setting, RAPID uses an object-centric relational program representation that captures the structure of the demonstrated strategy rather than the specific motion, expressing primitives as trajectory-optimization programs that realize object-level motion effects and composing them through relational constraints resolved against scene geometry at run time. It was evaluated in simulation on eight challenging contact-rich nonprehensile manipulation tasks and on LIBERO-Pro, and deployed on a real Franka arm for all eight nonprehensile tasks, showing generalization over object pose, shape, material, and environment.
Paper · arXiv:2609.30249The expensive part of putting a robot to work has never really been the robot. It is the gap between a task someone can demonstrate and a motion program reliable enough to run unattended — a gap traditionally closed by a skilled integrator writing and tuning code. The last two years have made a different answer plausible: let a coding agent write the program, and let the robot tell it whether the program works.
Background
Coding agents are good at exactly the loop that robot programming needs: write code, run it, read the failure, revise. Roboticists have begun to exploit this, but most systems either have the agent write plans that still need human interfacing, or generate programs tightly bound to the demonstration they were shown. The paper identifies three ingredients that an agentic refinement loop needs and that are usually supplied by hand: a testable task specification, a set of action primitives the robot can execute, and an interactive environment where the program can be run and checked. RAPID’s premise is that all three can be inferred from a single visual human demonstration, rather than engineered per task.
Core Innovation
RAPID is a framework that automatically generates, verifies, and refines robot programs from one visual human demonstration. Two design choices carry the weight:
- Everything is inferred from the demonstration. RAPID derives the testable task specification, the executable action primitives, and the interactive verification environment from the same demonstration, removing the per-task engineering scaffolding that comparable systems assume.
- An object-centric relational program representation. Instead of committing to the demonstrated motion, the program encodes the underlying structure of the demonstrated strategy. The action primitives are expressed as trajectory-optimization programs that realize object-level motion effects, and these are composed through relational constraints that capture scene-specific geometry at run time. This is the step that buys generalization: the program is written against relations and effects, not against joint trajectories, so the same program can be re-instantiated when the scene, object, or pose changes.
The agentic loop then iterates: generate a program, execute and verify it, and refine, with the verification environment closing the loop.
Results
- Simulation: eight challenging contact-rich nonprehensile manipulation tasks, plus general prehensile manipulation on the LIBERO-Pro benchmark.
- Real robot: successful deployment on a Franka arm, evaluated on all eight nonprehensile tasks.
- Generalization: across all experiments RAPID showed generalization over object pose, shape, material, and environment — the axes that a memorized trajectory would fail on.
The breadth here is worth noting: nonprehensile contact-rich manipulation is one of the harder settings for both classical planning and learned policies, and getting a single-demonstration pipeline to cover eight such tasks plus a prehensile benchmark plus real hardware is a meaningful span.
Limitations
The central limitation is in what the abstract does not report: it claims “strong performance” and successful real-robot deployment, but gives no numeric real-robot success rates, no comparison against a learned policy on the same hardware, and no accounting of how long the generate–verify–refine loop takes per task. For a method whose selling point is reduced engineering effort, synthesis time is a first-order metric and its absence matters. Verification depends on an inferred interactive environment, so any error or gap in the inferred task specification will silently shape the refined program; the abstract does not describe how specification errors are detected. Generalization is demonstrated over pose, shape, material, and environment, but the paper does not characterize behavior under new contact dynamics or tasks structurally unlike the demonstration. Finally, the loop relies on frozen coding-agent models — Claude Opus 5 and GPT-5.6 Sol/6 Astra are the agents used in a companion TAMP study in this batch — which raises the familiar question of reproducibility and cost as those backends change.
Industry Implications
The industrial framing is straightforward: the demonstrated cost of robot deployment is dominated by integration, and a pipeline that converts one human demonstration into a verified, reusable program attacks the dominant cost rather than the marginal one. The object-centric relational representation is the piece worth studying even for teams that never adopt RAPID wholesale — it is a clean statement of the principle that a deployable robot program should be written against the structure of a strategy, and against relations that get resolved at run time, rather than against a recorded trajectory. For a systems integrator, the relevant claim is not that a coding agent can program a robot, but that the program survives a change in object pose, shape, material, or workspace without being rewritten. That is the difference between automating one cell and producing a program asset that amortizes across many.