Fractals made of copies of a solid: pick one below and slide the level up, and every piece is replaced by smaller copies of the whole. Drag to turn it, scroll or pinch to zoom, and right-drag to move.
Loading three.js. If this note stays, the browser could not load or start it (WebGL may be switched off: Settings > System > "Use graphics acceleration when available").
Each fractal is a rule, put these smaller copies of the solid at these places, applied again and again. The pieces you see are the smallest copies of the last step.
| Fractal | Copies | Each copy is | Pieces at level n |
|---|---|---|---|
| Tetrahedron | 4, one on each corner | ½ | 4n |
| Octahedron | 6, one on each corner | ½ | 6n |
| Icosahedron | 12, one on each corner | ½ | 12n |
| Menger sponge | 20: the 8 corners and the 12 edges of a 3 × 3 × 3 grid | ⅓ | 20n |
| 3D cross | 7: the center and the 6 faces | ⅓ | 7n |
| Edges and center | 13: the 12 edges and the center | ⅓ | 13n |
| Corners and center | 9: the 8 corners and the center | ⅓ | 9n |
| Cube tree | a half-size cube on each face, and then on each face but the one it grew from | ½ | 1 + 6 + 6·5 + … + 6·5n−1, all the levels together, one color each |
This page used to be a table of 48 VRML files, one for each fractal and level, written by two Perl scripts, and the biggest (level 8 of the cube tree, 586,000 cubes) was 111 MB. Here the same fractals are made when you ask for them, and drawn as one instanced mesh with three.js, so a level costs a few milliseconds and no download. The page also goes deeper than the files did: the tetrahedron to level 9 (262,144 pieces) instead of 6, the octahedron to 7 instead of 6, the icosahedron to 5 instead of 4, and the 3D cross to 6. The levels stop where a fractal reaches about half a million pieces, which is about what a graphics card draws comfortably; the sponge stops at 4, since level 5 would be 3.2 million cubes. The solids come from lib/larsi.org/polyhedra.js and the rules from fractals.js.
This page was created with Claude Code.