How I render 10,000 live aircraft at 60fps in the browser with Rust, WASM, and raw WebGL2
I've been working on Flight-Viz, a real-time flight tracker that plots live aircraft on a 3D globe — entirely in the browser. No plugins, no Canvas2D, just Rust compiled to WebAssembly with raw Web...

Source: DEV Community
I've been working on Flight-Viz, a real-time flight tracker that plots live aircraft on a 3D globe — entirely in the browser. No plugins, no Canvas2D, just Rust compiled to WebAssembly with raw WebGL2 shaders. I wanted to share some of the rendering and data challenges since they took me a while to figure out. The problem I wanted to show 10,000+ aircraft moving smoothly on a 3D globe at 60fps. Each plane has its own position, altitude, heading, and aircraft type. The data updates every 2 minutes from OpenSky Network, but planes need to look like they're moving continuously. Instanced rendering with SDF icons Instead of loading sprite textures for each aircraft, I draw all the icons purely in the fragment shader using signed distance fields. There are 5 different shapes — commercial jet, cargo plane, propeller plane, helicopter, and military fighter — each built from combinations of SDF primitives (boxes, circles, lines) using min/max operations. A single float per instance (a_type) te