polyhedra.org

   

polyhedra.org

about this site

How this site came to be

I registered polyhedra.org back in 2000, after a late-night conversation with my friend Loden Muller, when we fantasized about making the ultimate web site about polyhedra. Two years later, I had a protoype almost completed, a set of PHP scripts that generated flash movies for individual polyhedra, each containing a large number of 2-dimensional vector graphics for each rotation angle. Except for the smallest models, the flash movies were unreasonably large. My child was born and I started a new job, so the project languished.

The project entered a new phase after I saw a posting on Slashdot in December 2005, about Canvasscape, a 3-d shooter based on the new Canvas Element, which had just been added to Firefox 1.5. The canvas element, which makes it possible to draw vector graphics from javascript, looked like a great way to implement a lightweight 3-d viewer.

The technology

Polyhedra.org is based on viewer_3d, a wireframe viewer written in Javascript. Viewer_3d currently works with Firefox 1.5 and Safari 2.0; viewer_3d draws models in Opera9beta 2, but you can't spin models yet because I don't have keyboard event handlers working yet.

Viewer_3d uses the XMLHttpRequest element to download 3-d models represented in a simple XML format. This makes viewer_3d an AJAX application. Viewer_3d uses the painter's algorithm to manage hidden lines, and takes advantage of alpha compositing in the canvas element to produce a visual effect that I think is more pleasing than most other polyhedra sites on the web: a bit like sketches in a notebook.

Credits

Paul Houle wrote most of the PHP and javascript software that powers this site. In the last few years, I've worked at a digital library programmer at Cornell University Library, on projects such as arXiv.org, the Library Gateway and the Global Performing Arts Database

Polyhedra.org is based on the Netlib Polyhedra Database compiled by Andrew Hume. George Hart has published corrections to some of the files. Gaps remain in the netlib data, and I am in the process of filling them in.

Polyhedra.org uses the ExCanvas Javascript from Google Code to emulate the <canvas> element in Internet Explorer. Thanks!


 

about | terms of use |
© 2006 Honeylocust Media Systems