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.

FractalCopiesEach copy isPieces at level n
Tetrahedron4, one on each corner½4n
Octahedron6, one on each corner½6n
Icosahedron12, one on each corner½12n
Menger sponge20: the 8 corners and the 12 edges of a 3 × 3 × 3 grid⅓20n
3D cross7: the center and the 6 faces⅓7n
Edges and center13: the 12 edges and the center⅓13n
Corners and center9: the 8 corners and the center⅓9n
Cube treea 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.