PPO itself was stable. The first update had one large KL spike; after that, recent KL stayed between 0.008 and 0.015, and nothing diverged. Robots stayed up longer, and by iteration 1,098 episodes averaged about 10 seconds. Two things had gone wrong, though.
The VAE collapsed
From around iteration 200, the KL between the VAE latent and its prior sat near 1×10-4, summed over all 16 dimensions. That means the posterior matched the standard-normal prior almost exactly, so the implicit half of "implicit-explicit" was carrying close to nothing. That isn't evidence that the explicit heads failed, but the curves can't tell whether they helped either.
The curriculum never moved
The mean terrain level peaked at one robot in 4,096 and was zero for the last 100 updates. No robot finished a track. The likely reason is a mismatch I built in myself. Promotion requires covering more than 8.5 m along the track, but each command pairs a forward speed with a random yaw rate of up to ±1.2 rad/s for 10 seconds. A robot can track those commands perfectly and still walk in a circle.
As a sanity check, I integrated 100,000 ideal planar trajectories under that command distribution, with no terrain and no falls. About 7.0% got more than 9 m down the track. With yaw set to zero, 80.5% did. That's geometry, not a measured success rate, but it means most robots could never have earned a promotion however well they walked.
Some regression showed up near the end of the window too. Comparing iterations 999–1,048 with 1,049–1,098, mean episode length fell from 13.15 to 11.35 seconds, and base-contact terminations rose from 0.415 to 0.519. One more unresolved question: the estimator takes 128 Adam steps per rollout against PPO's 20, and that cadence could shift the policy after PPO measures its KL. Nothing measured links it to the regression.