Three.js GameDev.js Jam Entry - Orbital Cleaner

Been working on a browser game called Orbital Cleaner using Three.js + Vite for the GameDev.js Jam 2026.

The theme was “Machines,” and instead of going the factory/robot route, I ended up building a sort of blue collar orbital cleanup game where you repair satellites, collect debris, and try to prevent a full-on Kessler Syndrome cascade in low Earth orbit.

The goal was to make something that felt arcade-first while still having a little bit of “space job sim” energy to it.

Some of the systems/features built with Three.js:

  • Dynamic debris field system tied directly to gameplay pressure
  • Satellite repair alignment mechanic using ring guidance
  • Atmospheric burn mechanic for debris disposal
  • Radar + orbital HUD overlays
  • Lightweight flight physics
  • GLTF asset pipeline with fallback assets for weaker devices/Safari
  • Browser fullscreen/input handling fixes
  • Dynamic readability/fog tuning
  • Mobile and Safari optimization passes

One thing I learned really quickly building this in browser is that readability matters just as much as rendering. Space games can become visual noise fast if you don’t aggressively guide the player’s eye.

A lot of development ended up revolving around:

  • visual clarity
  • onboarding
  • performance scaling
  • asset fallback strategies
  • keeping the game responsive despite lots of moving orbital objects

I also intentionally avoided going with a full engine workflow here. Most of the game is built directly on top of Three.js systems instead of relying on a heavier engine abstraction layer, which made iteration really fast once the core structure stabilized.

This was made for the GameDev.js Jam 2026:

Playable here:

Would definitely love feedback from other Three.js/browser game developers, especially around optimization strategies and handling cross-browser rendering weirdness. Safari in particular became its own boss fight during development.

1 Like