GPU-accelerated infinite tilings — regular, semi-regular, and Escher-inspired
A flat floor can be tiled by regular shapes in only three ways. The hyperbolic plane allows infinitely many, each packing endless tiles into a single disk.
Slide p and q to rebuild the tiling live, from the gentle {5,4} to the dense {12,3}. Switch color modes to see reflection depth, alternating faces, or a rainbow.
A regular tiling {p,q} fills a surface with regular p-gons, q meeting at every vertex. In Euclidean geometry only three work: triangles, squares, and hexagons. Hyperbolic geometry shatters that limitation — infinitely many {p,q} tilings exist whenever 1/p + 1/q < 1/2. These tilings pack an infinite number of tiles into the Poincare disk, shrinking toward the boundary in a mesmerizing fractal cascade.
A GPU-accelerated renderer for arbitrary {p,q} hyperbolic tilings. The fragment shader iteratively reflects each pixel into the fundamental domain of the tiling, coloring by reflection count. Adjust p and q to explore the full landscape of regular tilings — from the gentle {5,4} to the wildly dense {12,3}.
Toggle between the original tiling, its dual, or both overlaid. Joining the centers of neighboring tiles turns {p,q} into {q,p}.
Every tiling {p,q} has a dual tiling {q,p}, formed by connecting the centers of adjacent tiles. The dual of a pentagon tiling with four at each vertex is a square tiling with five at each vertex. Toggle between the original, the dual, or both overlaid to see this beautiful correspondence.
Pick a color and paint inside the triangle, then watch reflections copy your design across the whole disk. Use Clear to start over.
Every tile in a regular tiling is a copy of a single fundamental domain — a triangle with angles π/p, π/q, and π/2. Paint a design inside this triangle, and watch hyperbolic reflections propagate it across the entire disk, creating your own Escher-style tessellation.
Pick a morph mode and press Morph. Watch {4,5} melt into its dual {5,4}, or a flat {4,4} tiling turn hyperbolic as q passes 4.
The dual morph continuously interpolates the Schlafli parameters between {4,5} and {5,4}. At t=0.5 the tiling passes through the self-dual configuration. The animation bounces back and forth.
What happens between two tilings? By smoothly interpolating the Schlafli parameters, the tiling continuously deforms. Watch {4,5} morph into its dual {5,4}, or see a near-Euclidean {4,4} tiling cross over into hyperbolic territory as q increases past 4.
Spot a mistake or have an idea?