2.2 KiB
Thrive
Sacred geometry, lifted into three dimensions with three.js.
Most sacred-geometry figures are drawn flat. This project asks what they look like when they are built in real 3D space: the Fruit of Life as a rotated cubic sphere packing, the Platonic solids nested inside it with their vertices on the circle centres, the torus as a field of winding strands, and so on. Every page is an interactive scene with orbit controls and a lil-gui panel for playing with the parameters.
Pages
| Page | File | What it shows |
|---|---|---|
| Landing | src/index.js |
Overview of all explorations, with an animated seed-of-life backdrop |
| Metatron's Cube | src/metatron.js |
The 3D Fruit of Life circle grid with the five Platonic solids (fire, earth, air, water, aether) aligned to it, plus the Merkaba and the full Metatron web |
| Toroidal Field | src/torus.js |
A torus with field-line strands winding around the surface and particles flowing along them |
| Vector Equilibrium | src/matrix.js |
The cuboctahedron: radial spokes equal to the edges, and the 12-around-1 kissing-sphere packing |
| Golden Spiral | src/phyllotaxis.js |
Phyllotaxis at the golden angle: sunflower disc, pinecone and Fibonacci sphere; nudge the angle to watch the pattern collapse |
| Flower of Life | src/flower.js |
A cubic grid of interlocking spheres |
| Seed of Life | src/seed.js |
The seven seed circles rotated through space |
Development
npm install
npm start # dev server with hot reload
npm run build # production build into build/
Each page is its own webpack entry; the page list lives at the top of
webpack.config.js. To add a new exploration, add src/<name>.js (the shared
scene setup is in src/lib/stage.js) and one line to the pages array.
Every page shares the chrome in src/lib/chrome.js: fade transitions between
pages and a dark/light toggle (bottom right, persisted in localStorage). Dark
mode matches the landing page; light mode is the original orange room.
Debug flags (Metatron page)
?noaa- disable antialiasing?noshadow- disable shadow maps?only=<fire|fire2|air|earth|water|aether>- show a single solid