py.CGAL.visual

Robust Geometric Computations and Visualization (for ordinary mortals)

A Voronoi diagram with draggable sites: the user drags the sites and observes the changes to the diagram. Source code by Mihalis Nikolaou.



A 3D model of a cow! The Python program using the cgalvisual library boils down to two lines of code:

from cgalvisual import obj2dLoader
c=obj3dLoader("3dModels/cow.obj", 0.06)
c.draw_Triangles()

One of our biggest problems, was that the CGAL-Python bindings lacked of a suitable module that could be used easily by "ordinary mortals" in order to obtain graphic I/O and visualization. Here is where the VPYTHON project saved the day providing "3D programming for ordinary mortals".

The original idea from Christodoulos Fragoudakis, was about implementing a library on top of visual and CGAL that would provide a visual (as in VPYTHON) representation for each CGAL class that is available through the CGAL-Python bindings. The first students' assignements were implemented using a rather incomplete implementation of the above idea that primarily served as a proof of concept. But despite the rough prototyping of the given library, student were inspired, delved into Python programming and some of them created fine algorithm animations.

The cgalvisual library was written again from scratch by Spiros Evangelatos, following the first implementation's goals (and keeping some original code) but also trying to be more Pythonic and as close to the CGAL classes behaviour as possible. Mihalis Nikolaou took Spiros' code and extented to 3d adding input controls, scene handlers, 3d object loaders, click and drag on visual scenes, 3d alpha shapes, ... you name it :-) Click here for a presentation of Mihalis' work.