last updated 11/2/95 BACKGROUND ---------- Walker is a program I wrote with Kanishka Agarwal for our final project in our graphics class while we were at Harvey Mudd College. I did most of the viewing, UI, and internals, while Kanishka concentrated on the model. We both came up with different .cset (curve set) files which make the guy do various things. We spent dozens of minutes marching around the graphics lab trying to figure out just how people walk. It was not a rigorous effort. The program is for modeling human(oid) motion with forward kinetics. Forward kinetics basically means it does nothing cool for you with respect to how people really move, how articulated linkages move, or how gravity works. You must specify the angular displacement of each joint at each point in time. Also, our model only has 5 joints. AND each joint only has one degree of freedom. Okay, so enough about why it sucks; it is cool because you can put together some neat little animation sequences and it is fun to play with the curves and see immediate feedback. Plus you can spin the guy around really fast while he's running: if that's not the sign of a quality graphics program I don't know what is. And it illustrates how to do an app in GLUT with simultaneous 2D and 3D displays/interfaces. INSTRUCTIONS ------------ Basically you've got two windows. One shows the guy; one shows the rotation curves. You know SGI demos: just click around with all three mouse buttons on anything that looks interesting and you'll figure it out. MORE INSTRUCTIONS ----------------- All I can think of to add are keyboard commands. I have not used the program myself it several months and can't really remember how to use it. But it was easy I remember that. Here are keyboard commands you might have missed: In 3D window, viewer keys: 0-9 and +/- to change speed when in FLYING MODE (Careful use of flying mode and you can pretend the guy actually is moving as he's flailing his legs. Or, edit the program so it'll take another curve which isn't a rotation but a displacement. For BONUS POINTS: Have the program compute this based on the rotation curves of the three leg joints.) In 3D window, walker keys: f, F: step forward 1, 5 time step(s) b, B: step backward 1, 5 time step(s) spacebar: step forward one time step In 2D (curves) window: same as 3D window walker keys plus: 1-5: edit curve #1-5 d: stop edit curves Remember, each of the three buttons in each window does something. I think. There are pop-up menus, I know that much. POINTERS -------- We researched a number of sources before writing this, but I think our main reference was this book: Advanced Animation and Rendering Techniques - Theory and Practice Alan Watt, Mark Watt Addison-Wesley (ACM Press) 1992 Whatever else we read we probably got from a citation in that book. But hey if it's on paper it's probably out of date, right? No, but try these anyway: http://www.cc.gatech.edu/gvu/animation/ http://robotics.stanford.edu/users/kuffner/human.html http://market.net/literary/mkp/pages/1554/index.html DIRECTORY LISTING ----------------- 483 May 15 04:05 Makefile 324 May 15 04:03 walker.h 28346 May 15 03:59 walker.c - most everything, callbacks for both windows (except AGV for the model window) 17601 May 15 04:00 models.c - models, wireframe, solid rectangles, and cylinders/spheres. Colors could use a little work! And you could plug in a totally different model and make that work too. 3435 May 12 16:19 walkviewer.h 13095 May 12 16:19 walkviewer.c - basically AGV (a GLUT viewer) 928 May 12 16:19 walking.cset - curves we did... 809 May 12 16:19 running.cset 762 May 12 16:19 bound.cset 978 May 12 16:19 moonwalk.cset 1177 May 12 16:19 dunk.cset 1236 May 12 16:19 reverse_dunk.cset 924 May 12 16:19 kick.cset 882 May 12 16:19 Impossible.cset 754 May 12 16:19 MrFlex.cset 767 May 12 16:19 Ouch.cset AUTHORS ------- Kanishka Agarwal - whereabouts unknown (to me anyway, but I could track him down if need be) Philip Winston - pwinston@hmc.edu http://www.cs.hmc.edu/~pwinston/ Email me your .cset files! (unless they're worse than ours) Also email me if you modify the program substantially or play with it as a means of procrastination. I'm just curious. Ran Libeskind-Hadas - hadas@cs.hmc.edu http://www.cs.hmc.edu/~hadas/ (He didn't write any code, but he taught the class. Plus he's a cool guy.)
Source
Documentation
Data
Reference