The Sphere You Cannot See
The story behind The Glome
The Story
In 1884, a schoolteacher named Edwin Abbott published a slim novel called Flatland: A Romance of Many Dimensions. Its protagonist, A. Square, lives in a two-dimensional world. He can move forward and backward, left and right, but has no concept of up. When a three-dimensional sphere passes through his world, he sees only a circle — first a point, then a growing disc, then a shrinking disc, then nothing. The sphere was always there. A. Square simply couldn’t perceive the dimension that contained it.
Abbott wrote satire, not mathematics. But the mathematics he brushed against was real. In the 1850s, Bernhard Riemann had already described the 3-sphere — a shape that exists in four-dimensional space the way a basketball exists in three. The 3-sphere, sometimes called a glome, is the set of all points at unit distance from the origin in R⁴. It has finite volume but no boundary. You could walk along its surface forever and never reach an edge, just as you can circumnavigate the Earth without falling off.
Nobody can see a glome. We’re three-dimensional beings. But there’s a mathematical trick — one that ancient astronomers used to map the heavens onto flat charts. Stereographic projection maps the surface of a sphere onto the plane below it, projecting from a single point (the “north pole”). The technique is at least two thousand years old. Hipparchus used it in the second century BC to build astrolabes.
The key property: stereographic projection is conformal. It preserves local angles. A circle on the sphere projects to a circle on the plane. Shapes stay recognizable. An “F” on the 3-sphere projects to a readable “F” in ordinary space. Only the scale changes.
And the scale change is everything. Near the projection pole, a tiny patch of the sphere maps to an enormous region of space. The scale factor is 1/(1−w), where w is the coordinate in the fourth dimension. As w approaches 1, the denominator approaches zero. Scale approaches infinity. A letter the size of a punctuation mark on the sphere fills your entire viewport in the projection.
This is not an approximation. The mathematics is exact.
The Take
We are all Flatlanders.
The word “FLATLAND” in this experience isn’t decoration — it’s diagnosis. Abbott’s A. Square couldn’t perceive the third dimension but was entirely surrounded by it. The sphere passed through his world and he saw only a cross-section. He was right about everything he could see and wrong about everything that mattered.
The stereographic projection makes this visceral. The letters are always the same letters. They don’t change shape — the projection is conformal. But they change scale by a factor of forty. One moment an “L” is a speck at the edge of your vision. The next, it fills every pixel on your screen. You’re not zooming in. The 3-sphere is rotating through a dimension you can’t see, and the rotation is dragging that letter past the projection pole — the one point on the sphere that maps to infinity in your space.
The rotation you’re controlling with your mouse? It’s a rotation in the XW plane. The X you understand. The W you don’t. You’re reaching into a dimension you can’t perceive and turning a shape you can’t see, and the only evidence you have is this: letters getting larger and smaller in ways that feel geometrically wrong.
They’re not wrong. They’re correct. You just don’t have the apparatus to see why.
The Tech
Inspired by: 3-sphere — Wikipedia Built with: Pure WebGL2 (no Three.js), GLSL fragment shaders Techniques: 4D rotation matrices, stereographic projection, atan-bounded position mapping, FBM noise, multi-pass Gaussian bloom, canvas font atlas Direction: Eight characters on a great circle of S³, rotated and projected in real-time Result: The Glome
The experience is a single fullscreen quad driven entirely by a fragment shader. No geometry, no scene graph, no meshes.
- Font atlas: Eight characters rendered to a 512×512 canvas texture (white on black, 4×2 grid). The red channel serves as a coverage mask.
- S³ positions: Characters placed on a great circle in the XY plane of R⁴. Each base position is a unit 4-vector: (cos θ, sin θ, 0, 0).
- 4D rotation: Three rotation planes compose per frame — XW (mouse X + idle drift + click impulse), YZ (mouse Y + gentle secondary drift). Each is a standard 4×4 rotation matrix multiplied on the CPU.
- Stereographic projection: The rotated 4D position maps to R³ via (x,y,z)/(1−w). The scale factor 1/(1−w) drives character size.
- Bounded positioning: Raw stereographic positions go to infinity near the pole. An arctangent compression keeps screen positions bounded while letting scale grow unboundedly — so characters inflate dramatically but stay visible.
- Rendering pipeline: Five passes — main scene to FBO, brightness extract at half resolution, horizontal and vertical Gaussian blur, final composite with bloom, film grain, and vignette.
- Depth sorting: Characters are sorted by w-coordinate each frame and rendered back-to-front. The w-value also drives color temperature (cool blue at −w, warm parchment at w≈0, hot white near the pole) and opacity.
The conformal halo — the soft glow around characters approaching the pole — is a Gaussian radial gradient whose radius scales with the stereographic factor. It makes the projection’s distortion field visible: space itself stretching around the inflating letter.
Built with Claude Code