This page contains a Flash digital edition of a book.
BUILD | TOOLS NEWS Tooling up


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


Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36  |  Page 37  |  Page 38  |  Page 39  |  Page 40  |  Page 41  |  Page 42  |  Page 43  |  Page 44  |  Page 45  |  Page 46  |  Page 47  |  Page 48  |  Page 49  |  Page 50  |  Page 51  |  Page 52  |  Page 53  |  Page 54  |  Page 55  |  Page 56  |  Page 57  |  Page 58  |  Page 59  |  Page 60  |  Page 61  |  Page 62  |  Page 63  |  Page 64  |  Page 65  |  Page 66  |  Page 67  |  Page 68  |  Page 69  |  Page 70  |  Page 71  |  Page 72  |  Page 73  |  Page 74  |  Page 75  |  Page 76