I attended the BayPiggies meeting where Drew Perttula talked about his lighting system, light9 tonight.

The crowd was a little smaller since there was no free dinner, but there was a pretty good turnout. What a small world, Drew works two buildings away from SpikeSource at PDI, and I play pickup ultimate with his coworkers and cousin during lunch.

Drew is a very good speaker and did a great job with his presentation as he was willing to discuss areas of python that weren't only limited to controlling lights. Light9 is a series of python programs he uses to control theatre lighting in realtime. He has written a series of programs that communicate over XML-RPC (twenty times per second) to update the lighting.

I'll highlight some of the gems I gleaned. He raved about the robust nature of Twisted noting that "it doesn't get in a bad state". He is using twisted to talk XML-RPC (see my previous Peter Yared of ActiveGrid post about the merits of XML-RPC) to communicate between his programs. One of the more interesting facets of his presentation was his series of UIs to control the lights, and the innovative yet distinct manner of each of them. Another was a keyboard to light mapper and the user could hold down keys that were bound to different lights to change their brightness. Another was a map that depicted the stage and where the lights should hit it. The user could select spots on the stage with the mouse and then drag-click to brighten or dim the lights. Another was a waveform analyzer (think audacity for lighting) that let Drew change the lights based on the music he was playing (as well as combine it with other filters).

The most basic control was just a list of lights and you could select them and raise them on the fly. All of these programs could be running at once (all talking xml-rpc) to the server which controlled the lights. Pretty cool!

Pydispatcher allows him to set signals and slots. He was using this as a mechanism for the model notifying the view (in his case tk) of changes. I'll have to check out pydispatcher as I haven't heard of it before.

There was a brief discussion of darcs and its merits over cvs and subversion. One of Drew's "slides" contained wonderful ascii art that he generated in everyones favorite operating system emacs (using "artist-mode", something else I've never seen before).

Drew also discussed his deep desires to rid the world of load/save functionality and his desire to automate the world beginning with his home. Thanks for the good insights Drew, see you around the campus.