ufe  3.2
Universal Front End is a DCC-agnostic component that will allow a DCC to browse and edit data in multiple data models
UFE API Documentation

Introduction to UFE

The ADSK Universal Front End (UFE) is a middleware component that coordinates translation between your Digital Content Creation (DCC) application (e.g.: Maya, 3dsMax) and multiple other data models. The UFE lays out a set of APIs that can be implemented by a plug-in to your DCC, so that data, commands, and updates can travel back and forth between your DCC's native model without your DCC needing to implement or interpret the specific other data models. Once your DCC can send and receive data to and from the DCC, it can interact with any data model that implements the UFE to uphold the other side of the data transactions and operations.

UFE Usage

There are two halves to the UFE API.

  1. A DCC links against the UFE, implementing the APIs to use UFE services.
  2. A plug-in is written that understands the data-model that the DCC would like to interact with. This plug-in can implement a data specification, or wrap around another runtime that operates on its own data-model. This plug-in registers its data-model with the UFE, and data and operation requests coming from the DCC arrive through the UFE into the plug-in runtime. The results can be passed from the plug-in runtime back across the UFE into the DCC.

UFE Usefulness

Instead of hard-coding operations to interact with multiple specific non-native data models, a DCC can implement the UFE once, and still benefit from any other data model. This extra level of abstraction provides flexibility without needing to develop the data-model and DCC in lock-step.

Multiple non-native data models can be used simultaneously without conflicting.

A data model plug-in implementation doesn't need to know every detail about the DCC's UI interaction, as those are organized and wrangled across the UFE services.

Advantages of working with UFE

Development schedule flexibility

If your production pipeline uses a component that is developed outside of your studio, but you don't want your development to have to match exact versions with every component. The UFE apis change very slowly and are highly backward-compatible. This maximizes version compatibility without needing large changes to the DCC or plug-in runtime code. You can update the runtime plugin (and the runtime it wraps around, if needed) without worrying about breaking workflows with the DCC. This saves development time and redeployment costs.

Component swap

The UFE services allow the DCC to be independent of the data model. So replacing a plug-in runtime data model doesn't require supporting it in the DCC. You can choose from any data model with a plug-in for your DCC that implements the UFE. Or you can write your own UFE plug-in implementation yourself, and adopt any data model in existence into your DCC pipeline without needing to alter the DCC at all.

Interoperability in data model

The UFE can serve data and edits between your DCC and a data interoperability model (like USD, JSON, etc). This lets you utilize the interoperability layer without hard-coding support into each DCC.

Simulation engines & renderers

You can use the UFE to serve and edit data to your specialized simulation, processing, or rendering components. UFE can separate the DCC-specific idioms away from the idioms of the simulation or rendering data. This can help optimize the weight of the data required for each of these operations in your pipeline.