Another boring one, I’m afraid.
The contract job I got in Rochester was with Kodak on the Cineon product. And it was good. The money was good enough that I actually decided to restart the process of getting my pilots license, something that I started when I was 16 and have wanted to finish ever since.
Cineon was probably the coolest product that nobody ever heard of. It was used to do post production for movies, all digitally. Of course that meant we also needed extremely high resolution (4096×3048) scanners to get from film to digital, and recorders to get from digital to film. One of the scanners cost a million bucks per, but I don’t think we ever sold any of them – it seemed like most of the ones that went out into the field to settle lawsuits. The software ran on big SGI hardware – most of our customers ran it on 16 or 32 processor Onyxes, which also cost millions, and the post production companies would upgrade them after a year or two. But don’t worry about the post production companies economic health – the work they did on those computers using our software was charged back to the movie studios at over a thousand dollars an hour.
The weird thing (and the reason for the aforementioned lawsuits) was that as well as making software that we were selling to post production houses, Kodak owned two post production houses, Cinesite and Cinesite UK. Supposedly that was so that Kodak could get first-hand information on what our customers needed and how they did their work. But what was happening is that they were taking our software and our scanner/recorders, and UNDERCUTTING OUR CUSTOMERS. Not too fucking smart. Needless to say, our customers sued us.
Even leaving that little stupidity aside, in spite of the massive amounts of money post productions make from the studios, our customers were money grubbing weasels. Every single one of them felt that we should be cutting them special deals, or even giving to them free, because of all the prestige and publicity we’d get working with them. Yeah, right, when your global market is the 5 or 10 post production houses sophisticated to use such high end equipment, we can afford to give it away free to one of them?
I really enjoyed the work on the Cineon product. It was written in C++ and used some interesting techniques that have stood me in good stead in my later work. And while I didn’t have the names for the techniques until later when I read “Design Patterns”, we made extensive use of Model-View-Controller using our own KaObserver and KaObservable classes. I also had to learn some very basic 2D OpenGL when Ed Hanway and I wrote the Clip Editor, a program that let you line up different strips of film from different shots (or different components of the same shot) and set up transitions. The management was kind of screwed up, and it basically took a programmer revolt to get some basic project management put into place. That’s the first place I’ve worked where the programmers wanted more process, but nothing like some later jobs which I’ll rant about in a later post. One of the strange aspects was that the code had been started by Kodak Australia, and was being worked on by a bunch of Americans, a few Australians, a few Brits, and me. That meant that anything that referred to colour (and there was a lot of it) had about a 50/50 chance of being spelt either the American way (“color”) or being spelt correctly, and it would even be mixed in the same class. That could lead to moments of confusion when you wondered why your call to KaColourValue.getColorValue() wasn’t linking, until you realized it was really KaColorValue.getColourValue() that you wanted.
I was a simple hourly contractor – if I worked an hour, I got paid for an hour. Which was very cool when we got into a long crunch time and I was working 60, 70 even 80 hours in a week. Even at straight time it was good money. However, it really, really sucked when my appendix burst and I had to spend 9 days in hospital and 20 days recovering at home with a 15cm long gash in my stomach. One of these days I should blog about that experience.
At the end of one really long crunch time, the Kodak employees got a bonus – it was only a thousand dollars or so and it had to be spent in the company store. And I’d probably made more than that in overtime in a week, so I wasn’t jealous. But afterwards, our manager called all the contract programmers into a conference room. Oh oh, we all thought, we used too much overtime, now they’re going to fire us all. But he closed the door and said “I’m sorry I couldn’t get you bonuses, so instead, take these Kodak digital cameras and don’t tell anybody”, and gave us all Kodak DC-210s, which at the time cost over $600!
Technically, Cineon did two very important things different from all of our competitors before or since. One was that we used “10 bit log” instead of “8 bit linear”. In your normal 24 (or 32) bit colour image, 8 bits are used for each of the colour channels (usually red, green, and blue, and sometimes alpha) where the bit value for that channel is linearly related to how bright that colour light would be – a red value of 16 would be exactly half as bright as a red value of 32, and so on. What Cineon did was use a logarithmic colour value. The technical justification for doing that was long and hard to understand, but what you could see was that in a side-by-side comparison, with log colour you could see shadowy figures moving around in a deep shadow, whereas with linear colour it would all look like black.
The other technical thing Cineon did was the “Flowgraph”. The Flowgraph editor was the other major part of Cineon other than the Clip Editor, and much as I hate to admit it, a far more important part. The Flowgraph was like a visual programming language for clips. You had a bunch of nodes that you dropped on a canvas and connected them with lines, and then set parameters on the individual nodes. So you could take your CG background shot, and drop it on as an input node. Then you could take your live action foreground shot, and drop it on as an input node. Then you’d maybe run the foreground shot into a crop node or a colour correction node, and then run the output of that, and the CG shot, into an Ultimatte node to put the live action in the CG, and so on. You’d tweak everything on one frame, and then just let your honking big Onyx computer chunk ahead with its 16 or 32 processors on the whole clip, hundreds of frames, and it would automatically do all the same things to all of those frames.
The cinema industry revolves around a trade show called “NAB” (National Association of Broadcasters) in Las Vegas. We always sent a big crowd there. As a lowly contractor, I never got to go, but one of my co-workers went one year and made a few hundred bucks playing blackjack. He decided that he had the nack for blackjack, and spend the entire next year reading everything he could about how to win at blackjack. So he went back to NAB the next year and lost his shirt.
Our division in Kodak when I started was called MPTVI – Motion Picture and Television Imaging. Then they renamed it to DMI – Digital Motion Imaging. Then I think it changed names a time or two after that, but then they threw us in the people who do movie film in EI – Entertainment Imaging. Unfortunately what that meant is that instead of being funded off on our own as “something that isn’t making money yet, but might some day soon”, EI itself would be self sufficient – film would make the money and digital would spend it. But what really happened is that EI management did everything they could to kill Cineon, because it was making their numbers look bad.
So the official word came that things were winding down, and since I was a lowly contractor , and since when the work stopped my pay would stop, I had to bail. Probably too bad, because by then I was valuable enough to the project that they would have kept me on, and maybe even offered me a full time job – a few of the contractors who did stay on got full time jobs, and are still with Kodak.