Issue #2 December 2004

Tux Paint: Mousing Your Way to a Masterpiece

Introduction

Linux and open source software have been well-publicized as great platforms for educational software since most schools have limited funds for computers or computer software. The Tux4Kids organization is dedicated to developing free and open source educational software, including Tux Paint, for kids around the world.

Tux Paint is a drawing program designed specifically for children — think "My First GIMP." Its glossy interface and fun sound effects engage children (and some adults), without interfering with the creative process. The interface is so simple and intuitive, a three year old can use it. Literally. But your child needn't be in the Teletubbies demographic to appreciate it; the bells and whistles merely add a splash of kid-enchanting fun to a robust and solidly functional drawing program that kids of all ages come back to again and again, even after the novelty's worn off.

How It Started

It all started two and a half years ago when a friend from my local Linux User Group mentioned that he'd installed a set of educational and kids' software on his home Linux box for his two boys (then 4 and 7 years old). He said it was quite a nice collection, but complained that the only drawing program in it was The GIMP.

I was shocked. There are few things more quintessentially "kid" than drawing, and yet the only drawing program he could find was The GIMP? I adore The GIMP, but let's face it: it's challenging enough for adults, at times (why else would we need a GIMP User's Group?). I couldn't imagine a little kid wrapping their head around it!

Obviously, something had to be done.

At that time, my claim to fame in the Linux community was my large collection of very small, very simple video games (the editors of LinuxGames.com always seem to use the word "prolific" next to my name). A year earlier, I had worked with Sam Hart's non-profit Tux4Kids organization to develop an educational video game for Linux. I wrote the code, they provided mailing lists, encouragement, and managerial support.

I figured I had both the experience and the resources necessary to whip together a simple drawing program for my friend's kids. Little did I know that two years and tens of thousands of downloads later, I'd still be working on it.

When designing Tux Paint, I looked to some of my favorite platforms for inspiration: my first computer, an Atari 8-bit; Mac OS System 7, which I used in college; and PalmOS on my PDA. With menu or graphical user interfaces (versus command-line), and obvious, easily accessible features (versus features buried in sub-menus, or found only by right-clicking or entering magic keystrokes), these systems were clearly designed with ease of use in mind. I considered what elements I'd like to emulate, and, within days of hearing my friend's story, I sat down at lunch and sketched out the interface layout on some napkins. I'm proud to say that Tux Paint's actual design isn't too far off from those early napkin diagrams.

Getting Around in Tux Paint

As should be obvious by now, Tux Paint was designed to be straight-forward and very easy to use: All control buttons have text labels (in your choice of 45+ languages) as well as icons that illustrate their purpose; Dialogues have been boiled down to a simple "Yes/No" option; and Tux the Penguin is always at the bottom of the screen providing useful information (some of you may be thinking of a certain loathsome paper clip right about now. Trust me, it's nothing like that). Additionally, except for the text tool, Tux Paint can be used entirely via a pointing device, such as a mouse, trackball, or drawing tablet.

A static bank of buttons on the left shows all of Tux Paint's drawing tools and application controls — options like Paint, Text, Eraser, Undo/Redo, and also Save, Print, and Quit. Sub-tools or tool options (which vary depending on what tool is selected) appear in a similar bank of buttons on the right. Brush sizes and shapes, fonts and sizes, images to be stamped, and various other tools are selected here. When appropriate (for example, with the Paint, Shapes, and Text tools, and also some stamps) a palette of colors appears below the drawing canvas as shown in Figure 1, “Tux Paint's Intuitive Interface”.

Tux Paint's Intuitive Interface
Figure 1. Tux Paint's Intuitive Interface

Aside from providing opportunities for building pre-literacy/literacy skills and reinforcing bilingual education, the Stamps feature of Tux Paint has the greatest potential for educational use. There's currently a collection of over 200 stamps (drawings and photographs ranging from coins to fruit to tropical fish) which can be placed anywhere on the drawing canvas. It's a lot like pasting a sticker onto a sheet of paper, and kids find it just as fun and easy as shown in Figure 2, “Some stamps in Tux Paint”. Stamps can be accompanied by both textual descriptions such as The Apollo lunar landing module), which appear below the color palette, and a corresponding sound effect such as a recording of Buzz Aldrin's One small step for man quote). Both sound descriptions and sound effects can be translated for other locales.

Some stamps in Tux Paint
Figure 2. Some stamps in Tux Paint

The thumbs-down and thumbs-up tool buttons found on Tux Paint's main toolbar allow the last 20 steps of drawing to be undone and redone — just like in professional paint programs! When it's time to start anew, Tux Paint provides both an eraser, for wiping out parts of the current drawing, and a New button, for starting over with a clean slate.

What good is a paint program if you can't save your masterpieces? More importantly, what good is a computer program for 3 year olds if it suddenly throws them into the confusing world of the computer's file system? To alleviate any confusion — and any loss of a parent's data — Tux Paint's save command works in one click. A short "camera shutter" sound effect is played and the drawing is saved, no questions asked. More importantly, there's no way for little ones to clobber your important tax files or family photos (of course, since we're all using Linux here, your kids really should have their own user accounts, anyway).

