Share

Bifrost 2.10.0.0 Release Notes

Bifrost 2.10.0.0 is a major feature release with new capabilities, performance improvements, and bug fixes. It is available for Maya 2023, 2024, and 2025 from the Autodesk Accounts Portal. See Bifrost for Maya Compatibility for more information.

For installation help, see Download and install Bifrost for Maya.

Release Highlights

Biforst skeleton example available in the Bifrost Browser

Node Library

You can open the new Node Library by selecting Windows > Node Library in the Bifrost Graph Editor. The Node Library lets you add nodes to a graph by dragging and dropping or double-clicking. Unlike the Tab menu, the Node Library can be filtered by namespace and lets you select multiple nodes. You can drag the pane to have it float or dock it anywhere in the graph editor.

Node Library

Rigging skeleton

A set of new nodes provide an early look at the possibilities for rigging workflows in Bifrost. Many of these make use of the new Core::Transform::Transform data type, a set of inter-related matrices that can be updated as part of a chain of transformations. To get started with your own experiments, take a look at the new Rigging example graphs in the Bifrost Browser.

New sample graphs

In addition to graphs highlighting new features like rigging, there are many new sample graphs available in the Bifrost Browser. There are several graphs demonstrating USD concepts and workflows, as well as the following graphs in other categories:

  • Geometry Queries/sample_points_by_radius
  • Liquid/liquid_meshing
  • Rubber/MPM_rubber
  • Tags/procedural_gear
  • BOSS/view_based_ocean (Windows and Linux only)

procedural_gear sample graph

Bifrost USD

There are several new nodes for manipulating USD data in the graph: see New nodes. There are also sample USD graphs in the Bifrost Browser — the graphs in the USD/Glossary category cover some of the basic USD concepts.

In addition, there is an early-access version of a Python-based plug-in, BifrostUSDExamples. This provides menu-based options for both generic and component USD workflows. The plug-in is installed with Bifrost in the following folder:

  • Windows: C:\Program Files\Autodesk\Bifrost\<MayaVersion>\<BifrostVersion>\bifrost\packs\usd_pack\<USDVersion>\examples\maya_plugin
  • macOS: /Applications/Autodesk/bifrost/<MayaVersion>/<BifrostVersion>/bifrost/packs/usd_pack/<USDVersion>/examples/maya_plugin
  • Linux: /usr/autodesk/bifrost/<MayaVersion>/<BifrostVersion>/bifrost/packs/usd_pack/<USDVersion>/examples/maya_plugin

Alternatively, you can obtain the latest version from the Bifrost-USD source files at https://github.com/Autodesk/bifrost-usd.

Bifrost USD Examples plug-in menu

To enable the plug-in, add the path to the folder that contains the bifrostUSDExamples.mod file to your MAYA_MODULE_PATH environment variable (for example, in your Maya.env file), then restart Maya and load bifrostUSDExamples.py using the Plug-in Manager. A new menu Bifrost USD appears on Maya's main menu bar.

Bifrost SDK

The Bifrost SDK has been updated and expanded.

  • The Executor SDK can load and execute Bifrost graphs on the command line, enabling Bifrost to be integrated into custom applications. This gives technical users the ability to run automation as well as to construct tools and plugins for artists.
  • The Bifrost Geometry SDK focuses on accessibility and easy interpretation of various geometry representations. It gives access to Bifrost Geometry data processed or generated by graphs, and also allows users to create and modify geometry. This SDK can be used in conjunction with both the existing Operator SDK and the new Executor SDK.

See the Bifrost SDK Release Notes for more information.

New nodes

