PyCarrara, a free Python scripting plugin for Carrara
© 2010 Frederic Rible

The PyCarrara plugin:

The great feedbacks I received after publishing this first success on the DAZ Carrara forum encouraged me to continue in this promising direction.  Next steps was something running with a MIDI file. I studied some source code by “Sparrowhawke3D” to learn about advanced features of the SDK. This helps me to understand how to get access to object attributes such as position and rotation. My second implementation called “PyCarrara” was harder to develop and took few weeks. This new plugin keeps the original Python driven tweener and adds some new amazing features: a modifier able to drive the (x,y,z) position of any object and some Python functions to get access to the sound tracks embedded in the scene.

The Python tweener feature is by itself very powerful because it can be used to drive any animatable parameter. But it requires you to create a tweener for each object of shader attribute you want to drive by script. This is painful if you have many objects to animate. The new modifier feature gives access to attributes of any object in an easier way: you only have to specify the name of an object in the script to get access to its attributes. This is particularly helpful for MIDI driven animations: a piano keyboard can be built by object replication and it is very easy to access each key with a function calculating the name of the object to be moved depending on the MIDI notes.

Currently, only offset attribute is supported, but access to other attributes such as rotation could be added quite easily in the next PyCarrara releases.

The screenshot shows the PyCarrara plugin in action for driving the trumpet deformation in my “Zarathustra” demo animation (http://www.youtube.com/user/f1oat3d). The velocity (power) of MIDI notes is used to drive the “Strength” parameter of a “Punch” modifier applied to the geometry.