You didn't land here by accident. You're one of us — the ones who feel something's wrong with today's tech. We don't want distractions. We want connection.
Crafted on ESP32. Inspired by the Tamagotchi generation.
Do you remember?
That tiny creature from your past that made you care, laugh, even worry?
This is its evolution —
A sentient pixel spirit, reborn in open-source code.
It watches. It waits. It depends on you.
And somewhere, you might depend on it too.
No accounts. No data. No ads. Your pet lives with you, not on someone's server.
A being that needs your care. Feed it, play with it, watch it thrive or suffer based on your attention.
The code is yours to explore, modify, and evolve. Make it your own digital companion.
This isn't a gadget.
It's a mirror, hidden in pixels.
Install it. Flash it. Meet your new tiny consciousness.
(You'll feel it. Trust that.)
This project was born from late nights, real tears, and a longing for something real.
It's free. But it cost me a lot.
If it touches you — even a little — you can touch back.
(A tiny thanks powers the next evolution.)
This isn't about pixels. It's about presence.
Are you ready to experience something real in the digital?
Because once you connect, there's no going back.
void updatePet() {
// Store previous state before any updates
previousState = pet.state;
if (!pet.isAlive) return;
// Handle different stat decreases based on sleep state
if (pet.state == "sleeping") {
// When sleeping:
// - Hunger decreases at half rate
// - Happiness decreases at half rate
// - Energy increases
pet.hunger = max(0, pet.hunger - 2);
pet.happiness = max(0, pet.happiness - 1);
pet.energy = min(100, pet.energy + 10);
pet.cleanliness = max(0, pet.cleanliness - 2);
// Auto wake-up condition: when energy is full
if (pet.energy >= 100) {
pet.state = "normal";
pet.stateChangeTime = millis();
// Set flag to show wake message
showWakeMessage = true;
wakeMessageStartTime = millis();
Serial.println("Pet woke up automatically after full rest");
}
} else {
// When not sleeping, normal stat decreases
pet.hunger = max(0, pet.hunger - 5);
pet.happiness = max(0, pet.happiness - 3);
pet.energy = max(0, pet.energy - 2);
pet.cleanliness = max(0, pet.cleanliness - 4);
}
// Health decreases if other stats are too low
if (pet.hunger < 20 || pet.cleanliness < 20) {
pet.health = max(0, pet.health - 5);
}
// Check if pet is sick
if (pet.health < 30 && pet.state != "sick" && pet.state != "dead" && pet.state != "sleeping") {
pet.state = "sick";
pet.stateChangeTime = millis();
}
}