Playable Project

Starlight Menagerie

A zoo the size of Omaha's, inside a space station. It is the night shift. Nothing can go wrong.

Seven, a small tracked robot with a teal head and glowing eyes, rolls across the pale sand of the Ombra Savanna while two violet spotted giraffes graze behind him under the curved roof of the station.
Seven on rounds in the Ombra Savanna, the station's copy of Omaha's African Grasslands. The giraffes are from Ombra, a grassland planet with violet skies.
Station
One chamber, 1,000 m by 660 m
Habitats
12 to log, 12 home planets
Species
53 remodelled in Blender
Breakout
Six minutes to the pod

Explore the zoo

The station has its own guidebook now. Watch the trailer, meet every species from three angles, read what each one is and what it does in the dark, or open the map and click your way around.

A walkable zoo with a Halloween twist

Doorly Orbital is a zoo station in orbit around Samhain, an orange gas giant. Inside, it is one vast chamber under a glass crown. The habitats sit where their counterparts sit at Omaha's Henry Doorly Zoo: the jungle hall just inside the gate, the dune dome on the rise, the night house beside it, the aquarium along the north, and the grasslands filling the east.

You play Seven, the keeper robot from FIELDWORK. The visitors have gone home. Your job is to roll from placard to placard and scan each habitat into the logbook. Each animal came from a different world, and the logbook tells you which.

Then the meteors arrive. The barriers fail one by one, the emergency lights come on, and every animal in the zoo is loose in the dark. Seven has a stun gun, a shield and one battery. The last lifeboat is in Pod Bay C, at the far east end of the station.

Why build it

This is a test of scale and of tone. Can a browser game hold a real zoo's footprint, 53 animated species and their sounds, and still run on a phone? And can the same space feel calm on the first walk and frightening on the second, with nothing changed but the light, the sound and the rules?

The answer here is to build the place once and let the night change it. The calm zoo and the broken zoo share every mesh, material and shader. The breakout swaps uniforms, not scenes, so nothing has to compile when the scare starts.

Omaha in orbit

The chamber is an ellipse about 128 acres across, the size of the Henry Doorly Zoo. Each habitat takes the place and the spirit of a real exhibit. The interactive map shows the whole station from above.

HabitatIn OmahaHome world
Verdance HallLied JungleThallo IV, a jungle moon with a twelve-hour rain
Kesh Dune DomeDesert DomeKesh, where the dunes sing at noon
Umbra VaultKingdoms of the NightUmbra, half in permanent dark
Canopy GorgeHubbard Gorilla ValleyMbali, a world of fog and fig trees
Pelagia DeepScott AquariumPelagia, an ocean moon with no land
Hive GalleryButterfly and Insect PavilionVesp, with paper hives the size of houses
Apex HallCat ComplexRakh, a red savanna with two suns
Ombra SavannaAfrican GrasslandsOmbra, under violet skies
Floe ShelfOwen Sea Lion ShoresGlacia, an ocean under the ice
Kaltor HighlandsAsian HighlandsKaltor, a world of terraced valleys
Skyvault AviarySimmons AviaryAerith, where most things fly
Nursery PensChildren's Adventure TrailsEarth. Yes, that one.

Design notes

  • Two games in one place. The first half is a walk. Placards glow, the music is slow, and the PA keeps you company. The rounds run on a five-minute shift clock, and when it runs out the meteors come. The second half is a run through the same paths with the lights gone red.
  • Every animal is a threat, and none of them are evil. Small animals swarm and nip. Big ones charge and hit hard. Fliers dive from the aviary roof. Tank animals stay in their tanks, because some rules should hold. Stunned animals sleep it off, then come back.
  • Power is the whole economy. The stun gun costs power. The headlamp costs power. The shield repairs itself from power. Chargers along the paths refill it, if you can stand still long enough.
  • The amber route. In the breakout, the deck paints the shortest path to Pod Bay C in amber, and the compass points along it. The shortest path is not always the safest one.
  • Eyes in the dark. Every animal carries a pair of glowing eyes, placed on its head bone in Blender. In the calm zoo they are faint. In the breakout they are the first thing you see.
  • Jump scares, used sparingly. One animal at a time gets a sting, a lunge and a flash, on a timer that stays out of the way. The cards say so up front: headphones help, and there are jump scares.
  • Two endings. If Seven's shield or the hull runs out, the camera pulls away to watch the station come apart from orbit. If Seven boards the pod, it launches past the explosions, falls toward Lumen, Samhain's blue moon, and comes down off a small island at sunrise. The island has a parrot, a toucan and gulls from Island V5, and they come down to meet him. The last card links to Island V5, where the island has a lighthouse and a name.

