John Haddon is a programmer specializing in tools for rendering and compositing. For the past couple of years, John has consulted for Image Engine, whilst taking time out to pursue personal projects. We asked John to give us the lowdown on his history with Image Engine, his open source projects, and working remotely across continents.
John Haddon is a programmer specializing in tools for rendering and compositing. He studied both the creative and technical aspects of computer animation at Bournemouth University and upon graduating in 2001 moved to London to work in the R&D department at the Moving Picture Company. There he worked on films such as Harry Potter and the Chamber of Secrets, Troy, and Charlie and the Chocolate Factory, developing, among other things, a crowd rendering system and a bridge between Maya and PRMan.
In 2006 he moved to Vancouver to work on his snowboarding skills and, of course, to lead the development of Image Engine’s film effects pipeline, including the company’s contributions to the open source projects Cortex and Gaffer. His Image Engine film credits include The Incredible Hulk, District 9, The Twilight Saga: Eclipse, and The Thing.
For the past couple of years, John has consulted for Image Engine, whilst taking time out to pursue personal projects. We asked John to give us the lowdown on his history with Image Engine, his open source projects, and working remotely across continents.
You moved to Vancouver in 2006 and were hired to build the new Image Engine pipeline – can you tell us more about the approach that you took?
We were very lucky in that we had time to develop the pipeline before rushing into production, so initially we focused on laying a good set of foundations – a core set of software frameworks that we felt would allow us to rapidly develop a variety of tools and plugins to meet whatever challenges arose later. We knew that Image Engine was ambitious, and felt that our small group of developers could best serve that ambition if we worked closely as a team.
This must have been a great challenge, how does it feel to have seen it grow and develop over the subsequent years?
It’s been a very interesting process – during my time at Image Engine we’ve scaled from a small film team in one corner of the main building, to a team of two or three hundred artists spread throughout three buildings. At the same time we’ve gone from working on a few set extensions to huge action sequences comprising the full gamut of visual effects – hero creatures, vehicles and effects, full CG environments, you name it. That brings big challenges, both in terms of improving the performance of our toolset, but just as importantly in enabling communication throughout the production teams. At the worst times, it feels that work is getting done in spite of the tools, and we’re very lucky to have talented and hardworking artists grinding it out. At the best times, it feels like we’re enabling Image Engine to move up a level.
You’ve been heavily involved in open source projects for many years now. Why the decision to make so much of your code available to others?
Visual effects is interesting in that software development is often essential to the process, but it’s not the product in itself. At the same time, facilities all around the world are facing similar development challenges, so it’s a pretty natural thing to share the most fundamental solutions to that through open source. Image Engine made an early decision to open source our Cortex foundation framework, and were rewarded in return by contributions from other facilities, notably Dr D who used it in rendering crowds for Happy Feet, and Electric Theatre Collective who added a Mantra renderer backend. Since then there has been an explosion of really good open source projects throughout visual effects, and it’s only natural to take advantage of them where you can, and then to give back where you can.
Tell us more about your latest development, Gaffer, how will this impact the Image Engine pipeline in the future?
Gaffer has been my hobby project for longer than I care to remember, with my rather overambitious goal being to write a complete 3D/2D node based application with a focus on lighting and rendering. It’s possibly the software development equivalent of those 18th century gents who felt compelled to build a castle at the end of their garden, but never quite finished.
Fortunately, I started by creating a fairly general purpose framework for building node based applications, and a few years back now, Image Engine needed just such a thing to use in the UI for the next generation of Jabuka, their custom asset manager. I agreed to open source what I had in return for Image Engine contributing back any relevant work done internally, and things have grown from there. We’re now just finishing up on shows where Gaffer has been used for all shader authoring and look development, and the team at Image Engine is now working on hybrid Gaffer/Maya solutions for fur grooming, lighting and rendering on our upcoming shows. I’m excited to see how those turn out…
What has been your most memorable film project at Image Engine – and why?
I think it has to be District 9, because it very much felt like the birth of the film division. It was the first time we used our new pipeline at any scale, and the payoff at the end was great, when a film that even we didn’t really know much about turned out to be pretty good.
What are you most proud of? And what would you still like to achieve?
It’s hard to stay proud of anything for long – each new production tends to have a humbling effect on what you developed for the last. As for what I’d still like to achieve, there’s this unfinished thing at the bottom of the garden…
You play a unique role in the R&D team these days – working both on and off-site, dividing your time between Vancouver and London. Can you tell us a bit about your consultancy role and your experience working across continents?
Well, that’s largely about a girl! I still work for Image Engine, but mostly from the UK now. I work purely on Cortex and Gaffer, in service of the R&D department in Vancouver, who then use those frameworks in tools they build for production. Working remotely is great in terms of getting uninterrupted time to code, but you do have to work hard at communicating effectively across time zones. I look forward to Sushi Mondays on the occasions when I get to visit the Vancouver office…
What advice would you give to anyone looking to become a programmer in visual effects?
That’s a tricky one, and I think the answer would be very different depending on each person’s background. But I would suggest that the many open source VFX projects do provide a great opportunity to not only learn from production proven code, but also demonstrate your ability by contributing back something small in an area that piques your interest.
And finally: You originally moved to Vancouver because of your love of snowboarding – did you ever master the halfpipe?
I wish! But I have become a mediocre skier in addition to being a mediocre snowboarder, and had a lot of fun in the process…