An interactive gravity well drawn line by line on a 2D canvas. Concentric rings and radial spokes lie on a rim that curves down into a throat, packing tighter and brighter as they fall, and a short tube below the lip dissolves into streaks. The wall follows a catenoid-style profile, the classic embedding diagram of curved space, with its neck set just inside the throat so the wall flares all the way to a bright lip instead of stacking its innermost rings into a can. Rings flow continuously into the throat and fade as they sink, the spokes turn slowly, and the fabric can twist like frame dragging. Drag orbits the camera around the axis and tilts it, with inertia and a spring that returns the authored view; the resting pointer presses a soft dimple into the fabric and pulls nearby lines toward it the way a lens bends light; a click, Enter or Space sends a ripple outward from the throat as a wavelet that displaces the fabric and leaves it exactly as it was. The glow is an additive bloom built from three halvings of the line layer, so hairlines stay crisp at any pixel density. The engineering holds up in a real page: it stops drawing off-screen and in background tabs, the loop idles once everything has settled, the canvas follows its container, reduced-motion visitors get a still well, keyboard users can orbit and ripple it, and a browser without a 2D canvas sees a CSS rendition instead of a hole. Rings, spokes, clustering, throat, depth, wall steepness, tube length, tilt, distance, zoom, line and throat colours, line width, glow, throat brightness, spoke opacity, flow, spin, twist, auto ripple, intro, pointer mass and ripple strength are all editable live, and the export is one self-contained HTML file with no dependencies.
3D & Perspective · HTML / CSS / JS · All tools