<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.2900.5726" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009>Hi,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009>As some of you might 
know already,&nbsp;</SPAN></FONT><FONT face=Arial size=2><SPAN 
class=312142315-12012009>I have started a&nbsp; project with the KUL (University 
of Leuven)&nbsp;to implement new IK algorithms&nbsp;for Blender and&nbsp;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&nbsp;scope of the 
project.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009>It&nbsp;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&nbsp;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&nbsp;dynamics in a single global 
equation system to solve the joints velocities (or accelaration) over 
time.&nbsp;In the end, t</SPAN></FONT><FONT face=Arial size=2><SPAN 
class=312142315-12012009>his work should also be useful to animators because the 
new algorithms will be available to&nbsp;animate custom 
armatures.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009>Unlike the current 
IK algorithm in Blender, the&nbsp;new algorithms are stateful and time 
dependent: you cannot get</SPAN></FONT><FONT face=Arial size=2><SPAN 
class=312142315-12012009> the pose for a given frame number if you don't know 
the pose and the internal state&nbsp;at&nbsp;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. 
</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009>One possible 
approach is&nbsp;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&nbsp;in Blender. </SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009>Another approach is 
to have baking or caching in Blender&nbsp;like cloth (I didn't look at cloth 
code yet). Baking the IK&nbsp;solution should be fairly quick, potentially much 
quicker than the current IK algorithm that always starts from the rest position 
at each frame. </SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009>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.&nbsp;</SPAN></FONT><FONT face=Arial size=2><SPAN 
class=312142315-12012009>I'm interested to hear your opinion on 
that.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009>/Benoit</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=312142315-12012009></SPAN></FONT><FONT 
face=Arial size=2><SPAN 
class=312142315-12012009></SPAN></FONT>&nbsp;</DIV></BODY></HTML>