Procedural City Simulator
Build sprawling metropolises with realistic traffic, dynamic economies, and stunning day/night cycles. Powered by Rust & Bevy for buttery-smooth performance with 100,000+ rendered entities.
LAST UPDATED: MARCH 26, 2026
Everything you need to build the city of your dreams
Cities generated using tensor field algorithms create organic road networks and realistic urban layouts. Every city is unique.
Full creative control with zone painting, road drawing, and building placement. Shape your city exactly how you envision it.
Nagel-Schreckenberg cellular automata model with intersection logic, accidents, and congestion visualization.
RCI demand, land values, employment, and population dynamics create a living, breathing economy.
Dynamic sun lighting with seasonal variations and weather effects. Watch golden hour wash over your skyline as windows light up one by one into the night.
Iconic structures including stadiums, train stations, clock towers, and distinctive skyscrapers.
Clear skies, fog, rain, and storms cycle dynamically. Wet surfaces glisten under street lamps.
Heavy industrial with smokestacks and storage tanks vs. city industrial with loading docks and glass facades. Each density tells a different story.
Procedural asphalt with 9 detail layers, crowned cross-sections for drainage, MUTCD-compliant markings with thermoplastic paint wear.
Smooth continuous body shapes via cross-section interpolation with automotive paint shader featuring metallic flake and clearcoat.
Hardware instancing, clustered shading, and 4 custom procedural material shaders deliver stunning visuals with exceptional performance.
Screenshots from the city
Technical excellence under the hood
Built on the Bevy ECS game engine with Rust's performance and safety guarantees. No garbage collection pauses, ever.
112-byte instance data enables rendering 100,000+ unique buildings with minimal draw calls.
16x9x24 cluster grid manages 5,000+ dynamic point lights efficiently for vibrant nighttime scenes.
Road networks generated using Chen et al.'s tensor field method for natural-looking street grids.
Why Rust and Bevy instead of Unity or Unreal?
All game logic lives in systems that query entities with specific components. This data-oriented design enables cache-friendly iteration over 100,000+ buildings without virtual dispatch or scattered heap allocations.
Rendering offloads work to the GPU: compute shader culling rejects ~70% of geometry before draw, clustered shading manages thousands of lights, and indirect draw minimizes CPU-GPU sync. The simulation runs at a fixed 20 Hz tick rate, decoupled from rendering for deterministic updates.
Megastructures emerge as your city grows
The ultimate goal: massive procedural megastructures that emerge organically when demand and city scale reach critical thresholds. True endgame content for sprawling metropolises.
Population-based thresholds
| 250K pop | 6×6 zones | 250m+ |
| 500K pop | 7×7 zones | 300m+ |
| 750K pop | 8×8 zones | 350m+ |
| 1M pop | 9×9 zones | 400m+ |
Job-based thresholds
| 50K jobs | 10×10 zones |
| 100K jobs | 12×12 zones |
| 150K+ jobs | 14×14 zones |
Track our progress toward v1.0
Procedural generation, sandbox mode, basic simulation, save/load system.
[x] CompleteSeasonal variations, weather system, landmarks, traffic simulation, color grading.
[x] CompleteIndustrial sub-types, commercial details, smoke overhaul, outdoor props, terrain-aware parks, density-aware building visuals.
[x] CompleteProcedural asphalt/sidewalk/marking shaders, profile-extruded vehicles (12 types incl. semi-trucks & motorcycles), road crown geometry, vehicle paint materials, bus variants, pedestrian visual overhaul (60M+ unique combos), house variety (6 styles, garages, yards), high-density residential crowns, construction cranes, first-person camera mode.
85% CompleteAmbient soundscape, UI sounds, screen-space reflections, quality presets, simulation balance pass.
PlannedFull feature set, tutorials, documentation, final polish.
FutureEarly access coming soon - sign up to be notified
Windows 10/11 (64-bit)
Ubuntu 20.04+ / SteamOS
macOS 12+ (Apple Silicon)
================================================================================ _ _ ____ ____ _ _ _ ____ ____ ____ ___ ___ | | | | _ \| __ ) / \ | \ | | / ___|| _ \| _ \ / \ \ / / | | | | | |_) | _ \ / _ \ | \| | \___ \| |_) | |_) | / _ \ \ /\ / /| | | |_| | _ <| |_) / ___ \| |\ | ___) | __/| _ < / ___ \ V V / | |___ \___/|_| \_\____/_/ \_\_| \_| |____/|_| |_| \_\/_/ \_\_/\_/ |_____| ================================================================================ > CHANGELOG - All notable changes to Urban Sprawl -------------------------------------------------------------------------------- [v0.9.0] - March 2026 (IN PROGRESS) -------------------------------------------------------------------------------- >> AAA Terrain Refactor [+] Multi-Layer Heightfield - 5 noise layers (Continental, Ridge, Hills, Detail, Erosion) with geographic features [+] 6 Map Layouts - Flat, Rolling Hills, Coastal Shore, River Valley, Island, Plateaus with per-layout noise/water configs [+] Auto-Textured Terrain Shader - Height+slope blending: grass, dirt, rock, gravel with underwater darkening [+] Water Overhaul - Gerstner wave ocean planes + river strip meshes, forward-rendered alpha blending [+] HeightfieldCache - Pre-sampled 501x501 height grid, O(1) bilinear lookups replacing ~27 Perlin evaluations per query [+] Spatial-Indexed Terrain Mods - 50m-cell HashMap for O(nearby) region lookups instead of O(all) per vertex [*] Terrain resolution 1000 to 500 (4x fewer vertices, no quality loss) [*] Fixed WGSL smoothstep UB causing brown terrain on all maps [*] Fixed water shader deferred pipeline crash (AlphaMode::Blend) [*] Fixed HeightfieldCache/config desync crash on map selection [-] Deleted entire src/procgen/ directory (14 files) - sandbox only [-] Removed GameMode::Procedural - consolidated to sandbox mode -------------------------------------------------------------------------------- [v0.8.0] - March 2026 [COMPLETE] -------------------------------------------------------------------------------- >> Road & Surface Shaders [+] Procedural Asphalt Shader - 9 detail layers (aggregate, cracks, fatigue, oil stains, tire tracks, patches, edge staining, manholes) [+] Sidewalk Shader - Concrete panels with joints, grain, staining [+] Road Marking Shader - Thermoplastic paint with glass bead sparkle, wear/fading, edge chipping, MUTCD-compliant proportions [+] Road Crown Geometry - 5-vertex parabolic cross-section for drainage, per-road-type crown heights >> Vehicle Overhaul [+] Profile-Extruded Bodies - 7-10 cross-section profiles per type, cubic smoothstep interpolation for smooth continuous meshes [+] 12 Vehicle Types - Sedan, SUV, Truck, Van, Bus, SportsCar, Hatchback, SemiTruck (16m tractor-trailer), Motorcycle [+] Vehicle Paint Shader - Metallic flake, clearcoat Fresnel, orange peel texture, dirt/grime, wetness [+] Semi-Trucks - Conventional-nose cab with exhaust stacks, fuel tanks, air fairing, 5th wheel; dry van trailer with corrugated ribs [+] Motorcycles - Narrow body with rider figure, 30% group formation [+] Bus Variants - CityTransit, Express, SchoolBus, Shuttle with unique color palettes and shared visual pipeline [+] Vehicle Variant System - Multiple mesh variants per shape type >> Pedestrian Visual Overhaul [+] Articulated Humanoids - Pivot+child arm/leg joints, shoulder caps, cylinder necks, cuboid shoes [+] Hair System - 4 styles (Bald/Short/Medium/Long), 10 colors [+] 60M+ Unique Combos - 20 clothing, 10 pants, 8 skin, 10 hair, 6 shoe colors + detail accessories (glasses, scarf, watch, belt) [+] Walk Animation - Hip sway, shoulder counter-rotation, head bob, natural arm rest angles >> Residential Variety [+] 6 House Styles - Colonial, Craftsman, Victorian, Modern, Mediterranean, FarmHouse with style-specific details [+] 2 New Roof Shapes - Gambrel and CrossGable [+] Front-Facing Garages - Garage doors and driveways [+] Suburban Yards - Fences, mailboxes, garden beds, driveways [+] High-Density Crowns - Art Deco, Dome, Peaked, Spire, Modern Angled, Pinnacle corners with style-aware probability dispatch [+] Residential Styles - PreWar, MidCentury, Modern facade biasing >> Camera & Construction [+] First-Person Camera - Walk through your city at street level (F1) [+] Construction Cranes - Climbing cranes for 120m+ buildings, animated jib rotation, ground cranes with mast scaling -------------------------------------------------------------------------------- [v0.7.0] - February 2026 [COMPLETE] -------------------------------------------------------------------------------- >> Industrial Sub-Type Differentiation (8-Phase Overhaul) [+] 6 Industrial Sub-Types - Warehouse, Factory, Refinery, Workshop, Logistics, PowerUtility [+] Sub-Type Building Shapes - SawTooth, MultiWing, BarrelVault, FlatWarehouse, MonitorRoof + density-aware selection [+] Expanded Facades - 8 color variants per type, sub-type biased [+] Building-Mounted Props - Ducts, staircases, awnings, dishes, roof parapets with probability-tuple dispatch [+] Outdoor Props Plugin - Shipping containers (stackable, 6 colors), dumpsters, chain-link fencing, transformers, material piles [+] Sub-Type Night Lighting - 6 unique profiles (floods, security, dock, strip, bollard, stack warning beacons) >> UI/UX Improvements [+] Zoom to Cursor - Mouse wheel zoom centers on cursor position [+] Land Value Heatmap - Toggle with L key - Red (low) -> Yellow (medium) -> Green (high) gradient - Grid-based sampling with inverse distance weighting [+] Tool Hotkey Indicators - Shortcuts shown on toolbar buttons - Zone tools (R/C/I), road types (1-4), actions (X/V) [+] Service Coverage Overlay - Better visibility - Bright edge ring around coverage circles - Doubled service radii for better gameplay [+] Building Info Panel - Height, floors, occupancy display >> Smoke & Particle Effects Modernization [+] Multi-Plane Billboard Smoke - 3 intersecting quads per emitter - Star pattern (60° apart) creates volumetric look from any angle - Camera billboard rotation, 9 shared materials for GPU batching [+] Three Smoke Types - Visual presets per emitter context - DarkIndustrial: thick dark plumes, slow rise, heavy turbulence - LightSteam: white/translucent, fast rise, quick dissipation - ChimneySoot: medium gray, gentle rise (used on service chimneys) [+] Wind Integration - WindState resource driven by weather - Plumes bend with wind (anchored at base, displaced at top) - Direction drifts slowly with gust noise modulation [+] Enhanced WGSL Shader - Complete rewrite - Configurable-octave FBM, curl noise turbulence (swirls) - Bottom-to-top color gradient, per-plane phase offset - World position seeding for per-emitter variation [+] 4-Tier Smoke LOD - Zoom-based detail scaling - Full/Medium/Low/Hidden controlling planes, octaves, turbulence - Visibility toggling (no entity churn) [+] Wind Drift - Physical downwind displacement + figure-8 sway - Per-type drift factors (ThinWisp 1.5x to ThickBillow 0.5x) [+] Weather Modifiers - Foggy/Rainy/Stormy affect intensity, spread, and rise speed [+] Night Underglow - Bottom 30% tinted warm red-orange at night [+] Time-of-Day Tinting - Dawn blue-pink, sunset golden [+] Two New Smoke Types - ThinWisp and ThickBillow >> Commercial Architectural Details [+] 7 Detail Types - Parapets, mechanical penthouse, decorative cornice, stepped crown, spire, roof terrace, facade ledges [+] Facade-Aware Styling - 15 probability combos (5 facades x 3 densities) via probability-tuple dispatch [+] Height-Gated Details - Crowns (>20m), spires (>30m), penthouses (>8m), ledges (>12m, non-Glass) [+] 22 Shared Materials - Concrete, stone, metallic, accent pools >> Bug Fixes [*] Weather auto-cycling disabled by default (was causing rain) [*] Scaffolding planks now parallel to building faces (not perpendicular) [*] Park zone stakes despawn after park completion [*] Parks sample terrain elevation instead of spawning flat at y=0 [*] Multi-cell parks fill gap tiles within bounding box -------------------------------------------------------------------------------- [v0.6.0] - January 2026 [COMPLETE] -------------------------------------------------------------------------------- >> Environment & Atmosphere [+] Seasonal Variations - Spring, Summer, Fall, Winter - Dynamic foliage colors and weather probabilities - Keyboard: 5-8 for direct season, N to cycle [+] Zone Color Identities - Distinct R/C/I palettes - Residential: warm tones (terracotta, cream) - Commercial: cool tones (corporate blue, steel) - Industrial: muted tones (aged brick, rust) [+] Color Grading System - 6 LUT presets (G to cycle) >> Buildings & Architecture [+] Complete Landmark Set - Clock towers, churches, stadium, train stations - 4 iconic skyscraper styles (spire, pyramid, dome, crown) [+] Building Details - Interior mapping for windows (3D room illusion) - Balconies, storefronts, awnings, neon signs - Rooftop details (AC units, water towers, antennas) [+] NYC Firehouse & Art Deco Hospital models >> Traffic & Vehicles [+] Complete Traffic Simulation - Nagel-Schreckenberg cellular automata model - Intersection priority, accidents, congestion (T key) [+] 7 Vehicle Shapes - Sedan, SUV, Truck, Van, Bus, etc. - Headlights, taillights, parking behavior >> Simulation [+] Economic System - Zone demand, land values, employment [+] Population System - Daily schedules, needs, happiness [+] Building Lifecycle - Construction, aging, demolition >> Rendering [+] PBR+ Materials - Roughness, metallic, parallax mapping [+] Post-Processing - Tilt-shift, grain, SSAO, bloom [+] Celestial Bodies - Moon and stars for night sky -------------------------------------------------------------------------------- [v0.5.0] - December 2025 [COMPLETE] -------------------------------------------------------------------------------- >> Core Features [+] Procedural city generation with tensor fields [+] Sandbox mode with zone painting [+] Day/night cycle with weather system [+] Save/load system [+] GPU-driven rendering with instancing [+] Clustered shading for 5,000+ lights [+] Rain and wet surface effects ================================================================================ > EOF - Press [X] or ESC to close ================================================================================