A 2D perspective-projection tunnel: 40 rings sit at fixed depths along a virtual z-axis and are projected to the screen with a real pinhole-camera formula (scale = d / (d + z)), so rings shrink toward a vanishing point and grow as the "camera" moves forward. Rings and speed-streaks are recycled (their z is wrapped, not re-created) once they pass the camera, faking an infinite tunnel with fixed geometry — the same object-pooling trick as the 3D version, done with 2D math instead of a WebGL scene graph.