[Bf-committers] new IK algorithms in Blender

Roger Wickes rogerwickes at yahoo.com
Mon Jan 12 22:24:28 CET 2009

This could be the start of goal-oriented IK solving, getting around obstacles, which could be applied to many things. 

----- Original Message ----- 
From: Benoit  Bolsee 
To: bf-committers at blender.org 
Sent: Monday, January 12, 2009 5:54  PM
Subject: [Bf-committers] new IK  algorithms in Blender

As some of you  might know already, I have started a  project with the KUL  (University of Leuven) to implement new IK algorithms for Blender  and the BGE. I know everybody is busy with 2.5 atm but I'd like to have  your opinion on a couple of things. I'll first explain in a few words  the scope of the project.
It is a  robotic project and the primary goal is to make Blender a flexible platform to  test, simulate, control and monitor industrial robotic arms. The intention is  to build a "task" layer where the user can easily define complex tasks  and have the (simulated or real) robotic setup execute the task  intellligently. The IK algorithms have been developped over the years by the  KUL and are now mature enough to be ported to Blender. The core principle of  the algorithms is the integration of all the constraints and  internal dynamics in a single global equation system to solve the joints  velocities (or accelaration) over time. In the end, this work should also be  useful to animators because the new algorithms will be available  to animate custom armatures.
Unlike the current  IK algorithm in Blender, the new algorithms are stateful and time  dependent: you cannot getthe pose for a given frame number if you don't know  the pose and the internal state at the previous frame (and  recursively at the begining of the simulation). The BGE is a natural place to  implement the algorithm because it is naturally time dependent but we also  want to have the animation available in Blender for frame by frame inspection  of the actions. 
One possible  approach is baking via the BGE: you prepare the setup, define the task by  constraints and run the simulation in the BGE. The joints positions are stored  in Ipo curves and retrieved in Blender. 
Another approach  is to have baking or caching in Blender like cloth (I didn't look at  cloth code yet). Baking the IK solution should be fairly quick,  potentially much quicker than the current IK algorithm that always starts from  the rest position at each frame. 
My idea is to  implement a flexible caching system that will be available in Blender for  animation and in the BGE for recording the simulation or the actual physics  parameters when the BGE is used to control a real robotic  setup. I'm interested to hear your opinion on  that.
Bf-committers  mailing  list
Bf-committers at blender.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-committers/attachments/20090112/29ad7ac7/attachment.htm 

More information about the Bf-committers mailing list