Under the Hood of Runpact: 3D Visualization and What's Next
As the lead developer behind Runpact, I wanted to pull back the curtain and share a bit about the technology and philosophy that powers our platform. We're building Runpact to be a powerful, data-driven tool for ultra runners, and I'm particularly excited to share our latest feature with you.
What We've Built So Far
Our initial public release is focused on delivering a core set of features that provide immediate value to any ultra runner.
Core Functionality:
-
Race Intelligence: Forget simple GPX viewers. Upload a course file and get a deep analytical breakdown. We provide an interactive 2D map using Leaflet, an elevation profile powered by Chart.js, and key metrics like total distance and elevation gain/loss. Our FastAPI backend processes these files to extract waypoints and calculate segment-by-segment statistics.
-
AI-Powered Training Plans: This is the heart of Runpact. We've implemented a sophisticated rule-based system based on proven training principles from years of ultra running experience. This allows us to generate personalized, phase-based training plans that consider your target race, training history, and available time to get you to the starting line in peak condition. The entire system is built to be extensible, and we plan to allow for deep user customization in the future.
-
Strava Integration: Seamlessly connect your Strava account to import your activities. This is crucial for keeping your training log up-to-date and is a key data source for our machine learning features.
Our Latest Feature: 3D Course Visualization
I'm incredibly proud to announce our newest feature, and one that I believe truly sets Runpact apart: fully interactive 3D course viewing.
Using THREE.js, we've built a powerful renderer that transforms any GPX file into a stunning 3D landscape. You can explore the terrain, get a real feel for the climbs and descents, and even switch between satellite and terrain views.
Technical Deep Dive
This feature was a significant engineering challenge. Here's what went into building it:
- THREE.js Renderer: We leveraged the power of THREE.js to create a WebGL-based 3D environment that runs smoothly in your browser.
- Mapbox Integration: We fetch satellite imagery tiles from Mapbox and drape them over the 3D terrain, giving you a photorealistic view of the course.
- Elevation Data Processing: We parse the GPX file to extract elevation data for each waypoint and construct a 3D mesh that accurately represents the terrain.
- Camera Controls: You can orbit around the course, zoom in and out, and explore from any angle using intuitive mouse/touch controls.
- Performance Optimization: We've implemented level-of-detail (LOD) techniques and efficient texture caching to ensure smooth performance even on large courses.
Why 3D Visualization Matters
When you're preparing for an ultra, understanding the terrain is crucial. Traditional elevation profiles give you a 2D view, but they don't capture the full picture. With 3D visualization, you can:
- Visualize the Course Layout: See how the trail winds through valleys and over ridges.
- Identify Key Sections: Spot technical climbs or runnable descents that might not be obvious from a simple elevation chart.
- Plan Your Pacing: Get a better sense of the overall terrain difficulty and plan your race strategy accordingly.
What's Next
We have an ambitious roadmap ahead of us. Here are some of the features we're working on:
Machine Learning for Race Prediction
We're training ML models on thousands of race results to provide personalized finish time predictions based on your training history, the course profile, and environmental factors. This will go beyond simple calculators and give you data-driven insights into your potential performance.
Advanced Pacing Strategies
We're developing intelligent pacing tools that will analyze the course profile and suggest optimal pacing strategies for different sections of the race. This will help you avoid going out too hard and ensure you have energy left for the finish.
Community Features
We want Runpact to be more than just a training tool – we want it to be a community hub for ultra runners. We're planning features like:
- Course Reviews: Share your experiences and insights about different races.
- Training Log Sharing: Connect with other runners and learn from their training approaches.
- Race Meetups: Find other runners who are training for the same event.
Mobile App
While our web platform is optimized for mobile browsers, we're exploring the possibility of native iOS and Android apps to provide an even better mobile experience.
Building in Public
I'm a strong believer in building in public and iterating based on user feedback. If you have ideas, suggestions, or feature requests, please reach out. You can find me on social media or drop us a message through our contact page.
Runpact is built by ultra runners, for ultra runners. We're committed to creating the best possible training and race preparation platform, and we're just getting started.
Happy trails! 🏃♂️⛰️