When resetting my climbing wall, I found that I often wanted something to tell me where to put a jug so I get a nice even spread. So I've made this.
This tool aims to help one analyze any particular climbing board set, provide suggestions on new hold positions/direction/type, and highlight areas of interest.
- Make sure you have at least java version 17 installed (https://www.oracle.com/uk/java/technologies/downloads/)
- Download the latest .zip release (from here: https://github.com/Precastwig/BoardAnalyzer/releases) and unpack
- Run /bin/BoardAnalyzer.bat on windows
Since the program is changing quite often, I won't go into details but the jist is:
- Create a new board (by clicking the
new board
button) - Give it a name, and select an image of your board.
- Drag the corners of the black squar to the corners of the board in the image
- Input your boards physical dimensions (corresponding to the corners you clicked)
- Click on the image to add holds
- Use the various analysis/generation tools
If you think this program could be improved, feel free to open a PR.
- BoardPanel:
- Make the hotkeys actually work
- Change hold creation input to be "better"
- Drag on hold -> change location
- Drag on "tip" of direction -> change size/direction
- ????
- Add ability to select other holds while one is selected
- BoardSettings:
- Add "set to current" button to type/direction/size tabs
- Hold selection:
- Add "discard changes" button - hotkey to esc
- UI:
- Dissallow features until board is fully set up (ie. don't let people use any analysis tools until all corners added and board size has been input)
- Show errors/warnings in red on info pane, like when saving a hold that's invalid
- Show progress bar during saving and do on a seperate thread
- Remove weird colour mixing and just display single colour (probably should be done after the hold type overhaul)
- Major features:
- Hold type overhaul
- Make hold types have one MAJOR/MAIN type with any number of sub-types
- Add the "wood/plastic" sub-type
- Force every hold to have a MAJOR/MAIN type
- Add colour choosing to settings
- Add Suggestions for holds to REMOVE
- Allow dragging hold into ellipses, and fix underlying analysis to work with ellipses (tricksy, lots of math involved)
- Add route creation/saving (Not really the point of this app)
- Add hold suggestion during route creation
- Add auto finish climb feature
- Train AI on moonboard problems
- Auto hold discovery (I will probably never do this)
- Hold type overhaul
This would be more useful to others as a website, but I don't want the faff of hosting a website, and I hate HTML/CSS/Javascript. This project is mainly for my own use, if others find it useful too then that'd be nice.
C++ is fun, until you want to make rapid progress with pre-made GUI elements, then you're faffing around with various garbage, so that's a no-go.
Java has good, easy to produce, GUI design built into Swing, so java it is.
Why not an smartphone app? Because I don't really know what I'm doing with android development, and I don't want to learn.