Catode32 - Building a Virtual Pet

In a few previous posts, I've shared some prototype images and concepts for a virtual pet. Over the past few months I've moved from the "concept art" phase into the actual development of the project.

What is Catode32

Catode32 is a virtual pet, and a small world for the pet to live in. The name comes from the blueish oled screens give bit of a "cathode ray" vibe, and the whole project is an "ode" to cats. (The "32" coming from the ESP32 side of things.)

Players can interact with the pet through various forms of affection, feeding it meals and snacks, training it, playing with toys, and playing minigames with it. In addition, there are weather patterns, gardening systems with plant lifecycles, the minigames give rewards like coins, an in-game store to spend those coins, and a personality system. There's even a wireless feature that lets two of the cats visit each other!

It runs on an ESP32 C6 or C3, with an SSD1306 OLED display (128x64), with 8 tactile push buttons, and a 2000mAh LiPo battery. I've built my test units on perfboard and on breadboards.

It can also be run on a desktop emulator on Linux, Mac, and Windows.

Motivation

The motiviation for this project started when I adopted my first cat, Bean, and continued after adopting my second cat, Juno. I wanted to capture a bit of their personalities and the joy of having them in my life, and find a way to share that with the world.

The first sprite work started back in 2022.

Design Philosophy

There's two main considerations that I've kept in mind while working on this:

  • Adorable and expressive pixel art
  • Dynamic interconnected systems

These go hand-in-hand.

For example, the pet's stats affect it's behavior, and the behaviors in-turn affect the stats. The weather and health of plants affect the pet, as do the rooms it spends time in. The player's interactions with the pet affect it, and the player has some capacity to nurture plants to keep the environment positive. And I try to communicate these interactions through the art and animations.

My goal is to have a virtual pet where the player has more control over simply feeding and petting the cat. Those matter, of course, but the player also has capacity to play with various toys, groom the pet, shop for snacks, move between locations, play games, plant seeds and water plants, and more.

I want to build a device that people want to carry around. So in addition to the pet care, the project also includes several minigames that play out on the small OLED screen. Beyond being fun little games, the minigames also give status rewards to the pet, and reward in-game coins that the player can spend to buy things for their pet.

MicroPython Meetup Talk

The first version of Catode32 was built in MicroPython on an ESP32-C6 SuperMini. I feel like MicroPython was a good language to start with as it allowed me to focus on rapidly iterating and exploring the various directions I wanted to take the project. It gave me the flexibility to change quickly, experiment quickly, and turn ideas into prototypes.

I gave a talk at Melbourne's MicroPython Meetup in March 2026 about the early state of the project, which you can watch online: https://www.youtube.com/watch?v=F8eVpp3om54

Community

I've been delighted to see the positive reaction to this project so far.

A teacher in the Netherlands wanted to share this with their students, and contributed the first version of multi-language support and the desktop kiosk mode. That has now expanded to support for six different languages!

There have been a few other contributors helping expand the support to additional ESP32 boards and test the devices.

The project has also been referenced on a few different tech blogs and articles, like XDA Developers - You, too, can install this cute open-source tamagotchi on your ESP32.

Source Code

The project is open-source, and you can explore the code on the Catode32 Github page.

The Github page includes a Wiki that explains how to setup the hardware, how to setup the desktop emulator, and goes into detail about the various systems.

Published: October 12, 2026

Categories: arduino, gamedev, catode32