Files
transit-sim/todo.md
Evan Scamehorn 92e59c0827
All checks were successful
Deploy to GitHub Pages / deploy (push) Has been skipped
dev roadmap
2025-12-16 21:47:38 -06:00

7.6 KiB

Project Development Roadmap


Phase 1: The "Power User" Planner (UX & Tooling)

Focus: Making the act of drawing routes feel responsive, intelligent, and precise.

1. Live "Ghost" Pathfinding (Live A*)

  • Concept: Instead of drawing a straight line from the last stop to your mouse, the system runs A* pathfinding in real-time (every ~100ms on mouse move).
  • Benefit: The user sees exactly where the bus/train will travel along the road network before they click.
  • Visuals: A semi-transparent "ghost" line snaps to the roads. If the mouse hovers over a building, it snaps to the nearest road node.
  • Feedback: A floating tooltip near the mouse shows the segment distance and estimated travel time instantly.

2. Mid-Line Modification (Splitting & Dragging)

  • Concept: The ability to modify a route without deleting the whole thing.
  • Interaction: Hovering over an existing line segment reveals a "ghost node" in the middle. Clicking and dragging this ghost node splits the segment and creates a new stop or waypoint.
  • Healing: Deleting a node in the middle of a route automatically reconnects the previous node to the next node using the shortest path.

3. Dynamic Walkshed Heatmaps (Isochrones)

  • Concept: When placing a stop, the map visualizes the "catchment area."
  • Implementation: Instead of a simple circle radius, use the road network to calculate how far a human can walk in 5 or 10 minutes.
  • Visuals: Color the roads/sidewalks green (2 min walk), yellow (5 min walk), and red (10 min walk) radiating from the cursor. This helps users place stops efficiently without overlapping coverage too much.

4. Route "Snapping" Logic

  • Magnetic Stops: If you drag a new route near an existing stop from a different line, it should snap to that stop. This creates a "Transfer Station" logic automatically.
  • Key Interest Points: Snap to high-density buildings (hospitals, schools, stadiums) to ensure maximum ridership.

Phase 2: Professional-Grade Ridership Modeling

Focus: moving from "distance-based" checks to legitimate transportation engineering logic.

5. The "Four-Step Model" (Simplified for Gaming) Real planners use this. You can implement a gamified version:

  • Generation: Every building generates specific trips based on its zoning data (e.g., A house generates "Home-to-Work" trips in AM, "Work-to-Home" in PM).
  • Distribution: Determine where they want to go. (e.g., A resident at coordinate A selects a job at coordinate B).
  • Mode Choice (The Utility Function): The most critical part. An agent calculates a score for every option:
    • Score (Car) = Traffic Time + Gas Cost + Parking annoyance.
    • Score (Transit) = Walk Time + Wait Time + Ride Time + Fare.
    • Logic: If Score(Transit) < Score(Car), the agent becomes a rider.
  • Assignment: The agent picks the specific route (Line A vs Line B) that gets them there fastest.

6. Transfer Penalties

  • In real life, people hate transferring.
  • Logic: Add a "penalty weight" to the pathfinding algorithm when switching lines. A direct route that takes 20 mins is preferred over a 15 min route that requires switching buses.

7. Peak vs. Off-Peak Dynamics

  • Time Scales: Simulate a 24-hour cycle.
  • AM Rush (7-9 AM): Massive flow from Residential -> Commercial/Industrial.
  • PM Rush (4-6 PM): Massive flow Commercial -> Residential.
  • Night: Low demand, mostly service industry or entertainment areas.
  • Gameplay: You must buy enough vehicles to handle the Peak, even if they sit idle at night.

8. Crowd Dynamics & Capacity

  • Station Overcrowding: If a station has too many waiting people, new passengers might leave (despawn) and drive instead (lowering your approval rating).
  • Vehicle Capacity: If a bus is full (40/40), it drives past the stop without picking anyone up. This forces the player to add more vehicles or upgrade to trains.

Phase 3: Topography & Environment

Focus: Utilizing your data pipeline to create a challenging 3D world.

9. Lidar-Based Terrain & Constraints

  • Visuals: The ground plane should not be flat. Use a heightmap to deform the mesh.
  • Vehicle Physics:
    • Buses: Can climb steep hills but slow down significantly.
    • Light Rail: Can climb moderate hills.
    • Heavy Rail/Subway: Cannot climb hills. Requires digging tunnels (very expensive) or building viaducts (expensive).
  • Cost Logic: Building a route over flat ground = $100/m. Building up a 30% grade = $500/m.

10. "Fog of War" or Discovery

  • If playing a career mode, don't show the detailed density map immediately. The player might need to "survey" areas or pay for traffic data to see where the demand actually is.

11. Environmental Impact

  • Noise Pollution: Residents get unhappy if you build noisy elevated trains right next to their bedroom windows (NIMBY mechanic).
  • Land Value: Good transit raises land value (gentrification simulation), which might change the density of buildings over time (Dynamic City Growth).

Phase 4: Economy & Management

Focus: The "Tycoon" aspect.

12. Operational Expenditure (OPEX)

  • It's not just about the cost to build the track (CAPEX).
  • Fuel/Electricity: Every mile a vehicle drives costs money.
  • Driver Wages: Every active vehicle costs money per hour.
  • Maintenance: Tracks and vehicles degrade over time and need repair costs.

13. Zone-Based Fares

  • Allow the player to set ticket prices.
  • Strategy: Low price = High Ridership / Low Revenue. High Price = Low Ridership / High Revenue.
  • Zones: Charge more for longer trips (Zone A to Zone B).

14. Loans and Bonds

  • Allow the player to go into debt to build a massive subway line, hoping the future revenue pays off the interest.

Phase 5: Visuals & "Juice"

Focus: Making the map feel alive.

15. Procedural City Decor

  • Even if not strictly simulated, use "Instanced Mesh" rendering to scatter generic trees in park zones and parked cars along roads. It adds scale and realism for cheap performance cost.

16. Dynamic Weather

  • Rain/Snow: Affects vehicle speed and visual atmosphere.
  • Visuals: Particle effects and changing the skybox fog density.

17. Data Visualization Filters (The "Lens" system)

  • Toggleable views:
    • Traffic View: Roads turn red where congestion is high.
    • Satisfaction View: Buildings turn red where residents are unhappy with transit.
    • Profit View: Lines turn green/red based on profitability.

18. Day/Night Cycle with Lighting

  • As the sun sets, turn on point lights at street intersections and emissive textures on building windows. This makes the city feel like a living organism.

Phase 6: Tech Stack & System Architecture

19. Multi-threading (Web Workers)

  • Issue: Running pathfinding for 1,000 agents or calculating complex ridership models will freeze the UI thread.
  • Solution: Move the simulation logic (Movement, Pathfinding, Economy) to a Web Worker. The Main thread just renders the result.

20. Spatial Hashing / Quadtrees

  • Optimization: When checking "Who is near this stop?", don't loop through 10,000 buildings. Use a Quadtree to instantly find the 50 buildings in range. This is essential for the "Live Walkshed" feature.

21. Real-World Data Import (GTFS)

  • Feature: Allow users to upload a GTFS.zip file (General Transit Feed Specification). This is the standard format used by Google Maps.
  • Result: You could load the actual bus routes and schedules of Madison, WI instantly as a starting point for the player to improve.