Here's the list of new nodes in this version:

  • distance (Core::Math)
  • interpolate_transform_matrix (Core::Math)
  • matrix_is_identity (Core::Math)
  • matrix_is_orthonormal (Core::Math)
  • matrix_is_singular (Core::Math)
  • rotate_vector_by_matrix (Core::Math)
  • rotation_around_position_to_matrix (Core::Math)
  • transform_to_rotation_matrix (Core::Math)
  • transform_vector (Core::Math)
  • transform_vector_as_direction (Core::Math)
  • transform_vector_as_normal (Core::Math)
  • transform_vector_as_position (Core::Math)
  • access_transform_matrices (Core::Transform)
  • compute_transform (Core::Transform)
  • compute_transform_chain (Core::Transform)
  • compute_transform_tree (Core::Transform)
  • identity_transform (Core::Transform)
  • interpret_auto_port_as_transform (Core::Transform)
  • to_double4x4 (Core::Transform)
  • update_transform (Core::Transform)
  • update_transform_chain (Core::Transform)
  • update_transform_tree (Core::Transform)
  • skeleton_scope (Diagnostic::Display)
  • transform_scope (Diagnostic::Display)
  • skeleton_to_strands (Geometry::Converters)
  • construct_skeleton (Geometry::Skeleton)
  • create_skeleton_from_paths (Geometry::Skeleton)
  • get_joint_transform_matrices (Geometry::Skeleton)
  • get_skeleton_structure (Geometry::Skeleton)
  • set_joint_operator_matrix (Geometry::Skeleton)
  • set_joint_pivot_matrix (Geometry::Skeleton)
  • skeleton_is_animated (Geometry::Skeleton)
  • transform_joints (Geometry::Skeleton)
  • update_chain_joint_indices (Geometry::Skeleton)
  • update_joint_chain_index (Geometry::Skeleton)
  • update_joint_children_indices (Geometry::Skeleton)
  • update_joint_depth (Geometry::Skeleton)
  • update_joint_length (Geometry::Skeleton)
  • update_joint_path (Geometry::Skeleton)
  • update_joint_position (Geometry::Skeleton)
  • update_joint_transform_matrices (Geometry::Skeleton)
  • validate_skeleton (Geometry::Skeleton)
  • grade_volume (Geometry::Volume)
  • aim_matrix (Rigging::Solver)
  • align_matrix_chain (Rigging::Solver)
  • ik_fk_solver (Rigging::Solver)
  • offset_matrix_chain (Rigging::Solver)
  • pick_matrix (Rigging::Solver)
  • resample_matrix_chain (Rigging::Solver)
  • scale_matrix_chain (Rigging::Solver)
  • transform_matrix_chain (Rigging::Solver)
  • enabled_with_weight (Rigging::Solver::Utils)
  • equivalent_weight (Rigging::Solver::Utils)
  • get_prim_attribute_type (USD::Attribute)
  • define_usd_geom_subset (USD::Prim)
  • define_usd_skeleton (USD::Prim)
  • define_usd_skeleton_animation (USD::Prim)
  • get_applied_schemas (USD::Prim)
  • get_prim_kind (USD::Prim)
  • clear_variant_selection (USD::VariantSet)

Arnold and USD Compatibility Information

Bifrost 2.10.0.0 works with the following:

See Maya USD, Bifrost, and Arnold compatibility for more information.

Bifrost content created from the procedural graph can also be rendered with Arnold for Maya (MtoA) version 5.1.0 or later. The most recent version of MtoA is recommended for the latest features, bug fixes, and performance improvements. See Bifrost for Maya Compatibility for information about compatible versions of Maya and Arnold.

To obtain the latest Arnold for Maya installer, visit the Autodesk Accounts portal.

