Feb 222011
 

There’s a lot of Kinect-driven mocap development going on and that is fantastic. I also wanted to show off a couple of other animation tools out there. I’d like to see more physics and algorithmic animation tools available and I found a couple of very promising pieces of open-source software.

cartwheel-3d – Physics Based Character Animation Framework


DANCE – Dynamic Animation and Control Environment


Both can be used to create animation with a combination of physics and scripted control. The details of how they work are beyond me, but what they do is pretty amazing. Both are written in c++ but they both heavily use python for scripting and UI.

I am working with cartwheel-3d to try and use some of the features in Blender. I could try to work out a simple BVH exporter for cartwheel, or maybe an OSC server to send animation data to be recorded in Blender. Or simply try to use the functions direction in Blender. Still haven’t got that far. So far all I’ve done is compile cartwheel-3d. So I’ve included some notes on how I did it so if anyone else wants to work on this too they can get started easier.

COMPILE NOTES:
-Basically I followed the instructions on the ‘Get Started‘ page for cartwheel-3d with a few important exceptions.

COMPILING C++ : MS VStudioExpress2010
*no spaces in paths!
*lib folder in workspace ie. “C:workspacelib”
*glew32.dll and glut32.dll lib and lib in PATH variable

-After getting repository and opening- VS2010 converts and messes up target and extensions. To fix this.
>VIEW>PROJECT PAGE>CONFIGURATION PROPERTIES>GENERAL>
-Change Target Name from $(ProjectName) to _$(ProjectName)
-Change Target Extension to .pyd
-Repeat on all projects except ode and gls
-Repeat on debug and release

-Make sure BROWSE INFORMATION is OFF on all projects
>VIEW>PROJECT PAGE>CONFIGURATION PROPERTIES>C/C++>BROWSE INFORMATION
>ENABLE BROWSE INFORMATION – “NO”

DEBUGGING PYTHON: ECLIPSE (CLASSIC) + PYDEV
-Open eclipse (classic)
-Install pydev
-Set interpreter to py26
-Make a copy of ‘cartwheel-3d’ project folder- rename ‘simbicon’
-Install wxpython
-Install pyopengl

-Got some error about Core.py returning _mod before assignment. not sure what I did to siz it- sorry. I remember I opened core.py in the editor to look for the error, then ran again and it worked… weird.

So that’s it for now. Hope to do something constructive with this.

  4 Responses to “Physics and Algorithm Based Animation”

  1. Hi. I am working with this project right now. Glad to find your page and get all the explanation.
    But after i compile the project successfully with VC2008, there is still one problems i can’t conquer it. When I run the project , the command list in PYTHON.EXE point out that “ImportError?” with Module of “GLUtils” I can’t figure out it. Could you give me some point?
    Eager for your reply.
    APPRECIATION!!!

  2. Hi, I’m able to build the code with your instruction, but when I try to run it, visual studio keeps saying “unable to start program ‘…_Core.pyd’. Can you suggest something? Thx.

    • Sorry, just found out what happened. Maybe you should add some instructions to set the properties in CORE>PROPERTIES>CONFIGURATION PROPERTIES>DEBUGGING so that visual studio will be able to run the code. Thx.

    • Thanks for the very useful tip, Jonathan.I tried the mehtod of keyframing the visibility icon in the outliner, but in practice the render icon also needs to be keyframed too. The problem when I tried it was that in the dope sheet and graph editor, the entries disappear at the same time as the object, which at the moment makes the approach unusable, which is a shame, as it would be a simple, direct mehtod.It is so useful to be able to control visibility in a simple way on an object by object basis, particularly in complex scenes, and I’m not sure that the outliner or the main properties panel is the best place for it perhaps a checkbox (still animatable) on the slim transform properties strip might be a good place.In Maya, visibilty can be managed via the channel box, which is straight-forward, and via the attributes panel, which also includes other useful checkboxes like (not visible but) render in reflection, which is really helpful in breaking down scenes for render passes.In fact, a dedicated and separate channel box and editor would be a very useful addition to the Blender window set, as it would be helpful to sometimes set up just the handful of key-frameable attributes needed for a particular animation in an easily accessible and visible place without having to manage a number of different windows for the task.

Leave a Reply