source: www/index.html @ 1373

Last change on this file since 1373 was 1373, checked in by Sam Hocevar, 13 years ago
  • Added a swallow screenshot.
  • Property svn:keywords set to Id
File size: 12.8 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<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>
22
23<img src="logo-caca.png" width="128" height="128"
24     alt="libcaca logo" class="caca" />
25
26<h2> Introduction </h2>
27
28<p> <i>libcaca</i> is a graphics library that outputs text instead of pixels,
29so that it can work on older video cards or text terminals. It is not unlike
30the famous <a href="http://aa-project.sourceforge.net/aalib/">AAlib</a>
31library, with the following improvements: </p>
32
33<ul>
34  <li> Unicode support </li>
35  <li> 2048 available colours (some devices can only handle 16) </li>
36  <li> dithering of colour images </li>
37  <li> advanced text canvas operations (blitting, rotations) </li>
38</ul>
39
40<p> Libcaca works in a text terminal (and should thus work on all Unix
41systems including Mac OS X) using the S-Lang or ncurses libraries. It also
42works natively on DOS and Windows. </p>
43
44<p> Libcaca is <a href="http://www.gnu.org/philosophy/free-sw.html">free
45software</a>, and can be used, modified and distributed under the terms of
46the <a href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public
47License</a>. Older versions (up to 0.9) were under the LGPL license but all
48copyright holders agreed to relicence the codebase under the WTFPL (such a
49permission is not retroactive and you should consider old versions as still
50covered by the LGPL). The logo on this page is copyrighted by Akira Toriyama
51so if anyone fancies drawing a new logo it would be much appreciated. </p>
52
53<p> Libcaca was written by Sam Hocevar &lt;<a
54href="mailto:sam@zoy.org">sam@zoy.org</a>&gt; and Jean-Yves Lamoureux &lt;<a
55href="mailto:jylam@lnxscene.org">jylam@lnxscene.org</a>&gt;. </p>
56
57<h2> Screenshots </h2>
58
59<p> Here are a few <i>libcaca</i> screenshots. </p>
60
61<table cellspacing="5" border="0">
62  <tr>
63    <td align="center">
64      <a href="img/stitch-80x45.png"><img alt="cacaview"
65         width="73" height="90"
66         src="img/tn-stitch-80x45.jpeg" /></a>
67      <br /><small><code>cacaview</code></small>
68    </td>
69    <td align="center">
70      <a href="img/cacaball-80x50.png"><img alt="cacaball"
71         width="101" height="90"
72         src="img/tn-cacaball-80x50.jpeg" /></a>
73      <br /><small><code>cacaball</code></small>
74    </td>
75    <td align="center">
76      <a href="img/cacaplas-80x50.png"><img alt="cacaplas"
77         width="101" height="90"
78         src="img/tn-cacaplas-80x50.jpeg" /></a>
79      <br /><small><code>cacaplas</code></small>
80    </td>
81    <td align="center">
82      <a href="img/truecolor-32x16.png"><img alt="truecolor"
83         width="87" height="90"
84         src="img/tn-truecolor-32x16.jpeg" /></a>
85      <br /><small>TrueColor</small>
86    </td>
87    <td align="center">
88      <a href="img/unicode-80x24.png"><img alt="unicode"
89         width="120" height="75"
90         src="img/tn-unicode-80x24.jpeg" /></a>
91      <br /><small>Unicode</small>
92    </td>
93    <td align="center">
94      <a href="img/swallow-80x32.png"><img alt="swallow"
95         width="120" height="81"
96         src="img/tn-swallow-80x32.jpeg" /></a>
97      <br /><small>swallowing applications</small>
98    </td>
99  </tr>
100</table>
101
102<p> See also the various export formats:
103  <a href="export.png">PNG</a> (through TGA),
104  <a href="export.html">HTML</a>,
105  <a href="export.svg">SVG</a>,
106  <a href="export.ps">PostScript</a>.
107</p>
108
109<!--
110<p> Here are my first libcaca attempts. The first image is,
111<code>cacaview</code>, the libcaca image viewer. Then, two
112screenshots of my first port of an application to libcaca: the <a
113href="http://www.videolan.org/vlc/">VLC</a> media player. The last
114screenshots are from <code>cacafire</code> (the libcaca port of aafire) and
115<code>cacaball</code> (a mini metaballs demo). </p>
116
117<table cellspacing="5" border="0">
118  <tr>
119    <td align="center">
120      <a href="caca-stitch.png"><img alt="cacaview"
121         width="78" height="90"
122         src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a>
123    </td>
124    <td align="center">
125      <a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions"
126         width="120" height="74"
127         src="tn-caca-vlc.jpeg" /><br />VLC media player</a>
128    </td>
129    <td align="center">
130      <a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer"
131         width="120" height="74"
132         src="tn-caca-vlc3.jpeg" /><br />VLC media player</a>
133    </td>
134    <td align="center">
135      <a href="caca-fire.png"><img alt="cacafire"
136         width="120" height="87"
137         src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a>
138    </td>
139    <td align="center">
140      <a href="caca-ball.png"><img alt="cacaball"
141         width="104" height="90"
142         src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a>
143    </td>
144  </tr>
145</table>
146
147<p> As with all image processing applications, I needed the obligatory <a
148href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From
149left to right: the currently in development Floyd-Steinberg dithering, the
150antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no
151dithering, ordered dithering, random dithering. </p>
152
153<table cellspacing="5" border="0">
154  <tr>
155    <td align="center">
156      <a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)"
157         width="87" height="90"
158         src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a>
159    </td>
160    <td align="center">
161      <a href="lenna-antialias.png"><img alt="Lenna (antialiased)"
162         width="97" height="90"
163         src="tn-lenna-antialias.jpeg" /><br />antialiasing</a>
164    </td>
165    <td align="center">
166      <a href="lenna-new.png"><img alt="Lenna (new renderer)"
167         width="99" height="90"
168         src="tn-lenna-new.jpeg" /><br />new renderer</a>
169    </td>
170    <td align="center">
171      <a href="lenna-nodither.png"><img alt="Lenna (no dithering)"
172         width="99" height="90"
173         src="tn-lenna-nodither.jpeg" /><br />no dithering</a>
174    </td>
175    <td align="center">
176      <a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)"
177         width="99" height="90"
178         src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a>
179    </td>
180    <td align="center">
181      <a href="lenna-random.png"><img alt="Lenna (random dithering)"
182         width="99" height="90"
183         src="tn-lenna-random.jpeg" /><br />random dithering</a>
184    </td>
185  </tr>
186</table>
187
188<p> Here are a few examples of my libcaca patch for libSDL. Once there is a
189libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program
190using SDL can automatically benefit from libcaca’s rendering routines. These
191examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the
192<a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous
193<a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is
194fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys
195not being recognized (see the TODO list about that). </p>
196
197<table cellspacing="5" border="0">
198  <tr>
199    <td align="center">
200      <a href="caca-fb.png"><img alt="ASCII art Frozen Bubble"
201         width="120" height="90"
202         src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a>
203    </td>
204    <td align="center">
205      <a href="caca-sabre.png"><img alt="the SABRE flight simulator"
206         width="120" height="90"
207         src="tn-caca-sabre.jpeg" /><br />SABRE</a>
208    </td>
209    <td align="center">
210      <a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art"
211         width="120" height="90"
212         src="tn-caca-doom.jpeg" /><br />Doom splash screen</a>
213    </td>
214    <td align="center">
215      <a href="caca-doom2.png"><img alt="Doom in ASCII art"
216         width="120" height="90"
217         src="tn-caca-doom2.jpeg" /><br />first Doom level</a>
218    </td>
219  </tr>
220</table>
221
222<h2> Download libcaca </h2>
223
224<p> libcaca is already in the Debian sid distribution. Debian woody users or
225sid users in a hurry may use one of the following apt sources: (sorry, sarge
226is not supported yet) </p>
227
228<table class="leftmenu" cellspacing="5" cellpadding="0">
229  <tr>
230    <td class="nowrap" valign="top">
231      <code>
232        deb http://sam.zoy.org/projects/debian woody main<br />
233        deb-src http://sam.zoy.org/projects/debian woody main<br />
234        <br />
235        deb http://sam.zoy.org/projects/debian sid main<br />
236        deb-src http://sam.zoy.org/projects/debian sid main<br />
237      </code>
238    </td>
239  </tr>
240</table>
241
242<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM
243packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh
244RPMs</a> page. If no package is available, you are encouraged
245to build packages for your system using this SRPM (<a
246href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple
247command line: </p>
248
249<table class="leftmenu" cellspacing="5" cellpadding="0">
250  <tr>
251    <td class="nowrap" valign="top">
252      <code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code>
253    </td>
254  </tr>
255</table>
256
257<p> BSD users should see the <a
258href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port
259page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD
260port page</a> (I am not aware of an OpenBSD port yet, but <a
261href="http://news.gw.com/openbsd.ports/15502">this email</a> has
262information on it), Gentoo users may find information on the <a
263href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo
264portage</a> and Slackware users have a package on <a
265href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>.
266</p>
267
268<h2> Patch for libSDL </h2>
269
270<p> This simple patch was quickly hacked from the AAlib video
271driver. Apply it to the libSDL sources and configuree libSDL with
272<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code>
273environment variable to run your SDL programs with libcaca output, for
274instance Frozen Bubble: </p>
275
276<table class="leftmenu" cellspacing="5" cellpadding="0">
277  <tr>
278    <td class="nowrap" valign="top">
279      <code>SDL_VIDEODRIVER=caca frozen-bubble</code>
280    </td>
281  </tr>
282</table>
283
284<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>
285
286<h2> Patches for VLC, xine, mplayer... </h2>
287
288<p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a>
289media player was already applied upstream. Check the CVS version. </p>
290
291<p> There is a work in progress for <a href="http://xine.sf.net/">xine</a>
292called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&amp;forum_id=7131">this email</a>). Zeeshan Ali wrote a
293<a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not
294aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you
295should not be using MPlayer anyway, because it sucks). </p>
296
297<h2> Development </h2>
298
299-->
300
301<h2> Why? </h2>
302
303<blockquote><p>
304Que dites-vous ?... C’est inutile ?... Je le sais !
305<br />Mais on ne se bat pas dans l’espoir du succès !
306<br />Non ! non, c’est bien plus beau lorsque c’est inutile !
307<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small>
308</p></blockquote>
309
310<p> I am perfectly aware that <i>libcaca</i> is the waste of time it looks to
311be. No need to tell me about that. I urge you to read Théophile Gautier’s
312preface to <i>Mademoiselle de Maupin</i>, which also gives an excellent
313explanation for the name “libcaca”: </p>
314
315<blockquote><p>
316Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce
317qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux
318de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. -
319L’endroit le plus utile d’une maison, ce sont les latrines.
320</p></blockquote>
321
322<p> As for the name “libcucul”, please refer to the pioneer of modernist
323Polish fiction: </p>
324
325<blockquote><p>
326Mais contre le cucul, il n’y a pas de refuge. Courez après moi
327si vous voulez, je m’enfuis la gueule entre les mains. Et voilà,
328tralala, Zut à celui qui le lira !
329<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small>
330</p></blockquote>
331
332<?php $rev = '$Id: index.html 1373 2006-11-12 20:09:48Z sam $';
333      include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>
334
335</body>
336</html>
Note: See TracBrowser for help on using the repository browser.