Project of the Month, June 2011

Tux Paint

Tux Paint is a drawing program for young children. It’s meant to be extremely easy to use, even for non-readers (with a little guidance).

Why and how did you get started?

In mid-2002, a friend from my local Linux User Group mentioned that he installed Debian Jr. for his kids, and was surprised to find the only drawing program included was Gimp‚ which we both agreed was a little hard to use, even for adults. Having written a number of open source games for Linux, I decided I could probably whip together something to fill the gap.

Who is the software’s intended audience?

Kids ages 3 to 12, though adults seem to enjoy it, too. It’s also been used for special needs kids and adults.

What are a couple of notable examples of how people are using your software?

Schools all over the world use it, often as a free alternative to commercial kid’s drawing software. For a while, it was actually one of the only viable programs for Mac, back when OS X first came out. Some art museums and children’s hospitals have used it, too.

What are the system requirements for your software, and what do people need to know about getting it set up and running?

Tux Paint became popular quickly, so for most of its existence, it’s been trivial to install.

On Windows, we provide both a self-contained installer (“setup.exe”-style), as well as a stand-alone version (in a folder in a ZIP file). We have two versions of each of those‚ one with some reduced functionality, that runs on Windows versions all the way back to Windows95, and the full version that runs on more modern Windows varieties.

The Mac versions have typically only been able to run on the most current versions of OS X, though of course it’s possible to download previous versions of Tux Paint to run on older OS X systems.

Some popular Linux distributions provide Tux Paint as installable packages (search for “tuxpaint” package on Debian, Ubuntu and Fedora, for example), and we also create and post some RPMs, DEBs and TGZs files ourselves.

What gave you an indication that your project was becoming successful?

Great feedback from the community. And that user community grew quickly, thanks to the porting efforts made by volunteers, that got Tux Paint running on platforms other than Linux. Of course, countless other open source projects — the libraries that we utilize — did a lot of the necessary work before Tux Paint even existed. My favorite, libSDL, for example!

What has been your biggest surprise?

How long I’ve been at it, and how many people became involved. My previous open source projects were typically little libraries that no one but I used, and the plethora of games that I wrote, most of which only took a couple of evenings for me to do 99% of the development work – then bug-fix and porting patches would trickle in over the span of years..

What has been your biggest challenge?

Finding time to work on it! With a very busy day job (CTO and lead software developer for an ebook publishing platform), and a growing son (he’s exactly half as old as Tux Paint this month!), my involvement comes in short bursts, usually once or twice a month. My pipe dream is to work on Tux Paint (and other educational open source apps for kids I have ideas for) full-time, but I’m nowhere near that situation.

Why do you think your project has been so well received?

Because it’s fun and cute, if I do say so myself!

What advice would you give to a project that’s just starting out?

Make comments. Keep documentation. Keep track of your bugs and to-do list — both code-wise, and otherwise. And of course, that’s where SourceForge comes in for me: it rolls that all into a unified solution – plus other features I’m not even using: web space, wiki, etc.

Where do you see your project going?

I’d love to see it ported to Google’s Android, Apple’s iOS, and WebOS, since tablets are the perfect place to use a fun little drawing app!

What’s on your project wish list?

Better desktop integration. To some people, it’s amazing that Tux Paint doesn’t have standard Open/Save dialogs, or cut-and-paste of objects or text. Since Tux Paint was originally made for very young kids, that didn’t seem necessary. Lots of teachers use Tux Paint with older kids, and these are features they miss, so it’s on our roadmap. I also think some social-networking capabilities would be neat — an easy-to-use tool for mom or dad to share their child’s drawing on Facebook or Twitter, or even just email it to grandma and grandpa.

What are you most proud of?

Making kids around the world happy. Now tell me, that’s hard to beat, isn’t it?!

If you could change something about the project, what would it be?

Hindsight is… I know, old cliche. Really, and I’ve seen this many times (KDE and, more recently, GNOME, are well-known examples), at some point you look at your project and say, “I would do it this (hopefully better) way, if I could do it all over again.”

How do you coordinate the project?

Very loosely. This project is a great example of herding cats. But it’s also very low-stress. We aren’t designing software for medical hardware, or online banking. If something gets done, that’s great… if not, hopefully someone will get around to it later. In a way, thanks to its target audience, expectations are relatively low. I mentioned Gimp earlier — I’m not involved in its development, but I imagine it’s a little more stressful than Tux Paint’s.

How many hours a month do you and/or your team devote to the project?

That’s very hard to say! Very little, lately. There’s very little coordination or planning, other than keeping track of the things we’d like to add or change. Every once in a while, some patches will flow into the source-code repository, and it’s usually with no warning. So it’s like a little surprise for me to go check out.

What is your development environment like?

These days, an aging Dell Inspiron laptop running Kubuntu 10.10. GCC for compiling. For debugging, strace, GNU Debugger (which I admit I still barely know how to use properly!) and the tried-and-true sprinkle of printf() calls.

Milestones:

Version / Date Milestone
June 16, 2002 Initial release
June 30, 2002 Added “Magic” tools
July 31, 2002 Localization support
October 12, 2004 “Tux Paint Config.” graphical configuration tool released
October 21, 2006 Slide-show feature, animated and directional paint brushes
July 1, 2007 Arbitrary screen/window size, SVG vector graphics support, input method (IM)
support (text entry in Japanese, Chinese, Korean, etc.)
November 21, 2007 “Magic” tools externalized into plug-ins, Pango text rendering support
(UI in Arabic, etc.)
June 29, 2009 Text tool supports right-to-left text entry, via FriBiDi library
Next release (TBD) Accessibility enhancements (joystick, keyboard and mouse-click),
support for KidPix templates (which were just JPEGs with some extra headers), using PNG
metadata chunks to store Tux Paint-specific data

How can others contribute?

Tons of bugs to fix, features and enhancements to add, and non-code tasks to do, are posted in the trackers in Tux Paint’s SourceForge project. We have a variety of topic-focused mailing lists to subscribe and post to (e.g., if you don’t care about code, but want to help with documentation, there’s “tuxpaint-docs”).


More projects of the month

Project name: Tux Paint

Date founded: June, 2002

Project page: http://tuxpaint.sourceforge.net/

Project Leader


Bill Kendrick

Bill Kendrick

Occupation:Web development (HTML, C, PHP, MySQL), ebooks, video
games, mobile software development, Linux, organizational leader
Location: Davis, California, USA
Education: BS, Computer Science; California State University, Sonoma
(Sonoma State University)

Why did you place the project on SourceForge.net?

It provided free tools – specifically mailing lists, bug tracking and CVS – and file hosting space that the project needed to succeed.

How has SourceForge.net helped your project succeed?

By providing all the tools it needs, plus occasional exposure (like this, or when Tux Paint pops up in the top-projects rankings).

The number one benefit of using SourceForge.net is:

Free CVS and mailing lists without my needing to know how to configure or maintain them. I prefer spending my time hacking on Tux Paint!