Scratching an itch
I was checking if an image was AI-generated over at deepai.org and noticed their little dolphin logo. And I smiled - that should be the SGI Atlantis demo dolphin, not a crappy gif!1
The one from the old IRIX workstations. If you were around Silicon Graphics machines in the 90s you know the one.
Said and done. I opened Claude and started trying to get that dolphin swimming in the browser with Three.js. The original vertex data is from the 1993 SGI source code - 600+ triangles of hand-crafted geometry. No model files, no textures, just raw vertex positions and normals baked into a JavaScript array.
It was pretty fun to watch Opus struggle with the 3D orientations. Quaternions, coordinate systems, which axis is up, which way the nose points. Every 3D developer knows that dance - you think you got it right, then the model faces backward, or swims upside down, or banks the wrong way into turns. Turns out LLMs have the exact same problems there. Took a while to get the swimming direction, banking, and tail animation all working together.
The model has this neat countershading - darker on top, lighter belly - just like a real dolphin. And the swimming animation is the original SGI segment-based undulation. Nine body segments, each with its own amplitude and phase offset. Pretty clever for 1993.
Oh, and you might have noticed - there’s one swimming around on this page. It follows your mouse, circles when you stop moving, and wanders off to explore when it gets bored. On mobile, tap to guide it. Blows bubbles too.2
Grab the code at github.com/epatel/dolphin-3d-fun. Happy hacking!
Footnotes
-
Update - deepai has since updated their dolphin animation with this, which I gladly shared. ↩
-
Later it got a proper body bend too - the whole thing now curves into an arc when it turns, nose to tail, instead of pivoting stiff like a plank. That’s the part that really makes it read as a dolphin. Should have started there… ↩