Share

What's New in Bifrost 2.10.0.0 SDK shipping with Bifrost 2.10.0.0 for Maya

Bifrost 2.10.0.0 SDK is a major update to the SDK.

The core Amino APIs have no major changes but a full recompile is suggested due to ABI changes.

Modified APIs

Minor modifications to the Amino APIs

  • Amino::Array will issue a warning to users if unsupported types are used as array elements:
    AMINO_INTERNAL_DEPRECATED(
    "The element type of this array is not supported in Amino.\n    "
    "All types must be default constructible, copy/move constructible,"
    "copy/move assignable, and destructible.\n    "
    "Class types wrapped in Amino::Ptr must provide a default getter "
    "(see Amino/Cpp/ClassDeclare.h and Amino/Cpp/ClassDefine.h).\n    "
    "It won't be type-erased, nor support virtualized operations.")
  • Amino::String : addition of string literal operator operator””_as.
  • File StringFwd.h has been removed.

New APIs

Two new APIs were added to the Bifrost SDK. The Bifrost Graph Executor API allows setting up Bifrost graph executions. The Bifrost Geometry API exposes functions to manipulate the Bifrost geometry data structures.

Bifrost Executor SDK

The Bifrost Executor SDK provides a set of classes for setting up a BifrostGraph::Executor::Workspace, loading and compiling a Bifrost graph, setting inputs, executing a Bifrost job, and retrieving outputs (See Bifrost Executor SDK).

Bifrost Geometry

The Bifrost Geometry API is a collection of functions to manipulate a dictionary-like data structure that represents a Bifrost geometry.

There are no specific geometry data structures in Bifrost: no mesh, no point, no strand-specific geometry. A Bifrost geometry is a property-based data structure that stores its geometrical elements in a Bifrost object.

An introduction to the Bifrost geometry data structure is part of Bifrost geometry overview

The C++ header files are found in the SDK directory Bifrost/Geometry of your installation.

Apple Silicon Note

On Macs with Apple silicon, to obtain x86_64 binaries, it is recommended to target universal binaries with CMAKE_OSX_ARCHITECTURES="arm64;x86_64" and not just use CMAKE_OSX_ARCHITECTURES="x86_64". The resulting universal binaries can then run natively on Macs with Apple silicon and Intel silicon. That is, Bifrost should always run native and not via Rosetta because the Amino compiler does not do cross-compilation.

Was this information helpful?