[racket] Visualization with Racket
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 ⊥