Lunar Lander

· 1min
cover

I built a physics-based lunar lander in Rust with Bevy, and it’s playable in the browser as WebAssembly.

Play it here →

Approach from downrange

You start ~480 m downrange with a healthy horizontal velocity, then have to bleed that off over procedural terrain and put the lander on the pad without turning it into a crater. Physics are in SI units with lunar gravity, a 16,000 kg lander, and attitude thrusters that actually torque the craft.

Controls are arrow keys / WASD for main engine and tilt, P for autopilot if you want a guided descent, R to reset, and N for a new terrain seed. On touch, on-screen buttons show up under the canvas.

Autopilot final approach with main engine firing

A safe landing means you’re over the pad, vertical speed ≤ 3 m/s, horizontal ≤ 2 m/s, and tilt ≤ 15°.

Safe touchdown on the pad

If you want to dig into the code, build it natively, or see how the web build is wired up, the source is on GitHub: jasonslay/lunar.