Inspiration
We are both enthusiastic rock climbers and noticed a gap in the market for apps to assist in training plans and suggesting suitable climbs. We made this to help fellow climbers.
What it does
It uses a reinforcement leaning algorithm to suggest climbs, predict how hard the user will find them, then when the user logs the climb, compare the prediction to the actual value and update the weightings.
Climbing centres can add routes to our system using the route setter tool, which are then shown to the users of the app, with the most suitable climbs recommended to the user, and then used to train our model.
How we built it
We used NodeJs for our backend, along with MySql for the main database and MongoDB to store data used for the visualisation. For the front end we used jQuery and the Bulma framework.
For our route setting component, we extended a framework called KonvaJS to suit our use case. We did this by adding vectors to a stack each time a user clicked on a point on the wall, and then drawing lines through that vectors in the stack to show the route. We then extended this to multiple routes, so that route setters can switch between highlighted routes on the wall by selecting the new route.
Our reinforcement learning algorithm works by a matrix of weightings for metric combinations, and then predicting different responses from a climber based on their previous responses to routes. We then compare our prediction to the climbers actual response, and update our matrix of weightings accordingly, using the formula we created (shown in the video).
Challenges we ran into
The main challenge was coming up with our own reinforcement leaning system, as we both had little experience in it. We initially thought we could use a deep reinforcement learning system using a neural network, but we then discovered this may not be suitable so opted for a alternative reinforcement learning algorithm that we designed ourselves.
Additionally, using both MySql and MongoDB at the same time was difficult to set up but was eventually worth it.
Accomplishments that we're proud of
We're proud to have built and deployed a full stack web app in under 24 hours, and the general user interface/design of the system.
What we learned
We've learned a lot about deep learning (even though in the end we realised it wasn't suitable for our use case), and also general reinforcement learning and the mathematics behind it.
What's next for ClimbBro
We would like to take some time to restructure some of the project to make it more maintainable and we would like to further develop our AI system by including more metrics and potentially using collaborative filtering as well as our current system to provide better suggestions.

Log in or sign up for Devpost to join the conversation.