A village
that remembers.
You don't run the village — you start it, and then it lives. Drop a building and PixelVille figures out the rest: roads lay themselves, families move in, people get jobs and remember where they've been, a mayor gets elected, disasters strike and neighbours grab buckets — and a hamlet grows into a metropolis while you watch.
~11,700 lines of vanilla JS · zero dependencies · zero image assets
~0
lines of JS
hand-written, 14 modules
0
dependencies
no frameworks, no libraries
0
image assets
every pixel is procedural code
~0
building types
teastalls → skyscrapers
0
personality traits
per villager
0
side-gig jobs
for anyone between careers
0
transport modes
car → plane
0
village tiers
Hamlet → Metropolis
You don’t run the village.
You start it.
There’s no command layer — you’re a landscape gardener, not a puppeteer. Drop a building and the town figures out the rest. The signature moment happens on your very first click: an intelligent A* pathfinder connects it to the network, reusing roads, carving around mountains, and bridging a river only when it’s genuinely worth it.
Existing road
0.15
strongly reused & merged
Grass
1
normal
Trees
1.8
passable but avoided
Water
7
becomes a bridge only when worth it
Rock / buildings
∞
impassable — roads carve around
Its citizens are people,
not statistics.
This is the differentiator. Other AI-made village sims move agents between buildings on schedules or dice rolls. PixelVille’s citizens have an actual mind — and it drives visible behaviour. Four parts, every one backed by real logic.
Click any person in the street and read their whole life — mood, job, savings, family, personality, and their latest memory.
Knowledge
Every villager holds a private set of buildings they've actually encountered. You grow up knowing only your own neighbourhood; new places spread by word of mouth in the street, by a PVTV broadcast, or by living nearby when a place opens.
You can't apply for a job you've never heard of — a new shop across town is genuinely undiscovered until word reaches people.
Memory
Each person keeps an episodic diary — fires, jackpots, weddings, promotions, business failures — every entry tagged with a feeling from −2 to +2. Strong memories linger for life; everyday ones fade after ~20 days.
A cautious soul who was burgled avoids that place for days. Strong stories travel as gossip and shift the listener's mood.
Personality
Five stable traits — social, caution, ambition, thrift, curiosity — derived deterministically from each villager's seed, so they're consistent and survive save/load.
The thrifty read the menu prices, the social bring friends along, the ambitious hunt better jobs, the curious try the unknown.
Decisions
When a villager picks where to spend the evening, PixelVille scores every option they know — by distance, price (weighted by thrift), how much they like the place, whether they fear it, whether it's new, and how busy it is.
The result is a chosen destination, not a random one. A broke week pushes them toward free fun — the park, the library.
Relationships & ambitions
Friendships form through street encounters, deepen with contact, and cool and disappear without it. Ambitions are real economic arcs — a shopkeeper saves startup capital, buys a plot, builds their shop and quits the day job to run it.
Click anyone, read their whole life
The villager inspector shows any person's age, mood, job and wage, savings, loans, closest friend, favourite haunt, and their last few memories. A golden ring follows whoever you're watching.
The town isn’t a spreadsheet.
It’s a cast of characters.
Click a villager for their whole story, or a building to meet everyone who lives and works there. Even a block of flats knows its residents by name, tracks the household mood, and remembers how many places its people have discovered.
A village that governs itself.
The settlement is politically alive. Every in-game year it holds a real election — and it’s not a menu. It’s a full week of banners over the streets and daily rallies before the town votes on its own life.
campaign week · one colour per candidate
Coloured banners are strung over the streets and daily rallies gather a crowd around a candidate on a soapbox — a full week before the town casts its ballots.
Four candidate personalities
Visionary
pure heart
Parks, schools, libraries, hospitals, culture, temples & churches.
Business
sharp mind
Shops, offices, factories, malls, banks, rail, the exchange, an airport.
Steady
dependable planner
Fire, police, schools, parks, buses, the post office, water towers.
Corrupt
smooth talker
Mostly a town hall for himself — and skims the treasury until auditors catch up.
A full campaign week
Every in-game year (28 days) brings a real election — preceded by a 7-day campaign: coloured banners strung over the streets, daily rallies with a crowd around a candidate on a soapbox, and promises tied to the town's actual needs.
Everyone votes on their own life
Each ballot is computed from that villager's quality of life, employment, town safety, active grievances and stable leanings. A good mayor is re-elected; a bad one is voted out; the corrupt are strongly rejected by people with a good life.
The mayor actually governs
Gets a town hall built, moves into the office, commutes there daily, flies a flag over the roof, collects taxes into a treasury, and spends it on the town's most pressing needs — a district that outgrows one fire station gets a second.
Grievances, riots & resignation
You set the tax policy — low, normal or high. Genuine unhappiness produces riots of the genuinely unhappy, and a disgraced mayor can be forced to resign, triggering a fresh election.
And when government fails — the village builds it itself.
The most on-brand mechanic: when town hall ignores a real need for days, residents pool their savings and build it themselves — fire stations and police first, then schools, homes, shops, parks. After a fire or a collapse, neighbours rush to the site, crews roll out, the street clears the rubble together, and the community rebuilds.
Anyone can generate a village.
AI has made it trivial to generate a village sim, and the market is flooded with them. Here’s the honest, defensible difference — line by line.
“Anyone can generate a village.
PixelVille generates a society.”
Depth under a calm surface.
The town looks peaceful, but underneath sit interacting systems — economy, crime, transport, weather, disasters, festivals — that produce emergent stories. All of it is implemented and live.
A real economy
- Wages, prices, household savings and 8 distinct lifestyles
- Business founding with startup capital & bank loans
- A 5-ticker stock market with its own exchange
- A casino (the house usually wins), the lottery, daily utility bills
- Businesses boom or quietly go under on real footfall
Crime & justice
- Unemployment breeds night-time burglars — banks & malls are prime targets
- Alarms ring; police cars race out with flashing lights
- A courthouse boosts convictions; offenders are jailed
- The 🛡️ safety stat feeds happiness and votes
Full transport
- Cars, buses and taxis on the road network
- Railways with running trains between stations
- Docks with boats & ferries, a fishing fleet
- Helicopters between pads, and an airport with planes that bring visitors
A living world
- Four seasons — blossoms, summer fireflies, autumn leaves, winter snow & frozen lakes
- Weather with rain streaks, storms, puddles, cloud shadows and rainbows
- Real nights — a lighting engine punches warm light from windows, lamps & headlights
- People respond: umbrellas out, the car taken sooner
Disasters that escalate
- Fires that leap to neighbours if left unattended
- Earthquakes that rupture gas lines into secondary fires
- Floods that wash out roads — road crews relay them
- Droughts that halve farm pay, and roaming tornadoes
- Tense but forgiving — a building is only ever lost to an escalation you could have watched
Festivals & ambient life
- A 28-day festive calendar — Easter, Diwali diyas, a full Christmas season with fireworks
- Village tiers, each a named celebration with fireworks
- Hikers, birds, dogs, fireflies, ducks, butterflies, tourists, beachgoers
- A night sky of hot-air balloons, shooting stars, a UFO and unexplained lights
Seven ways to get around — all with running vehicles
Four seasons reshape the whole world
Every event is rendered.
No off-screen bookkeeping for anything dramatic. Mountains with hiking trails, rivers and frozen lakes, a night lit from a thousand windows, and a Christmas tree raised in the middle of town.
Christmas in PixelVille
A 28-day festive calendar lights every building, raises a Christmas tree in town, fills the festive markets and launches fireworks nights — Easter and Diwali diyas get their turn too.
A SimCity-style HUD, drawn from scratch.
Everything you need to read the town at a glance — and every panel is procedural pixel art, not an asset pack.
Day, weekday and time; season, weather and tier chips; and live stats — 👥 population, 💼 employment, 💰 wealth, 🛡️ safety, 😊 happiness and 🗳️ leadership.
The building palette
Click a building or tool, then click the map — the tool stays armed. Every item, on hover, tells you what it will actually do for the town.
PVTV, RCI & the minimap
An on-screen village news channel with a scrolling ticker, the Residential / Commercial / Industrial demand meters, and a click-to-jump 128×128 minimap.
No engine. No libraries.
No image files.
~11,700 lines of hand-written vanilla JavaScript across 14 modules, deployed as a pure static site. Every sprite you’ve seen on this page — every building, villager and vehicle — is drawn procedurally in code.
Zero dependencies, zero image assets
No frameworks, no libraries, no image files. Every pixel-art sprite — every building, villager and vehicle — is generated procedurally in code. The whole thing is a folder of static files.
A from-scratch canvas renderer
A single HTML5 canvas with a cached ground layer, painter-sorted entities, soft cast shadows, and a day/night lighting engine that punches warm light pools out of the darkness.
Procedural WebAudio synth
Jingles and effect blips are synthesised on the fly with WebAudio — there isn't a single audio file in the project.
Intelligent A* auto-roads
Drop any building and a Dijkstra/A* search connects it to the network — reusing roads, carving around mountains, and only bridging rivers when a detour would be worse.
Every one of ~90 building types is a procedural sprite — no asset pack.
Go start a society.
Every claim on this page can be proven in the live build — drop a building, wait for the town to fill, then click a villager and read their memories.