User:Muxdevil

From K-3D

Jump to: navigation, search

Application Proposal for Google Summer of Code 2008

Creating an interface between K-3D and the Open Dynamics Engine

Objective

The objective is to create an interface between k3d and the Open Dynamics Engine. This would give us the capability to animate, from withing k3d, complex scenes with several interacting objects.

Description

Currently k3d possesses no method to automate animations involving the dynamics of rigid bodies. The Open Dynamics Engine is a library built exactly for this purpose. Several plugins can be thought of with this combination:

  1. Using ``real forces like gravity during an animation
  2. Simulating and rendering collisions between meshes and rigid bodies
  3. Joints and constraints in a ``mechanism we're trying to animate

The concept of pipelines in k3d gives a unique perspective to this problem: we have objects interacting not only among themselves, but also with the constraints specified in the properties. This is where the ODE kicks in by taking it upon itself to calculate the positions of the various nodes. Thus, the coordinate and orientation property of each node would be specified by a physics-engine node, which would in turn accept a property from each of these objects, in terms of external constraints imposed on the system etc.

The advantages from within k3d are obvious, also the ODE team have a very interesting way of demonstrating improvements in their code: rather than creating toy games, they can now create realistic animations that can be shown before a large audience.

Timeline

I plan to jump in fulltime around May 10 or so. The small-patches, frequent-patches approach suits me fine, as I have trouble thinking big.

For this proposal to be completed, I would have to read up extensively both on how plugins are written for k3d, and about the Open Dynamics Engine. This initial preparation should be complete even before I jump headlong into the project, and would definitely give me some ideas for plugins which I can immediately start developing. I would then submit regular, small patches every week or so: this would not only serve to motivate me into doing the project, but also give a nice opportunity for me to interact with my mentor about how my project is turning out. New ideas will definitely pop up in this period, and it would be a shame if I didn't have time to experiment. That's part of the reason why I have kept what I've promised simple, when the ideas come later, I won't have to push them onto stack.

I plan to finish work on this proposal by the last week of July, although I would definitely continue as an active developer of k3d even after this period.

About me

I am a 19-year old student of Computer Science and Engineering at the Indian Institute of Technology, Guwahati. I have had a long relationship both with C and C++, and enjoy the challenge of learning to use a new software/tool. I would like to explore the field of Computer Science, and k3d would be an exciting experience. I've tried to describe a bit more about myself, including my CV, on my webpage.

With a moderately strong backing in mechanics, I believe that I am the right one for this job, though everyone who's applied might say the same.

I might be criticized for coming out on the mailing lists a bit too late: life is a bit hectic at the moment, and our seniors assure us that CSE IV Sem at IIT-G is legendary for this. The summer will be a lot less hectic, but a lot more fascinating, were k3d to accept me as a GSoC candidate.

Mentor Contact

I would be available on IRC between 0800 and 2400 IST, that's between 0230 and 1830 UTC; but these are not really rigid, and could come online whenever it best suits both the mentor and me. In this sense, IST is really liberal - Indian Stretchable Time :-)

I'd contact the mentor whenever I run into problems, or every week, while handing him my weekly patch. Of course, while working on the project, I would always idle on the chatrooms, and would check my mail regularly, so contacting me (or going the other way round) would not be too much of a problem.