TX-34 NOVA · Simulation campaign

It walks.
And every number here can be checked in ten minutes.

654 support events over 120 seconds, from a standstill to a standing stop, on an anatomically sized foot. Five of six gait criteria met. What it cannot do is on this page too, with the same numbers — and all of it reproduces from a public repository under MIT licence.

Nine gestures in two minutes and forty-four seconds. No music, no transitions, and every figure on screen printed by the code that produced it — including the model mass. Playback speed is declared on screen for each segment.
  1. 00:03Start and stop — first support 2.41 s
  2. 00:20Forward walking — 654 supports, +2.49 m
  3. 00:37Backward walking — −25.93 m, stride 12.3 cm
  4. 00:54Squat — the depth limit is the heel
  5. 01:07Sit-to-stand — seat 649 N, up in 3.00 s
  6. 01:15Jump — flight 270 ms, CoM +7.1 cm
  7. 01:27Balance envelope — 0.35 / 0.50 / 0.35 m/s
  8. 02:07Lateral fall — hand 420 ms before the body
  9. 02:19Power loss — neither strategy passes

Reproduce it

git clone https://github.com/SynthMike34/nova-sim cd nova-sim pip install -r requirements.txt python F3_frontiera/camminata_avanti.py --test

The walking canon is verified on four MuJoCo builds and two operating systems — figures agree within 0.5% with an identical integration sample count, and on the same build Linux and Windows land one millimetre apart over 2.5 metres. Every module prints the mass of the model it loaded, with an assert: no number in this campaign can exist without the mass that produced it.

01What it does — and what it does not

Nine gestures, each a module you can run yourself. The four that fail are here for the same reason the five that work are: a campaign that publishes only its successes cannot be checked.

Forward walking

01 · Forward walking

654 supports in 120 s

+2.49 m, on a 16.5 cm forefoot and a 6 cm heel — a real size 36. Reproduced on four physics builds. Peak measured: +9.70 m, declared as a maximum, not a canon.

Backward walking

02 · Backward walking

26 metres, stride 12.3 cm

Four times the forward stride, ten times the distance. The human-scale stride is already in this platform — it runs in the wrong direction, and the reason is the foot.

Start and stop

03 · Start and stop

From rest, and back to standing

Zero velocity on every degree of freedom at t = 0. First support at 2.41 s; thirty seconds after the command stops it is still on its feet.

Squat

04 · Squat

0.60 m, limited by the heel

The knee uses 42% of its torque and the ankle never saturates. What stops the descent is 6 cm of heel behind the ankle — the same foot that decides the direction of travel.

Sit to stand

05 · Sit-to-stand

Up in 3.00 s, seat at 649 N

Feet tucked under the body — not styling: left forward, standing up would need 134° of hip flexion that do not exist. On the new foot the hip works 19% harder.

Jump

06 · Jump

270 ms of flight, CoM +7.1 cm

The ankle term was named “push” and was in fact dorsiflexion. Inverting the sign raised the centre of mass 34% — the old one flicked the feet up without lifting the body. Knee and hip sit exactly at their 120 N·m cap.

Balance envelope

07 · Balance envelope

0.35 forward, 0.50 back

Standing, it absorbs a shove — including in 12 cm heels, where forward is unchanged and sideways collapses to 0.15. On heels it stands on a shoe, not on its own foot.

Lateral fall

08 · Lateral fall

The head never touches

The hand strikes at 3.6 kN, the torso arrives 420 ms later. Nothing is commanded — the arm is shorter and lighter. The arm has to be sized in kilonewtons, and those 420 ms are a sensing budget.

Power loss

09 · Power loss

Neither strategy passes

Coast: head at 3.64 m/s, 14.3 s to settle. Brake: settles in 1.5 s, head at 5.32. Stopping the joints does not stop the mass — it stiffens the path it falls along.

