ProductsDesktop Server For Scientific Computing For IBM POWER For IBM System z For SAP Business Applications Red Hat Network Satellite ManagementExtended Update Support High Availability High Performance Network Load Balancer Resilient Storage Scalable File System Smart Management Extended Lifecycle SupportWeb Server Developer Studio Portfolio Edition JBoss Operations Network FuseSource Integration Products Web Framework Kit Application Platform Data Grid Portal Platform SOA Platform Business Rules Management System (BRMS) Data Services Platform Messaging JBoss Community or JBoss enterprise
SolutionsApplication development Business process management Enterprise application integration Interoperability Operational efficiency Security VirtualizationMigrate to Red Hat Enterprise Linux Systems management Upgrading to Red Hat Enterprise Linux JBoss Enterprise Middleware IBM AIX to Red Hat Enterprise Linux HP-UX to Red Hat Enterprise Linux Solaris to Red Hat Enterprise Linux UNIX to Red Hat Enterprise Linux Start a conversation with Red Hat Migration services
TrainingPopular and new courses JBoss Middleware Administration curriculum Core System Administration curriculum JBoss Middleware Development curriculum Advanced System Administration curriculum Linux Development curriculum Cloud Computing and Virtualization curriculum
ConsultingStandard Operating Environment (SOE) Strategic Migration Planning Service-oriented architecture (SOA) Enterprise Data Solutions Business Process Management
Issue #2 December 2004
- Better Living Through RPM, Part 2
- How Red Hat Got Its Name
- Red Hat Summit: Bringing the Heat to the Big Easy
- Imagine Choice
- Improving Usability: Principles and Steps for Better Software
- Geek Giving Guide
- From Source to Binary: The Inner Workings of GCC
- Configuring Devices with udev
- Tux Paint: Mousing Your Way to a Masterpiece
- Unlimited Anytime Minutes: GnomeMeeting, the Softphone
From the Inside
In each Issue
- Editor's Blog
- Red Hat Speaks
- Ask Shadowman
- Tips & Tricks
- Fedora Status Report
- Magazine Archive
Tux Paint: Mousing Your Way to a Masterpiece
by William Kendrick and Melissa Hardenbrook
- How It Started
- Getting Around in Tux Paint
- The Verdict
- Downloading and Installing Tux Paint
- Where We're Headed
- Further Reading
- About the Authors
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 Figure 1, “Tux Paint's Intuitive Interface”., , , , and also , , and . 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 , , and tools, and also some stamps) a palette of colors appears below the drawing canvas as shown in
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.
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 abutton, 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 thebutton 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 button.
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.
"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-config. Once you've downloaded the
appropriate files for your system, use the
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
.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
to go along with
Compiling and installing Tux Paint is... well, not quite child's play,
but very simple. Open the
.tar.gz archives and run
make install in each.
tar -xzf tuxpaint-0.9.14.tar.gz cd tuxpaint-0.9.14/ make sudo -c make install
Since there's no code to compile in the Tux Paint Stamps collection,
makestep 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.
- 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.