Fabric Engine 2 expands the ambitious, distinct solution for building powerful universal tools and applications
The first thing anybody new to the Fabric Engine concept needs to know is that it may not be the kind of game engine they’re thinking of.
In its own quietly meta way, it is a tool for creating tools. At least, that is what the technology fundamentally offers the game, VFX, film, TV and visualisation industries.
“At a very high level, Fabric is a tool for building content creation tools and applications,” elaborates Fabric Software CEO Paul Doyle. “The ‘engine’ part originally came from what we were looking at when we were building a multi-threading engine that could take care of high performance without the user themselves having to worry about that.”
Data with destiny
“That was what the original, first Fabric Engine was, and still is,” confirms Doyle. “It’s a core execution engine and language called KL, which serves those goals.”
In other words, Fabric Engine 2 is a framework for building tools that behave like a universal plug-in that would work in a range of software, from SoftImage and MODO to 3ds Max and Maya. It’s also capable of supporting the creation of standalone tools.
With the advent of open data through file formats such as FBX, the opportunity to introduce different tools into a pipeline crystallised. Creatives were no longer bound by the data of the tools they were working in.
“But that kind of created something of a headache,” suggests Doyle. “It was great that people could use any tool they wanted in the pipeline, but given that on most productions you have to use custom tools, it started to multiply the amount of custom development required to support all of those applications.”
For that reason, at the heart of Fabric Engine 2 sits a core idea: that users should only have to author a tool or application once before running it in many places.
So it was in the first Fabric Engine, but Doyle isn’t afraid to admit improvements needed to be made back then.
“Our high level target of somebody that only knew Python; we were struggling to hit them as well as we could,” he says. “So with Fabric 2, one of the main focuses for us has been to introduce a visual programming model, so that people can author Fabric and author KL without having to understand how to write code. So it would work much like Ice or Bifrost or any of those visual programming series.
“The other two major components of Fabric 2 that aren’t out yet, but are coming, are a scene graph and a real-time renderer, both written in KL as well.”
As such, while Fabric’s debut was focused on delivering an execution engine and processing tool, Fabric Engine 2 sits far more comfortably in the realm of providing a complete application framework.
Fabric’s technology also offers games developers a means to refine their content creation pipelines.
“A lot of what games companies are telling us is that while a lot of things can be solved quite well now in runtime, a lot of the headaches that still exist are firstly in getting data from the content creation end of the pipeline into the engine, and the same kind of issues [also exist] within the content creation side of things,” explains Doyle.
“When they’re trying to build assets and characters and things like that, it’s very rare that everything you need is supplied out of the box of an application. That always therefore means custom development of some kind. So the same problems we’ve been solving for VFX, TV and post exist within games as well.”
Fabric Engine 2 promises to be highly extendible itself, and easy to integrate with other tools and even hardware inputs, to the point that it can be used to prototype behaviours in an authoring environment without having to go into an engine.
The tech is currently available with a range of free and paid options, and pitched as suited to individuals as much as large teams, Fabric Engine 2’s release is just the beginning for the technology.
Next year Doyle hopes to open the doors on a third-party develop program, meaning users can share and deploy their own tools and applications.