[racket] Visualization with Racket

From: Neil Toronto (neil.toronto at gmail.com)
Date: Sat Jan 31 10:25:58 EST 2015

On 01/31/2015 06:35 AM, Dr. C. SHUNMUGA VELAYUTHAM  wrote:
> Hi Everyone,
>
> I am working in the area of evolutionary computation. I have been recently interested in visualizing (primarily dynamic visualization) the processes involved in Evolutionary Algorithms. Having taught SICP (with Racket) to undergraduate students I was very much attracted to Racket. I have been considering to use Racket for the above said visualization research. A casual google search showed the Plot library by Neil and Konrad Hinsen's experiments in using Racket for Molecular Visualization. Kindly advice me about my choice of Racket for visualization purposes.
>
> Also while exploring the access of opengl through Racket I found that the sgl libraries provide access to the rendering functions of OpenGL 1.5 and GLU 1.3 libraries. With OpenGL 4.5 released recently, are there any efforts to provide access to functions in the recent version?

I've got a project that you might be interested in:

     https://github.com/ntoronto/pict3d/

To install Pict3d, in DrRacket, click "File -> Install Package", enter 
"pict3d" in the text box, and click the "Install" button. It could take 
a few minutes to download and build.

Pict3d is a purely functional interface to OpenGL that focuses on 
simplicity, rendering quality, and speed. My RacketCon talk on it last 
year is linked to on this page (search for "3D"):

     http://con.racket-lang.org/

Disclaimers: It may not work on your computer. I've personally tested it 
only on Linux with OpenGL 3. I'm pretty sure it doesn't work on Mac OS X 
yet. It uses only OpenGL 3.0 and 3.1 features for now. (Those versions 
are the most important for rendering quality and speed. Every 
improvement since has been incremental.) There's no documentation. The 
only shapes it knows how to draw so far are triangles, rectangles, and 
spheres, with arbitrary affine transformations applied. The public API 
will probably change a bit.

That being said, it's fast. Also, if I clearly have a user to support, 
I'll definitely make it work for that user. If you want to be that user, 
please try it and reply with what works and what doesn't.

Neil ⊥


Posted on the users mailing list.