The first version of Bifrost that introduced Bifrost USD is 2.4.0.0. All versions of MayaUSD (available on github https://github.com/Autodesk/maya-usd/releases) that use the same USD version as Bifrost are compatible with Bifrost USD.

Older versions of MayaUSD can be installed alongside Bifrost, but Bifrost USD functionality will not be available.

Backward Compatibility Warnings

There have been some changes to the SDK in this version of Bifrost. As a result, custom C++ operators may need to be modified and recompiled. See the Bifrost SDK Release Notes.

In addition, the automatic naming has changed for subports of struct connections to and from the Maya scene. Scripts that expect subports of a vec3 port named vector (for example) to have names of the form vectorx need to be updated as follows:

  • Maya 2025 and later: vector.x
  • Maya 2024.x and earlier: vector_x

Known Issues and Limitations

BOSS: Multi FFT crash on macOS: Maya crashes on macOS when enable_multi_FFT is activated on the create_spectral_waves node. Note that this option is off by default on macOS, but it is turned on in the view_based_ocean example graph (which is not installed on macOS).

Changes in Detail

What's Fixed in Bifrost 2.10.0.0
Aero: Artifact with pyroclastic explosion with default voxel_padding of 4

BIFROST-9218
Aero: Kill inflence with mask doesn't work with Aero refinement

BIFROST-9834
Aero: Simulation-time aero_refinement_settings differs from post_refine_aero

BIFROST-9633
Aero: set_initial_state and aero_refinement_settings cannot be used at the same time

BIFROST-9567
Aero: set_initial_state and post_refine cannot be used at the same time

BIFROST-9789
Aero: voxel_mass_density used in a shader stops viewport updates

BIFROST-9632
BOSS: Camera input script uses wrong shape name

BIFROST-10025
BOSS: Enabling use_advection on dynamic_wave_settings causes a crash

BIFROST-9470
BOSS: Increasing the number of source_dynamic_wave causes issues with the output geometry in the ocean

BIFROST-9948
BOSS: Multiple wave maps support

BIFROST-9796
BOSS: Unable to use dynamic waves without a terminal in the graph

BIFROST-9677
BOSS: dynamic_waves input_collider_waves is broken

BIFROST-9621
BOSS: simulate_foam speed properties should grey when not active

BIFROST-9480
Browser Graphs: Diagnostic flag on liquid_meshing should be turned on by default

BIFROST-9935
Browser Graphs: MPM rubber point deform

BIFROST-9487
Browser Graphs: Remove view_based_ocean example on macOS

BIFROST-10015
Browser Graphs: Sample points by radius example

BIFROST-8729
Browser Graphs: Scene Only Mode

BIFROST-9668
Browser Graphs: Use aero_solver_settings as a referenced compound in the pyroclastic graph

BIFROST-9217
Compiler: Crash using update_transform_chain

BIFROST-9985
Compiler: Disabled terminals that are unused are a warning

BIFROST-9764
Compiler: Provide APIs to enable read/write of type erased type (to enable serialization/deserialization of Any for all exposed types)

BIFROST-8627
Fields: Internal nodes are exposed in both the tab menu and the node library

BIFROST-9768
Fields: Overloaded time port for field noise nodes that supports float

BIFROST-8809
Fields: Property proxy fields not sampling indexed geo properties correctly

BIFROST-9755
File IO: read_bif_particles support for frame padding in the file name

BIFROST-9430
Geometry: Change thickness port on extrude_faces to interpreted auto port

BIFROST-8524
Geometry: Triangulation ear clipping algorithm leaves face vertices uninitialized when it fails.

BIFROST-9785
Geometry: base_to_pivot broken on create_mesh_cylinder

BIFROST-9817
Geometry: extrude_faces does nothing by default

BIFROST-9724
Geometry: extrude_faces side tag contains more faces than it should if mesh is open

BIFROST-9812
Graph Editor: Shift on connect on by default

BIFROST-9714
Interaction: Connecting array<math::float3> to an equal node crashes

BIFROST-9698
Interaction: Crash when undoing the enabling of fan-in after fan-in port group has been expanded

BIFROST-9258
Interaction: Renaming a backdrop causes hotkey events

BIFROST-9736
Interface: Bad font display in Info Panel and Parameter Editor

BIFROST-9679
Interface: Condensed node names after zooming in

BIFROST-9156
Interface: Improved error messages

BIFROST-9805
Interface: Node library browser panel

BIFROST-9196
Interface: Node library drag and dop node into a compound displays a red error bar

BIFROST-9945
Interface: Node library list opens with all namespaces expanded and Library UI width is too narrow

BIFROST-9753
Interface: Node library node icons

BIFROST-9207
Interface: Node library scroll bar is too small in the All Nodes List

BIFROST-9751
Interface: Node library search

BIFROST-9200
Interface: Node library splitter bar is invisible

BIFROST-9835
Interface: Node library support for PNG icons

BIFROST-9806
Interface: Node library window doesn't persist when resized

BIFROST-9746
Interface: Scene opens with terminal flag letters offset if it was saved with terminals in collapsed mode

BIFROST-9305
Liquids: Blocky artifact with adaptivity

BIFROST-9774
Liquids: Bumpy artifacts with kernel factor set to 1

BIFROST-9780
Liquids: Crash on Esc termination with kernel_factor property modification on points_to_liquid_surface

BIFROST-9749
Liquids: Kernel factor > 0 increases temporal flicker

BIFROST-9553
Liquids: Node remove_mesh_slivers inside volume_to_mesh inverts triangles

BIFROST-9684
Liquids: Optimize the smooth_liquid_mesh compound

BIFROST-9504
Liquids: Snap mesh to particles

BIFROST-9276
Liquids: Temporal flicker with spatial adaptivity

BIFROST-9569
Liquids: points_to_liquid_surface parameter order reflects operation order

BIFROST-9776
Liquids: points_to_liquid_surface second smooth occurs after erode

BIFROST-9570
Liquids: wide_laplacian_smooth node leads to temporal flicker

BIFROST-9687
MPM: Quick create option on simulate_mpm is incorrect for wind and ground_plane

BIFROST-9799
Maya Plug-in : Connections still exist after deleting input/output port

BIFROST-10026
Maya Plug-in: Add support for point tags on Maya curves when brought into Bifrost.

BIFROST-9110
Maya Plug-in: Bifrost legacy liquids LavaFreeze is not rendering

BIFROST-9635
Maya Plug-in: Can not open the Bifrost Graph Editor

BIFROST-9642
Maya Plug-in: Crash on exit when scene with bifrost is loaded

BIFROST-9957
Maya Plug-in: Get_property_keys crashes with a float as input

BIFROST-9941
Maya Plug-in: Graph profiling regression

BIFROST-9937
Maya Plug-in: Mesh conversion is not normalizing face vertex normals when scaling is applied

BIFROST-8526
Particles: Crash when a heavy mesh is connected to the collider of a particle system

BIFROST-9443
Particles: Label Sources not working on basic particle Graph

BIFROST-9543
Rigging: Discard Transform to_double3x3 type promoter

Access the world_matrix member of the transform before feeding it into matrix_to_SRT.

BIFROST-9448
Rigging: Include math, skeleton, and USD nodes in 2.10 release

BIFROST-9813
Rigging: Node icons

BIFROST-9390
Rigging: Opening usdSkeletonSkinning encounters an error

BIFROST-9925
Rigging: Skeleton schema loading error

BIFROST-9434
USD: Bifrost Browser Examples

BIFROST-9673
USD: Creating a PointInstancer with prototypes from variants is broken

BIFROST-9688
USD: Creating a variant set in a variant does not work if on same prim

BIFROST-9565
USD: Define Attribute should get created with collapsed port groupings

BIFROST-9056
USD: Maya plugin to create USD workflows using Bifrost

BIFROST-9770
USD: Node to clear the variant selection

BIFROST-9637
USD: Node to query attribute type

BIFROST-8154
USD: Update public Github repo to Bifrost 2.10

BIFROST-10035
USD: define_applied_schema node

BIFROST-9186
USD: define_usd_mesh: Disable Subdivision Scheme if Normal Per Vertex is on

BIFROST-9686
USD: get_applied_schemas node

BIFROST-8099
Volume: Artifacts with masked erosion / dilation

BIFROST-9554
Volume: Expose grade_volume node

BIFROST-9811
Volume: Levelset offset or redistance artifacts with large offset and spatially varying mask

BIFROST-9433
Volume: Optimize Geometry::Converters::Internal::sample_volume_properties

BIFROST-9503
Volume: points_to_volume optimization part 2

BIFROST-9501

Was this information helpful?