The Software Side
I’ve never been much of a programmer. This often comes as a slight shock to those who know me. That someone with so much generalised computer knowledge – and who incidentally spends so much of his time in front of 3 monitors and surrounded by shiny stuff – is unable to fully control the machines that take up his so much of his time. It’s analogous to a revhead admitting that he doesn’t know the first thing about stripping down engines. To compound the shame, my father (a civil engineer) has been programming since the 70s. Growing up there was always a computer in the house, and he encouraged me to learn BASIC as a kid, but for some reason it never really stuck. I knew that the code existed, I’ve been able to hack existing PHP, SQL and Javascript to make it do what I want, and I’m very keen on After Effects expressions, but I’ve never really taken the time to properly learn the fundamentals of programming.
Peter and I have been talking quite a lot about generative visuals and interactive VJing/installations. Eventually the discussion turned to my lack of programming knowledge and how this severely erodes both my usefulness to society and my status as an übergeek. I’d previously looked at Processing as a learning environment, but my lack of foundation knowledge made even its simplified style confusing. Through discussions with Peter I decided to learn Java, for the following reasons:
- Processing is built in Java, so my knowledge in Java is portable to Processing
- Java works cross-platform, so Peter and I can collaborate no matter which OS we’re currently working in
- After Effects expressions are based on Javascript, and I’ve heard that Javascript is based on Java. So learning Java should quickly improve my After Effects scripting
- Processing is Sexy
With the “what language” decision aside, everything became much easier. Peter pointed me to the excellent book Introduction to Computing and Programming with Java: A Multimedia Approach, and I haven’t really looked back since.
The Hardware Side
I’ve been lucky enough to inherit two HP plotters (Draftpro and 7585B) from my father’s Civil Engineering company. When I was a kid I loved watching plotters draw plans. Even better was playing with the manual control buttons, turning the machine into a massive electronic etch-a-sketch. More recently, engineers have been trading these amazing, noisy, cantankerous machines in for laser printers, and this is how I come to have two of them in my house. I’ve used them to produce large-format vector drawings for stencil art, and some posters, but mostly they’ve gathered dust and caused pain whenever I move house.
They’ve always been in the back of my creative mind though, these things are so much fun to watch that it’s a crime not to use them. Outputting vector art is simple; Illustrator will save Autocad format .DWG files, from whence plots spring fully formed and gleaming. The images produced are limited though. Plotters can do fills, but of course this takes up plenty of ink, and the pens for these 20 year old machines are both expensive and increasingly rare. So through necessity plotter generated images tend to be based around lines and hatched fills. The plotting process is an extremely visceral thing to watch – This noisy, hot machine whirring and clicking while the pen and paper whip back and forth – but the images it produces are rather sharp and clinical, containing little of the steampunk spectacle from their birth.
Learning about Processing’s Serial library was the missing link. I instantly started fantasizing about VJing with a gang of plotters on stage, clacking and flapping their paper loads while rotating their pen caddies in time to the music. My fevered descriptions incited Peter’s interest as well, and a quick look at an HPGL reference convinced us that driving a plotter with Processing was a both feasible and desirable.
The Video Bit
No amount of written words can properly describe what a plotter looks and sounds like in operation, so I shot the above video quickly to give Peter an overview of what goes on. Despite the dodgy shooting, focus, exposure, sound and production values, we thought it was interesting enough as a proof of concept to post on the site as well. The video shows the following:
- A quick physical tour of the machine and accessories
- A look at my hacked serial adapter (HP plotters require a unique serial cable configuration)
- Startup sequence
- Paper loading and measuring
- Processing sketch, translating mouseclicks on a 100×100 canvas to circles drawn by the plotter
- Going into hibernate mode by putting the pen away to prevent drying
Now that the proof of concept is there, we have to decide what to do next! I’m only seven chapters into my Java book, so I need to learn some more things before I write a library to translate processing commands into plotter instructions, and Peter needs to figure out how to translate a bezier curve into a series of arcs, as my plotters don’t understand the Bezier command.