Dev.to AI 🤖 Ai 👁 0 📖 5 min read

PIP: a desktop penguin that loves you but hates it when you stay on the desktop for too long

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass What I Built Pip is a small, chronically online penguin who lives on your Windows desktop. His life mission is to get

PIP: a desktop penguin that loves you but hates it when you stay on the desktop for too long

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

PIP: part pet, part screen monitor whose life mission is to get you to be more active

What I Built

Pip is a small, chronically online penguin who lives on your Windows desktop. His life mission is to get you off the screen.

He tracks how long you've really been at the computer:

  • 30 minutes: he raises a hand and nudges you to go outside.
  • 60 minutes: he turns red and starts steaming.
  • 5 minutes after that: he locks your screen until you pick a quest and prove you did it.

Changes of Pip's mood according to how much time you spend

Quests

  • Outdoors: bring Pip a leaf, a flower, a pebble or some actual grass, take a brisk lap around the block, or sit in the sun (or look at the sky if it's night).
  • Indoors: dance, cook, stretch, tidy a corner, or call someone you like.
  • Pip is weather-aware. If it's raining, too hot or freezing, he swaps the outdoor quest for an indoor one and tells you why.

Pip lock if you dont listen

Proof, so you can't just click "done"

  • Item quests: you hold the object up to the camera and a local vision model checks it. Screens and printed pictures are rejected, and old photos can't be reused.

show pip the wrong thing and it wont accept it

  • Activity quests: you have to actually be away from the screen. Then Pip asks one specific question about what you did, and a judge model checks your answer against the question, the real weather and the time of day. Saying "it was sunny" at 9pm gets you a stern look.

The rest of Pip

  • He grows bigger with every finished quest and unlocks accessories (scarf, party hat, cape, crown).
  • You can customize Pip in many colours, so you feel more connected to him.
  • Eye-rest (20-20-20), blink and posture reminders from the webcam.

Pip telling you to blink

  • A to-do list he checks in on, a journal he writes in his own voice after each quest, and a stats dashboard with streaks.
  • Voice chat, with offline listening.

Demo

Field Test

I took Pip outside and tried to fool him. It's harder than it sounds.

The leaf quest
Pip told me to go for a walk and bring him a leaf.

  • Before I left, I tried showing him a leaf-pattern picture. He said no, that's not a real leaf.
  • I went out, did the walk and came back with a piece of bark. Rejected.
  • Then I showed him an actual leaf, and only then did he unlock the screen.

The old-photo test
I also tried showing him an old picture instead of going out. He rejected it, because he remembers the pictures he's already accepted and won't take the same one twice.

Trying to trick the vision model

  • Pebble quest: I showed him a seashell that looked a lot like a pebble. I expected it to slip through, but he rejected it.
  • Grass quest: I held up a bunch of leaves piled together. He still rejected it. He worked out that they were leaves, not grass.

What surprised me: I thought a 4B model running locally would be easy to fool, especially with look-alikes. It wasn't. It told the difference between a leaf and bark, a pebble and a shell, and grass and a pile of leaves.

The result: the only way to get my screen back was to get up, go outside and bring back the right thing.

Code

Pip: the desktop penguin that makes you touch grass

Pip is a small, chronically online penguin who lives on your Windows desktop. His one mission is to get you off the screen.

He tracks how long you've really been at your computer. At 30 minutes he raises a hand and nudges you. At 60 minutes he turns red and starts steaming. Five minutes later he locks your screen until you pick a quest and prove you did it.

Everything runs locally: the language model, the vision model, speech recognition and the camera checks.

Features

  • Quests: outdoor (bring Pip a leaf, flower, pebble or grass, walk around the block, sit in the sun) and indoor (dance, cook, stretch, tidy, call someone).
  • Weather-aware: if it's raining, snowing, too hot or freezing, Pip swaps outdoor quests for indoor ones.
  • Proof of quest:
    • Item quests: hold the object up to the camera and a…

Setup instructions are in the README. You need Windows, Python, and Ollama with gemma3:4b.

How I Built It

Everything runs on my own Windows PC in a single Python file, with no paid API.

Piece What it does
Gemma 3 (4B) via Ollama, open-weight Pip's personality and replies, the answer judge, and his diary entries
Gemma 3 vision (same model) Looks at the photo you hold up and labels it (leaf, flower, pebble, grass, cup...)
Vosk Offline speech-to-text, so I can just talk to Pip
OpenCV Checks whether a face is in view (the "are you really away" test), blink rate and posture, all in memory
pyttsx3 Offline voice (with an optional neural voice if edge-tts is installed)
Open-Meteo Free weather, no API key
Tkinter Draws the see-through penguin and the whole UI

The main lesson from using a small local model: code decides, the model talks. A 4B model is a great character but a bad referee. So the timers, the screen lock, sound effects and the weather sanity check are plain code. Gemma only writes Pip's lines and judges answers inside strict JSON prompts. Verification is layered too: the photo label, then a duplicate-photo check, then screen and printed-picture rejection. If the judge ever crashes, it doesn't punish the user.

Why Does Open Innovation Matter?

Pip watches me through a webcam, listens through a mic, knows my to-do list and writes a diary about my day. I would never want to stream that to a server I don't control.

  • Privacy: the language model, vision model, speech recognition and face/blink/posture analysis all run on my machine. The background camera monitor never saves frames. The only photos kept are the ones I deliberately capture as quest proof, and they stay in a local folder.
  • Free to run: a pet that talks to me all day and looks at my photos would add up to a real bill on a closed API. Locally it costs electricity.
  • I can tune it: because I own the model, I can re-roll when it repeats its own examples, force JSON judging, and swap in a bigger Gemma with one line if the photo check gets sloppy.
  • Works offline after setup: chat, photo checking and voice input need no internet once everything is installed (Vosk downloads its small speech model once, the first time). Only the weather and the optional neural voice need internet.

Prize Categories

Best Use of Gemma: Pip's brain runs on Gemma 3 (4B) locally through Ollama. Gemma writes Pip's personality and replies, judges whether your answer to his question really holds up, writes his diary entries, and (using its vision ability) checks the photo you hold up to the camera. If the photo check is sloppy, I can swap in a bigger Gemma by changing one line.

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.