A UBF Interpreter is an engine‑specific plugin or SDK that converts a blueprint’s engine‑agnostic instructions—defined in
compliance with the UBF Open Standard—into the native API calls, commands, and data formats required by a particular run‑time
engine (Unity, Unreal Engine 5, etc.). Interpreters sit on the execution side of the UBF stack. They are completely decoupled
from authoring (UBF Studio) and orchestration (Execution Controller).Interpreters are intentionally narrow in responsibility: they take a compiled UBF Blueprint as input and simply execute it within
the target engine, without any awareness of the blueprint’s intent or the broader system context. They are entirely blind to
external concerns—such as equipment trees, blockchain concepts, or orchestration logic—which are handled elsewhere. This isolation makes
interpreters highly generic, allowing them to stand alone and serve an open-ended range of use cases across various engines
and applications.
While interpreters operate within a narrow and clearly defined scope, their role in the UBF framework is both foundational
and critical. An interpreter must fulfill several core responsibilities, including but not limited to:
Deserializing UBF Artifacts: Ensuring that the data structures are well-formed, valid, and ready for use.
Implementing Node Translations: Providing engine or domain-specific behavior for each UBF node, in accordance with the standard specification.
Managing Execution Flow: Handling the logical progression from one node to the next within a blueprint’s execution, ensuring that dependencies and sequence are respected.
Managing Data Flow Between Nodes: Coordinating how data is passed and transformed from one node to another.
Instead, Interpreters are not responsible for:
Resolving or downloading referenced artifacts
Deciding when or where a blueprint should execute
Determining what inputs are fed into a blueprint
Mapping blueprints or catalogs to specific assets or their variants
These concerns fall outside the interpreter’s scope and are handled by the Execution Controller Plugin/SDK.There are many additional responsibilities and nuanced behaviors that interpreters need to perform in order to function
correctly and integrate seamlessly within different execution environments. However, these advanced topics are beyond
the scope of this document and will be covered separately.
Futureverse currently maintains two official UBF interpreter implementations: one for Unity and one for Unreal Engine.
These are kept up-to-date in lockstep with changes to the UBF Standard, ensuring they remain compliant, consistent,
and fully interoperable with other components in the UBF ecosystem.Because the UBF Standard is publicly accessible and designed with modularity in mind, it is possible for any external
party to create their own versions of interpreters targeting existing or new runtimes.To be considered conformant with the standard, a custom interpreter must:
Faithfully implement the UBF specification, including all required nodes, data types, and behaviors.
Declare a version and capability profile to enable compatibility checks by external systems.
This open and extensible architecture allows the UBF ecosystem to grow organically, adapting to new domains, platforms, and rendering environments.
The official interpreters are available for Unity and Unreal Engine. Use these to execute UBF blueprints at runtime in your project.Consider checking out Execution Controllers for out of the box orchestration and asset/profile resolution.