A low-poly golden retriever that lives in your room instead of on a screen. Built on a HoloLens 2 in 2021 to find out whether a virtual pet stops feeling like software once it has somewhere to stand.
The Tamagotchi is the ancestor of everything here. A pet the size of a keyring, fed by button press, capable of dying of neglect while you were in double maths. Millions of people formed a real attachment to a few dozen pixels because the thing had needs, and those needs did not pause when you looked away.

What it never had was a place. It lived on a screen you carried, and a screen is nowhere in particular.
I had a Microsoft HoloLens 2 on long-term loan for other research, and spent enough hours inside it to notice something. The headset is very good at one specific illusion: convincing you that a thing is somewhere. Not that it is real, not that it is solid. Just that it occupies a particular patch of floor and stays there when you turn your head.
That is exactly what a Tamagotchi is missing. So: what if the pet had a place?
The build
The character is Biscuit, a low-poly golden retriever. Low-poly was a deliberate choice rather than a budget one. Optical see-through AR cannot render black and washes out badly in daylight, so a stylised character with big flat surfaces survives the display far better than something fluffy and detailed would. Realism is not available; charm is.
Four things went into the first version:
- A simple 3D character with an animation set: idle, walk, sit, look at you.
- Hand interactions, so you could reach out and pet it.
- Voice commands, so it responded when called.
- Swappable characters, so the pet was not hardcoded to one creature.
Early on it was mostly a test of whether the thing would stay put and follow convincingly.
Then it started to go places.
Waiting in a doorway. Nothing in the scene is doing anything clever; it just committed to a spot and stayed there.
In the footwell of a car, which is where it started to feel less like a demo.
On the bonnet, outdoors, in flat New Zealand daylight. Roughly the worst case for an optical see-through display, and it still reads.
The part I got wrong
Of my four features, the one I was proudest of building was voice commands, and it is the one I would now remove.
Speaking to it broke the spell every time. The moment you issue a command and get a response, you are operating a device and you are aware you are operating a device. It converts a creature into an interface. Worse, it sets an expectation of conversational competence that nothing can then live up to, so every interaction gets measured against a standard it will fail.
Meanwhile the thing that consistently worked was the least engineered: the dog standing somewhere, facing something, and then moving. When it padded across a room and stopped, people read intent into it without being told to. Nobody needed instructions for that, and nobody was disappointed by it, because a dog crossing a room is not promising anything it cannot deliver.
The general lesson took me a while to admit. Language is a shortcut that costs more than it saves. Real animals communicate constantly and none of them use words. Ears, posture, where they choose to sit, whether they follow you into the kitchen. That channel is enormously expressive and it never overpromises.
What it became
Everything above is 2021. Here is where it went, because the idea did not stay on the shelf.
Biscuit is now a product concept at FlowsXR, aimed at Android XR headsets, and the design brief starts from what the prototype taught me. It does not talk. Not a chatbot in a costume, no voice interface, no dialogue.
Instead the expression is stacked in three layers, ordered by how far away you are:
- Posture carries state. Ears, tail and stance tell you its mood the instant you look at it.
- Motion carries intent. Gait, approach and retreat tell you what it wants to do.
- Ambient cues carry reach. A glow, a sound, a notification, for when it needs you from the next room.
Sound is in, but only as vocalisation: chirps, huffs, contented sighs. Emotion carried by tone, never by vocabulary.
The loop is adopt, teach, pet and play, and then it reaches out to you. Repetition shapes habits, the habits feed back into teaching, and the relationship is meant to deepen over weeks rather than being a feature list you exhaust in an afternoon. Underneath, a temperament model gives each one its own drives and sense of timing, drifting along shy-to-bold and calm-to-energetic axes as you raise it, so two people adopting the same creature do not end up with the same companion.
The concept sheet: the 2021 prototype with five more years of thinking bolted on.
None of this is built from scratch. It sits on Anima Machines, the real-time animated avatar engine FlowsXR already runs in production, so the hard part, expressive characters animating in real time, is a solved problem rather than a research risk.
Status, plainly: Biscuit is not shipping. The engine underneath is working and in production, and StreetSync is already live on the Meta Quest Store, but Biscuit itself is at concept stage with an Android XR alpha as the next step. The temperament system and the teaching loop come after that.
What I find satisfying is how little the core idea changed. A small creature, somewhere specific in your actual room, that never says a word and is glad you are home. That was the thing worth keeping, and I only worked out it was the whole point by building the version that also tried to talk.

