2D animation tools on Linux: the age of revival

Alexandre Prokoudine 1. Jul, 2013
9 Comments

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.

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.

9 Comments

as i’m writing this i’m just finishing with Pencil’s new branch, certainly it had these so much needed bug fixes and works more nicely, MyPaint has to be the best drawing tool i ever used even more so than ArtRage which feels clunky and heavy compared to MyPaint, the 2d Animation branch was already interesting, i just lament that layers are handled as frames (because Layers and Frames should be a separated thing) and that there are not builds yet, if i were under Linux i provably would be compiling it but i’m using Windows and is more troublesome for some reason

@Jhovan: I’m aware of the animation layers/frames problem; The way that frames were implemented (using layers) was very hacky but a quick and easy way to get animation working. Unfortunately coming up with a good way to handle frames and layers at the same time is quite difficult and I haven’t had enough time to implement a good design for it.

Synfig is designed for cut out animation, not for traditional x-sheet approach.

In my line of work, we use software such as digicell flipbook to make pencil test of our shots and then use that as a basis for the 3d animation. Unfortunately Pencil2d still lacks some of the very basic features you would find in digicel flip book (and plastic animation paper- PAP).

synfig is completely useless for frame by frame pencil tests. Its a cut out style flash approach to animation- the cheap kind of TV animation where you use obvious 2d rigs to get some quick results with few drawings.

I think that it is very important that people understand that the two approaches to the medium differ greatly and are used for different reasons. The open source world needs more development in the traditional x-sheet style animation software, which classic and 3d animators prefer to flash style synfig type software.