libcaca logo

Introduction

libcaca is a graphics library that outputs text instead of pixels, so that it can work on older video cards or text terminals. It is not unlike the famous AAlib library, with the following improvements:

Libcaca works in a text terminal (and should thus work on all Unix systems including Mac OS X) using the S-Lang or ncurses libraries. It also works natively on DOS and Windows.

Libcaca was written by Sam Hocevar <sam@zoy.org> and Jean-Yves Lamoureux <jylam@lnxscene.org>. It is free software, and can be used, modified and distributed under the terms of the Do What The Fuck You Want To Public License.

libcaca Ohloh metrics toilet Ohloh metrics

News

libcaca rendering sample

Screenshots

Here are a few libcaca screenshots.

cacaview
cacaview
cacaball
cacaball
cacaplas
cacaplas
truecolor
TrueColor
unicode
Unicode
swallow
swallowing applications
rotation
canvas rotation

See also the various export formats, generated from an old ANSI file: PNG (through TGA), HTML, SVG, PostScript.

Why?

Que dites-vous ?... C’est inutile ?... Je le sais !
Mais on ne se bat pas dans l’espoir du succès !
Non ! non, c’est bien plus beau lorsque c’est inutile !
-- Edmond Rostand, Cyrano de Bergerac

I am perfectly aware that libcaca is the waste of time it looks to be. No need to tell me about that. I urge you to read Théophile Gautier’s preface to Mademoiselle de Maupin, which also gives an excellent explanation for the name “libcaca”:

Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. - L’endroit le plus utile d’une maison, ce sont les latrines.

As for the name “libcucul”, please refer to the pioneer of modernist Polish fiction:

Mais contre le cucul, il n’y a pas de refuge. Courez après moi si vous voulez, je m’enfuis la gueule entre les mains. Et voilà, tralala, Zut à celui qui le lira !
-- Witold Gombrowicz, Ferdydurke