Making of PolyFish

A deep dive into building a real-time underwater ecosystem with Three.js - from verlet physics and procedural animation to documentary-style cinematography.

Chapters

Click a chapter to explore the tech behind it.

00
Origins & Remaster
From a beer fermentation VR experiment in 2014 to a Three.js underwater documentary - how PolyFish came to be.
Unity Porting History
01
Collaborating with AI
Pair-programming 20,000 lines with Claude - what worked, what broke, accessibility as a superpower, and lessons learned.
Claude Process Accessibility
02
Creatures & AI
Fish, dolphins, and manatees with thrust engines, oxygen systems, and GPU vertex-shader swim animation inspired by Abzu.
AI Vertex Shader Locomotion Demo
03
Ecosystem & Food Chain
A self-sustaining food web with reproduction, energy metabolism, seed germination, and population dynamics that run away on purpose.
Population Balance Demo
04
Kelp & Verlet Physics
Soft-body kelp forests using position-based dynamics - draggable chains, ocean currents, creature impulse propagation, and procedural bone rigging.
Verlet Soft-body Demo
05
Rendering & Shaders
Voronoi caustics, volumetric god rays, animated water surface, and marine snow - all via shader injection into Three.js standard materials.
GLSL Caustics Demo
06
Cinematic Camera
A documentary-style camera with Director, Cinematographer, and Scout - 11 shot types, narrative pacing, and depth of field. Work in progress.
Camera State Machine Demo
07
Audio & Narration
Three-channel Web Audio mixing, timed narration with music ducking, spatial 3D panning, and the battle with mobile autoplay policies.
Web Audio Spatial Demo
08
Performance
Spatial hashing, GPU instancing, computational LOD, AI stagger budgets, and zero-allocation loops - how 85+ creatures hit 60fps.
Instancing 60fps Demo
Appendix
Interactive Demos
All the interactive demos from every chapter in one place - physics, shaders, camera, audio, and more. Pick a category and play.
Playground