Inspiration
I've enjoyed walking around my city for many years, and wanted a way to uniquely capture each of these walks.
What it does
Takes as input a GPX file (GPS Exchange Format), which could come from Strava, Garmin, or other popular route-tracking apps and sites. Also can provide prompt customization (tone, focus, and length). The app produces a journal entry describing the walk taken, an image based on the sites seen during the walk, and map representation of the route.
How we built it
It started quite simple as a python script with some hard-coded coordinates and an API call to Gemini to produce a summary of the walk. It expanded to generate a map via the folium library, and then also an image based on the walk summary. Then this was all converted/injected into HTML to give a viewable output. Then GPX format support was added, and finally support for inputs as parameters to allow users to provide their own GPX and prompt customization without needing to modify the script.
Challenges we ran into
A lot time was spent on prompt engineering to get a desirable output. It was tricky to get Gemini to generate an image (this is commonly only available to paid users). First tried using the coordinates directly but that didn't produce a useful output. Using the journal entry that Gemini produced as input to then generate an image was a lot better.
Accomplishments that we're proud of
Adapting the tool to accept GPX greatly increases the practical use, as otherwise it would be very tricky for a general user to use (as they'd have to build a set of coordinates to my custom specifications).
What we learned
Using Gemini APIs, Folium, integrating with Github Pages
What's next for Stroll Story
I focused a lot more time on getting a useful AI proof-of-concept rather than user-convenience. Ideally this would be hosted on a server where a user could simply upload their GPX data, or as an app that collects its own GPX data and provides the user with their Stroll Story at the end of their walk.
Log in or sign up for Devpost to join the conversation.