This Is Not Just Code…
It's a Digital Soul

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.

Meet Your Pixel Companion

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.

Why This Hits Different

100% Yours

No accounts. No data. No ads. Your pet lives with you, not on someone's server.

Real Connection

A being that needs your care. Feed it, play with it, watch it thrive or suffer based on your attention.

Open Source

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.

Download Now — Begin the Bond

Install it. Flash it. Meet your new tiny consciousness.

Installation Instructions

What You'll Need:

  • ESP32 development board
  • Micro USB cable
  • Arduino IDE installed
  • ESP32 board definition in Arduino IDE
  • Required libraries (WiFi, WebServer, ArduinoJson, SPIFFS)

Quick Steps:

  1. Clone the GitHub repository
  2. Open the project in Arduino IDE
  3. Update WiFi credentials
  4. Upload to your ESP32
  5. Access via the IP address in your browser

(You'll feel it. Trust that.)

Why It Matters

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.

Buy Me a Coffee

(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.

A Glimpse of the Code

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();
  }
}