How to play

A loader checks and fetches every file, then warms every shader before the start screen. Press Start the night shift for the full game, or Skip to the breakout if you only want the scare. You have five minutes to log the habitats before the meteors hit. Easy, normal and hard then set the hull timer: eight, six or four and a half minutes. In the dark, the hull spiders come down for Seven, and only fire keeps them back.

ActionKeyboard and mouseGamepad
MoveWASD or arrowsLeft stick
LookMouse (click to lock)Right stick
Scan a placard, board the podHold EA
Stun gunLeft click or FRight trigger
Run, jumpShift, SpaceLeft trigger, B
HeadlampLLeft bumper
Strike a flare, throw itQ or TX
Logbook, pauseTab, EscY, Start

Touch: drag on the left half to move and the right half to look. The Flare, Lamp, Run, Scan and Stun buttons sit by your right thumb. The layout rearranges itself for portrait and landscape, and long presses never select text.

Inside Doorly Orbital

For every animal from three angles, see the creatures gallery.

Seven on the dark red deck holding up a burning flare that lights the tread plates orange, while a giant hairy spider with glowing red eyes rears up beside him at the edge of the light.
The breakout: a hull spider comes down, and a flare keeps it at the edge of the light.
Looking up the chamber wall in the red emergency light: the black silhouette of a giant spider spread across the plating, with a cluster of glowing red eyes.
Up on the hull, above the catwalk, where the lights do not reach.
The inside of the chamber wall: grey hull plating with grooved seams, I-beam ribs, a catwalk with railings under framed portholes full of stars, red, yellow and grey pipes on brackets above a striped hazard plinth, and white strip lamps.
The chamber wall: plating, ribs, a catwalk, portholes and the pipe runs.
Pod Bay C: launch cradles ringed in yellow and black, red fuel tanks, umbilical hoses hanging from a wall gantry to the last good pod, roof trusses with strip lights, and a plated deck with drains and grates.
Pod Bay C, with fuel umbilicals still on the last good pod.
Through thick glass in Apex Hall, a striped red Rakh tiger and two lionesses pace among warm rocks under bright ceiling lamps.
Apex Hall, the cat house. Thick glass, warm rocks.
Inside the Pelagia Deep tank: a shark glides over orange and blue coral, caustic light ripples across the walls, and a glass tunnel arches across the left side.
Pelagia Deep, with the glass tunnel through the main tank.
The ice of the Floe Shelf with a penguin in the foreground and a spiny white polar bear walking behind it.
The Floe Shelf. The polar bears grew crystal spines on Glacia.
The breakout: Seven's eyes and headlamp glow on a red-lit deck, the amber route runs ahead, and the HUD shows a hull timer of 5:58 and Pod Bay C 440 metres away.
Containment failure. Follow the amber lights.
The escape pod flies away from the station under the banded orange curve of the gas giant Samhain.
Launch, under Samhain.
Seven sits on a pale beach at the edge of a turquoise sea, with palm trees on a green rise behind him.
Landfall on Lumen. The island already has birds.

Borrowed from other GameLab projects

  • From Island V5The loader recipe: a manifest of every file, version cache-busting, build steps with progress, and a shader warm-up pass before play. Also its performance kit (culled instances, adaptive resolution, a frame cap) and the island birds of the ending.
  • From FIELDWORKSeven himself, with his tank treads, his animation set and his eyes. Here he gets a stun gun on his arm and a headlamp.
  • From Eric's asset and sound librariesThe animals start as low-poly packs in the 3D folder. Every sound starts as a WAV in the SFX library.

Build notes

Building the encyclopedia, first published on October 22, 2026.

