← Back to the library

Training recipe · SO-101

SO-101 PPO to LeRobot: 1,000 filtered simulation demonstrations

A simulated cap-to-tray task, adapted from NVIDIA's SO-101 workshop in Isaac Sim / Isaac Lab, uses a learned state-based PPO policy to generate 1,000 filtered LeRobot v3 demonstrations with top and wrist RGB. Simulation data generation; real-world transfer and SmolVLA improvement are not yet demonstrated.

so101pposimulationlerobot-v3demonstrationsdata-qualityisaac-lab
See this project in actionA demonstration is available at the source.
Demonstration at the external sourceView demo at verapulse.ai

About this project

Original research and article by Burak Barlas / Verapulse, published September 18, 2026. Read the original article (verapulse.ai ↗).

A simulated SO-101 learns to pick up a rigid cap, place it in a tray, release it, and withdraw. The task adapts NVIDIA's SO-101 workshop infrastructure in Isaac Sim / Isaac Lab. The learned PPO policy uses 89 privileged state features and outputs six joint-position targets; it is not a camera-based vision-language-action policy.

Collection and evidence

The authors report 1,000 accepted episodes from 3,008 completed attempts, containing 86,832 synchronized frames at 30 Hz (about 48.2 minutes). The LeRobotDataset v3 export includes top and wrist RGB at 640 × 480, six joint-state values, six applied joint-position targets, and task/episode/frame/timestamp metadata. Every accepted episode passes strict placement and a separate clean-release check. The other 2,008 completed attempts were not accepted; incomplete attempts interrupted by renderer crashes are excluded from the completed-attempt count. Success-selected demonstrations do not imply a 100% policy success rate. The public results JSON (verapulse.ai ↗) records the protocol, counts, limitations, and checkpoint fingerprints.

Useful lessons

  • Collision geometry comes first. A convex-mesh cap collider resolved penetration and sticking in the authors' setup. The work does not establish whether the cause was a simulator bug, asset configuration, or their interaction.
  • Strict placement and demonstration quality differ. An episode can eventually satisfy placement while still showing renewed jaw closing or contact after release. The added clean-release filter rejects post-release contact of at least 1 N and jaw-target closing greater than 0.10 rad from its running maximum.
  • 30 fps video is not 30 Hz control. Collection queries the policy at 30 Hz and holds each target across two native environment steps. Physics/contact diagnostics remain at 120 Hz. In one matched set of 20 starts, the final policy achieved strict placement in 20/20 episodes at 60 Hz versus 12/20 at 30 Hz; clean-release placement was 19/20 versus 9/20. These small matched evaluations are not a reliability guarantee or a multi-training-seed result.

Actual recorded rollouts

These are recordings linked by the original article, not generated illustrations.

What is available and what remains unproven

The article, compact evidence record, and recorded videos are publicly accessible. The full dataset and model weights are not published in these sources. Upstream workshop/framework links below are supporting references, not a release of Verapulse's modified task code, dataset, or PPO checkpoint. The result is simulation data generation; real-robot calibration, real-world transfer, and improved SmolVLA performance remain unverified. Combining simulated and real data to fine-tune SmolVLA is future work. Measurements here are author-reported and have not been independently reproduced by this site.

Setup & reproduction

This entry documents a research workflow, not a complete runnable release. Start with the original article and results protocol; the linked NVIDIA workshop, Isaac Lab, and LeRobot repositories are upstream references. Verapulse's full dataset, weights, and exact modified task implementation are not supplied by these public sources.

For reproduction, inspect collision behavior before reward tuning, distinguish placement from clean-release quality, evaluate at the intended control rate, and validate pre-action image/state alignment with the targets actually applied. Before combining this export with real SO-101 demonstrations, verify joint order, signs, ranges, gripper calibration, camera conventions, and timing. Matching LeRobot field names does not establish real-robot compatibility.

Article by Burak Barlas / Verapulse; original publication and reported results date: September 18, 2026. The sharing account is separate from the original research byline.

Sources checked 2026-09-22. Shared by a community member; original work by Burak Barlas / Verapulse.

  • Source: https://verapulse.ai/research/so101-rl-to-lerobot-dataset/
  • Source: https://verapulse.ai/research-data/so101-results.json
  • Source: https://github.com/isaac-sim/Sim-to-Real-SO-101-Workshop
  • Source: https://github.com/isaac-sim/IsaacLab
  • Source: https://github.com/huggingface/lerobot
  • Source: https://huggingface.co/docs/lerobot/main/en/lerobot-dataset-v3
  • Source: https://arxiv.org/abs/1707.06347
  • Source: https://verapulse.ai/videos/so101/before-clean-release-60hz.mp4
  • Source: https://verapulse.ai/videos/so101/after-clean-release-60hz.mp4
  • Source: https://verapulse.ai/videos/so101/after-clean-release-30hz-timeout.mp4
  • Source: https://verapulse.ai/videos/so101/dataset-top-30hz.mp4
  • Source: https://verapulse.ai/videos/so101/dataset-wrist-30hz.mp4 Known limits:
  • Full dataset, model weights, and exact modified task implementation are not published by the article or results JSON.
  • Real-robot calibration, simulation-to-real transfer, and SmolVLA improvement are not demonstrated.
  • Reported results were not independently reproduced; the small matched evaluation is not a reliability guarantee.
  • Upstream repository revisions are unpinned; license terms for every linked artifact have not been independently verified.

Interactive preview

No interactive preview is available for this project. Explore the linked resources and demonstration above.

Discussion

Share what you tried, ask a question, or add a useful detail. Comments appear newest first.

Sign in to comment

Loading comments…

Sign in to report project