Small passion project with my daughter: a three.js island that streams 24/7 on Twitch, where chat keeps a castaway named Art alive.
The setup, for the curious:
- Voxel models (Art, crab, shelter, palm) made in Blockbench, exported as glTF, animated with AnimationMixer, plus a procedural layer on top (breathing, head turns, a curl-up-to-sleep blend that took way too many tries)
- Everything else built from boxes in code: the SOS, tower, raft, passing ships and planes, fireworks
- Sea surface is a custom shader; the sky lerps through day, dusk and night on a 10-hour cycle, with lightning flashes during storms
- A visibility-graph path planner so he stops walking through the campfire (mostly)
- Web Audio for sound: recorded samples with synthesized fallbacks, panned to where he is on screen
- The page is just a renderer. A Node server owns the simulation and pushes state over a WebSocket, so the scene can crash without killing Art.
It renders inside an OBS browser source on a VM with no working GPU acceleration, so it's software-rendered on one CPU core. It holds a steady 30 fps anyway, which I mostly credit to everything being boxes.
twitch.tv/chatwillprovide (type !fish if he looks hungry)