Beyond Dodge Rate

Testing Humanoid Dodgeball Under Camera Failures

Hebbian Robotics
Hebbian Robotics
Event-aligned exact simulation replays for healthy depth, a freeze at launch, and a freeze after 320 milliseconds, with measured contact and area outcomes.
The encounter and its consequence. The top row precedes the first measured contact, or throw resolution if all arms dodge; the bottom row shows the declared endpoint. The teal circle is the 1 m limit, and the orange line is the measured pelvis trajectory. Open full-resolution figure.

Abstract

A humanoid robot can dodge a ball and still leave its playing area. We study this gap under depth-camera failures, measuring contact, balance, and area compliance throughout each four-second trial. Two saved G1 policies, π₁ and π₂, use the same training method and recorded settings but respond differently to stale and blank images across 192 paired test seeds per policy. For π₁, all 122 area exits under stale images occur after the throw resolves. In a separate fixed paired recovery test with 64 seeds, restoring fresh images at two seconds increases success from 50.0% to 95.3%, while dodge rate remains 100%. Maximum excursion also decreases without an area cutoff. The same intervention does not improve overall success for π₂. Shared ball trajectories preserve the π₁ recovery benefit. These results support evaluating motion after an encounter and testing camera handling on the policy in use. They concern two fixed models in simulation and do not establish a universal camera fallback or hardware safety.

Restoring fresh vision

All three robots dodge the same throw. In this π₁ example, the robot stays inside the area when fresh images resume at two seconds; it leaves the area with continuously stale images or restoration at three seconds. This is the first declared recovery seed (9000), not average performance.

View individual conditions at full size
Vision stays stale
Fresh vision at two seconds
Fresh vision at three seconds

Stale or blank images

Here we fix the failure time at 160 ms after ball launch and change the input: repeat the last depth image (stale) or supply an all-zero image (blank), alongside healthy depth. The results below test this choice on both policies and show opposite effects. This clip illustrates the second policy, using its first held-out seed (7300); it does not represent average performance. View the encounter frames.

View individual conditions at full size
Healthy depth
Stale depth after 160 ms
Blank depth after 160 ms

Playback is half speed, with synchronized two-second holds at measured throw-resolution events and the final horizon. The orange ball retains its last recorded in-flight position for one second after native removal. It is a visual marker, not continued ball physics or a measured rebound.

Results

A humanoid can dodge an incoming ball while moving outside its permitted area. We measure both contact avoidance and overall success: dodging, staying upright, and keeping its pelvis within a 1 m radius over four seconds.

In the fixed 64-seed recovery comparison, restoring fresh images at two seconds raises π₁ success from 32/64 to 61/64, with 64/64 dodges in both conditions. The improvement is 45.3 percentage points (95% paired interval +32.8 to +57.8). Mean maximum excursion falls by 18.4 cm. Overall success for π₂ changes from 53/64 to 51/64. These are comparisons within each saved policy.

Blank images improve area compliance for both models. For π₁, that benefit outweighs a small loss in dodges. For π₂, a larger loss in dodges outweighs the area benefit. We have not established why the learned models respond differently.

π₁ is the checkpoint released by Martino Russi; π₂ was trained by Hebbian Robotics using the same PPO method, architecture, objective, and recorded settings. The labels identify two saved policies. Results compare camera conditions within each policy; they do not rank the policies.

192 test seeds per policy and camera condition. Every trial is counted.
CheckpointDepth inputAvoided contactStayed within 1 mOverall success
π₁Healthy192/192192/192192/192
π₁Stale191/19270/19270/192
π₁Blank182/192181/192171/192
π₂Healthy162/192189/192161/192
π₂Stale165/192182/192158/192
π₂Blank101/192190/192100/192

Change in overall success when blank images replace stale images. π₁: +52.6 percentage points (95% paired interval +43.8 to +60.9); π₂: -30.2 percentage points (95% paired interval -37.0 to -23.4). Intervals come from resampling matched test seeds and are calculated separately for each comparison. No falls or aborted throws occurred in this comparison.

Each policy faces the same physical throw across camera conditions. The two policies can face different throws, so this table does not tell us which policy is better overall. After fixing an inactive-ball collision bug, we tested both policies on 192 new seeds (7300-7491). Earlier cohorts reuse previously tested seeds and are reported separately.

Evaluation protocol and limitations

For each policy, the robot starts from the same state and faces the same throw across camera conditions. The controller updates 50 times per second and receives 25 camera images per second. Over each four-second trial, we record whether it dodges, falls, or leaves the area. A successful trial must dodge, stay upright, and stay in the area. Aborted throws remain failures.

What the results cover

We tested two saved policies on one simulated robot. We did not test physical robot safety, human collaboration, or team play, and did not repeat training with different seeds. We knew when the camera interruption began; we did not train a failure detector.

Measured differences in joint success between blank and stale depth across six permitted radii and three evaluation horizons.
Task requirements change the score. This post-hoc sensitivity analysis uses the corrected packaged-policy handling cohort; it is separate from the two-checkpoint comparison.

Related Links

The simulation and training implementation originates from G1 Depth Dodge, adapting ViBe/ORCS. Training uses RSL-RL PPO in mjlab/MuJoCo Warp, with frozen SONIC and Theia bases. The standalone evaluation port uses LeRobot G1 assets.

Our team trained a separate depth adaptation with settings matching the released reference configuration: seed 42, 4,000 updates, and 512 environments. Our run used eight GPUs. Matching settings do not establish identical initialization, random-number sequences, or resume histories; those histories are incomplete. We evaluated camera failures on the two resulting sets of weights. The data package contains configurations and raw trial records; analysis code is in the repository.

We corrected an inactive-ball collision bug in the upstream deployment port. Collision masks are disabled while the ball is inactive and restored at launch; weights and active-throw physics remain unchanged. Earlier cohorts are corrected exploratory reanalyses; the checkpoint comparison uses 192 new held-out seeds.

The manuscript is unpublished. The repository contains evaluation and analysis code, configurations, and manuscript source. The four recorded-trial archives are prepared but have not been publicly released. Reference policy weights are available from their original release; the separately trained weights are not distributed. Public end-to-end reproduction is not currently available.

Code and reproduction

BibTeX

@unpublished{kuan2026beyonddodgerate,
  title = {Beyond Dodge Rate: Testing Humanoid Dodgeball
           Under Camera Failures},
  author = {Kuan, Kingston and Ong, Brandon},
  year = {2026},
  note = {Unpublished research manuscript, Hebbian Robotics}
}