Skip to content
Andrew Voirol
WorkLogAboutContact
HomeWorkLog

AboutContact

✦ Just one prompt away from figuring it all out.

Work → BuckyBounce: Molecular Physics & Euler Topology Lab
ThreadComplete

BuckyBounce: Molecular Physics & Euler Topology Lab

An interactive Three.js structural mechanics playground exploring nanoscale allotropes, spring-mass lattice dynamics, harmonic resonance sweeps, and Euler face extraction.

Started Jul 29, 2026·Latest Aug 13, 2026·3 entries

What started as an impulse to explore mechanical physics through expanding Hoberman breathing spheres quickly evolved into building a real-time molecular physics laboratory in Three.js. A spring-mass network based on the 60-vertex C60C_{60}C60​ truncated icosahedron provided the ideal playground: 90 covalent bonds modeled as damped Hooke's law springs (F=−kΔx−cvF = -k \Delta x - c vF=−kΔx−cv) and solved with sub-stepped numerical integration, paired with Web Audio FM synthesis for tactile collision clacks.

To turn the simulation into an interactive structural mechanics testbed, the engine needed topological awareness. A chordless minimal cycle traversal algorithm parses raw node-link graphs to extract 2-manifold faces dynamically, locating the exact 12 pentagons and 20 hexagons predicted by Euler's polyhedral formula (V−E+F=2V - E + F = 2V−E+F=2). Those 12 pentagonal topological defects became holographic arcade target rings for high-speed probe ricochets with pentatonic chime sweeps and combo scoring.

The project expanded across six distinct allotropes and structural architectures—from (5,5)(5,5)(5,5) armchair carbon nanotubes and graphene sheets to floating tensegrity icosahedrons with isolated compression struts suspended in continuous tension networks. A harmonic driving oscillator sweeps excitation frequencies to reveal natural eigenmode resonances in real time, accompanied by thermal strain heatmaps, yield-stress covalent bond snapping, and laser-weld lattice repair.

Latest Update

Resonance sweeps, strain heatmaps, and yield-stress fracture

Thu, Aug 13, 2026

Timeline

What started as an impulse to explore mechanical physics through expanding Hoberman breathing spheres quickly evolved into building a real-time C60C_{60}C60​ fullerene spring-mass simulator in Three.js. Generating the 60-vertex truncated icosahedron required deriving 12 golden-ratio (ϕ=(1+5)/2\phi = (1 + \sqrt{5})/2ϕ=(1+5​)/2) vertices of an icosahedron dual, normalizing them to a sphere, dividing each connecting edge into thirds, and wiring the nearest triples to produce 90 covalent spring links. Each bond acts as a damped Hooke's law spring (F=−kΔx−cvF = -k \Delta x - c vF=−kΔx−cv), solved with sub-stepped Euler integration to prevent explosive instability under high restitution. Added an interactive impulse punch system that deforms the molecular cage on click and bounces elastically off canvas boundaries, paired with Web Audio API frequency-modulation (FM) synthesis that produces a crisp metallic clack on every collision.

ReactAnimationVisualization
Permalink →

To turn an elastic bouncing buckyball into an arcade physics challenge, the engine needed to recognize molecular faces rather than just raw vertices and edges. Implemented a chordless minimal cycle traversal algorithm that parses the raw node-link graph to automatically detect 2-manifold faces, extracting exactly the 12 pentagons and 20 hexagons governed by Euler's polyhedral formula (V−E+F=2V - E + F = 2V−E+F=2). Transformed the 12 pentagonal topological defects into glowing holographic target rings oriented along their outward surface normals. Built a high-speed projectile slingshot mechanic that lets you fire particle probes through the molecular cage, rewarding precision ring threading with procedural pentatonic chime sweeps and exponential combo multipliers when ricocheting off interior nodes.

VisualizationAnimationDesign
Permalink →

Upgraded BuckyBounce into a structural mechanics laboratory featuring 6 allotropes, harmonic resonance sweeps, and catastrophic bond fracture. Expanded the geometry engine beyond C60C_{60}C60​ to generate C70C_{70}C70​ fullerenes, (5,5)(5,5)(5,5) armchair carbon nanotubes, graphene honeycomb sheets, geodesic domes, and 6-strut tensegrity icosahedrons with isolated compression bars suspended in continuous tension networks. Implemented a harmonic driving oscillator to sweep excitation frequencies (ω\omegaω) and reveal natural eigenmode vibrations in real time. Dynamic vertex shaders map Hooke's strain tensors into thermal heatmaps (cyan →\to→ yellow →\to→ red), triggering covalent bond snapping when local strain exceeds yield strength—complete with a laser-weld synthesis tool to reconstruct shattered lattices atom by atom.

VisualizationAnimationReact
Permalink →

Andrew Voirol

Builder, hacker, shipper. Currently leaving localhost.

Navigate

WorkBuilder’s LogAboutContactRSS Feed

Connect

X / TwitterGitHubLinkedIn

© 2026 Andrew Voirol✦Just one prompt away from figuring it all out.