[Bf-committers] How about adding boost uBLAS library to blender/extern?

blender at erwincoumans.com blender at erwincoumans.com
Sun Jan 25 20:46:03 CET 2009

It is very exciting to hear about upcoming development on inverse 
kinematics. I like to point out two important issues: 

1) Ability to (hot) swap different IK solver.
It would be extremely useful if we let the user/developer choose the IK 
solving method, also in the Blender Game Engine. 

It sounds like the new IK method mentioned by Benoit is very high quality, 
and targetted for robotics. Often in games the requirements are lower. We 
have seen good results with the CCD (Cyclic Coordinate Descent) method in 
real-time games, so I would like to see this this option in the Blender game 
engine. My collegue already integrated this CCD it in the Blender IK 
testbed, as comparison with the existing Blender IK solver. 

2) Software license
This probably doesn't matter to many Blender developers/users but as someone 
mentioned Bullet, I want to bring it up. Many game console non-disclosure 
agreements prevent using code under the GPL/LGPL style license. My group 
here at Sony is also looking into animation and inverse kinematics, as 
companion to the Bullet physics library. Our work is targetting professional 
console game developers (and movie industry), and they prefer BSD, MIT or 
Zlib style license. 

The Boost license is fine for consoles, but several game developers don't 
want STL or Boost dependency. So for our work we avoid that for our work 
(and the Bullet library). If you provide an interface that allows choice of 
Ik solver, we will consider to add our CCD inverse kinematics algorithm to 
Blender Game Engine. 

Can you please include such (hot) swap feature, when designing the IK 
interface for your upcoming work in the Blender Game Engine? 

Thanks a lot,


Sebastian Skejø writes: 

> Hi, 
> Have you looked at Eigen2? Not completely sure what you exactly want,
> but I think it should be able to do what you want and according to their
> benchmarks it outperforms uBlas.
> http://eigen.tuxfamily.org
> http://eigen.tuxfamily.org/index.php?title=Benchmark 
> Sebastian Skejø 
> On Fri, Jan 23, 2009 at 10:50:43PM +0100, Benoit Bolsee wrote:
>> Hi,
>> The new IK algorithms developed at the KUL use the uBLAS template
>> library from boost for matrix definition and operation.
>> In order to minimize code change when porting to Blender, I am asking if
>> it would be acceptable to add that library in blender/extern.
>> It is a template library, so it will not increase the size of the
>> executable more than necessary. It allows high level abstraction and yet
>> it is almost as fast as an add-hoc C implementation because it uses the
>> advanced technique of template expressions. The drawback is that it
>> requires a modern C compiler: gcc 3.2.3 and above, MSVC 7.1 and above,
>> ICC 8.0 and above (older compiler are supported with an earlier version
>> of the library). I guess this is not a limiting factor?
>> In terms of number of files, I extracted a subset of boost that contains
>> all the necessary files to compile uBLAS: 10Mb in 1650 files. 
>> The alternative is to implement add-hoc C functions or reuse the TNT
>> template library that is used by IK_Solver (intern/iksolver/intern/TNT).
>> This library is much smaller and provide similar functionality but it is
>> not as fast.
>> For the interested ones, I've started a wiki on the IK project:
>> http://wiki.blender.org/index.php/GameEngineDev/RobotIKSolver
>> /benoit
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list