2D animation tools on Linux, the age of revival


It seems that we’ve been having a bit of a renaissance in the domain of free 2D animation tools lately. Not only Tupi was updated; both Pencil and xsheet-mypaint are finally getting some long overdue developers’ love too.

Pencil2D: sporking the forks

Among various free (as in speech) animation tools Pencil is a bit special in a way that it actually handles audio all by itself. And even though the implementation is rather basic, that still makes it somewhat unique.

After initial developers of this app left the project, people started forking it for all kinds of reasons. The whole story of forking around was nicely put together by Nathan Willis on LWN a couple of weeks ago. But things got even further after that.

Last week Matt Chang merged all forks into a single repository on Bitbucket (thus making it a bit of a spork) and made a few first public releases. There are no big features there, it’s mostly bugfixing and refactoring (that is, a lot of internal changes), but it’s a good start.

The net effect? Here’s what Konstantin Dmitriev (Morevna Project) says:

Previously Morevna’s and chchwy’s (Matt Chang’s nickname) repo were out of sync. Now they are synced. If such effort will be properly advertised, and activity in the repo will remain, chances are that people will stop forking around and finally start contributing into some central place.

In any case, personally I would really prefer to contribute into Matt`s repository, rather than making further changes on my own (if there will be any).

The team is also thinking about getting a new name for the application.

Builds of Pencil2D for Windows and Mac are available on Bitbucket. The application builds on Ubuntu 13.04 just fine: use ‘apt-get build-dep pencil’ and additionally install Phonon’s dev package to get all dependencies. Hopefully there will be a PPA soon.

Xsheet-mypaint goes Dopey

The xsheet-mypaint fork was originally an in-house customization of the famous MyPaint application. This fork fork was developed in 2011 by Manuel Quiñones for the “Viaje a la tierra del Quebracho” animation movie.

Manuel never found the time to work much on it after completing the animation project, so the Gitorious branch just sat there all lonely. Every once in a while some interested person forked it, but most people didn’t even make public commits. However this spring Davis Sorenson started a fork of xsheet-mypaint that actually went further.

Shortly after getting himself a new Wacom, Davis started to looking for a good 2D animation program that would run on Linux, couldn’t find any and ended up with xsheet-mypaint that he used before:

I thought: “what if I just pulled that and MyPaint master and tried to merge them?”. Within just a few hours I was able to get it to work, largely thanks to Python which I learned while creating the back-end of Renderfarm.fi with Nathan Letwory.

I was a little bit hesitant to fork it, partly because I don’t have a lot of time (I work full time), and partly because I wasn’t sure, how much better I could make it. But since there are so few open source 2D animation programs out there, I decided to give it a try, and instantly got support from some artists I really admire.

Within the first couple of months of work Davis introduced a new internal file format, added framerate option to the player and implemented JACK transport support (currently in a branch). He also renamed the project to Dopey after some careful considerations.

Now, the new file format needs an explanation. As a big fan of Blender, Davis recognized the benefits of a DNA-like structures in a file format, which is extreme backwards compatibility, and wanted to base a file format for Dopey on DNA-like system. So he came up with XDNA:

I have everything in place, and the format is used, and it is able to convert old format files to XDNA-format files, but it doesn’t actually diff the XDNA signature to determine differences in the file format. That will be in place before I make further changes to the format like storyboard information, as suggested by Bassam Kurdali.

Meanwhile Bassam, who follows this project closely, already did some doodling with it back in May:

The problem of syncing with upstream MyPaint still remains, though. Currently Davis manually merges changes from the painting app’s Git master branch into Dopey, but in the future the delta may become too large. And despite of recent discussions, the MyPaint brush library is still an internal project in MyPaint git. Jon Nordby explains the status quo:

I don´t really want to move it to a separate Git repository at this time, unless someone says they need that to adopt it. Maybe I will submit a job on the MyPaint’s Jenkins instance to creates a tarball of the brushlib from MyPaint’s Git every night.

For MyPaint 1.2 we may also have a libmypaint shared library built as part of MyPaint that other GNU/Linux applications can link against.

There are no builds of Dopey available yet, and Davis Sorenson would actually be happy if someone helped him with SCons. E.g. the JACK transport branch hasn’t yet been merged, because he cannot build the Python module depends on. If you are interested to contribute, please contact him.

As you can see, the future for free 2D animation tools looks a lot brighter these days. Or, as Davis puts it:

I’m really glad that this renaissance has started, because between my project, Pencil, the recent Tupi development, and the Krita 2D animation GSoC project, I think we’re going to have at least one great open source 2D animation program in the future.

Amen to that.