This post is a test of Claude Opus 5.5. I gave it one task:
- Review everything on this blog about my web aquarium (Part One, Part Two, Part Three) and the assets behind it.
- Rebuild it, and improve it as much as it can, toward the goal I never quite reached: an extensible web aquarium in your browser.
- Reuse the existing blog assets where it makes sense. No new assets and no new packages.
- Work on a feature branch so I can test it locally before deciding whether to merge.
- Tie it into the site’s badges: signed-in visitors get bonus gold for every badge they’ve collected.
Where it started

Part One (2023): a Blender tank, one butterflyfish, grass, and a duck statue.
Part Two (2024): caustics, glassier materials, and hand interactions in AR.
Part Three (2025) was a new-tab game for a Three.js Journey hackathon, with coins, feeding, upgrades, and local saves.
Where it is now
The butterflyfish, grass, and bronze duck are the original models from Part One. Everything else is generated in code: the tank, water, caustics, gravel, plants, tetras, and corys. The lighting still follows your local time of day, the Part Three coin loop is back, and your tank is saved in your browser.
Fish model credit: Quaternius created the butterflyfish and other low poly fish assets used in the earlier aquarium work. The tetras and corys in this version are generated in code.
Everyone starts with an empty tank and 60 gold. Signed-in visitors get 50 more for every badge they’ve collected, and gold builds slowly while you watch. Open the shop to stock it, then tap the water to feed, tap a fish to meet it, or tap the glass and watch them scatter. Reach 15 fish at once to earn the Aquarium Keeper badge. On a headset, try AR to put the tank on your desk.