Opening a GLUT window form maxima



Hi!

I've managed to open a GLUT window from Maxima and use OpenGL drawing  
from Common Lisp. Of course it's nothing special, but it might be  
interesting for developing Maxima's native plotting solution.

It's done by CFFI (so no GCL support I fear..) and cl-opengl. It  
doesn't require any compiled libraries (the whole thing is in Common  
Lisp) except from opengl and glut, which are usually provided on  
every today's desktop system.

A maxima command can open a window, perform opengl drawing and more.  
Nice rotating 3d plots could be done this way. Also opengl's  
rasterization is very fast and easy on the CPU (it's done on the  
graphics card) so the CPU can be utilized for computation - small (or  
big) interactive applications can be developed this way (think  
Mathematica's Manipulate[])...

To export the drawings into PDF there are two solutions - one is a  
small C library called gl2ps which would have to be compiled for each  
platform ofcourse, and distributed with maxima, the other is by using  
a Common Lisp native solution cl-pdf. In the first case, one uses the  
same code for displaying graphics on screen as for writing it into a  
pdf file, while the second case requires separate code or a common  
abstraction layer which then transforms abstract calls into opengl  
calls or cl-pdf calls...

It's some work to write a plotting system, but perhaps it's easier to  
do it in Common Lisp than in other languages. There are also a lot of  
open source plotters on the web, which can be of guidance...

If anyone is interested I can send him the code (works here on SBCL,  
but it should on all cffi supported lisps)..

Regards,
Ziga