So here is what we managed to do in 72 hours and submitted in the nick of time. We includes Andreas Raab, Ned Konz, Bert Freudenberg, Bijan Parsia, John McIntosh and I. Many, many thanks to them for a fantastic piece of hacking.
So what is it? There is a simplified functional programming language with scene description extensions called GML. It has closures, arrays, numbers, stringliterals, and variables. We had to parse and execute this little language and ray trace the scene when a #render function was invoked. It is a postfix language, so we implemented a simple stack-based machine that processed them, holding the stack and the environment dictionary. When a closure is created, it gets it's own environment.
The renderer doesn't utilize all of the primitives available, unfortunately, but Andreas or Bert could explain this better. Something about a cubic attenuation of the lighting model, which is a good approximation for LA smog (or is it quartic)?
You need tgen to run this which can be had at http://callisto.swiki.net/1
I would include the images but they are too big. You'll just have to render them youselves! ;-)
Look in the comment of GMLSimpleMachine for examples...
enjoy!
Rob
squeak-dev@lists.squeakfoundation.org