Hi all,

My name is Josh (bobsicle0 elsewhere on the internet), and I've been using inkscape for nearly 3 years now. Some time ago I was thinking about SVG animation with SMIL, and what tools were available to work with SVG animation. I remembered that inkscape didn't have animation capabilities.

Recently I had a bit of an inspiration that animation capabilities (even crudely) might be somewhat straightforward to add as an LPE in inkscape. I realize that it will probably take more than a LPE to actually display SVG animations in inkscape, but for now, that's not my intent. My intent is to allow the user access to the SVG/SMIL animation tags through a LPE.

For a visual indication of what the animation will look like, the element being animated could draw a path to show the motion of the node/object's motion rather than actually showing the animation (showing the actual animation would presumably require modification of inkscape's SVG rendering). The drawn motion path would be similar to what you see in the Bend and Envelope Deform LPEs, but instead drawn to show the path of motion.

I'm brand new to inkscapes code structure, and what is/isn't possible with LPEs. I've dug around as much as I could on the wiki and elsewhere and read the stuff about inkscape development. So far, I've done the following:
bazaar checkout of inkscape's trunk,
sucessfully built inkscape in the inkup VM enviroment,
renamed a copy of lpe-skeleton.cpp/.h to lpe-animation.cpp/.h,
renamed the appropriate things inside lpe-animation.cpp/.h,
modified the necessary files (as per the wiki) to register the new LPE in inkscape,
added a few new test parameters to lpe-animation.cpp to make sure they would show up as expected in the LPE dialog,
and finally sucessfully recompiled.

Everything is working just fine. From this point on though, I'm pretty stuck, and I have a few questions.

Is it possible to modify SVG element tags from within a LPE, such as adding "animate" or "animateTransform"?

What's the next step to take? Really what I mean is, is there a list of things that can be modified about the path that is passed in to the LPE and how can those things can be modified in code?

Is there any other advice you'd like to give? I'm a very open person when it comes to criticism and recommendations.

I appreciate any help you guys can offer.

Regards,
Josh (bobsicle0)