March 29, 2015

In search of Muggins: Next Generation

MPC RenderMan image

Image courtesy of MPC

Muggins: Next Generation might sound like MPC’s latest film project, but for Damien Fagnou, global head of visual effects operations, it is a business goal. Muggins is the name of MPC’s 3D framework. Developed in-house over the last 12 years, it is the foundation of most of their 3D software and the glue between the different applications within the pipeline. MPC has a rich heritage of technical innovation that has served them well but Fagnou is focused on the future. He believes Fabric Engine helps get him there.

Damien Fagnou, MPC

Damien Fagnou

Fagnou joined MPC in 2002, at the time Muggins was first being developed. “Back then, years ago, it was hard to find visual effects-grade software that you could buy off-the-shelf,” he explains. “If you wanted to do visual effects-grade films, you had to build your own toolkit.” To illustrate this point, he talks about Alice, MPC’s crowd engine, their fur tools (‘Furtility’) and more recently Kali, the Sci-Tech Award-winning finite element tool destruction set first developed for Sucker Punch in 2009.

Over time he says, things have changed. “Autodesk has cranked up the bar, The Foundry tools arrived. Today, we use Maya for animations, Nuke for compositing, Katana for lighting, MARI for texturing, and Pixar RenderMan for rendering. We bring the ‘magic sauce’ of making films with these and we build our pipeline around it,” he says.

Fagnou explains that all applications at MPC – whether third party or developed in-house – are integrated into the Muggins platform: “We’ve always built them into a common platform – technology that we have built in house and developed over the years. About 4-5 years ago, we started seeing there was a lot of activity in that space and our technology was growing a little bit older… A couple of years ago there was discussion about what our new platform should be. We called it ‘Muggins: Next Generation’.”

The goals were pretty complex, and given the timeframe and cost of building another framework in-house, they started to consider alternatives, and specifically, a specialist with whom they could partner. “For a while there were no solutions, a few people had different things, but about two years ago we started looking at Fabric Engine. It was a different product than it is now but it already had the core promise in there that we were interested in.”


The MPC team identified a set of targets and goals, defining what this new platform should be for, and how it would need to serve them for the next decade. “In our checklist, we said it had to be high performance for both CPU and GPU; had to have a graphical framework to be able to build tools quickly; had to have a scripting language – a programming language that would be easy to access for a TD or mid-level developer; and had to have a graph – an authoring environment where we could build a tool using nodes and connections, like the workflow that has been quite popular in other DCC applications,” says Fagnou. “And it had to be a framework, not a tool, not something that prescribed a way of working or final output – but a framework for us to build our own tools.”

I like what they’re doing, I believe what they’re doing is the right thing, it’s the right framework, it has the right potential… once you’ve seen it, it’s very exciting.

Damien Fagnou on Fabric Engine

MPC ran a series of evaluations with Fabric Engine that included building small prototype tools of the things they would expect to be able to build with such a platform – to test how fast they would be able to build them, how robust the technology was, how easy to use it was, and how complete it was. The evaluation lasted a couple of months and “went really well”. As a result, MPC signed a site license deal in October 2013 and has been instrumental in the development of Fabric Engine ever since.

“In the first year, a lot of our investment was about building our own future, understanding the platform, working closely with the Fabric team to actually shape the platform,” says Fagnou, adding that as an early adopter, it was important to make sure development of the framework was going “in a direction that makes sense for a studio of our scale”. MPC has sites in London, Vancouver, Montreal and India so artist productivity and the challenge of working across multiple time zones were front of mind. Not only that, it took time to integrate their own framework – Muggins – inside Fabric to ensure they would be able to transition the tools they’ve already built in to the new framework.

Fabric is now being used in production. “Last summer, we were able to start working with Splice, which was the first component of the Fabric Engine 2 generation,” says Fagnou. And although he can’t reveal which production, he talks in general terms about how MPC is training developers to use the new platform by getting them to build small tools: “So it’s tools for doing layout, doing animation, a tool for doing preview. And a lot of our current phase is in building up for the second generation release and trying to be ready for it.”


MPC hero tree from SpeedTree, rendered using Dekko

The preview tool is something Fagnou can discuss – it started off as part of Dekko, a research project MPC began a year ago. “The initial goal was to use Optix to do a GPU ray tracer for preview for visual effects,” he explains. “We wanted to start building this type of tool on a framework like we always did but this time, not on Muggins but on Fabric. So we leveraged Fabric to do all the scene assembly, run scripts, to be able to build a world and then use the C++ side to nicely transition with the Optix API.”

Although the project has slightly changed course, it was still presented at GTC 2015 earlier this year: “We had a slot there to present some of the work we’d done since SIGGRAPH that we hadn’t shared publicly. We showed two aspects of Dekko: GPU ray tracing, which we worked on with Nvidia – and scene assembly, which we’re doing with Fabric Engine.”

GTC2015 Video — Dekko: A realtime video framework

Build once, deploy anywhere

According to Fagnou, one of Fabric’s strengths is not only does it run within other applications – through the Splice API – but it runs standalone: “It happens to be able to run well inside of Maya or Softimage, or other things, which is a great feature but what’s important is it’s a standalone framework that doesn’t require the DCC to be present to actually be useful.” As a result, Fabric can be used to build fully encapsulated assets – embodying the ‘build once, deploy anywhere’ philosophy.


Image courtesy of MPC

Fagnou says it wasn’t difficult to explain this concept to people within MPC because it’s the way they’ve been working for the past decade. “That’s why, when we started talking with the team at Fabric, it was really easy for us to understand – there is some sort of philosophical idea in there that we didn’t have to be sold on because that’s something we’ve been doing for a long time.” And this is what excites him, he says: “I like what they’re doing, I believe what they’re doing is the right thing, it’s the right framework, it has the right potential… once you’ve seen it, it’s very exciting.”