So its not really a shell. More like a scripting engine. I originally wrote this with the intention of using it for rapid prototyping. Having no compile time is a general benefit. Added to that the flexibility of the language Lua (lambda functions, operator overloading, superset of OOP functionality) and I figured it was a worthwhile invention.
At first I coded a lot of do-this-all-at-once functions for getting myself off the ground. glLight and glMaterial were overloaded to accept not only their default parameters, but also tables which would allow a user to pass all their desired information through using only one call.
Design patterns changed soon when I realized if I moved enough of the bottleneck to the GPU then the CPU could spare itself the extra time dinking around with a scripting language.
Eventually I got so attached I ended up writing an image flow synthesis algorithm, a realtime radiosity renderer, and a realtime flame fractal renderer all using this framework. Plenty more too, which I still have yet to post.
A word of warning for all who use it: I have only implemented what functions I have needed as I went. So far this covers a wide range of the base GL 1.1 functions, but this by no means covers all of them. This is still very much a work in progress.
Take note this is a command line program. Usage is as follows:
gLush filename
Where filename must end in .lua . If you are not a command-line fan then there should be a file entitled, "init.lua," which the program will load by default. Edit this to your heart's content to require whatever files you want to execute.
- GL Lua Shell
Source
Binary:
- Mac OS X 10.4
- Windows XP
Dependencies: Core Libraries v.2