Steven Polley c3532ec051
All checks were successful
pedestrian-simulator / build (push) Successful in 51s
inittimezone
2026-01-11 18:27:07 -07:00
2026-01-11 17:16:59 -07:00
2026-01-11 17:16:59 -07:00
2026-01-11 17:56:54 -07:00
2026-01-11 18:27:07 -07:00
2026-01-11 17:16:59 -07:00
2026-01-11 17:16:59 -07:00
2026-01-11 17:16:59 -07:00
2026-01-12 00:05:56 +00:00
2026-01-11 17:16:59 -07:00

Pedestrian Simulator - Google Street View Walking Simulator

A unique step visualization application that breathes life into your daily fitness data. Pedestrian Simulator syncs with your Fitbit account and "walks" you through Google Street View based on the actual steps you take.

🌍 The Concept

Pedestrian Simulator transforms your real-world progress into a virtual journey. Whether you're walking across town or across the globe, the application converts your Fitbit step count into distance and animates a path through Google Street View, providing a first-person perspective of your progress.

Key Features

  • 🚀 Real-Time Fitbit Syncing: Automatically fetches your latest step data from Fitbit using OAuth 2.0.
  • 🚶 Smooth Walking Animation: High FPS (60+) animation transitions between Street View panoramas, creating a fluid walking experience.
  • 🎥 Natural Camera Movement: Realistic head movement simulation with:
    • Anchored direction-of-travel panning.
    • Subtle pitch (up/down) variations.
    • Gentle "breathing" motion when idle.
  • 🗺️ Multiple View Modes: Cycle between Street View, Satellite, and Map modes for different perspectives of your route.
  • 📂 Custom KML Support:
    • Upload your own KML routes (e.g., from Google My Maps).
    • Browse and download routes shared by others.
    • Upvote and downvote public routes to highlight the best journeys.
  • 💾 Persistent Progress: Your route progress, API keys, and settings are saved automatically.
  • 📡 Live Status Bar: Real-time tracking of steps taken, distance covered, and time until the next data sync.
  • 📍 Interactive Minimap: A dedicated, dark-themed minimap shows your exact position on the global route.

🛠️ Tech Stack

  • Backend: Go (Golang)
    • Custom Step Manager for logic and synchronization.
    • Robust KML parser and shared route registry.
    • Secure session management and Fitbit OAuth integration.
  • Frontend: Vanilla JavaScript (ES6+)
    • Modern CSS with dark mode and glassmorphism.
    • Google Maps JavaScript API for Street View and mapping.

🚀 Getting Started

1. Prerequisites

2. Environment Variables

Set up your Fitbit OAuth credentials:

export FITBIT_CLIENT_ID="your_client_id"
export FITBIT_CLIENT_SECRET="your_client_secret"

3. Installation & Usage

  1. Clone the repository:

    git clone https://code.stevenpolley.net/steven/pedestrian-simulator.git
    cd pedestrian-simulator
    
  2. Run the server:

    cd server
    go run .
    
  3. Launch the application: Open http://localhost:8080 in your browser.

  4. Configuration:

    • Log in with your Fitbit account.
    • Enter your Google Maps API Key when prompted.
    • Enter a start and destination, or browse for a shared KML route to begin!

🎮 Controls & Hotkeys

  • Space: Manually trigger a step sync from Fitbit.
  • M: Cycle through View Modes (Street View → Map → Satellite).
  • D: "Drain" pending steps (instantly animate through all remaining steps).
  • (Route Info): Click the route indicator in the header to reset your current trip and choose a new path.

📁 Project Structure

  • server/: Go backend handles API requests, authentication, and state management.
  • frontend/: Vanilla JS application, styles, and assets.
  • data/: Persistent storage for user sessions, route metadata, and uploaded KML files.

Go outside while staying inside. The future is now.

Description
Pedestrian Simulator is a unique step visualization app that simulates walking through Google Maps Street View based on your actual step count from fitbit. You can walk from and to anywhere you like in the world, or you can create, share and use public walking paths in street view. Be outside while you are inside. The future is now!
Readme GPL-3.0 460 KiB
Languages
JavaScript 45.8%
Go 31%
CSS 12.3%
HTML 10.8%
Dockerfile 0.1%