VigneshBhavan/so101-keyboard-typing-benchmark
SO-101 Keyboard Typing Checkpoints Reproducibility bundle for the SO-101 six-letter keyboard-typing comparisons. The policies use a fixed Cartesian keyboard map, proprioceptive joint state, registered keypress feedback, and no vision or online pose correction. Physical typing example — September 17, 2026 The newly calibrated scene and model_2498.pt completed one physical NEWTON trial in 7.099 s, after 500 P1A + 2,000 Transit15 updates and 2,048/2,048 strict… See the full description on the dataset page: https://huggingface.co/datasets/VigneshBhavan/so101-keyboard-typing-benchmark.
SO-101 Keyboard Typing Checkpoints
Reproducibility bundle for the SO-101 six-letter keyboard-typing comparisons. The policies use a fixed Cartesian keyboard map, proprioceptive joint state, registered keypress feedback, and no vision or online pose correction.
Physical typing example — September 17, 2026
The newly calibrated scene and model_2498.pt completed one physical NEWTON trial in 7.099 s, after 500 P1A + 2,000 Transit15 updates and 2,048/2,048 strict six-letter simulation passes. Training/evaluation took 2 h 38 min 21 s on an RTX 5090. Download and reproduce this example. It includes unchanged weights, the matched scene/environment, setup-specific mapping, evaluations, simulation videos and a sanitized hardware log. Repeated reliability and independent-user reproduction remain unmeasured.
The current scene-calibration code and ./so101 download --calibrated command are in NVIDIA's internal workflow repository, which requires NVIDIA enterprise access. These artifacts are public. The older public code snapshot below supports the historical workflow. The default 19k download and its benchmark evidence remain unchanged.
Historical public code
The September 11 public source snapshot of the training/deployment pipeline is in:
- Repository: SO-101 public training and deployment pipeline
- Historical source snapshot:
1b8cb7e8176021685325724b62c41b1fe394c25a. - Public commands support Newton MJWarp with AnchorBench and USD profiles. Workshop and Sparse VBD weights are historical artifacts, excluded from the public CLI and its supported downloads.
Start here
Follow the repository README for two workflows: train for your chosen keyboard pose, or optionally try the AnchorBench ~19k checkpoint with its matching saved environment. Physical deployment requires your own standard LeRobot calibration and alignment to the geometry used in simulation. The reference fixture is documented in the repository's FIXTURE_SETUP.md.
./so101 download fetches only the optional AnchorBench ~19k weights, matching environment and evaluation report. ./so101 download --all adds supported-model benchmark and development artifacts. From that download directory, verify with sha256sum -c DOWNLOAD_SHA256SUMS. The archive manifest below also describes historical files that those commands intentionally do not fetch.
This is an artifact bundle, not a tabular dataset for load_dataset(). Use the Files tab or the repository downloader. Independent installation and typing on another user's physical SO-101 remain unverified.
Archive contents
model_19999.pt is the checkpoint produced after 20,000 updates because the training loop numbers checkpoints from zero.
Historical benchmark checkpoints have matching configs/*.env.yaml files; newer releases keep the environment in their params/ directory. Verify downloaded weights with SHA256SUMS; manifest.json records the code revision, task ID, solver, actuator profile, and matching evaluation artifacts.
Evaluation
The evaluation/ directory contains saved deterministic simulator reports and the final real-robot comparison summary. The reported real-robot protocol uses the same ordered bank of 100 six-letter sequences, strict press-release- clearance completion, and no vision. These artifacts are evidence for the stated experiment only; robot, calibration, and fixture changes require a new physical evaluation.
Development validation archive (2026-09-10)
The new two-letter policy passes 2048/2048 strict simulation episodes. After 50 additional Transit15 updates, the six-letter policy passes 2027/2048 (98.97%), with 3 wrong-key and 18 scrape failures. Measured training-loop time is 32 min 14 s on an RTX 5090 (501 P1A updates plus 50 continuation updates). These policies have not been validated on hardware. See complete results, including placement tolerance and CPU inference parity.
- P1A:
checkpoints/public-p1a-seed1307/model_500.pt - Six-letter:
checkpoints/public-transit15-seed1307/model_549.pt - Each directory contains matching
params/env.yamlandparams/agent.yaml. training/contains per-iteration metrics and runtime/image provenance.evaluation/public-*contains complete seeded reports and actor-parity evidence.videos/contains P1A HE/AZ/QZ and six-letter NVIDIA recordings.
Historical checkpoint bytes and numeric benchmark results are unchanged. Current metadata uses the public repository and relative artifact references; unpublished raw physical-log locations are explicitly labelled unavailable. Older dataset revisions remain historical records. To verify this complete release locally:
sha256sum -c SHA256SUMS