A small town under tonight’s real sky, with today’s weather. Ghosty is the solid ghost; the faint ones are other people here right now. There are five things to do, one for each chapter of the site, and a house to go into. None of it is timed until you start it.
← → float along the lane, ↑ ↓ up and down (or WASD). Or click anywhere to send Ghosty there. On a phone, tap.
The line under the town always says what space will do where you are: start something, pick something up, go inside. With nothing nearby, it hops. On a phone, the round button does the same.
The lane: float through the five lantern posts to light them. The gate, at the left end: hold the walkers that flicker and hurry. The market, in the middle: tap the reader as each customer arrives. The delivery: carry the order from the market to the cottage door before the clock. Old light, on the hill after dark: find the ringed star in the sky. The marks at the bottom fill in as you go.
Leave the keys alone and Ghosty goes about its own day. It keeps my hours. P hides everything but the town. Sound, in the header, is off until you want it: wind, rain, crickets, the train.
Start
Ghosty lives here. The town is built from the places in the site’s case studies, the sky above it is the actual sky over Walnut Creek right now, and the weather is today’s. Nothing in it is a loop: it’s a place with a clock, three screens wide, with four small games in it and a house you can go into.
The town isn’t a picture laid over the field: it’s written into the field’s own tone map every frame, one value per 9px cell, like the scenes behind the homepage. Four planes, each with its own parallax: mountains and the moon far off, a ridge at half speed, the town, and grass in the foreground sliding faster. Three speeds are enough for the eye to read depth, and because everything lands on cells, it stays a pixel matrix while it scrolls.
People walk the lane and pause; they startle when Ghosty rushes past. A cat sleeps on the cottage wall and wakes when it comes near. An owl on the gate blinks. Fireflies gather on the hill after dark. Leaves blow through when the wind is up. The pines shake and the lanterns swing when Ghosty brushes them. None of it needs you; it’s just going on.
walkers · a cat · an owl · fireflies · leaves · embers · 11 pines that shake · 5 lanterns that swing
It has drag, so it drifts to a stop; a hover height it settles back to; a hop; and the real wind leans on it, so a strong westerly makes the walk up the lane harder than the walk down. It tilts into its heading and its hem streams, on the same engine as the homepage. Its shadow stays on the ground beneath it, in orange: full when it’s low, thinning to a few cells as it climbs, gone when it’s high.
The lane: five lanterns to light. The gate (Radar): people come to the gate; a few carry a tell, a flicker and a hurry. Hold those, let the rest through, and don’t hold the innocent. The market (Terminal): customers arrive at the counter with so much patience; tap the reader as each one comes. The delivery (Uber): carry the order from the market up the lane to the door before the clock runs out, into the wind. Old light (the archive): one of tonight’s real stars is ringed; float up and touch it. Each one is the shape of its case study, with nothing from the real product in it.
gate 40s · market 30s · delivery 28s · old light 60s · all remembered
At the cottage door, press space. The room is drawn the same way: a desk with a lamp, a record player, a guitar on the wall, and a window with the real sky through it. Space at the record player drops the needle: metal mode, as on the site. Space at the door, or Escape, takes you back out.
one room · the real sky through the window · a record that plays metal
The stars are the live star map from the homepage, placed for this minute. The moon is drawn at its real phase, waxing on the right and waning on the left. The weather is Open-Meteo’s, refreshed every fifteen minutes: rain or snow falls here when it falls there, leaning with the wind; smoke drifts from the chimney; the lantern and the window come on after sunset.
Night isn’t a switch. Today’s sunrise and sunset come with the weather, and the town blends between day and night over the forty minutes either side of each: the ground brightens, the stars thin, a sun crosses the sky from left to right through the day, the moon stays. Cloud cover becomes slow dithered bands drifting with the wind; fog takes the mountains away and most of the stars; a storm brings lightning, a two-frame flash that lights everything.
Between the hill and the cottage the lane crosses a small pond on a plank bridge. The water is a few still cells with ripples moving through them, and it reflects what stands near it: the lanterns on either bank once they’re lit, the moon when it’s over the water, Ghosty when it floats across. Reflections are dithered and sway, the way light on water does.
one pond · a bridge · reflections that sway at 2.2 rad/s
Far off, a windmill on the ridge turns with the real wind speed. Every few minutes a night train crosses the ridge with its windows lit and a headlight, trailing smoke. After dark, bats work the air around the gate. A walker who has stopped near a slow Ghosty raises a hand.
windmill at 0.25 + wind × 0.07 rad/s · a train every 90–200s · 4 bats · a wave within 0.09 units
Fly high and the sky tilts toward the zenith, so you see further up into tonight’s stars; come back down and the horizon settles. Crossing the town also turns your gaze a little, forty degrees from one end to the other, so the stars shift against the land. Finish all five things and the archive’s constellation forms over the hill, with one star in orange.
look up to 22° · gaze ±20° across the town · 7 stars, dotted lines
Left alone, it follows the same day as the About section on the homepage: the market and the gate while I’m working, the lane in the evening, home and asleep when I should be, under the awning when it rains. Each place has a mood. Any key makes it yours for twenty seconds.
the day from content.js · faces from the engine · yours for 20s
Every other visitor on this page right now is a faint second ghost, where they are in the town, with their face. It’s a tiny presence service: a random id, a position, and a face, posted every few seconds and forgotten ninety seconds after you leave. No name, no address, no cookie. Yours is the solid one.
With reduced motion on, the rain, leaves, fireflies and bobbing stop, the wind stops pushing, and the ghosts stand still. The field is hidden from screen readers; the footer says where Ghosty is and what’s happening in words. If the weather or the presence service can’t be reached, the town carries on alone. It all costs about a millisecond a frame.