KesslerEdge
- 2 Devlogs
- 4 Total hours
3D orbital physics simulation with focus on localized computer vision and vector pathfinding for autonomous satellite debris avoidance.
3D orbital physics simulation with focus on localized computer vision and vector pathfinding for autonomous satellite debris avoidance.
I completely rebuilt the visual identity and underlying simulation engine for KesslerEdge v3.0, taking it far beyond a simple prototype. Instead of using a basic block for our satellite or risking broken asset links with an external 3D model, I wrote a compound geometry script that procedurally builds a low-poly Space Shuttle directly from Three.js cylinders, cones, and boxes entirely out of math, while also wrapping the Earth in a high-res texture map to properly ground the simulation. To handle danger feedback, we experimented with a violent screen-shake mechanic but scrapped it when it ruined the readability of the orbital paths; instead, we engineered a Tactical HUD override where a pulsing red CSS vignette bleeds onto the screen and the 3D sensor cone physically snaps from cyan to warning-red during an evasion state. We also locked in fatal game-over triggers for when fuel hits zero or the shuttle hull is breached, adding a three-second hardware calibration grace period on boot to prevent immediate random spawn-kills. The biggest optimization milestone was architecting a true Kessler Cascade to simulate space debris colliding and fracturing into smaller, faster-moving pieces; to prevent the browser’s garbage collector from stuttering under thousands of dynamic allocations, I implemented an Object Pooling system that pre-allocates a memory block of 12,000 coordinates on load, using setDrawRange to only render the initial 3,500 active particles and seamlessly activating the dormant data blocks as the environment collapses, keeping the framerate locked at a smooth, high-performance pace.
Pushed a huge KesslerEdge v2.5 refactor. I was pretty happy when I figured out the old physics engine was really just simulating debris ricocheting around like a DVD logo on my screen bouncing between invisible walls. Which was completely pointless for collision detection. So that got thrown out, I wrote a deterministic orbital core where every one of the ~3500 pieces is now locked into their real 2D orbits which is then transformed into 3D space. It actually moves around without destroying the framerate. Before the end of the session I hooked up a UnrealBloomPass to the wireframe world and the debris that essentially makes the GPU compute that they are actually emitting light rather than it being a flat WebGL effect. Time to start work on game state tracking and collision detection loop.