Inspiration
We wanted to create a unique way for runners and bikers to explore their surroundings while making their workouts more engaging. Often, traditional route-planning apps focus on efficiency rather than creativity. With Trace, we sought to change that by allowing users to create their own unique paths. Whether it’s drawing a heart, spelling out a word, or making an abstract design, we translate that into a real, navigable route. Our goal was to make running and biking more interactive, fun, and personalized.
What it does
Trace allows users to draw any shape they desire and it generates a running or biking path that follows the drawn shape. Using different algorithms, it seamlessly maps the path onto real-world streets and walkways, guiding users with step-by-step navigation. Users can also store and revisit their custom routes, making it easy to redo favorite paths or challenge themselves to new creative designs.
How we built it
We built Trace using React Native to ensure a smooth and efficient development process across platforms. Google Maps APIs handle mapping and navigation, while Firebase serves as our backend to store user data and their created paths.
To optimize user-drawn paths and convert them into real-world routes, we implemented the Ramer-Douglas-Peucker algorithm. This algorithm helps simplify complex paths by reducing the number of points while still maintaining the integrity of the original shape. By applying this technique, we ensure that the generated routes are both accurate and efficient for users to follow. Combining this with Google Maps APIs allowed us to create a seamless and responsive experience for generating custom paths in just seconds.
Challenges we ran into
One of the biggest challenges we faced was translating freeform user drawings into viable street-based routes while preserving the original shape. Ensuring that the generated paths were runnable or bikeable, while still resembling the intended design, required fine-tuning our algorithms. Additionally, integrating multiple APIs smoothly and optimizing response times to deliver near-instant route generation was a technical hurdle we had to overcome.
Accomplishments that we're proud of
We’re proud of how quickly Trace can generate paths from user-drawn shapes and accurately map them onto real-world streets. The integration of different parts of Google Maps APIs significantly improved path efficiency without compromising design accuracy. We also take pride in the intuitive UI that makes it easy for users to draw and navigate their custom routes. Seeing our vision come to life and knowing that it can make running and biking more engaging is an accomplishment in itself.
What we learned
Throughout the development of Trace, we gained valuable experience in working with mapping APIs and optimizing route-generation algorithms. We deepened our understanding of geospatial data processing and learned how to balance user creativity with real-world constraints. Additionally, we strengthened our problem-solving skills when facing challenges related to performance optimization and algorithmic accuracy.
What's next for Trace
We envision Trace evolving into a social platform where users can share their custom paths, post their runs or bike rides, and interact with each other. Adding social features such as commenting and supporting fellow users will help build a community around Trace, encouraging people to stay active and engaged. We also plan to enhance the app’s path-generation capabilities, refine navigation instructions, and explore additional integrations, such as fitness tracking apps, to make Trace an essential tool for runners and bikers everywhere.
Built With
- apple-maps-api
- axios
- expo.io
- google-directions
- javascript
- node.js
- react-native
Log in or sign up for Devpost to join the conversation.