Neon Tunnel Runner (2D): Perspective-Projection Flythrough
2D synthwave tunnel flythrough: 40 rings and 220 speed-streaks are projected with a real pinhole-camera formula (scale = d/(d+z)) and recycled as they pass the camera, faking infinite depth with fixed 2D geometry.
This 2D companion drives the same infinite-tunnel illusion as the 3D version but with plane geometry: 40 fixed rings and 220 speed-streaks each carry a base depth value, and every frame their on-screen position and scale come from a real pinhole-camera projection (scale = d/(d+z)) against the camera's travelled distance — so rings shrink toward the vanishing point and streaks lengthen with speed for genuine reasons, not a canned animation. Once an element's depth wraps past the camera it's recycled to the far end, the same object-pooling trick the 3D scene uses, done here with plain 2D math instead of a WebGL scene graph.
2D perspective-projection tunnel: 40 rings and 220 streaks positioned by a real d/(d+z) pinhole projection, recycled via depth-wrapping to simulate infinite travel.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install