Forward progress against time
Forward walking — progress against time, with the metre marks the video crosses.
Hip height across start, walk and stop
Start and stop — hip height: flat, then oscillating, then flat again for thirty seconds.
Squat depth sweep
Squat — the depth sweep that located the limit at the heel, not the ankle.
Seat reaction and hip torque
Sit-to-stand — the seat unloads first; the hip peak arrives after, when the robot is on its own legs.
Feet and centre of mass height during the jump
Jump — feet and centre of mass. The shaded band is true airborne time; the two short toe taps at take-off stay outside it, as they do in the detector. The old “+0.0 cm” was a broken instrument.
Arm and torso contact force during the fall
Lateral fall — the arm loads first, the torso 420 ms later. The gap is the measurement.
Head velocity for two power-loss strategies
Power loss — two strategies against two thresholds. Neither curve sits under both.
Balance envelope, three foot configurations
Balance envelope — old foot, size 36, and 12 cm heels. The forward loss is 42%; backwards, 9%.

Three more things it does not do, each with a measured cause. It carries no payload while walking — a hundred grams brings it down, because the frontal hip is at its torque cap unloaded and a larger actuator does not fix it, which we know because we swept from 60 to 140 N·m. It does not land a jump, and it does not walk sideways — no lateral command survives, in any configuration.

02The foot, not the controller, sets the direction

The most useful thing this campaign found, and it was found by measuring a part nobody had measured.

29.5 cm

The foot in the model
never measured from the geometry

22.5 cm

A real size 36
16.5 forefoot, 6.0 heel

+9.4 cm

Centre of pressure
ahead of the ankle

24

Configurations searched
for a forward twin

For three weeks the model walked backwards and every attempt to reverse it was aimed at the controller. The cause was geometric: the foot was 30% longer than a real one, the centre of pressure sat 9.4 cm ahead of the ankle, and the residual moment drove the body backwards. The foot was rowing.

Forward and backward progress against time
Two curves, same platform: the blue one climbs slowly, the red one drops away. The geometry that sustains a long support is the same geometry that reverses the direction — and twenty-four configurations found no forward equivalent of the long-stride mode.

Every geometric decision on a biped is a trade, and this campaign measured both sides of four of them. The anatomical foot that makes forward walking possible costs 42% of the forward balance envelope, 27% of jump clearance, and worsens the passive power-loss fall by 71%. It leaves squat depth, sit-to-stand and lateral fall unchanged.

03The limit is the controller, and nothing is saturated

Fifty configurations across thirteen parameters. This is the question we are handing to a partner.

0

Actuators saturated
in any run that falls

8.1 cm

Centre of mass
outside a 4.5 cm foot

0.36 s

Gait cycle
in 53 of 53 configurations

+71%

Speed from a predictive planner
−47% survival

The gait sits at 2 cm/s, and it is not a power problem. What fails is the weight transfer: when the next step begins, the centre of mass is still 8.1 cm outside a foot 4.5 cm wide. In support, the ankle law has damping and no position term — nothing is bringing the body over the foot. Adding one destabilises, because two loops then regulate the same quantity.

To complete the transfer you need a longer support; to afford a longer support you need to have completed the transfer. We also tried a sampled predictive planner over three step parameters: it bought 71% speed and lost 47% of survival time, and the failure mode never entered a 1.5 s horizon. The fall of this platform is slower than the horizon that could avoid it — a property of the machine, not of the planner.

04The thermal cost of rigid contact

Nobody has published this for a biped built on catalogue actuators.

38.2 N·m

Postural
89% of rated

29.8%

Of the cycle
contact transients

64%

Of the heat
from those transients

53 N·m

Touchdown target
to return to rating

Hip roll torque trace with contact transients highlighted
Hip roll torque over the steady-state window. The postural band sits at 89% of the actuator’s continuous rating; the spikes are touchdown transients, 29.8% of the cycle and 64% of the heat. Measured at leg kp = 200 on the historical sample gait.

The transient peak is governed by position-servo stiffness, not gait kinematics: raising the torque ceiling to ±200 N·m saturates that limit too, and the gait degenerates. The 80 N·m cap acts as a design limiter, not as a measurement of a requirement.

