Inspiration
Reddit's best moments happen in comment sections. The inside jokes, the regulars, the person who shows up every day. Vivarium grew from wanting a game where the comment section is the game world. Not a leaderboard bolted onto comments: a place where commenting physically creates something, where replying to someone builds a visible relationship, and where a community's activity is the weather.
The seed was personal: a home with multiple pets, and the idea of a miniature isometric vivarium living inside a Reddit post. The result is Vivarium, a small living ecosystem in a post. Your pet lives there, but the world belongs to everyone who talks to you.
What it does
The comment section is the controller. The game is made of comments, replies, and upvotes, not merely themed after them.
Every user gets a vivarium: a 3D tile world with a rigged, animated companion (fox, husky, or alpaca) that grows through real days of care. Hatchling to Elder over two weeks. The community animates everything else:
- Comments become creatures. Every commenter spawns in the scene as a unique being. Comment text hashes into color, size, and shape ('comment DNA').
- Replies become friendships. Reply to someone's comment and your creatures bond: they seek each other out, greet with a hop and golden sparkles, then wander the world together. Go quiet for a week and your creature turns to stone, but a friend's reply can wake you.
- Upvotes become weather. The post's score drives atmosphere, from fog to golden hour with butterflies and fireflies.
- Secret words become rituals. Hidden words in comments summon rain, snow, song, auroras, rainbows, and dances. Nothing in the UI reveals them. Some are conditional: 'rainbow' only answers while rain is falling. 'Dance' only works between bonded creatures. The aurora only responds in vivariums the community has leveled up. Knowing the word isn't enough, you have to discover when it works. Failures are always silent. Discovery is the mechanic.
- A daily subreddit-wide hunt. Once a day, a golden Wandering Beast appears in one random vivarium for two hours and announces itself with a comment. That's the treasure-hunt signal. Everyone who finds it and comments earns XP; the owner keeps a permanent plaque.
Three progression tracks pull different players back daily: pet growth (emotional: days of care, time-gated, grinding won't help), world building (economic: XP buys terrain and objects, all server-validated), and community level (social: lifetime unique visitors, ungameable alone). The world keeps your hours too: the sky shifts dawn/day/dusk/night by the viewer's local clock, and night brings fireflies and shooting stars.
Five visual biome styles (Meadow, Lush Garden, Zen Garden, Crystal, Pixel), demoed in the video, with unlock wiring shipping next, gated on community level. Plus a cinematic orthographic camera with eased shots, an inspect mode that orbits your pet up close, rock and tree placement that sculpts the actual paths creatures walk, and a gallery to discover and visit every vivarium in the subreddit.
How I built it
Entirely on Reddit's Developer Platform (Devvit Web):
- Client: Three.js + vanilla TypeScript in a webview. Orthographic isometric scene, three rigged GLB creatures (~50 bones, 13 shared animation clips), everything else procedural geometry: tiles, vegetation, weather, rituals, biome variants. No external runtime assets. Growth stages reshape the same rig per stage (scale and head-to-body proportions) rather than swapping models, so every stage keeps all 13 animations.
- Server: Hono routes on Devvit's runtime. Comment triggers drive the whole social layer; a daily cron spawns the beast; Redis holds the vivarium state, visitor sets, bond metadata, and ritual state.
- The reply-bond pipeline resolves nested comments with zero Reddit API calls: every comment's id-to-author pair lands in a Redis hash as it arrives, so a reply looks up its parent locally. Comment deletion dissolves the bond, scrubs the map, and removes the visitor.
- Uncheatable economy: the client sends grid diffs; the server recomputes every cost and unlock gate against lifetime earned XP.
Challenges I ran into
- The app talking to itself. The beast announces via comment, and the app's own trigger turned the app account into a visitor, paid it XP, and inflated the community level. Caught in production logs; fixed with an early guard plus a scrub for old data.
- A close-up is an audit. The moment inspect mode shipped, it revealed every plant floating 0.35 units above the ground, invisible for weeks at the default zoom. One bounding-box snap at placement grounded all biomes' vegetation at once.
- Fitting an isometric world on every phone, working around orthographic cameras breaking standard tricks (point-sprite rain is invisible under ortho, for instance), and screen-space composition in an iso world all took more debugging time than expected.
Accomplishments that I'm proud of
- Five hooks, all impossible off Reddit: comments to creatures, replies to friendships, upvotes to weather, words to rituals, and a subreddit-wide daily hunt. The comment section is genuinely the controller.
- Zero Reddit API calls for social mechanics: the reply-bond pipeline, visitor resolution, and comment-DNA generation all run from local Redis state fed by triggers. The social layer scales without rate limits.
- Discovery as a mechanic: ritual words and their conditions are never explained in-game. The game ships with secrets designed to become community folklore.
- Consequence and revival: the world honestly reflects its community. Lapse and you petrify; a friend's reply resurrects you. People check back because presence matters.
- Tested for weeks in a live subreddit: real comment threads, real bonds, real beast spawns.
- Three creatures, five biome styles, ~35 procedural object variants, day-night cycle, weather, rituals, cinematic camera, with zero external assets and a mobile-first fit.
What I learnt
- Platform constraints make us invent all sorts of innovative workarounds: no share events, no vote triggers, so comments had to carry everything, and the game got better for it.
- Orthographic rendering is its own discipline - Well, that was some hard realization!
What's next for Vivarium
- Biome unlocks gated on community levels. Four more biomes (in addition to the default Meadow) are ready. The social track of the game paying off visibly.
- Owners of vivariums appear as a miniature of their pet instead of blobs in commented vivariums
- Multiple creatures (GLBs) ready for post-hackathon update
- Dedicated infant-stage creature models
- Drag-to-orbit 360 degree camera (inspect mode's orbit is already the foundation)
- More conditional ritual words, multi-caster words, words that only work in others' vivariums
- Bond constellations: thread elders, family clusters, bonding with the owner's pet
Built With
- blender
- devvit
- devvitweb
- glb
- hono
- redis
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.