UKC

Virtual Route Setter

New Topic
This topic has been archived, and won't accept reply postings.
chrispriscott 08 Dec 2008
Hi Guys,

I am currently working on my dissertation project for my Third Year at Bristol University. The project is a virtual route setter for climbing and bouldering centres. I will be undertaking the project in the 3d modeling package Maya. The basic premise of this project is for my program to be given a set number of inputs such as difficulty of climb, no. of overhangs, start and finish point etc... I will then generate a new random route on a wall following these constraints and of course the route will be with human constraint aswell (hopefully some clever maths going on behind the scenes calculating pyhsically possible body movement and plotting the holds accordingly).

As a climber myself I have experienced frustration in climbing the same old routes over and over so my designing this program I would hope to decrease the time needed to re-set routes as they could be constructed straight off with the confidence that they will be challenging and achievable.

However, even though I am a regular climber I don't really know much about route setting. I've contacted my local centres who are still to get back to me.
I was wondering whether you guys could let me know what you think of the project idea, possible pit falls, anybody in particular I should get in touch with etc..

Constructive criticism fully welcome!!

Thanks everyone,

Chris
 snoop6060 08 Dec 2008
In reply to chrispriscott:

I've done some computer modelling myself, but not 3d stuff, more simulations etc.

I cannot see how you can model climbing movement accurately using a mathmatical model. Human movement is so intricate, hence why you need someone setting routes who can try all the moves as they go.

I would be intrigued to climb a route purely set by your program tho. Perhaps you can blag a climbing wall to set one as part of your evaluation? ALthough Bristol is miles away!
philip king 08 Dec 2008
In reply to chrispriscott:

Interesting idea, although my initial reaction is that there are too many variables to map accurately.

By stating you want to look into difficulty, then grip size etc come into play, and this to me seems simply too complex to model.

However, by modeling different body lengths, you could design various different routes based on ape index etc. By inputing how many grips you want to use on the route of any given length, then you could map out the various routes available based on reach. Thus eliminating the need to concentrate on actual grip size.
 jkarran 08 Dec 2008
In reply to chrispriscott:

Good luck, unless you have a very rapid way of inputting accurate data on hold shape/quality and very accurate data on the wall itself I think you'll get some pretty erattic output from your system.

Think of the difference between two near identical looking slopers, one useless the other ok then try to quantify that difference in a way your computer can work with. Let's assume you can (I bet you can't repeatably). Now consider the actual route is assembled by a man following your computr output, maybe his nearest T-nut is 10cm out from the ideal and the nearest foothold T-nut is a little out too and he bolts the sloper on tilted 10deg from your calculated ideal... your 6a just became 8a.

Seriously, good luck but for the work you'll put in (ok if it's a purely accademic exercise) and the work needed to input all the real world constraints imposed by a real wall and real holds I don't think you'll get worthwhile results out. Prove me wrong

Maybe start small on a cellar style board with a regular grid of holes, do some testing and refine from there.

jk
chrispriscott 08 Dec 2008
In reply to jkarran:

Thanks for the reply! I fully see your point with the slopers example. I have been purposefully over ambitious with my aim in able to receive such responses as yours so I can narrow my final aim to be precise and hopefully achievable. It seems to be a common response that modelling grip difficulty is going to be a hard one. Maybe I could aim the program at new climbing centres/walls to be built so placement would no longer be an issue. The program would then know exactly how there walls were built and place holds and routes accurately. However this still leaves the problem of measuring grip difficulty... I might have to reduce my toolkit for this project and only use a selection of holds where I can write an algorithm for each hold determining difficulty based on rotation of hold in world space, position relative to other holds and a ranking systen based on general hold difficulty.

Again, thanks for the responses everyone. I really appreciate it.
 jkarran 08 Dec 2008
In reply to chrispriscott:

It wouldn't be too difficult for a small ish set of holds to mark on a 'top' then score (0-9 maybe) the quality/usability of the hold from various angles, say 0, 45, 90, 135deg...

A small ish bobbly 'font' jug for example might score 6,5,2,2,2,2,2,5 meaning its ok (6) to pull down on, slightly worse off axis (5) and pretty poor as a sidepull/undercling (2)

