source: www/index.html @ 1119

Last change on this file since 1119 was 1119, checked in by Sam Hocevar, 14 years ago
  • New layout test.
  • Property svn:keywords set to Id
File size: 15.2 KB
Line 
1<?php header("Content-Type: text/html; charset=utf-8"); ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3       "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
4
5<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
6
7<head>
8   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9   <meta name="GENERATOR" content="vim" />
10   <meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
11   <meta name="Description" content="libcaca - Colour AsCii Art library" />
12   <meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
13   <title>libcaca - Colour AsCii Art library</title>
14   <link rel="icon" type="image/x-icon" href="/favicon.ico" />
15   <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
16   <link rel="stylesheet" type="text/css" href="/main.css" />
17</head>
18
19<body>
20
21<div class="main">
22
23<img src="logo-caca.png" width="128" height="128"
24     alt="libcaca logo" style="margin: 20px; float: right;" />
25
26<h1> libcaca - Colour AsCii Art library </h1>
27
28<p style="text-align: right;"> <i>it’s da shit!</i> </p>
29
30<p> The libcaca library is a graphics library that outputs text instead of
31pixels, so that it can work on older video cards or text terminals. It is not
32unlike the famous <a href="http://aa-project.sourceforge.net/aalib/">AAlib</a>
33library, with the following improvements:
34
35<ul>
36  <li> Unicode support </li>
37  <li> 4096 available colours (some devices can only handle 16) </li>
38  <li> dithering of colour images </li>
39  <li> advanced text canvas operations (blitting, rotations) </li>
40</ul>
41
42<p> Libcaca works in a text terminal (and should thus work on all Unix
43systems including Mac OS X) using the S-Lang or ncurses libraries. It also
44works natively on DOS and Windows.
45
46<p> Libcaca is <a href="http://www.gnu.org/philosophy/free-sw.html">free
47software</a>, and can be used, modified and distributed under the terms of the
48<a href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public
49License</a>. The logo on this page is copyrighted by Akira Toriyama so if
50anyone fancies drawing a new logo it would be much appreciated. </p>
51
52<h2> Screenshots </h2>
53
54<p> Here are a few libcaca screenshots. </p>
55
56<table cellspacing="5" border="0">
57  <tr>
58    <td align="center">
59      <a href="img/stitch-80x45.png"><img alt="cacaview"
60         width="73" height="90"
61         src="img/tn-stitch-80x45.jpeg" /></a>
62      <br /><small><code>cacaview</code></small>
63    </td>
64    <td align="center">
65      <a href="img/cacaball-80x50.png"><img alt="cacaball"
66         width="101" height="90"
67         src="img/tn-cacaball-80x50.jpeg" /></a>
68      <br /><small><code>cacaball</code></small>
69    </td>
70    <td align="center">
71      <a href="img/cacaplas-80x50.png"><img alt="cacaplas"
72         width="101" height="90"
73         src="img/tn-cacaplas-80x50.jpeg" /></a>
74      <br /><small><code>cacaplas</code></small>
75    </td>
76    <td align="center">
77      <a href="img/truecolor-32x16.png"><img alt="truecolor"
78         width="87" height="90"
79         src="img/tn-truecolor-32x16.jpeg" /></a>
80      <br /><small>TrueColor</small>
81    </td>
82    <td align="center">
83      <a href="img/unicode-80x24.png"><img alt="unicode"
84         width="120" height="75"
85         src="img/tn-unicode-80x24.jpeg" /></a>
86      <br /><small>Unicode</small>
87    </td>
88  </tr>
89</table>
90
91<p> See also the various export formats:
92  <a href="export.png">PNG</a> (through TGA),
93  <a href="export.html">HTML</a>,
94  <a href="export.svg">SVG</a>,
95  <a href="export.ps">PostScript</a>.
96</p>
97
98<h2> Where is the old libcaca page? </h2>
99
100<p> libcaca is currently undergoing a massive rewrite, and as such all
101previous patches and code examples are broken. Until this is done I have
102decided to put most of this page offline. </p>
103
104<h2> Developers </h2>
105
106<p> The latest libcaca snapshot is <a
107href="libcaca-0.99.beta1.tar.gz">libcaca-0.99.beta1.tar.gz</a>. Please
108download and test it. If you are a developer, please comment on the current
109API and let me know what is missing. </p>
110
111<p> Important links: </p>
112
113<ul>
114  <li> Documentation in <a href="doc/">HTML format</a> </li>
115
116  <li> Documentation in <a href="libcaca.pdf">PDF format</a> </li>
117
118  <li> Mailing-list: <a
119  href="mailto:libcaca&#64;lists.zoy.org">libcaca&#64;lists.zoy.org</a>
120  (To subscribe, send an email to <a
121  href="mailto:ecartis&#64;lists.zoy.org">ecartis&#64;lists.zoy.org</a>
122  containing the words "<code>subscribe libcaca</code>". To unsubscribe, just
123  use "<code>unsubscribe libcaca</code>".) </li>
124
125  <li> Mailing-list <a href="threads.html">archives</a> </li>
126
127  <li> Subversion repository: <code>svn://svn.zoy.org/libcaca/trunk</code> </li>
128
129  <li> Subversion
130  <a href="/cgi-bin/viewcvs.cgi/trunk/?root=libcaca">web interface</a> </li>
131</ul>
132
133<!--
134<p> Here are my first libcaca attempts. The first image is,
135<code>cacaview</code>, the libcaca image viewer. Then, two
136screenshots of my first port of an application to libcaca: the <a
137href="http://www.videolan.org/vlc/">VLC</a> media player. The last
138screenshots are from <code>cacafire</code> (the libcaca port of aafire) and
139<code>cacaball</code> (a mini metaballs demo). </p>
140
141<table cellspacing="5" border="0">
142  <tr>
143    <td align="center">
144      <a href="caca-stitch.png"><img alt="cacaview"
145         width="78" height="90"
146         src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a>
147    </td>
148    <td align="center">
149      <a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions"
150         width="120" height="74"
151         src="tn-caca-vlc.jpeg" /><br />VLC media player</a>
152    </td>
153    <td align="center">
154      <a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer"
155         width="120" height="74"
156         src="tn-caca-vlc3.jpeg" /><br />VLC media player</a>
157    </td>
158    <td align="center">
159      <a href="caca-fire.png"><img alt="cacafire"
160         width="120" height="87"
161         src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a>
162    </td>
163    <td align="center">
164      <a href="caca-ball.png"><img alt="cacaball"
165         width="104" height="90"
166         src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a>
167    </td>
168  </tr>
169</table>
170
171<p> As with all image processing applications, I needed the obligatory <a
172href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From
173left to right: the currently in development Floyd-Steinberg dithering, the
174antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no
175dithering, ordered dithering, random dithering. </p>
176
177<table cellspacing="5" border="0">
178  <tr>
179    <td align="center">
180      <a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)"
181         width="87" height="90"
182         src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a>
183    </td>
184    <td align="center">
185      <a href="lenna-antialias.png"><img alt="Lenna (antialiased)"
186         width="97" height="90"
187         src="tn-lenna-antialias.jpeg" /><br />antialiasing</a>
188    </td>
189    <td align="center">
190      <a href="lenna-new.png"><img alt="Lenna (new renderer)"
191         width="99" height="90"
192         src="tn-lenna-new.jpeg" /><br />new renderer</a>
193    </td>
194    <td align="center">
195      <a href="lenna-nodither.png"><img alt="Lenna (no dithering)"
196         width="99" height="90"
197         src="tn-lenna-nodither.jpeg" /><br />no dithering</a>
198    </td>
199    <td align="center">
200      <a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)"
201         width="99" height="90"
202         src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a>
203    </td>
204    <td align="center">
205      <a href="lenna-random.png"><img alt="Lenna (random dithering)"
206         width="99" height="90"
207         src="tn-lenna-random.jpeg" /><br />random dithering</a>
208    </td>
209  </tr>
210</table>
211
212<p> Here are a few examples of my libcaca patch for libSDL. Once there is a
213libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program
214using SDL can automatically benefit from libcaca’s rendering routines. These
215examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the
216<a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous
217<a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is
218fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys
219not being recognized (see the TODO list about that). </p>
220
221<table cellspacing="5" border="0">
222  <tr>
223    <td align="center">
224      <a href="caca-fb.png"><img alt="ASCII art Frozen Bubble"
225         width="120" height="90"
226         src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a>
227    </td>
228    <td align="center">
229      <a href="caca-sabre.png"><img alt="the SABRE flight simulator"
230         width="120" height="90"
231         src="tn-caca-sabre.jpeg" /><br />SABRE</a>
232    </td>
233    <td align="center">
234      <a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art"
235         width="120" height="90"
236         src="tn-caca-doom.jpeg" /><br />Doom splash screen</a>
237    </td>
238    <td align="center">
239      <a href="caca-doom2.png"><img alt="Doom in ASCII art"
240         width="120" height="90"
241         src="tn-caca-doom2.jpeg" /><br />first Doom level</a>
242    </td>
243  </tr>
244</table>
245
246<h2> Download libcaca </h2>
247
248<p> Latest libcaca release is <a
249href="libcaca-0.9.tar.gz">libcaca-0.9.tar.gz</a> (216KB) / <a
250href="libcaca-0.9.tar.bz2">libcaca-0.9.tar.bz2</a> (172KB). See the <a
251href="NEWS">NEWS</a> and <a href="ChangeLog">ChangeLog</a> files. </p>
252
253<p> libcaca is already in the Debian sid distribution. Debian woody users or
254sid users in a hurry may use one of the following apt sources: (sorry, sarge
255is not supported yet) </p>
256
257<table class="leftmenu" cellspacing="5" cellpadding="0">
258  <tr>
259    <td class="nowrap" valign="top">
260      <code>
261        deb http://sam.zoy.org/projects/debian woody main<br />
262        deb-src http://sam.zoy.org/projects/debian woody main<br />
263        <br />
264        deb http://sam.zoy.org/projects/debian sid main<br />
265        deb-src http://sam.zoy.org/projects/debian sid main<br />
266      </code>
267    </td>
268  </tr>
269</table>
270
271<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM
272packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh
273RPMs</a> page. If no package is available, you are encouraged
274to build packages for your system using this SRPM (<a
275href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple
276command line: </p>
277
278<table class="leftmenu" cellspacing="5" cellpadding="0">
279  <tr>
280    <td class="nowrap" valign="top">
281      <code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code>
282    </td>
283  </tr>
284</table>
285
286<p> BSD users should see the <a
287href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port
288page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD
289port page</a> (I am not aware of an OpenBSD port yet, but <a
290href="http://news.gw.com/openbsd.ports/15502">this email</a> has
291information on it), Gentoo users may find information on the <a
292href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo
293portage</a> and Slackware users have a package on <a
294href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>.
295</p>
296
297<p> A Windows zip archive containing the libcaca demos can be downloaded here:
298<a href="libcaca-win32-0.9.zip">libcaca-win32-0.9.zip</a> (100KB). </p>
299
300<h2> Patch for libSDL </h2>
301
302<p> This simple patch was quickly hacked from the AAlib video
303driver. Apply it to the libSDL sources and configuree libSDL with
304<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code>
305environment variable to run your SDL programs with libcaca output, for
306instance Frozen Bubble: </p>
307
308<table class="leftmenu" cellspacing="5" cellpadding="0">
309  <tr>
310    <td class="nowrap" valign="top">
311      <code>SDL_VIDEODRIVER=caca frozen-bubble</code>
312    </td>
313  </tr>
314</table>
315
316<p> Download <a href="patch-libsdl1.2-libcaca0.7.diff">patch-libsdl1.2-libcaca0.7.diff</a> (to be used with the Debian unstable SDL sources and libcaca 0.7. </p>
317
318<h2> Patches for VLC, xine, mplayer... </h2>
319
320<p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a>
321media player was already applied upstream. Check the CVS version. </p>
322
323<p> There is a work in progress for <a href="http://xine.sf.net/">xine</a>
324called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&amp;forum_id=7131">this email</a>). Zeeshan Ali wrote a
325<a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not
326aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you
327should not be using MPlayer anyway, because it sucks). </p>
328
329<h2> Documentation </h2>
330
331<p> See the <a href="doc/index.html">HTML documentation</a>. </p>
332
333<h2> Development </h2>
334
335<p> The mailing-list for libcaca users and developers is <a
336href="mailto:libcaca&#64;lists.zoy.org">libcaca&#64;lists.zoy.org</a>.
337To subscribe, send an email to <a
338href="mailto:ecartis&#64;lists.zoy.org">ecartis&#64;lists.zoy.org</a>
339containing the words "<code>subscribe libcaca</code>". To unsubscribe, just
340use "<code>unsubscribe libcaca</code>". </p>
341
342<p> Please report bugs and make suggestions to <a
343href="mailto:libcaca&#64;lists.zoy.org">libcaca&#64;lists.zoy.org</a> and
344don’t forget to check the <a href="threads.html">mailing-list archives</a>.
345</p>
346
347<p> The libcaca development is managed using <a
348href="http://subversion.tigris.org">Subversion</a>. The
349<code>svn://svn.zoy.org/libcaca/</code> repository can be browsed using the <a
350href="/cgi-bin/viewcvs.cgi/trunk/?root=libcaca">web interface</a>, or directly
351with the Subversion client. For instance, to retrieve the main trunk, use this
352command: </p>
353
354<table class="leftmenu" cellspacing="5" cellpadding="0">
355  <tr>
356    <td class="nowrap" valign="top">
357      <code>svn co svn://svn.zoy.org/libcaca/trunk libcaca-trunk</code>
358    </td>
359  </tr>
360</table>
361
362<p> To retrieve a specific tag, e.g. 0.3, use this: </p>
363
364<table class="leftmenu" cellspacing="5" cellpadding="0">
365  <tr>
366    <td class="nowrap" valign="top">
367      <code>svn co svn://svn.zoy.org/libcaca/tags/0.3 libcaca-0.3</code>
368    </td>
369  </tr>
370</table>
371-->
372
373<h2> Why? </h2>
374
375<blockquote><p>
376Que dites-vous ?... C’est inutile ?... Je le sais !
377<br />Mais on ne se bat pas dans l’espoir du succès !
378<br />Non ! non, c’est bien plus beau lorsque c’est inutile !
379<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small>
380</p></blockquote>
381
382<p> I am perfectly aware that libcaca is the waste of time it looks to be. No
383need to tell me about that. I urge you to read Théophile Gautier’s preface to
384<i>Mademoiselle de Maupin</i>, which also gives an excellent explanation for
385the name “libcaca”: </p>
386
387<blockquote><p>
388Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce
389qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux
390de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. -
391L’endroit le plus utile d’une maison, ce sont les latrines.
392</p></blockquote>
393
394<p> As for the name “libcucul”, please refer to the pioneer of modernist
395Polish fiction: </p>
396
397<blockquote><p>
398Mais contre le cucul, il n’y a pas de refuge. Courez après moi
399si vous voulez, je m’enfuis la gueule entre les mains. Et voilà,
400tralala, Zut à celui qui le lira !
401<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small>
402</p></blockquote>
403
404<p><small><code><?php echo '$Id: index.html 1119 2006-09-27 23:33:21Z sam $ Host: ' . $_SERVER['REMOTE_ADDR'];?></code></small></p>
405
406</div>
407
408</body>
409</html>
Note: See TracBrowser for help on using the repository browser.