Inspiration

I work at my desk a lot, usually with one of my cats, Louie or Tony, wandering across the keyboard or asleep next to the monitor. I wanted that feeling in VR: something small and alive that keeps you company while you work, that you look after a little each day, and that's always happy to see you.

Most VR asks you to stand up, clear a space and go somewhere else. I wanted the opposite. Purrennials stays in your seat, on your desk, in your room, and you play it with nothing but your hands. Put the headset on for five minutes between tasks, water the catnip, give the cat a fuss, and take it off again. Come back tomorrow and the plants have grown and there's a little gift waiting.

(Louie and Tony, and my friend's cat Piper, are in the framed photos on the sunroom wall, and Tony makes a cameo in the trailer.)

What it does

Purrennials is a cozy garden with a cat who lives in it.

  • Your real desk. In passthrough the garden sits on your real desk and the cat uses your real room. It reads the room from your headset's Space Setup: it naps on your couch, hops onto your tables, chases the laser across your floor and finds its way round your furniture. Ivy grows down your real walls and plants fill out over a few days. It even gets its own shelf on your wall.
  • Or ours. One button takes you to a sunny sunroom or a cozy living room, with a sky that follows your real clock, from morning sun to the moon and stars at night, and rain if you want it.
  • The garden feeds the cat. Plants grow over real days. Pinch off a sprig of catnip and hold it out: the cat takes it from your hand, rolls over for a belly rub and then gets the zoomies. Tilt the watering can, pour kibble from the bag, pet it while it purrs.
  • It hears you and sees you. Say "pspsps", click your tongue, clap or wave and it comes over. Slow-blink at it and it slow-blinks back. The listening runs on the headset; nothing is recorded or sent.
  • Toys and rewards. Playing earns Fuzzies to spend in the Cozy Cat Store: a fuzzy mouse, a wind-up mouse that keeps the cat busy while you're away, a laser pointer, 12 coats and a new room.
  • Gentle by design. Nothing ever dies. Plants droop until you water them, the cat gets a bit grumpy and meowy until dinner, and coming back after days away is a welcome, not a guilt trip: a daily gift that grows with your streak.
  • Seated, hands-only, short sessions. Everything is within arm's reach (it passes the airplane-seat test), it pauses cleanly, and free speed-up coins mean the first five minutes show the whole loop: grow, feed, pet.

How I built it

  • Unreal Engine 5.7 in C++ (the cat's behaviour, the garden, the rooms and the tools are all custom code), with the Meta XR plugin and the Meta Interaction SDK for hand tracking and grabbing, on OpenXR.
  • Mixed Reality Utility Kit (MRUK) for the real room: the scan's floor, walls and furniture become places the cat can walk, jump and nap, and everything is anchored to the real room so it stays put when you recenter.
  • The cat is a behaviour system on top of a licensed stylised cat model and animation set (Toon Cats by Radik Bilalov, Fab): pathfinding round real furniture, jump arcs that clear obstacles, stalking and pouncing, petting zones (head, back, belly, the base of the tail), a hunger and mood model, and reactions to your voice and hands.
  • On-device sound recognition for "pspsps", clicks, claps and talking, from the headset microphone.
  • Art and sound: licensed Fab packs for the rooms (Cozy Cartoon Rooms Interior 4 by Mnostva Art) and plants, real field recordings for the ambience (Sonniss GDC game audio bundle), original music by Ashley Wallace.
  • Built and tested on a Quest 3, at 72 fps.
  • I'm a solo developer, so I used Claude Code as a coding assistant: I designed every system and behaviour, tested everything on the headset, and it helped me write and debug the C++ much faster than I could alone.

Challenges I ran into

  • Making the cat believable in a room I've never seen. Real rooms are messy: couches, cables, odd-shaped desks. The cat has to find spots it can really reach, plan jumps that clear what's in the way, never walk through you, and keep working when you recenter and the whole room shifts.
  • Hands-only holding. Hand tracking drops out for a moment now and then, and a dropped watering can or laser pointer feels terrible. I wrote my own "sticky" hold that keeps things in your hand until you clearly let go.
  • Gentle care that still matters. Getting the balance where coming back after a week feels good, but looking after it every day still feels worth it.
  • Performance on Quest with a whole room of plants, a sky and an animated cat: keeping it at 72 fps.

Accomplishments that I'm proud of

  • The moment the cat takes catnip from your fingers, rolls onto its back and lets you rub its belly.
  • Watching it hop up onto my real couch and settle down for a nap, in a room it learned from the headset.
  • That the whole thing works without ever picking up a controller.

What I learned

  • Small, physical moments (a slow blink, a headbutt on your hand) do more for presence than big set pieces.
  • Mixed reality is at its best when your room changes what happens, not just what's behind the game.
  • How much a cozy game depends on sound: the purr, the meows, the rain on the glass.

What's next for Purrennials

  • Store launch: Early Access on the Meta Horizon Store in mid December 2026, just after the winners are announced, then regular updates.
  • Meta VR Glasses: designed for them from the start (seated, hands-only, key UI kept central for a narrower field of view).
  • Friends' cats: your friends' cats visiting yours to play.
  • More cats, more plants and growth stages, more rooms, and new toys (a music box, a puzzle box, a flying cat airship).
  • Choosing your own furniture for the cat in passthrough.

Target launch date

Mid December 2026: Early Access on the Meta Horizon Store, just after the winners are announced.

Built With

  • c++
  • claude-code
  • fab
  • hand-tracking
  • meta-interaction-sdk
  • meta-quest
  • mixed-reality
  • mruk
  • oculus
  • openxr
  • passthrough
  • unreal-engine
  • virtual-reality
Share this project:

Updates

Submission history