This demo uses non-blocking, asynchronous code via promises, action queues, dynamic GIF fetching from an API, and complex 3D transformations with Three.js. Faces are selectively rendered or hidden, and cubes are spawned efficiently as you interact with it.
Doing something like this in Processing would be harder because Processing’s model is more synchronous, less modular, and doesn't have native async operations or easy DOM integration. JavaScript + Three.js + async fetch + CSS3D makes complex, dynamic, and non-blocking visuals simpler to implement.
Controls:
Space: Spawn a new cube
Q: Spawn cubes adjacent to existing cubes
E: Toggle explode/unexplode all faces
Left Click & Drag: Rotate camera
Right Click & Drag: Move camerasad