A big multi knobbled jug thing might get 9,9,9,9,9,9,9,9

A slick half grapefruit shaped sloper 3,3,3,3,3,3,3,3

Same hold with a flat on it's right 3,4,5,4,3,3,3,3

It'd be far from perfect but will give you something to work with for your project. The big problem you'll have then getting decent repeatable results is that foothold position needs to be considered and very carefully factored into your move difficulty calculation. With some experiments, number crunching and refinement you can probably develop with a reasonable estimate of difficulty for a single move.

Ultimately I'd imagine you could semi-automate the process of hold quantification using some kind of 3d imaging scanner. Perhaps even do the same for a 'wall? Probably outside the scope of your project but worth a look as an asside perhaps for extra credit especially if the rest of it turns out flakey

FWIW it seems like using a sledgehammer to crack a wallnut. Pointless, less good than crackers but probably entertaining for a short while.

jk
 Mike Mead 08 Dec 2008
In reply to chrispriscott:

I don't see why this couldn't work, in fact it sounds like a classic example where a learning system would fit - the system comes up with a solution and real people then try it and provide feedback, and that changes the agorithm's parameters which hopefully converge onto more useful values. Of course it's going to be a little approximate and quirky, but that's grading, innit?

Putting it all into practice may be difficult though. I could imagine you would have to set an awful lot of routes to get enough feedback...

...but you could set up something similar to the rockfax routes database, where people can feedback their own idea of the grade. Over time you could get thousands of opinions.

Probably.

 climber130887 08 Dec 2008
In reply to chrispriscott:

sounds awsome. im at manchester at the minute doing my project on modelling bird flight, not going well.

have a look in matlab at the why function. its a bit of useless fun giving random responses to questions you supply but the format of the coding could be useful to you in generating different patterns
 Pythonist 08 Dec 2008
In reply to chrispriscott:
Firstly, great idea - I've toyed (very lazily) with something similar, and never had the drive to get into the body's climbing position maths in order to do it properly. However, I did get the point of photographing all the holds I used and pasting them onto a grid-ed 3D environment. Really gets the imagination going (though the routes created tended not to work exactly as intended due to not being able to physiological make some moves)

Ignoring the intricacies of the mathematical modeling behind the scenes for the moment, the methodology for setting routes I used to use (and would be quite easy to set into programming) was:

1) Determine difficulty of route to be set
2) Decide style of route to be set:
Style of holds: sloper vs crimp
Nature of route: Hard crux vs stamina route
3D possibilites: roof / bridging / arete
3) Combine the above to create crux sequence at appropriate height on the route (this is where the major interest / challenge lies)
4) Work outwards from start / end of crux sequence based on whatever parameters were determined previously.
5) Given H&S nature of indoor climbing, perhaps tweak holds / difficulty such that safe clipping possibilities were available.

I never understood how someone could set a route by staring at a blank wall and working their way upwards!

Good luck!
 lithos 08 Dec 2008
In reply to chrispriscott:

great idea, I'd start by assuming a standard hold (cf the moon holds
small and good) and a flat surface (could be angled) and a standard grid
of bolt holds.

These are not unreasonable constraints and given you can think about body
positions I reckon you can get started and productive quite quickly. For
example a 'layback route' is fairly simple, a left right progresion is
also simple, a rockover move not difficult to arrange/imagine in geometry.
When your system can start to make simple routes like these you can add
other bits, even with standard holds.

Then you have a few other dimensions to play with like hold types, and hold
sharing, reuse by feet, matching, layoffs, pinchs, bridge etc etc

Sounds good and IMHO doable and also a good project as you can start simple and progress.


next problem is how to test these out, and here there are 2 ways, best is
obviously to build it but i reckon you could also simulate an idealised
climber to help in your model (another project to build a climber to climb
routes - i have a vague recollection of seeing something similar, and
there used to be a screensaver for macs that did this). Anyhow a small
woody would work for the prototype early stages. When you reckon it has
has some stability/proficiency talk to your local walls.

Now to make good interesting routes is a whole other ball game and would
take much more effort than i reckon you could devote at this time so i'd
learn to walk before taking on a 110m hurdles.

