Open Source Giffing

On 13th August I delivered a How to Gif workshop at the mac (Midlands At Centre) as part of Future Curious. Prior to this I went a little bit of a Twitter rant about the lack of software dedicated to making animated gifs, espeically within the open source software world.

Gifs are difficult

In this recent rant I talked about some of my fears regarding the delivery of this workshop. Although gifs are everywhere and we consume them every day, they can be quite difficult to make. What I think is sometimes overlooked is that gifs are basically just like any other animation, but saved as a gif.

gthsb_surge_1

Sure, this sentence does overlook the technical limitations of gifs – 256 colours and limited alpha settings – and the cultural significance of the file format, but it’s no surprise – or maybe it is a surprise – to learn that lots of popular gifs that aren’t grabbed from movies will have been made using 3D modelling software (Maya, 3DS Max), compositing software (After Effects), animation software (Toon Boom, Anime Studio) or even video editing software (Adobe Premier, Final Cut). These software can take many months to grasp the basics of and many years to master.

So, a basic gif making workshop really would be basic unless everyone participating already had knowledge of common animation techniques and use of software.

Software sucks

Speaking of software and tools, the biggest concern I had about this workshop was what tools to use. The aforementioned software are probably the defacto tools of many popular gif artists. The main problem I see with these software is not their complexity – this gets easier over time – but how difficult it is to access them. To put another way, these software cost money. A lot of money.

The computers in the mac computer studio had some of this software already installed but would the personal computers of the participants? What’s the point in teaching someone how to use Photoshop or Maya when they would have to commit to paying $10 per month or $800 respectively to be able to implement what they were taught?

There needs to be free software for making gifs that are accessible to many. Fortunately these do exist, but each has its own flaws.

What I want

What I wanted to teach in this workshop, and indeed what I generally want when making gifs is to be able to mix several sources into one gif. This can be mixing together two existing gifs, adding text or subtitles, putting a gif against a background or something very similar. When put into a list my preferred gif editor should be able to:

  • open gifs
  • allow me to change the canvas size
  • treat the gif animation as one whole object but still allow me to edit each frame
  • import multiple gifs and maintain editability of each
  • allow me to translate, scale, rotate and generally modify each gif
  • change the speed of each gif
  • have an option to make the duration of one gif match another

These requirements are potentially very unreasonable. I would not suggest at all that these would be easy to implement. When looking at existing photo editing and video editing software one might think that this would almost be standard. However, as I mentioned before, animation isn’t easy and so building software to do it won’t be easy either.

With those requirements in mind, how do existing open source software measure-up?

Blender

blender-ui
Without a doubt the most popular and most used open source 3D modelling and animation program. Aside from having a learning curve resembling a hockey stick, one hurdle in creating and editing animated gifs in Blender is that it doesn’t support animated gifs.

If one wants to load in a gif they would have to render each frame to a separate file and then import that image sequence onto an object/flat plane in Blender. Although this would seem like a simple solution one thing that does get lost is the frame rate information. Y’see, in animated gifs each frame can have a different duration. When importing an image sequence into Blender you just get one frame rate. This may not be such an issue as it’s rare for me to see such gifs, but, like many things, it would be nice to just support animated gifs natively.

With that aside, Blender can achieve many of the other tasks on the list and so much more.

It’s quite funny, and a bit unfortunate, that almost any “media” problem in open source software – video editing, post processing, and now event 2D animation – can tackled using Blender.

Synfig

synfig-ui
Perhaps the only competent open source 2D animation software. It too has a learning curve akin to a hockey stick but doesn’t have multiple interfaces or that pesky third dimension to worry about.

Like Blender, Synfig doesn’t have native support for animated gifs and requires a user to convert their gif to individual frames. This same approach is needed if a user wants to import a video.

Unlike Blender you can’t change the speed of imported image sequences/gifs. I’ve reported a bug about this. Of course, in the case of gifs native support would be better, but that solution could also work.

Synfig can do almost all of what is on the list, as can Blender. But, unlike Blender, Synfig can be a huge pain to use. I’m a big fan of precise measurements (thank you based Inkscape) and so not being able to change the coordinates system, having no alignment tool and other small details makes Synfig a bit annoying to use. Then there’s the crashes…

With that said, unless you want to tackle the behemoth that is Blender then for 2D this is the best solution.

GIMP

gimp-ui
There’s no doubt that if you ask anyone on the internet if GIMP can make animated gifs they will give you resounding “YES“. What they fail to mention is that, in most cases, you need to have made the animation beforehand. What you’ll achieve in GIMP is basically compiling individual frames into a gif.

Unlike it’s proprietary brother-from-another-mother Photoshop, GIMP has no native interface for making animations. (I won’t even entertain GIMP GAP as an option until it can be easily installed on all platforms and doesn’t suck.) This means that if you want to, for example, add text to a layer you have to manually do it for each frame. There are some plugins to help you do this but the thing to take away from this is that it’s a destructive process, meaning that once the text, image or paint mark is placed on a layer it can’t be moved or manipulated.

There’s also the lack of support for things like keyframes and tweening. However, I won’t call this a fault of GIMP as it is image editing software, not animation software.

Imagemagick

In a similar vein to GIMP, it’s easy to make animations in Imagemagick, just as long as you’ve done of the animating work already. It takes nothing more than running convert input_images-*.png output_gif.gif to make an animated gif. However, this assumes that you already have the animation ready.

As it is command-line software, editing animations becomes a combination of guess-work and knowing precise details of your files. If you want to do batch processing and create algorithmic animations, as I have done with things like the JPG Glitch Pattern Generator – then Imagemagick is great. For a GUI animation editor look elsewhere.

Web tools

There are a plethora of tools on the web for creating animated gifs. The majority of these either let you convert a series of pictures into a gif (yawn) or convert a section of a video into a gif. Two tools, Piskel and GIFPaint allow you to do frame-by-frame animation, which can be handy for those who want to animate on the go, but not so handy for those of us who can’t – or won’t – draw.

None, however, let me import multiple gifs and merge them into one. One near-exception is ANIMATED GIF MASHUP by Evan Roth. If the gifs you wish to use are already online you can paste the urls, specify an x/y position and have yourself a gif party! This was use by Roth in a workshop where participants made this awesome video:

One downside to this tool is its lack of export functionality. In order to save this as a gif, or indeed a video, a user has to rely on screen capture software. This software is easily found on all platforms, but by doing this there is no way to find a common loop point for all of the gifs and so users may find their animations don’t seamlessly loop.

Gif them a break

With all of this written I am actually a happy user of these software. With regards to the workshop, I had no doubt that participants would have had no trouble converting a gif or video into individual frames or pasting urls. It’s not like we’re in 1993 anymore, people know how to use computers. By critiquing these software I want to address what I feel are barriers to entry, the biggest barrier being actual native gif support.

Working for mates

I was reading through the 1000 rss feeds I’d accumulate since Reading Festival and I stumbled across this post about doing work for mates. It’s all too true. So many times I’m asked by friends to do ‘a quick logo’ or a poster design, usually with little time until it has to be complete. This is why now, even with friends and family, I go through the same process I would do with everyone else.