Changeset 935

May 5, 2006, 9:29:53 PM (14 years ago)
Sam Hocevar
  • Imported the current libcaca page.
18 added
1 edited


  • www/index.html

    r933 r935  
     1<?php header("Content-Type: text/html; charset=utf-8"); ?>
     2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     3       "">
     5<html xmlns="" xml:lang="en">
     8   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     9   <meta name="GENERATOR" content="vim" />
     10   <meta name="Author" content=" (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" />
     21<img src="logo-caca.png" width="128" height="128"
     22     alt="libcaca logo" style="margin: 20px; float: right;" />
     24<h1> libcaca - Colour AsCii Art library </h1>
     26<p class="right"> <i>it’s da shit!</i> </p>
     28<p> The libcaca library is a graphics library that outputs text instead of
     29pixels, so that it can work on older video cards or text terminals. It is not
     30unlike the famous <a href="">AAlib</a>
     31library, with the following improvements:
     34  <li> Unicode support </li>
     35  <li> 4096 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>
     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.
     44<p> Libcaca is <a href="">free
     45software</a>, and can be used, modified and ditributed under the terms of the
     46<a href="">Do What The Fuck You Want To Public
     47License</a>. The logo on this page is copyrighted by Akira Toriyama so if
     48anyone fancies drawing a new logo it would be much appreciated. </p>
     50<h2> Screenshots </h2>
     52<p> Here are a few libcaca screenshots. </p>
     54<table cellspacing="5" border="0">
     55  <tr>
     56    <td align="center">
     57      <a href="images/stitch-80x45.png"><img alt="cacaview"
     58         width="73" height="90"
     59         src="images/tn-stitch-80x45.jpeg" /></a>
     60      <br /><small><code>cacaview</code></small>
     61    </td>
     62    <td align="center">
     63      <a href="images/cacaball-80x50.png"><img alt="cacaball"
     64         width="101" height="90"
     65         src="images/tn-cacaball-80x50.jpeg" /></a>
     66      <br /><small><code>cacaball</code></small>
     67    </td>
     68    <td align="center">
     69      <a href="images/cacaplas-80x50.png"><img alt="cacaplas"
     70         width="101" height="90"
     71         src="images/tn-cacaplas-80x50.jpeg" /></a>
     72      <br /><small><code>cacaplas</code></small>
     73    </td>
     74    <td align="center">
     75      <a href="images/truecolor-32x16.png"><img alt="truecolor"
     76         width="87" height="90"
     77         src="images/tn-truecolor-32x16.jpeg" /></a>
     78      <br /><small>TrueColor</small>
     79    </td>
     80    <td align="center">
     81      <a href="images/unicode-80x24.png"><img alt="unicode"
     82         width="120" height="75"
     83         src="images/tn-unicode-80x24.jpeg" /></a>
     84      <br /><small>Unicode</small>
     85    </td>
     86  </tr>
     89<p> See also the various export formats:
     90  <a href="export.png">PNG</a> (through TGA),
     91  <a href="export.html">HTML</a>,
     92  <a href="export.svg">SVG</a>,
     93  <a href="">PostScript</a>.
     96<h2> Where is the old libcaca page? </h2>
     98<p> libcaca is currently undergoing a massive rewrite, and as such all
     99previous patches and code examples are broken. Until this is done I have
     100decided to put most of this page offline. </p>
     102<h2> Developers </h2>
     104<p> The latest libcaca snapshot is <a
     105href="libcaca-0.99.beta1.tar.gz">libcaca-0.99.beta1.tar.gz</a>. Please
     106download and test it. If you are a developer, please comment on the current
     107API and let me know what is missing. </p>
     109<p> Important links: </p>
     112  <li> Documentation in <a href="doc/">HTML format</a> </li>
     114  <li> Documentation in <a href="libcaca.pdf">PDF format</a> </li>
     116  <li> Mailing-list: <a
     117  href="mailto:libcaca&#64;">libcaca&#64;</a>
     118  (To subscribe, send an email to <a
     119  href="mailto:ecartis&#64;">ecartis&#64;</a>
     120  containing the words "<code>subscribe libcaca</code>". To unsubscribe, just
     121  use "<code>unsubscribe libcaca</code>".) </li>
     123  <li> Mailing-list <a href="threads.html">archives</a> </li>
     125  <li> Subversion repository: <code>svn://</code> </li>
     127  <li> Subversion
     128  <a href="/cgi-bin/viewcvs.cgi/trunk/?root=libcaca">web interface</a> </li>
     132<p> Here are my first libcaca attempts. The first image is,
     133<code>cacaview</code>, the libcaca image viewer. Then, two
     134screenshots of my first port of an application to libcaca: the <a
     135href="">VLC</a> media player. The last
     136screenshots are from <code>cacafire</code> (the libcaca port of aafire) and
     137<code>cacaball</code> (a mini metaballs demo). </p>
     139<table cellspacing="5" border="0">
     140  <tr>
     141    <td align="center">
     142      <a href="caca-stitch.png"><img alt="cacaview"
     143         width="78" height="90"
     144         src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a>
     145    </td>
     146    <td align="center">
     147      <a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions"
     148         width="120" height="74"
     149         src="tn-caca-vlc.jpeg" /><br />VLC media player</a>
     150    </td>
     151    <td align="center">
     152      <a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer"
     153         width="120" height="74"
     154         src="tn-caca-vlc3.jpeg" /><br />VLC media player</a>
     155    </td>
     156    <td align="center">
     157      <a href="caca-fire.png"><img alt="cacafire"
     158         width="120" height="87"
     159         src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a>
     160    </td>
     161    <td align="center">
     162      <a href="caca-ball.png"><img alt="cacaball"
     163         width="104" height="90"
     164         src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a>
     165    </td>
     166  </tr>
     169<p> As with all image processing applications, I needed the obligatory <a
     170href="">Lenna</a> samples. From
     171left to right: the currently in development Floyd-Steinberg dithering, the
     172antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no
     173dithering, ordered dithering, random dithering. </p>
     175<table cellspacing="5" border="0">
     176  <tr>
     177    <td align="center">
     178      <a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)"
     179         width="87" height="90"
     180         src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a>
     181    </td>
     182    <td align="center">
     183      <a href="lenna-antialias.png"><img alt="Lenna (antialiased)"
     184         width="97" height="90"
     185         src="tn-lenna-antialias.jpeg" /><br />antialiasing</a>
     186    </td>
     187    <td align="center">
     188      <a href="lenna-new.png"><img alt="Lenna (new renderer)"
     189         width="99" height="90"
     190         src="tn-lenna-new.jpeg" /><br />new renderer</a>
     191    </td>
     192    <td align="center">
     193      <a href="lenna-nodither.png"><img alt="Lenna (no dithering)"
     194         width="99" height="90"
     195         src="tn-lenna-nodither.jpeg" /><br />no dithering</a>
     196    </td>
     197    <td align="center">
     198      <a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)"
     199         width="99" height="90"
     200         src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a>
     201    </td>
     202    <td align="center">
     203      <a href="lenna-random.png"><img alt="Lenna (random dithering)"
     204         width="99" height="90"
     205         src="tn-lenna-random.jpeg" /><br />random dithering</a>
     206    </td>
     207  </tr>
     210<p> Here are a few examples of my libcaca patch for libSDL. Once there is a
     211libcaca backend for <a href="">libSDL</a>, any program
     212using SDL can automatically benefit from libcaca’s rendering routines. These
     213examples show <a href="">Frozen Bubble</a>, the
     214<a href="">SABRE</a> flight simulator, and the famous
     215<a href="">Doom</a>. Frozen Bubble is
     216fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys
     217not being recognized (see the TODO list about that). </p>
     219<table cellspacing="5" border="0">
     220  <tr>
     221    <td align="center">
     222      <a href="caca-fb.png"><img alt="ASCII art Frozen Bubble"
     223         width="120" height="90"
     224         src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a>
     225    </td>
     226    <td align="center">
     227      <a href="caca-sabre.png"><img alt="the SABRE flight simulator"
     228         width="120" height="90"
     229         src="tn-caca-sabre.jpeg" /><br />SABRE</a>
     230    </td>
     231    <td align="center">
     232      <a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art"
     233         width="120" height="90"
     234         src="tn-caca-doom.jpeg" /><br />Doom splash screen</a>
     235    </td>
     236    <td align="center">
     237      <a href="caca-doom2.png"><img alt="Doom in ASCII art"
     238         width="120" height="90"
     239         src="tn-caca-doom2.jpeg" /><br />first Doom level</a>
     240    </td>
     241  </tr>
     244<h2> Download libcaca </h2>
     246<p> Latest libcaca release is <a
     247href="libcaca-0.9.tar.gz">libcaca-0.9.tar.gz</a> (216KB) / <a
     248href="libcaca-0.9.tar.bz2">libcaca-0.9.tar.bz2</a> (172KB). See the <a
     249href="NEWS">NEWS</a> and <a href="ChangeLog">ChangeLog</a> files. </p>
     251<p> libcaca is already in the Debian sid distribution. Debian woody users or
     252sid users in a hurry may use one of the following apt sources: (sorry, sarge
     253is not supported yet) </p>
     255<table class="leftmenu" cellspacing="5" cellpadding="0">
     256  <tr>
     257    <td class="nowrap" valign="top">
     258      <code>
     259        deb woody main<br />
     260        deb-src woody main<br />
     261        <br />
     262        deb sid main<br />
     263        deb-src sid main<br />
     264      </code>
     265    </td>
     266  </tr>
     269<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM
     270packages on the <a href="">Fresh
     271RPMs</a> page. If no package is available, you are encouraged
     272to build packages for your system using this SRPM (<a
     273href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple
     274command line: </p>
     276<table class="leftmenu" cellspacing="5" cellpadding="0">
     277  <tr>
     278    <td class="nowrap" valign="top">
     279      <code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code>
     280    </td>
     281  </tr>
     284<p> BSD users should see the <a
     285href="">NetBSD port
     286page</a> and the <a href="">FreeBSD
     287port page</a> (I am not aware of an OpenBSD port yet, but <a
     288href="">this email</a> has
     289information on it), Gentoo users may find information on the <a
     291portage</a> and Slackware users have a package on <a
     295<p> A Windows zip archive containing the libcaca demos can be downloaded here:
     296<a href=""></a> (100KB). </p>
     298<h2> Patch for libSDL </h2>
     300<p> This simple patch was quickly hacked from the AAlib video
     301driver. Apply it to the libSDL sources and configuree libSDL with
     302<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code>
     303environment variable to run your SDL programs with libcaca output, for
     304instance Frozen Bubble: </p>
     306<table class="leftmenu" cellspacing="5" cellpadding="0">
     307  <tr>
     308    <td class="nowrap" valign="top">
     309      <code>SDL_VIDEODRIVER=caca frozen-bubble</code>
     310    </td>
     311  </tr>
     314<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>
     316<h2> Patches for VLC, xine, mplayer... </h2>
     318<p> The libcaca patch for the <a href="">VLC</a>
     319media player was already applied upstream. Check the CVS version. </p>
     321<p> There is a work in progress for <a href="">xine</a>
     322called cacaxine (see <a href=";forum_id=7131">this email</a>). Zeeshan Ali wrote a
     323<a href="">GStreamer</a> plugin. I am not
     324aware of an <a href="">MPlayer</a> patch yet (but you
     325should not be using MPlayer anyway, because it sucks). </p>
     327<h2> Documentation </h2>
     329<p> See the <a href="doc/index.html">HTML documentation</a>. </p>
     331<h2> Development </h2>
     333<p> The mailing-list for libcaca users and developers is <a
     335To subscribe, send an email to <a
     337containing the words "<code>subscribe libcaca</code>". To unsubscribe, just
     338use "<code>unsubscribe libcaca</code>". </p>
     340<p> Please report bugs and make suggestions to <a
     341href="mailto:libcaca&#64;">libcaca&#64;</a> and
     342don’t forget to check the <a href="threads.html">mailing-list archives</a>.
     345<p> The libcaca development is managed using <a
     346href="">Subversion</a>. The
     347<code>svn://</code> repository can be browsed using the <a
     348href="/cgi-bin/viewcvs.cgi/trunk/?root=libcaca">web interface</a>, or directly
     349with the Subversion client. For instance, to retrieve the main trunk, use this
     350command: </p>
     352<table class="leftmenu" cellspacing="5" cellpadding="0">
     353  <tr>
     354    <td class="nowrap" valign="top">
     355      <code>svn co svn:// libcaca-trunk</code>
     356    </td>
     357  </tr>
     360<p> To retrieve a specific tag, e.g. 0.3, use this: </p>
     362<table class="leftmenu" cellspacing="5" cellpadding="0">
     363  <tr>
     364    <td class="nowrap" valign="top">
     365      <code>svn co svn:// libcaca-0.3</code>
     366    </td>
     367  </tr>
     371<h2> Why? </h2>
     374Que dites-vous ?... C’est inutile ?... Je le sais !
     375<br />Mais on ne se bat pas dans l’espoir du succès !
     376<br />Non ! non, c’est bien plus beau lorsque c’est inutile !
     377<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small>
     380<p> I am perfectly aware that libcaca is the waste of time it looks to be. No
     381need to tell me about that. I urge you to read Théophile Gautier’s preface to
     382<i>Mademoiselle de Maupin</i>, which also gives an excellent explanation for
     383the name “libcaca”: </p>
     386Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce
     387qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux
     388de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. -
     389L’endroit le plus utile d’une maison, ce sont les latrines.
     392<p> As for the name “libcucul”, please refer to the pioneer of modernist
     393Polish fiction: </p>
     396Mais contre le cucul, il n’y a pas de refuge. Courez après moi
     397si vous voulez, je m’enfuis la gueule entre les mains. Et voilà,
     398tralala, Zut à celui qui le lira !
     399<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small>
     402<p><small><code><?php echo '$Id$ Host: ' . $_SERVER['REMOTE_ADDR'];?></code></small></p>
Note: See TracChangeset for help on using the changeset viewer.