Alpslee's profile photoShared by Alpslee

Free-standing G1 forehand return: real-time scripted stroke controller

Policy + simulator

0:000:00
Free-standing G1 forehand return: real-time scripted stroke controller
Work in progress
Unitree G1 · MuJoCo · 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

01 · SubmissionFormat checked

Archive and policy files

02 · SimulationSimulation not run

Prepare a compatible export below

03 · Real robotNo approval recorded

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.

Fix my G1 package

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 requirements

Contract 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 434cf80c0a3fe22901da62331c41a12e235c36b0de3db70d4ad642f2f978b26e
Download project ZIP
What’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

Share this video
Share on XShare on LinkedIn
Build on thisShare another video