Read the original build story, first published on October 21, 2026.

Read the design notes and the changelog.

Blender, in parts. The station is built by Python scripts in Blender from one layout file. The hull comes in eight sectors, each with a near and a far level of detail. The floor comes in quadrants, and every habitat is its own part, also with two levels of detail. Props share one texture atlas and draw as instances. The exterior, the pod and the island are separate files used only in cut scenes.

The detailing pass. The near level of every hull sector now carries the services a real station would have: I-beam ribs with downpipes, a three-pipe bundle on brackets, hoses looping between the brackets and dropping to floor sockets, a cable tray, a catwalk with railings and ladders, vent grilles, junction boxes, maintenance doors, framed portholes and a hazard-striped plinth. Buildings get pipe runs under the eaves, downpipes, vent boxes and rooftop air handlers. The dock and the pod bay get roof trusses, cable trays, hanging hoses, fuel tanks, crates and umbilicals to the pods. All the painted fittings share one material and carry their colour per vertex, so a hull sector still draws in about ten calls.

Surfaces and light. A script paints three tiling texture sets with numpy: fine plating for fittings, large hull plating, and deck plates with tread, drains and grates. Each set has colour, normals and packed occlusion, roughness and metalness. On top of them, every wall gathers soot low down, a shade where it meets the floor, and the wash of its strip lamps. The deck carries a light map painted at start-up, with warm pools under every lamp post and shade along every wall. Metal reflects a small stand-in for the chamber, and the breakout swaps in a red-lit copy without compiling anything new.

Biome generators. A clean station looks like a render, so the game dirties it on load. A kit of about forty pieces of clutter, from toolboxes and hose coils to grass tufts, bones, ice shards and wax comb, is scattered by seeded generators. Each enclosure follows a recipe for its home world's ground: grass and branches on the green worlds, pebbles and bleached bones on the deserts, ice on Glacia, shells in the tanks, feathers in the aviary. The station gets its own mess: worn patches on the lawns, litter and oil along the paths, tools along the wall foot, and cargo piled in the dock. A hidden layer of glass, rubble and scorch marks appears when the barriers fail. Every piece is instanced and culled in 24 m cells with draw distances by size, so even the thousands of tufts on low quality add only a handful of draw calls.

The hull spiders. Built and rigged in Blender, then animated by nothing but math: every leg is solved with inverse kinematics each frame in the spider's own frame, where whatever it stands on is the plane y = 0, so one gait carries it across the deck and up the walls. The hair is thousands of camera-facing cards skinned to the same bones, and eight red eyes glow through the fog. They live on the hull above the catwalks, drop on silk lines, and fear only fire: a flare in Seven's hand, a flare thrown ahead, or the barrels the meteors set burning. Red lockers along the paths hold more flares.

No pop, no plastic. Props, clutter, animals and spiders dissolve out at the edge of their draw distance through an ordered dither, the old console trick, and the habitats cross-dissolve between their detailed and far models instead of switching. Skin, fur, leaves and grass use a subsurface lighting model: light wraps round the shadow line, scatters warm at the edge, glows through thin parts from behind, and catches a velvet sheen at the silhouette.

Remodelled animals. A second script imports each animal, flattens its rig, splits or borrows its clips, and retargets clips across rigs when two files disagree on the rest pose. Then it remodels it for its planet: crystal horns, fronds, lures, spines or extra eyes, all skinned to the right bones. The textures are retinted by planet. The files are packed with meshopt compression to about 10 MB for all 53 species.

Sound. A later mixing pass found the rain-forest and cricket beds were a wall of hiss between 3 and 8 kHz; they were re-cut, every bed is matched by measured loudness, and the reverb tail now darkens as it decays. Every WAV was inspected for codec, peak, loudness, DC offset, clipping and silence before it was used. Two quiet beds were dropped and one stun hit had its DC offset removed. The rest were trimmed, levelled and encoded as MP3, with ambience beds looped on a crossfade. The three music cues are synthesized.

Shaders. Every material compiles before the start screen, for the station, the space scenes and the island. The emergency lights, the flicker and the meteors are shared uniforms, so the breakout costs no new shaders. The game runs in the browser on Three.js r185.