Opening saved files is equally easy. When the Open button is clicked, the drawing canvas is replaced with a scrollable collection of thumbnails, each representing a picture drawn in Tux Paint. Unwanted pictures can even be deleted from here by using the red, trashcan-shaped Erase button.

The Verdict

How has Tux Paint been received? The response has been overwhelmingly positive. It's been reviewed in at least eight print magazines and twenty online publications. Since placing a gallery section on the Tux Paint website, parents have sent in dozens of pictures drawn by their kids. Glowing comments from nearly forty teachers and grade school IT administrators are quoted on the site. The following two testimonials summarize the comments nicely and also highlight two important issues schools constantly face (and which Open Source software like Linux and Tux Paint are solving): budget constraints and difficulty providing adequate software to students that they may use also use at home.

Children using Tux Paint at a School in Belgium
Figure 3. Children using Tux Paint at a School in Belgium

"Teachers and students at Stormonth Elementary School in Milwaukee, WI, have switched from Kid Pix Deluxe to the open-source program Tux Paint. Teachers were blown away by the programs features, ease of use, and kid friendly layout. The program will be used by all children in kindergarten through the second grade. Tux Paint is a very simple program that allows our younger students to learn to use the PC and to create wonderful, full colored drawings for their teachers and parents. With the dwindling budgets schools are facing, quality open-source software like Tux Paint has been welcome."

"In an attempt to create consistency, not only throughout the software portfolio on the schools computers, but extending into the students' home computers, Grant High School in South Australia has adopted a holistic Open Source approach. This way, our students can legally afford to install the programs at home, necessary for them to do their homework."

Downloading and Installing Tux Paint

By this point, I hope you're interested in trying out Tux Paint for your kids, your school, or maybe even yourself. You'll find it's a snap to install and run. Tux Paint's requirements are quite modest, as well. It should work on just about any PC that's at least 100MHz in speed and capable of displaying 640x480 resolution at 16bpp. It's even usable on thin client systems, like the Linux Terminal Server Project (LTSP), which are used in many schools.

Tux Paint comes in three parts: the Tux Paint application and data, an optional collection of add-on graphical content (clip art), and an optional GUI-based configuration tool for parents and teachers.

Tux Paint was developed using Sam Lantinga's Simple DirectMedia Layer (SDL) libraries. It requires SDL itself, along with SDL_Mixer for sound, SDL_Image and libPNG for PNG image support, and SDL_TTF and FreeType2 for TrueType Font rendering. It also uses gettext for localization support, and the FLTK widget library if you want to use the optional GUI configuration tool. All of these libraries are open source, of course and should be available on your installation media (if they're not installed already).

Using RPM Packages

The Tux Paint website hosts RPM package files for various versions of both Red Hat Linux and Fedora Core. For best results, you'll want all three parts, which are available in three packages: tuxpaint, tuxpaint-stamps, and tuxpaint-config. Once you've downloaded the appropriate files for your system, use the rpm command or your favorite package management tool to install them.

Installing from Source

For those who wish to install Tux Paint from source, all three parts are available as .tar.gz source archives. Additionally, the latest development code is available in a CVS repository at SourceForge.net.

Unless you happened to install the various support libraries from source, you'll need their respective development packages. They contain the libraries' C header files and other things you need to be able to successfully compile Tux Paint from source. (For example, you'll need SDL-devel and SDL_Image-devel to go along with SDL and SDL_Image.)

Compiling and installing Tux Paint is... well, not quite child's play, but very simple. Open the .tar.gz archives and run make and make install in each.

tar -xzf tuxpaint-0.9.14.tar.gz
cd tuxpaint-0.9.14/
make
sudo -c make install
Example 1. Extracting and Compiling Tux Paint
Note:
Since there's no code to compile in the Tux Paint Stamps collection, the make step is unnecessary.

Where We're Headed

After the success of Tux Paint, I decided to begin working on two new projects for the Tux4Kids collection: Tux Print and Tux Writer. Tux Print will be a simple tool for creating greeting cards, posters and banners, while Tux Writer will be to word processing what Tux Paint is to drawing software — functional, but very simple and fun, with kid-appropriate features.

Unfortunately, both projects are still in the planning stages, and between maintaining and improving Tux Paint and my real-life job, I haven't had much time to put into them. There are plenty of other eager programmers out there, though, and, like most Open Source developers, I'm always happy to accept helpers or even completely pass the torch on to someone new.

Further Reading

  • Tux Paint Website — Here you'll find information, screenshots, an artwork gallery, source and binary downloads, information, and archives of the developers' mailing lists and more.
  • Tux4Kids — The non-profit that helps produce Tux Paint and other educational programs for Linux.
  • Simple DirectMedia Layer — Home of the multimedia library that Tux Paint uses.
  • Seul/Edu Educational Application Index — A database of over 600 Open Source educational applications.
  • The GIMP — Think of it as Tux Paint for adults.

About the Authors

William Kendrick is a cellphone game developer by profession, and Linux game developer by hobby. Melissa describes herself as "too nerdy to be cool, too cool to be a nerd." She has a degree in linguistics and is considering returning to school to get a masters in speech pathology. They both helped start the flourishing Linux Users Group of Davis in California. They now live in Mountain View, California with their two cats.