{\rtf1\ansi \deff0 \adeflang1033 {\fonttbl {\f0\fswiss Helvetica;}
{\f1\froman Times;}{\f2\fmodern MS LineDraw;}{\f3\fdecor Symbol;}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue127;\red0\green127\blue0;\red0\green127\blue127;\red127\green0\blue0;\red127\green0\blue127;\red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;\red0\green0\blue255;\red0\green255\blue0;\red0\green255\blue255;\red255\green0\blue0;\red255\green0\blue255;\red255\green255\blue0;\red255\green255\blue255;}\linex0 \sbknone 
\margl1440 \margr1440 \margt1440 \margb1440 \plain {\stylesheet {\snext0 Normal;}
{\s2 \ql \tx720 \tx720 \li720 \fi-720 \sbasedon0 \snext2 1Level;}
{\s3 \ql \li720 \sbasedon0 \snext3 1LevelContinued;}
{\s4 \ql \tx188 \tx188 \li188 \fi-532 \sbasedon0 \snext4 2Level;}
{\s5 \ql \li188 \sbasedon0 \snext5 2LevelContinued;}
{\s6 \ql \tx532 \tx532 \li532 \fi-720 \sbasedon0 \snext6 3Level;}
{\s7 \ql \li532 \sbasedon0 \snext7 3LevelContinued;}
{\s8 \ql \tx1440 \tx1440 \li1440 \fi-908 \sbasedon0 \snext8 4Level;}
{\s9 \ql \li1440 \sbasedon0 \snext9 4LevelContinued;}
{\s10 \ql \tx2520 \tx2520 \li2520 \fi-1080 \sbasedon0 \snext10 5Level;}
{\s11 \ql \li2520 \sbasedon0 \snext11 5LevelContinued;}
{\s12 \ql \tx3772 \tx3772 \li3772 \fi-1252 \sbasedon0 \snext12 6Level;}
{\s13 \ql \li3772 \sbasedon0 \snext13 6LevelContinued;}
{\s14 \qc \sbasedon0 \snext14 Author;}
{\s15 \ql \sbasedon0 \snext15 CellBody;}
{\s16 \qc \sbasedon0 \snext16 CellHeading;}
{\s17 \ql \tx1080 \tx850 \li850 \fi-230 \ri360 \sbasedon0 \snext17 Footnote;}
{\s18 \ql \li850 \fi-230 \ri360 \sbasedon0 \snext18 TableFootnote;}
{\s19 \qc \sbasedon0 \snext19 TableTitle;}
{\s20 \qc \sbasedon0 \snext20 Title;}
{\cs21 \sbasedon0 \snext21 Emphasis;}
{\cs22 \sbasedon0 \snext22 EquationVariables;}
}\fs24 \f0 \fs24 \f1 \fs36 \f0 \cf1 \b \lang1024 \b \linex0 \linemod0 \sbknone \pgnrestart \pgnstart1 \pgnstarts1 \pard \s20 \qc Cello, a Common Lisp GUI\lang1024 \plain \fs36 \cf1 \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s14 \qc \sb240 Kenneth Tilton\lang1024 
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 1.0\tab \lang1024 Mission Statement\lang1024 \plain \fs32 \cf1 \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \ri360 \tx720 To answer Noob FAQ #2, \'93Where\'92s the GUI?\'94.\ftnbj \aenddoc \fet2 {\super \chftn {\footnote {\fs24 \super \chftn }\fs24 \pard \s17 \li590 \fi-590 \ri360 \tx360 \tx590 \tab \fs20 \f1 \cf1 \lang1024 Noob FAQ #1 being, \'93what\'92s going on with this code? (let ((x \'91(a b c))) (delete \'91a x).....\lang1024 
\par }}\fs24 \f1 \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 More grandly, to be the CLOS of Common Lisp GUIs. Common Lisp did not do objects \lang1024 when it was created, but when objects came up CLOS did them better than anyone else. \lang1024 Cello intends to outdo the GUIs available in other languages by a similar margin.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 Certain things must be true if such a lofty goal is to be reached:\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must be portable to Mac OS X, *nix, and other widely-installed OSes, and work from \lang1024 any serious implementation of Common Lisp.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must be Common Lisp \'93all the way down\'94, not a wrapper for a framework written in \lang1024 C/C++.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must have a full suite of standard GUI widgets, easily assembled into working applica\-\lang1024 tions by novice users.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must be open source, with liberal licensing to achieve standard status.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - the graphics capabilities must include anti-aliased rendering of arbitrary installed fonts.\lang1024 
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 2.0\tab \lang1024 In Brief\lang1024 \plain \fs32 \cf1 \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 An emerging open-source, industrial-strength, fast, powerful, easy-to-use, portable GUI \lang1024 for Common Lisp, by Common Lisp, and of Common Lisp. \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - MIT-licensed\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - anti-aliased text using any installed font\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - 2d- or 3d-graphics, vector or bitmapped, and straightforward display of a wide variety of \lang1024 image formats such as GIF, JPEG, and AVI.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - hardware-accelerated.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - planned: hardcopy via PDF, sound via SuperCollider.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 Those are the fundamental capabilities. Stepping back to a wide-angle shot:\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - component architecture allowing selective adoption of Cello sub-systems.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - Cells Inside, making GUI development an order of magnitude easier, faster, and more \lang1024 fun. Cells support a declarative paradigm for...\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - Cello, a complete application framework with a full suite of standard GUI widgets, \lang1024 implemented fully in Common Lisp/CLOS. Combining Cells with efficient, powerful \lang1024 graphics capabilities, Cello permits easy construction of efficient, bug-free interfaces pro\-\lang1024 viding users with more facile control of your application.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - For OpenGL developers, Cello serves as what is known as a scene graph manager, pro\-\lang1024 viding a higher-level framework for the development of games and other applications \lang1024 using OpenGL primitives to model 3D worlds.\lang1024 
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 3.0\tab \lang1024 Components\lang1024 \plain \fs32 \cf1 \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 Cello has been neatly structured so developers can grab isolated chunks without buying \lang1024 into the whole enchilada. Here are the standalone components to be found in a Cello dis\-\lang1024 tro.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.1\tab \lang1024 cl-opengl:: OpenGL Bindings, including GLUT\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.2\tab \lang1024 cl-ftgl:: glue and bindings for FTGL, a C++ implementation of FreeType fonts for \lang1024 OpenGL.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.3\tab \lang1024 cl-magick:: bindings for ImageMagick, a library of pixmap, vector, and image-file \lang1024 graphics routines.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.4\tab \lang1024 cellocore:: an application framework requiring only Cells (http:/common-lisp.net/ \lang1024 projects/Cells) and cl-opengl\lang1024 
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 4.0\tab \lang1024 The Foundation\lang1024 \plain \fs32 \cf1 \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 Cello achieves its universal portability and graphical power through a number of kick-ass \lang1024 external libraries, all open source, all with liberal licensing such as Cello\'92s MIT-style \lang1024 license:\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.1\tab \lang1024 OpenGL/MesaGL: Yes, Virginia, if you are using OpenGL the GPU will be handling \lang1024 a large fraction of your application\'92s CPU load. And, no, you will not believe the \lang1024 graphical power at your fingertips.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.2\tab \lang1024 FreeGlut: windows and callbacks for mouse, key, and display events. This bad boy is \lang1024 under heavy development since getting picked up by RedHat after learning the orig\-\lang1024 inal Glut has an unfriendly license. And Freeglut is binary compatible with the stan\-\lang1024 dard Glut, so developers can work under Freeglut but ship on another Glut, such as \lang1024 Apple\'92s Quartz-based glut. \lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.3\tab \lang1024 FreeType: TrueType set free.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.4\tab \lang1024 FTGL: use any TrueType/FreeType font on the system, in any mode: bitmap, pix\-\lang1024 map, texture, outline, polygon or extruded polygon.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.5\tab \lang1024 ImageMagick: adopted originally for portable access to over 80 image formats such \lang1024 as JPEG, GIF, BMP, AVI et al, this library also offers an insane suite of bitmapped \lang1024 and vector graphics functions. Knock yourself out.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.6\tab \lang1024 SuperCollider (SC3): our interface from Cello is vaporware, but it will be worth the \lang1024 wait. SC3 can play standard audio file formats, and it can be programmed to synthe\-\lang1024 size sound in real-time. \'93(beep) on steroids\'94 does not do SC3 justice.\lang1024 
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.7\tab \lang1024 UFFI: Kevin Rosenbeg\'92s meta-contribution to the growth of Common Lisp, opening \lang1024 the door to C and C++ libraries everywhere.\lang1024 
\par }