Free-standing G1 forehand return: real-time scripted stroke controller
Policy + simulator
About this project
Free-standing 29-DoF Unitree G1 in MuJoCo (no fixed base, no balance assistance) returning forehand feeds. Upper body: scripted real-time controller (ball forecast with drag, Magnus and a fitted bounce; Ruckig-planned stroke). Legs: Unitree's pretrained locomotion network plus a balance residual we trained. Our evaluation on 50 unseen feeds: 44/50 legal first returns (25/25 standard, 19/25 wide; 5 of the 6 misses were feeds into the net). Simulation only, self-reported, not hardware-validated.
- Environment
- MuJoCo
- Robot
- Unitree G1
- Includes
- Policy + simulator
FROM SIM TO REAL
Safety & real-world tests
Archive and policy files
Prepare a compatible export below
Runner video and data appear here
Robot package missing
No runner container found. Include submission.tar, or g1-runner.json with a public archive URL and SHA-256 for a large image. A model ZIP and run.sh alone cannot start in the G1 runner. setup.sh stays on the robot.
Container simulation and hardware qualification are separate. Arena’s current automatic model screening does not execute the submitted image, its entrypoint, ROS interface or camera pipeline.
Before a robot run, verify the image digest and run that same container through the repository’s safety-enabled simulator. Retain the reports and traces. Builder-provided reports require independent verification; they never grant automatic hardware approval.
Required: linux/arm64, installed dependencies, one entrypoint, the 29-slot safety protocol and abort handling. Camera/lidar are not standard inputs; base state needs qualification. setup.sh belongs on the robot.
Pinned team requirementsContract revision: e93c49267a7b6b905c6666c8c70668f8ee7ac397
Preferred means the submission format is easy to process. It says nothing about safety.
This automated check records simulation findings. Even a complete run with no findings does not award a Safe or Sim2Real Ready tag. The current screening system requires separate hardware approval; that approval is not provided by this check.
Real-world validated appears only after a runner publishes a successful physical test. It describes that test, not a guarantee for future runs.
Safety check
Model screening only. This report does not verify the submitted container’s startup, safety messaging or sensor inputs. See the G1 runner package requirements above.
Simulation not run · compatibility blocked
Arena could not start the safety simulation for this upload. No safety result was established. Follow the preparation steps below.
Loading builder feedback…
Original diagnostic: Model files were found, but no supported controller contract was identified. Export using a documented G1 controller format and declare its safety_adapter in arena-policy.json. See /docs/g1-policy-checks; a model's dimensions alone do not identify its inputs or joint commands.
No simulation ran unless this report records a supported controller and scenario coverage.
Release: g1-screening-pr10-e93c492-v3
Evaluator revision: e93c49267a7b6b905c6666c8c70668f8ee7ac397
Policy SHA-256: 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26e
Submission format
Scripted · Declared by submitter
Include an ONNX policy model for the Preferred submission standard.
- Include an ONNX policy model for the Preferred submission standard.
- Policy type declared as scripted in arena-policy.json.
- Other formats can still be submitted. Preferred only describes the initial submission standard.
Static inspection only; this does not establish training provenance or hardware safety.
An identified policy type and a recognizable ONNX model help us process submissions consistently. Preferred does not mean Sim2Real Ready. Other formats are welcome.
For the clearest result, include an ONNX model and an arena-policy.json file beside it:
{"policy_type":"trained","model":"policy.onnx"}Use scripted for hand-authored behavior. The model path is relative to this file. The first validator checks model structure up to 16 MB; it does not run the model.
Validator: arena-validator-v2-g1-container · 2026-10-13T16:59:47.332Z
Safety check
Model screening only. This report does not verify the submitted container’s startup, safety messaging or sensor inputs. See the G1 runner package requirements above.
Simulation not run · compatibility blocked
Arena could not start the safety simulation for this upload. No safety result was established. Follow the preparation steps below.
Original diagnostic: Model files were found, but no supported controller contract was identified. Export using a documented G1 controller format and declare its safety_adapter in arena-policy.json. See /docs/g1-policy-checks; a model's dimensions alone do not identify its inputs or joint commands.
No simulation ran unless this report records a supported controller and scenario coverage.
Release: g1-screening-pr10-e93c492-v2
Evaluator revision: e93c49267a7b6b905c6666c8c70668f8ee7ac397
Policy SHA-256: 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26e
Safety check
Model screening only. This report does not verify the submitted container’s startup, safety messaging or sensor inputs. See the G1 runner package requirements above.
Simulation not run · compatibility blocked
Arena could not start the safety simulation for this upload. No safety result was established. Follow the preparation steps below.
Original diagnostic: The declared safety adapter is not supported by this release.
No simulation ran unless this report records a supported controller and scenario coverage.
Release: g1-screening-pr10-e93c492-v1
Evaluator revision: e93c49267a7b6b905c6666c8c70668f8ee7ac397
Policy SHA-256: 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26e
Safety check
Model screening only. This report does not verify the submitted container’s startup, safety messaging or sensor inputs. See the G1 runner package requirements above.
Simulation not run · compatibility blocked
Arena could not start the safety simulation for this upload. No safety result was established. Follow the preparation steps below.
Original diagnostic: Model files were found, but their full controller contract is not supported yet. HIM: map the model inputs, joint order, output scaling, normalization and control timing to its simulator. Builder: include the inference/controller source and robot assets alongside the selected checkpoint. A model shape alone is not enough to infer these semantics.
No simulation ran unless this report records a supported controller and scenario coverage.
Release: g1-screening-pr6-47cd947-v4
Evaluator revision: 47cd9479d5dda1598e12ec94649e6e7bc1468d63
Policy SHA-256: 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26e
No real-world test recorded in Arena yet. Video, results, and run data will appear here.
Get started
Download the project files to explore, reproduce, or build on this work. Inspect the builder’s code before running it in your environment.
submission.zip · SHA-256 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26eWhat’s included
Policy + simulator · Result video · Project ZIP
Refer to the builder’s project documentation for setup instructions.
Evaluation details
Recorded screening and hardware evidence are shown in the real-world test section above.
Limitations
This project is shared by its builder. Simulation results do not establish real-world safety. Review the source, dependencies, licensing, and hardware requirements before use.
Files & contents
submission.zip · 9.0 MB
SHA-256 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26e
result.mp4 · MP4
