PatchBox 2008-07-08
Quadratura is doing visuals for a record launch this Thursday that has required a few new features in PatchBox.
It?s been on my mind for a long time that the LUA interface was pretty messy ? more a proof of concept than anything. So yesterday I re-wrote the whole thing. I?d already added a large amount of support code while implementing OSC so the actual interface allowing control over the entire system was pretty trivial.
Now you can do things like ?screen = root.geometry:add();? to add a screen, and ?screen.OriginRotation.y = 45;? to set that screens rotation from the origin. Obviously there are some uppercase/lowercase ?issues? to work out so the whole system will be a bit more consistent!
The image shows the work in progress for the installation. Double-clicking the script (to execute it) adds (currently) 50 screens, randomises their origin Y rotation and Z depth. On each frame the script increases the Y rotation a little, dependent on each screens Z depth, giving a fake ? but rather pleasing ? parallax effect.
In the output window you can see each screen has been assigned an alpha mask. These will eventually become clouds.
I also added an onStop() handler in the script, which is called ? surprisingly ? when the script is about to finish. This allows the script to clear-up and release any resources it?s been using. In this case, the script deletes all the screens that it has added.
The other major addition is the light-blue ’space? view (which will probably be renamed to a more consistent ?world? view). It shows all the screens positions as a wire-frame preview and allows the operator to fly about the world using the mouse. At the moment it?s a nice bit of eye candy but it?s going to become vital for some of the complicated features I have in mind for the future!
Today I?m implementing stencil screens. These are basically normal screens but get drawn first into the stencil buffer, masking out the normal screens behind. It?ll all make sense?