The Fabric Engine is a brand new technology specifically for developing in-house tools. Will Freeman asks the tech outfit’s CEO and co-founder Paul Doyle why games developers should pay attention to this distinct solution
Fabric Engine (top) promises to be hugely useful to games developers, says CEO Paul Doyle (above)
BEFORE WE GETinto the details, could you tell us more about Fabric Engine the company, and give us an overview of the technology itself? Fabric Engine was started about two years ago by myself, Philip Taylor and Peter Zion. We knew each other from our time at Softimage, where Peter and Phil worked on the development of Interactive Creative Environment (ICE) for Softimage XSI. Phil was also the creator of Character Animation Toolkit, which was acquired by Softimage and is now part of 3ds Max. Most of our team worked together at
Softimage and Autodesk, and three of us worked in the Games Technology Group at Autodesk. Needless to say, we have extensive experience in building tools for the VFX and game development markets.
Phil and I spent a lot of time evangelising the benefits of ICE – we loved the fact that it made it easy for technical artists and TDs to write high-performance tools. This inspired Phil to start thinking about how to address the problems we saw in 3D animation; every production requires extensive tool customisation and development to achieve its goals, yet the major applications used in the industry were not designed for this kind of customisation. We believed that a ‘tool for building tools’ would be valuable; something designed for
58|MAY 2012
high-performance and ease of use, that was completely open and modular. This led to the creation of the core of
Fabric Engine, the technology, which is a high-performance processing engine that integrates with dynamic languages – like JavaScript and Python – by exposing an interface for defining multi-threaded native code operations. The developer provides a high-level description of concurrency, and Fabric Engine takes that description and dynamically compiles it.
We believed that a ‘tool for building tools’ would be
valuable; something designed for high- performance.
Paul Doyle, Fabric Engine
Dynamic languages are easy to use and they enable rapid iteration, since there’s no compile-wait-execute delay. However, these languages perform poorly when compared to the speed that statically compiled languages like C++ provide. With Fabric Engine, we designed something that could
give developers the best of both worlds – easy to use, fast iteration and performance that matches multi-threaded C++. On top of this core engine, we provide
‘stacks’ of technology to help people build the tools they need. This includes a Python scenegraph, rigging tools, animation tools and an extension system to allow the inclusion of existing libraries. This is important as it allows us to support formats like Alembic, FBX and Collada.
So you’ve essentially created a tool for developing high-performance tools? Exactly. We enable developers to focus on building the tool they need, rather than spending time focusing on architecture and plumbing – the low-level elements that have to be handled but are often jerry-rigged due to the pressures of production. Time spent building a tools architecture is time that is not being spent on the production itself.
Why should games developers use Fabric Engine rather than, say, C++, to write software for games development? It depends on what they’re building. We provide a scenegraph and many other elements required to build useful tools. Fabric is as fast as C++, yet any developer can use it – given that many pipeline tools are written using Python, it’s a lot easier to