URBAN SPRAWL

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

100K+ Entities @ 60 FPS
5,000+ Dynamic Lights
Procedural Cities
Scroll to explore

Features

Everything you need to build the city of your dreams

[+]

Procedural Generation

Cities generated using tensor field algorithms create organic road networks and realistic urban layouts. Every city is unique.

[#]

Sandbox Mode

Full creative control with zone painting, road drawing, and building placement. Shape your city exactly how you envision it.

[>]

Traffic Simulation

Nagel-Schreckenberg cellular automata model with intersection logic, accidents, and congestion visualization.

[$]

Economic Systems

RCI demand, land values, employment, and population dynamics create a living, breathing economy.

[*]

Day/Night Cycle

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.

[^]

Landmark Buildings

Iconic structures including stadiums, train stations, clock towers, and distinctive skyscrapers.

[~]

Weather System

Clear skies, fog, rain, and storms cycle dynamically. Wet surfaces glisten under street lamps.

[%]

Industrial Zones

Heavy industrial with smokestacks and storage tanks vs. city industrial with loading docks and glass facades. Each density tells a different story.

[=]

Realistic Roads

Procedural asphalt with 9 detail layers, crowned cross-sections for drainage, MUTCD-compliant markings with thermoplastic paint wear.

[<]

Profile-Extruded Vehicles

Smooth continuous body shapes via cross-section interpolation with automotive paint shader featuring metallic flake and clearcoat.

[!]

GPU-Driven Rendering

Hardware instancing, clustered shading, and 4 custom procedural material shaders deliver stunning visuals with exceptional performance.

Built Different

Technical excellence under the hood

</>

Rust + Bevy

Built on the Bevy ECS game engine with Rust's performance and safety guarantees. No garbage collection pauses, ever.

[=]

GPU Instancing

112-byte instance data enables rendering 100,000+ unique buildings with minimal draw calls.

(o)

Clustered Shading

16x9x24 cluster grid manages 5,000+ dynamic point lights efficiently for vibrant nighttime scenes.

{&}

Tensor Fields

Road networks generated using Chen et al.'s tensor field method for natural-looking street grids.

Architecture

Why Rust and Bevy instead of Unity or Unreal?

Traditional Engines

  • [GC] Garbage collection pauses
  • [OOP] Object inheritance hierarchies
  • [MT] Manual threading
  • [RT] Runtime overhead

Rust + Bevy ECS

  • [0] Zero-cost abstractions, no GC
  • [ECS] Data-oriented composition
  • [||] Automatic parallel systems
  • [N] Native speed, predictable perf

Entity Component System

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.

GPU-Driven Pipeline

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.

Endgame Vision

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.

Residential & Commercial

Population-based thresholds

250K pop6×6 zones250m+
500K pop7×7 zones300m+
750K pop8×8 zones350m+
1M pop9×9 zones400m+

Industrial Megacomplexes

Job-based thresholds

50K jobs10×10 zones
100K jobs12×12 zones
150K+ jobs14×14 zones

Development Roadmap

Track our progress toward v1.0

v0.5

Core Foundation

Procedural generation, sandbox mode, basic simulation, save/load system.

[x] Complete
v0.6

Visual Polish

Seasonal variations, weather system, landmarks, traffic simulation, color grading.

[x] Complete
v0.7

Visual Identity

Industrial sub-types, commercial details, smoke overhaul, outdoor props, terrain-aware parks, density-aware building visuals.

[x] Complete
v0.8

Road, Vehicle & Residential Realism

Procedural 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% Complete
v0.9

Audio & Polish

Ambient soundscape, UI sounds, screen-space reflections, quality presets, simulation balance pass.

Planned
v1.0

Release Candidate

Full feature set, tutorials, documentation, final polish.

Future

Get Urban Sprawl

Early access coming soon - sign up to be notified

> EARLY ACCESS COMING SOON <
WIN

Windows

Windows 10/11 (64-bit)

[ Coming Soon ]
LNX

Linux

Ubuntu 20.04+ / SteamOS

[ Coming Soon ]
MAC

macOS

macOS 12+ (Apple Silicon)

[ Coming Soon ]

System Requirements

OS: Windows 10/11, Linux, macOS 12+
GPU: Vulkan 1.2 compatible (GTX 1060 / RX 580 or better)
RAM: 8 GB minimum, 16 GB recommended
Storage: 500 MB available space
changelog.txt - Urban Sprawl
================================================================================
  _   _ ____  ____    _    _   _   ____  ____  ____      ___        ___     
 | | | |  _ \| __ )  / \  | \ | | / ___||  _ \|  _ \    / \ \      / / |    
 | | | | |_) |  _ \ / _ \ |  \| | \___ \| |_) | |_) |  / _ \ \ /\ / /| |    
 | |_| |  _ <| |_) / ___ \| |\  |  ___) |  __/|  _ <  / ___ \ 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
================================================================================