worlds
look tune

this world is 0 characters of math — a tweet is 280

99 ray steps, a dozen-odd folds at each one: abs() mirrors space, sphere inversion curls it, and the leftover scale is read as light · the recipe is Yohei Nishitsuji’s #つぶやきGLSL · ← more sketches
why this is interesting — philosophy · technique · aesthetics

Philosophy — the world was already there. Nothing on this canvas was designed. Nobody modelled a canyon, placed a rock, or painted a nebula. There are about twenty numbers, and everything you see is the consequence of them — a complete landscape, with weather and distance and erosion, specified in about as many characters as a tweet. That is a strange kind of authorship. The formula does not contain the canyon the way a mesh contains a canyon; it points at one, the way “the millionth prime” points at 15,485,863 without storing it. All these worlds were sitting in the space of parameters before anyone wrote the shader, and mutate is not a generator so much as a telescope: it swings the aim a few degrees and something nobody has ever looked at comes into frame. Almost everything out there is fog or an empty void — the habitable worlds are a thin shell in parameter space — so the button does not simply roll dice. It rolls a dozen, renders each candidate to a 96-pixel thumbnail, scores it for brightness, structure and grain, and shows you the survivor. Taste, mechanised badly enough to be honest about it. Compression this extreme stops being an engineering trick and becomes a claim about the world: that enormous apparent complexity can be the shadow of a very short rule, and that our sense of “how much stuff is here” is a poor guide to how much information is here.

Technique — march, fold, invert. Every pixel fires a ray and walks it forward in 99 steps. At each step the point runs an inner loop that does two things, nineteen times. First sphere inversion: e = k/dot(p,p) turns distance inside out, so the region near the origin blows up to fill everything and the far field collapses to a point — this is what manufactures detail at every scale for free. Then folding: p = offset - abs(abs(p)*e - fold). An abs() is a mirror. Two nested abs() calls with an offset between them mirror space, shift it, and mirror it again — and because that happens inside a loop, the mirrors stack into an infinite hall of them. Nineteen folds is 219 reflected copies of one small cell of space, which is why a formula with no repetition in it produces structure that repeats and yet never quite matches. The running product of those inversion factors, s, is the local magnification; the ray advances by p.y/s, so it creeps where the fractal is dense and leaps where it is empty. That single line is the distance estimator, and it is why 99 steps is enough to cross a whole world.

Aesthetics — glow instead of surfaces. A conventional renderer stops the ray when it hits something and asks what colour the surface is. Nothing here ever stops. The colour is a sum along the entire path — every step deposits a little hsv() whose saturation comes from depth and whose brightness comes from log(s)/exp(e), the local magnification read as light. So the image is volumetric by construction: haze, godrays and depth fall out of the accumulation rather than being added on top, and there are no edges anywhere, only densities. It also means the picture is unusually forgiving — a hard surface renderer punishes a bad distance estimate with holes and banding, while a glow integrator just turns the error into atmosphere. Flip a world to its inverted polarity and the same maths reads as ink on paper instead of light in a void: identical geometry, opposite ontology. The recipe is Yohei Nishitsuji’s, from his Modeling the World in 280 Characters and his stream of #つぶやきGLSL posts; this page unfolds it back into readable GLSL and puts knobs on it, which is the opposite of the discipline that produced it and, hopefully, a decent way to learn what the knobs do.