What i find awkward when setting is not ruining a sequence of handholds by adding a foot hold.


Great idea and excellent potential, keep us posted (hapy to chat ia email
not that i know much of anything)
chrispriscott 09 Dec 2008
In reply to chrispriscott:

Thanks for all the advice so far guys whether good or bad!!!
Really appreciate it and it can only help my project!

Keep it coming
 Lord_ash2000 09 Dec 2008
In reply to chrispriscott: From my experience of route setting I can say it would be very difficult for a computer simulation or work out a good route. I'll explain what I mean by good in a moment.

I can't program but the way I think I’d go about trying to do something similar would be to work with sets of holds. So you can click on different buttons to add different sets of hold which match real life sets. So say for example you want the route to use Set of holds 4 and 7, some being small edges and some being slopy jugs, so then it knows what its go to pick from. Then maybe have some percentage bars for each set, so it knows to say, set a route with mostly crimps and the odd sloper or the other way around.

All the holds would have to have pre defined properties in some kind of database so the computer knows what things the hold can be used for and have a rating for difficulty to hold at different key angles of rotation and steepness. Getting this right will be tricky in its self, you may also have to factor in how good the holds are to stand on at different angles too.

After that have a selection of tick boxes for things you want to include in your route. Such as, undercutting, sidepulls, reaches etc. and maybe sliders for how strongly you want those aspects to feature in the route. Otherwise you might end up with a route on pure undercuts.

The climbing wall would also have to feature as it needs to know where you want it to go and the properties of the panels. I imagine a basic 3D model of the wall and you click on the panels you want the route to go on, this allows for routes that may cross panels or maybe finish only half height. Also it allows the program to factor in wall height and steepness relative to the holds its using. Also it needs to know the locations of all T nut placements so it knows where holds can and can't go.

After that, assuming it has constraints so that an average height person can move between the holds without jumping then it should give you some kind of route. but it might not be any good.

The reason for this is that routes need to flow well, you need to have holds set such a way that you get nice moves in, require nice foot movements and where the route just "works". Otherwise you just get some awkward crappy route. You can't just slap a load of bad crimps on a wall just within reaching distance of each other and get a good route, it might be hard but it will be crap to climb. That’s if it even links, working out how a computer would know what range of movement you would have from different situations on the wall on any given set of holds would be extremely hard I’d reckon.
 Matt Vigg 09 Dec 2008
In reply to chrispriscott:

Sounds like a really interesting project. I've no idea what Maya is capable of but I'd have thought you'd need to be able to give the system "hints" so that it moves in the right direction. In other words, if you just had some mathematical rules for the system it would probably be extremely complex and still not give you decent results. If however you had a core of mathematical rules on top of which you had the ability to narrow things down then you'd probably get better results.

As an example, you could give each hold a positivity index, e.g. a particular jug could have an index of 50 and a particular sloper 10. Then say your wall has an angle of 10 degrees overhanging, this makes your jug's index go down to 40 and your sloper 7.5, etc. Using something like this would allow you narrow down the holds you use, e.g. if you want to output a F6a you can discard all holds with a positivity index of less than 30 or whatever.

Another example, and something more complex for a system to produce on its own is climbing moves. You could have a library of climbing moves, e.g. simple stuff like jug pull, crimp pull, undercut and you might also have more complex stuff like layback, egyptian, etc. Move types would map to certain hold configurations, again narrowing down what your system has to do to output a decent route. Each move type would detail a rough combination and spacing of holds, the holds are then randomly positioned within a range of possibilities specified by the move type. You could also refine this by having a move difficulty index, this increases with angle and increases as hold positivity index decreases.

This may all be impossible with your package but I reckon you'll need something to point the system in a specific direction. I would have thought modelling the forces/angles/friction or whatever would be pretty much impossible to do well without something like this helping it along.
 Flatlander 09 Dec 2008
In reply to chrispriscott:

have a look at this might give you some ideas

http://www.cyberclimber.com/

if not its fun to play
chrispriscott 12 Dec 2008
In reply to chrispriscott:

Thanks for all the feedback guys. Its all been really useful!

New Topic
This topic has been archived, and won't accept reply postings.
Loading Notifications...