36. From Camcorder To Common Lisp
Oddly enough, I do remember that the idea for the web graphic novel came to me while I was cleaning beans at the kitchen table one day. I remember this because I remember telling the story to one of the actors who asked me where I got the idea. Kind of a meta-memory I guess.
Yes, my graphic novel had actors. Since much to my dismay I have never been able to draw, I came up with the following process for the production of the graphic novel.
I would produce and shoot the production like a run-and-gun low-budget (actually, no-budget!) film. Get together actors at given locations and film them “acting” out the scenes. More like a silent movie since I wasn't recording audio. This made production very fast and smooth. For example, we’d go into a restaurant, order a meal, and the two actors would eat and converse as I discreetly got the required coverage with a small Hi-8 camcorder.
We shot all over Montreal, including friends’ houses and offices. Everything was very smooth and well organized, thanks to my friend and producer John Kennedy, whom I had met while at Taarna. John was — and remains — a commercial producer, a gentleman, and a friend, who gave a sense of professionalism to my various hare-brained schemes over the years.
He corralled actors, contacts, and locations for the project. Being new to production back then, I did not truly understand or appreciate how lucky I was to have him on my projects.
On the technical side, I would digitize the Hi-8 footage into my Mac, where the production pipeline was based on trusty MCL, with Common Lisp acting basically as a scripting language would today.
Code & Design
The question of a GUI has been vexing me as of late. Questions, rather, in the plural.
The first question is whether I need or want a GUI. From the start I knew I didn’t want to develop a clone of an existing 3D app, so I don’t want to fall into the time-consuming trap of developing a full GUI that does what every other GUI does.
Why would I want a graphical user interface? How would it help my exploratory 3D development? It could help in two ways: visualization (insights) and interaction (creation).
I have always been interested in visualizing code and data, and am curious in what ways I can do so here. What insights may result. And an interface more conducive to experimentation (compared to writing code) may lead to interesting graphical structures.
If I were to develop a GUI, which toolkit should I use: Cocoa, Qt, Tk, Open GL, web? There are many Common Lisp bindings, but no obvious, complete, and effortless choice presents itself. When I made queries online, one person told me if I wanted a GUI, I should abandon CL.
I kept going around in circles, unable to decide. And then, one morning I did what I have been doing all along on this project: just started writing code from scratch, hoping to get a simple system running well enough for my own needs. The code above shows some of the work, written very basically using the barest minumum of Apple's Cocoa interface. I implement everything on top of the
NSViewclass and use no actual UI widgets from Apple.
My goal is to write it quickly, not sweat the details, learn from using it, and then rewrite it with a better understanding, or pick an existing framework as a more durable foundation.