March 2025 Update
As we March towards the 0.4
release (only a ~week or so away 🤞), we bring you another update!
Similar to the previous one, most of the things outlined are UI-focused, as the code that produces the 3D models is well-tested and runs fast (enough).
As we are still missing a lot of things that separate a demo for users only (0.3
) and a beta release for the gyms (0.4
), we have been laser focused on those, and have been rather successful – the next update will likely be out in a week, unless things go terribly wrong.
Famous last words?
App
Landing Page
We’ve finally implemented a landing page!
For release 0.4
, we finally have a landing page that people can view.
As mentioned, this marks 0.4
as a de-facto beta release, as we clearly outline the functionality, value propositions, price, and other things you’d expect from an actual product.
While improvements could certainly be made, we’re satisfied with the current state and will continue to improve and revisit the landing page as we add more features and discover how to center divs.



Proposal UI
We’ve been tinkering with and have landed on a UI for reviewing proposals.
As the entire idea behind Climbuddy is to be to take pictures and update the current routes with the new ones, we need a way to show the user the new routes that were found, as well as the old routes that were removed. For that, we take a two-step approach:
- Remove phase – look at/modify removed routes + objects, and
- Add phase – look at/modify added routes + objects
While the spirit of everything happens automatically is preserved (you can just click next and publish), we wanted to make sure that if a mistake like missed hold or two routes merged into one happens, there is a way to remedy it without having to start over again. This is will be especially useful in the early version, as mistakes are very likely.
Furthermore, as each route has certain metadata (such as grades/circuits – more on those in the next section), we wanted to have a systematic way to add all of those without skipping over/forgetting routes, and the add phase does just that.


Grade Systems & Circuits
Bouldering gyms around the world have different systems to keep track of routes and their difficulty. The most common ones are either some form of a grade system, such as Fontainebleau (6a, 8a+,…), the V-scale (V3, V12,…) or plain-old numbers (1, 9,…). Besides grades, certain gyms also have circuits/tapes of certain colors, which broadly separate ranges of grades and can be easier to think about.
To give each gym the freedom to choose, we’ve implemented both systems in a way that allows the gym to use one, both, or even neither, depending on their needs.


UI polish
Oh, and we’ve also been polishing the UI, as seen in the images below. This includes better colors + visibility for different UI states (hiding other routes when viewing one), QR code for gym owners to print for the climbers, better overlay for loading/errors and more!



Tech
Similar to previous update, most of the effort was spent on the UI/infrastructure side of the project. We do have a few things to share, though…
We’re Fast (enough)!
As we focus on stability of the code that generates our models, we benchmarked the speed of generating new routes from an average input (~100 images of ~20 boulders) and they are fully generated (along with a diff compared to the previous state) in approximately 20 minutes!
While there are still many optimizations that can be made, we think this is a great baseline to start optimizing from. In an ideal world, a single rebuild would take at most a few minutes (and we might get there some day), but we’re more then happy with the current duration.
Open Sourcing our models
Due to the goodness of our hearts AGPL-3.0 license that the detection/classification models we use fall under, we make all of our trained models available upon request.
If you are interested in obtaining them to use for any reason in compliance with the license, send us an email and we’ll provide them.
Team Climbuddy