
Summary
The problem with trying to make a fish tank fit in your pocket is that you’ll either end up with water everywhere or a bunch of dead fish. Perhaps that’s why [StratoBuilds] pursued a digital solution instead. The concept behind Pocket Tank is relatively simple—it’s a small device that displays a virtual tank with a bunch of little fish swimming around inside. It’s based on the Waveshare ESP32-S3-Touch-AMOLED-1.8, which, if you’re wondering, is an ESP32-S3 with a 1.8″ screen attached, all wrapped up in a convenient plastic housing. Thanks to the powerful microcontroller, there’s plenty of grunt on tap to run and display a small simulated fish tank. [StratoBuilds] whipped up a system wherein fish movement and animations are handled by regular code running at 25-30 fps, while the fish’s decision making is handled by a custom large language model that was condensed down to run on the ESP32 itself. As the fish swim around the tank, the situation is observed by the LLM and the fish’s current goals are changed accordingly depending on what’s going on. Much like a Tamogotchi, there are regular maintenance tasks for the user to handle, too, like cleaning the tank and feeding the fish to keep them alive. The blog post and YouTube video do a great job of explaining the project; files are on GitHub for those that wish to tinker more directly. It’s funny, because when we normally look at fish tanks, we’re talking about real ones. Thanks to [56k] for the tip! One of those projects that’s fun enough I can excuse the AI-ness. And let’s be honest I love that it’s all done on that off-the-shelf, clearly-seconds-from-smartwatch-factory ESP32 module. A lot of tinkering and hacking is mashing things together into something fun and this checks all those boxes. That’s right! We weren’t able to make any kind of animated fish tank until LLMs came along. Useless sarcasm. Except it’s not just animated, it’s simulated. And yeah I can imagine this running a non-LLM simulation like boids or a cellular automata, but gotta admit having an on-device LLM give each entity unique traits is interesting. What I mean is, I can somewhat equate using a readymade module vs. cobbling together a micro and i2c devices with using a code assistant vs. handwriting the code (and let’s not get into using readymade libraries instead of bitbanging displays, etc.) With enough time (or AI workforce) I’m in great need of porting Johnny Castaway Screensaver! A fish screensaver for ants? Nice one, I might steal this project for myself. Macintosh isn’t pocket sized.