And the floor is honest: eliminating contact transients entirely would still leave the actuator at 89% of rating. The remaining lever is the lateral lean — a control strategy, not an actuator size. Walking up to roughly 61% of the time keeps the long-run RMS within rating; indefinite continuous walking is not sustained.

05Verified figures at 66.23 kg

Every row reproduces with a single command. [C] means computed in simulation; [A] means assumed and pending hardware.

TestResultClass
Forward walking — supports / distance / time654 · +2.49 m · 120 s[C]
Forward walking — maximum measured+9.696 m[C]
Backward walking — distance / stride−25.93 m · 12.3 cm[C]
Start from rest — first support2.41 s[C]
Static balance envelope — fwd / back / lateral0.35 / 0.50 / 0.35 m/s[C]
Balance envelope in 12 cm heels0.35 / 0.40 / 0.15 m/s[C]
Squat depth, limited by heel length0.60 m[C]
Sit-to-stand, feet-tucked strategy3.00 s[C]
Seat reaction, Σ Fz balance closed649 N[C]
Sit-to-stand — peak hip torque73.4 N·m[C]
Reach envelope — fwd / up / down / lateral0.48 / 0.43 / 0.47 / 0.47 m[C]
Payload — static / walking2 kg / none[C]
Jump — flight / clearance / CoM rise270 ms · 6.0 cm · 7.1 cm[C]
Jump — first impact force2583 N = 398% of weight[C]
Jump — simultaneous knee and hip torque120 / 120 N·m[C]
Lateral fall — impact speed2.60 m/s[C]
Lateral fall — hand before torso420 ms[C]
Lateral fall — peak force on the arm7.2 kN[A]
Power loss — head velocity, coast / brake3.64 / 5.32 m/s[C]
Walking — energy and mean power per support98.7 J · 17.7 W[C]
Walking — peak hip roll torque72.1 N·m[C]

Nine figures withdrawn

ClaimPublishedWhat replaced it
Landing pipeline — time to upright rest0.36 snot conserved at 66.23 kg
Toe-brake multiplier at touchdown×3.9not conserved at 66.23 kg
Hallux contribution to jump height+150%none, on a size-36 foot
Power loss — head velocity1.51 m/sdoes not reproduce; 3.64
Payload while walking2 kgnone — 100 g brings it down
Payload, static6 kg2 kg, elbow-limited after safeguard alignment
Forward balance envelope0.60 m/s0.35 on the anatomical foot
Jump — flight and clearance210 ms · 3.3 cmsuperseded twice — see below
Jump — the ankle term250 ms · 8.2 cm · 5.3 cm270 · 6.0 · 7.1 — the term had the wrong sign
Cross-platform figuresidentical to the last digitagree within 0.5%

Almost none of them were arithmetic errors. They were correct numbers measuring the wrong quantity: a window that included the robot standing still, a contact counted as a step, a coefficient produced by reading the wrong actuator, a jump height measured from a height the robot leaves before it jumps. That failure mode is more dangerous than a bug, because it looks like a result.

Each is declared in the repository README with the measurement that replaced it. This section exists on purpose: a campaign that does not publish its retractions is not worth checking.

Limitations

No CAD: link masses and inertia tensors are design estimates from primitive decomposition. Position-loop gains and upper-limb torque limits are placeholders. No thermal model, no gearbox backlash, no joint compliance, no friction. Rigid contact with uncalibrated parameters. Heuristic control throughout — no MPC, no learned policy, no torque control.

No result has been validated on physical hardware. These are reproducible orders of magnitude, not certified measurements. Sensitivity is high: a 3.3% mass change cost 42% of the achieved support events at unchanged controller tuning, and every figure here is conditional on a mass that has no CAD behind it.

The walking configuration sits close to a boundary: outside a narrow band of the ankle roll term the direction of travel alternates every three thousandths, and depends on the solver build. The canon was chosen inside the band where all four tested builds walk forward, and that is declared in the repository rather than smoothed over.

Every figure on this page is reproducible with one command from github.com/SynthMike34/nova-sim — MIT licence, clonable in ten minutes.