Making the stream talk back
For a long time my livestream chat was a yes-man. Every comment was some flavor of “nice tank!” It looked alive but it wasn’t paying attention.
Now it watches. If your water’s dirty, someone says so. If a fish is hungry, chat notices (“is anyone gonna feed Dot??”). A bare, under-planted tank gets side-eye instead of applause. It reacts when you switch to a different tank mid-stream (“ooh, a new tank!”). And it talks about your fish by name — the names you gave them — which is the moment all that individuality work pays off.

It got more expressive too — emoji reactions, a wave of hearts that floats up from the bottom when you feed the tank or hit a hype moment, and chat that drifts up and fades like a real stream overlay.
The part I’m most happy with is the interaction. Tap a fish while you’re live and you spotlight it — the camera gently follows it, chat reacts, and show-off fish (the charming, striking ones) earn more for their moment in the sun. Viewers even request specific fish on a timer: pull up the fish they asked for and you get a payoff. Suddenly streaming isn’t a passive number-go-up — it’s a little performance, and your flashiest, most personality-forward fish are the stars of the show.
That’s the thread I keep finding in this project: the more each fish is its own creature, the more every other system has something to grab onto.
What’s next
I’ve started faking 3D depth for decor — layering pieces so a fish can swim into a cave and tuck behind the near rim instead of floating on top of it. The rendering works; now I’m wrestling with exporting the cave’s front art at the right size and teaching fish that the only way out is back through the mouth. Getting one cave fully believable before I roll it out everywhere.