Share

Bifrost 2.11.0.0 Release Notes

Bifrost 2.11.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

Sampling a texture onto a point cloud

Texture sampling

The new sample_texture_file node returns the RGBA color of an image interpolated at the UV coordinates of a geometry. The (0, 0) position is at the bottom left corner, and UDIM and UV tiles are supported with file name patterns.

In addition, read_image_data returns an array containing the RGBA pixel values of an image file. The 0th element is the bottom left pixel, the first N elements are the bottom row, the Nth element is the first pixel of the next row, and so on, where N is the width of the image.

Both nodes support all common image file formats. If there is no alpha channel, the values are set to 1.0.

Data browser

Data browsers provide more detailed information about the values flowing along a connection than watchpoints do. They can even show the individual values of properties of an object contained in an array.

Data browser

To view values in a data browser:

  1. Right-click on a connection or existing watchpoint and choose Open in Data Browser. If one or more data browsers are already open, you can open the data in a new data browser or re-use an existing one.

    Note that this creates a watchpoint if there wasn't already one on the connection.

  2. Use the left pane to select the data to view in the right pane. If desired, you can:

    • Ctrl-click to toggle-select multiple items to compare data side by side.
    • Drag or shift-click to select a contiguous range of items.

If you do not need to see updated values as you work in the graph, you can speed up interaction by turning off Sync Data. Simply turn it back on when you need to see the current values again.

The data browser window can be dragged and docked to any suitable location in the workspace.

Procedural rigging

There is a new, experimental modular framework for rigging that allows you to combine modules to create procedural rigs. The limb_module and root_module are provided as examples, and you can create your own modules based on template_module. To see an example of the framework in action, take a look at the limb_module sample graph that's available in the Bifrost Browser.

You can also now convert strands to skeletons, as well as points to skeletons and vice versa.

In addition, the viewport representation of skeletons has been improved. Instead of the old pyramid-like mesh representation, joints with children are now shown as flat capsules and isolated joints as disks. The skeleton_scope node now has a adaptive joint size option that is enabled by default — this automatically adjusts joint sizes for better readability without manual tuning.

Node library and tab menu

The node library now lets you save your favorite nodes: simply hover the pointer over a node and then click the star. You can quickly access your favorite nodes by selecting the Favorites category.

Node Library

Hover over a node's i icon to display a brief description. Also displayed is name of the JSON file, the name of the Bifrost library, and the library author (if available).

In addition, both the node library and tab menu now let you use a space to indicate that the next letter must be at the beginning of a subsequent word. For example, "c att", "c con", and "att c" all match clear_attribute_connections. After a space, the search find words that start with the next letter and contain the remaining characters, so you can find scale_to_vector3 by typing "s v3".

Volume to mesh: Contour surface nets

The new contour_surface_nets node converts a volume to mesh using the Surface Nets algorithm, as an alternative to the contour_dual_marching_cubes node. The volume_to_mesh node has also been updated to allow you to select which algorithm to use.

The results of `contour_surface_nets` in the foreground

Flow Wedging: Technology preview

Note:

The information below was valid at the time that Bifrost 2.11.0.0 was released. Since the release of Bifrost 2.12.0.1, Flow Wedging is a cloud-enabled capability and no longer a technology preview. You must be running Bifrost version 2.12.1.0 or later and have Flex tokens available in your Autodesk account.

The Flow Wedging plug-in allows you to submit a simulation with variations of a parameter ("wedges") to the cloud, freeing up your computer's resources to work on other things while you wait for the results. When they are ready, you can easily load generated caches to compare.

3 wedges of a combustion simulation

The Flow Wedging plug-in is installed along with Bifrost. To access Flow Wedging, enable it from the plug-in manager in Maya. Once it is enabled in Maya's Plug-in Manager, the Flow Graph Engine menu appears in Maya. You can then prepare your scene using wedge_cache and other special nodes, then submit your job. For more information, see Flow Wedging.

Flow Wedging is a technology preview, so some features are missing and workflows may change in the future. It requires single-user licensing, and the consumption of cloud services is limited to 250 hours per user per month during the technology preview period. This quota resets on the first of every month.

Bifrost SDK

See the Bifrost SDK Release Notes for more information.

New nodes

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

  • error (Core::Error)
  • promote (Core::Type_Conversion)
  • read_image_data (File::Image)
  • sample_texture_file (File::Image)
  • write_state (File::Write)
  • invalid_index (Geometry::Common)
  • contour_surface_nets (Geometry::Converters)
  • points_to_skeleton (Geometry::Converters)
  • skeleton_to_points (Geometry::Converters)
  • strands_to_skeleton (Geometry::Converters)
  • create_skeleton_from_modules (Geometry::Skeleton)
  • update_point_strand_index (Geometry::Strands)
  • tag_by_threshold (Geometry::Tags)
  • coarsen_refine (Geometry::Volume)
  • separate_strands (Modeling::Strands)
  • limb_module (Rigging::Module)
  • root_module (Rigging::Module)
  • template_module (Rigging::Module)
  • name_to_path (Rigging::Module::Utils)
  • names_to_chained_paths (Rigging::Module::Utils)
  • path_to_name (Rigging::Module::Utils)
  • sort_and_filter_paths (Rigging::Module::Utils)
  • validate_path (Rigging::Module::Utils)
  • blend_matrix (Rigging::Solver)
  • parent_matrix (Rigging::Solver)
  • get_prim_attribute_connections (USD::Attribute)
  • define_usd_point_instancer (USD::PointInstancer)
  • delete_usd_point_instances (USD::PointInstancer)
  • get_usd_point_instancer_attributes (USD::PointInstancer)
  • replace_usd_point_instancer_proto (USD::PointInstancer)
  • set_usd_point_instances_invisible (USD::PointInstancer)
  • usd_point_instancer_scope (USD::PointInstancer)
  • define_usd_prim_hierarchy (USD::Prim)
  • add_to_stage_in_variant (USD::VariantSet)
  • wedge_cache (Wedging)
  • wedge_filename (Wedging)
  • wedge_index (Wedging)
  • wedge_parameter (Wedging)

New sample graphs

  • Image/sample_texture_on_points
  • Image/view_image
  • Rigging/blend_matrix
  • Rigging/limb_module
  • Rigging/parent_matrix
  • Rigging/pick_matrix
  • Scatter Pack/incircle_packing
  • Wedging/aero_combustion_wedging

Arnold and USD Compatibility Information

Bifrost 2.11.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

Bifrost 2.11.0.0 introduces some changes that break compatibility with previous versions. As a result, some existing graphs may need to be modified to work correctly. In particular, promotion from scalar values (e.g. float) to matrices (e.g. float4x4) has changed. If you plug a float into a matrix port, it will promote to a matrix where all the values are same value as the float, which is consistent with how scalar to vector promotion works. This allows operations such as dividing a whole matrix by two, and makes math compounds generally work with matrices the same way they currently work with vectors. Previously, the promotion would make a uniform scaling matrix where the float filled the diagonal of the matrix.

There have also 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 for details.

Changes in Detail

What's Fixed in Bifrost 2.11.0.0
Aero: Adaptive aero simulation discards tiles at refinement level 26

BIFROST-10312
Aero: aero_pyroclastic_influence air_mask_field port is not connected

BIFROST-9967
Arnold-Bifrost: GPU rendering crash when bifrost graph is hidden

BIFROST-7840
Arnold-Bifrost: IPR crash when randomize_point_scale node is given negative min/max values

BIFROST-9441
Arnold-Bifrost: Intermittent crash with an Arnold vdb and a simple Bifrost graph

BIFROST-10127
BOSS: Change default image_scope up vector to (0,0,1)

BIFROST-10433
BOSS: Drift instability on dynamic_waves

BIFROST-9484
BOSS: Multi FFT crash on macOS

BIFROST-10010
BOSS: Random numbers different between platforms

BIFROST-9936
BOSS: resample_image incorrect sum

BIFROST-9715
Bifcmd: Ability to set job ports on wedge nodes

BIFROST-10049
Bifrost Browser: Move USD graphs from Rigging to the Bifrost USD repo

BIFROST-9995
Bifrost Hydra: Add Bifrost USD config in Hydra tests

BIFROST-9996
Browser Graphs: Aero Fields Sourcing

BIFROST-9511
Browser Graphs: Revamp grass_wind

BIFROST-10284
Browser Graphs: Aero combustion wedging

BIFROST-10231
Browser Graphs: Camera-based distance detail workflow

BIFROST-8349
Browser Graphs: Sample texture on points

BIFROST-10464
Browser Graphs: fast_aero improved defaults and document parameters that affect performance and quality

BIFROST-10459
Browser Graphs: missile_hit is non-deterministic

BIFROST-10124
Compiler: "promote" node which promotes a value to the type of another value

BIFROST-10341
Compiler: Add Core::Error::error node.

BIFROST-10045
Compiler: Add support for input targets to do-while loop nodes

BIFROST-9646
Compiler: Amino::Conversion::toValue fails to convert an any of Math:double3

BIFROST-10024
Compiler: Crash/hang in TBB/Amino after replacing or deleting nodes

BIFROST-8968
Compiler: Have complete call path with runtime services

BIFROST-9926
Compiler: Long compile time for small simulation graphs

BIFROST-8803
Compiler: Provide "Core::Internal::force_eval" for implementation of "Simulation::Common::force_pull_port".

BIFROST-9880
Compiler: Remove Core::Logging::Internal::get_compound_instance_name

BIFROST-10275
Compiler: Remove InstanceNamePort, use RuntimeServices instead

BIFROST-10180
Compiler: Slow LLVM IR generation with rigging module nodes

BIFROST-9787
Compiler: Unconnected terminals should be statically disabled

BIFROST-9827
Compiler: set_geo_property overhead

BIFROST-10300
Compiler: string_to_array long compile times

BIFROST-8719
Data Browser: "Go to node" selects the destination node

BIFROST-10289
Data Browser: Ability to view an array of objects

BIFROST-9931
Data Browser: Breadcrumb trail usability in resizable window

BIFROST-10408
Data Browser: Collapse watchpoint when opening in data browser

BIFROST-10489
Data Browser: Comma separated values in copy paste

BIFROST-10490
Data Browser: Connection right click, "Open in Data Browser"

BIFROST-10085
Data Browser: Copy + Paste

BIFROST-9974
Data Browser: Crash when exploding a compound that has an internal data browser open

BIFROST-10436
Data Browser: Crash when turning FFT off during playback with Data Browser open

BIFROST-10240
Data Browser: Data Browser Data is blank on array sizes larger than ~72 million elements

BIFROST-10437
Data Browser: Data Browser is always on top of any other floating Maya Editor on Mac

BIFROST-10196
Data Browser: Disable "Open in Data Browser" items if no watchpoint in non-editable compound

BIFROST-10480
Data Browser: Dockable window

BIFROST-9973
Data Browser: Expand top level tree by default

BIFROST-10488
Data Browser: Go to node and path in window title

BIFROST-9971
Data Browser: Icons

BIFROST-9309
Data Browser: Remove array length limit

BIFROST-10114
Data Browser: Single cell selection highlight

BIFROST-10491
Data Browser: Text selection

BIFROST-9972
Data Browser: UI window default size

BIFROST-9997
Data Browser: Unable to view a string

BIFROST-10269
Data Browser: View dictionary of Bifrost object properties

BIFROST-9268
Docs: wedge_cache in-app docs

BIFROST-10431
Fields: square_root field, and direction_and_length should work with vector fields

BIFROST-9425
File IO: Crash in read_OpenVDB

BIFROST-10303
File IO: Crash when sampling a texture that is not found on disk

BIFROST-10320
File IO: Python API to resolve wedge_filename tokens

BIFROST-10278
File IO: Resolve string token in file paths

BIFROST-10003
File IO: Resolve scene_info string tokens in file paths

BIFROST-10004
File IO: trailing slash on scene_directory token

BIFROST-10335
File IO: wedge_cache compound

BIFROST-10236
File IO: wedge_filename default job port value

BIFROST-10294
File IO: wedge_filename node with job port

BIFROST-10120
File IO: write_state related crash in computeRuntimeHash

BIFROST-10304
Geometry API: Add Extract support to Geometry API

BIFROST-8407
Geometry API: Modernize geometry string constants

BIFROST-9255
Geometry API: Modernize geometry string constants - extern Amino::String const to extern Amino::StringView const

BIFROST-10043
Geometry API: Modernize geometry string constants - APIs with StringView

BIFROST-10042
Geometry: Add overload for single value option to interpret_auto_port_as_

BIFROST-9767
Geometry: Add tag_by_threshold node

BIFROST-9169
Geometry: Expose update_point_strand_index

BIFROST-9445
Geometry: Fix UV directions on create_mesh_cylinder

BIFROST-10467
Geometry: Make invalid_index not internal

BIFROST-9551
Geometry: Performance regression in remove_mesh_slivers

BIFROST-9932
Geometry: Update docs and remove certain auto ports on compounds

BIFROST-10142
Geometry: match_property_expression should reject all inputs when given only negation expressions

BIFROST-10032
Geometry: set_geo_property logs a runtime error if target is missing

BIFROST-10315
Geometry: sqrt3_subdivide_mesh adaptivity with a near-zero values causes a freeze

BIFROST-10178
Graph Interaction: Hide disconnected job ports and restore values on recreation

BIFROST-10339
Hydra: Warning message: Hydra Unable to create attribute datasource for type int64

BIFROST-10036
Interaction: Backslashes are removed in wedge_filename automatically

BIFROST-10423
Interaction: Breadcrumb right click menu is missing

BIFROST-10297
Interaction: Changing rotation order to array<Math::rotation_order> crashes if it is connected to the top level

BIFROST-10514
Interaction: Crash after undo/redo-ing creation of non-time job ports.

BIFROST-10493
Interaction: Crash when undoing delete in template_module

BIFROST-10000
Interaction: Creating a value node from a fan-in port inside a struct does not work

BIFROST-9586
Interaction: Creating and deleting wedging nodes/job ports crashes

BIFROST-10261
Interaction: Jit compile error connecting write_state to a USD node

BIFROST-10274
Interaction: Message logging from BIFROST_LOG_RUNTIME_MESSAGES doesn't flush

BIFROST-5641
Interaction: Zoom functionality is compromised on Mac and Linux

zoom wheel will work if user has one.

BIFROST-10525
Interface: Click on node library namespace crash

BIFROST-10109
Interface: Docking/Undocking graph UI enables Node library (Maya 2025.1 only)

BIFROST-9756
Interface: Double result when searching for a node in Node Library

BIFROST-10286
Interface: Editable job port data

BIFROST-9964
Interface: Favorites list sorted into namespace after searching in node library

BIFROST-10112
Interface: Node Library and tab menu search supports spaces

BIFROST-9928
Interface: Node Library automatic refresh

BIFROST-9197
Interface: Node Library bad characters in Info when maya UI is set to Chinese language

BIFROST-10432
Interface: Node Library can create a node in the graph

BIFROST-9198
Interface: Node Library compounds not showing an icon

BIFROST-10195
Interface: Node Library favorites

BIFROST-9202
Interface: Node Library multi select drag and drop

BIFROST-9199
Interface: Node Library node info

BIFROST-9203
Interface: Node Library search can break after typing in bad search string

BIFROST-9947
Interface: Node Library wrong library name for user compound right after publish

BIFROST-9763
Interface: Output port connection from auto-looped value nodes are invisible

BIFROST-10306
Interface: Simulation > Liquids > Internal are exposed

BIFROST-10039
Interface: User Preferences and Library Favorites are not saving on exit

BIFROST-10149
Job Port: scene_info and write_state nodes should not be editable in Maya UI

BIFROST-10273
Liquids: Points to level set must have optional volume input which can define topology

BIFROST-9809
Liquids: points_to_liquid_surface properties not passed on with surface refinement

BIFROST-10413
Maya Plug-In : Failed to create Maya attribute error returned when opening scene file

BIFROST-10325
Maya Plug-In: Never delete maya attributes related to Job port

BIFROST-10185
Maya Plug-In: Unable to convert shape node to board node

BIFROST-9666
Maya Plug-in: Connections to nested attributes on bifrostGraphShape broken after reopening a scene

BIFROST-10359
Maya Plug-in: Crash on exit after deleting bifrost node from Outliner

BIFROST-10017
Maya Plug-in: Crash when deleting the output attribute of a bifrost graph from the Attribute Editor

BIFROST-8672
Maya Plug-in: Deleting job ports from the extra attributes on bifrostGraphShapes crashes

BIFROST-10333
Maya Plug-in: Double graph execution occurring when pausing then resuming a graph

BIFROST-9792
Maya Plug-in: Freeze when using multiple instances of a compound

BIFROST-9757
Maya Plug-in: Persistent job port values of wedging

BIFROST-10241
Maya Plug-in: Promotion of string ports to Maya should preserve the value

BIFROST-9943
Missing Overloads: Increment, decrement, half_of should work for matrices

BIFROST-9400
NanoVTT: Unable to render voxel_fuel_butane as density channel

Insert a set_viewport_settings node and switch to legacy rendering mode.

BIFROST-10317
Node Library: Add Math::double3 overload to normal_and_tangent_to_orientation

BIFROST-10091
Node Library: Expose epsilon on equivalent_float_epsilon and equivalent_float_ULP

BIFROST-10090
Node Library: Wedge group icon

BIFROST-10122
Node Library: string_to_int and string_to_float should return a boolean to indicate success

BIFROST-10018
Node Library: wedge_parameter clamped values and wedge_index signed integers

BIFROST-10147
Node Library: write_state

BIFROST-9072
Publishing: Bifrost browser requires manual refresh after publishing a graph

BIFROST-9264
Rendering: point_scope numeric mode not working

BIFROST-10088
Rigging: Address feedback on rigging modules

BIFROST-9606
Rigging: AimMode enum "Align" was misspelled

BIFROST-10082
Rigging: Anchors selection returns incorrect parents

BIFROST-9990
Rigging: Crash when updating a transform out of bounds

BIFROST-10485
Rigging: Evolve arm_module into limb_module

BIFROST-10191
Rigging: Extend anchors to controls

BIFROST-10192
Rigging: IK FK solver bone scaling is not working as expected

BIFROST-10205
Rigging: IK FK solver unstable twist

BIFROST-10092
Rigging: Improve joint visualization by skeleton_scope

BIFROST-9496
Rigging: Missing joint in arm_module

BIFROST-9495
Rigging: Module name prefix formatting

BIFROST-10044
Rigging: Node documentation

BIFROST-9389
Rigging: Nothing in VP when importing usd_skeleton_animation example from Browser

BIFROST-10016
Rigging: Rename maya_skeleton_to_bifrost_skeleton graph to skeleton_to_strands

BIFROST-10022
Rigging: Standardize skeleton diagnostics

BIFROST-10226
Rigging: aim_matrix "Align" mode should have clear instructions

BIFROST-10204
Rigging: aim_matrix "None" mode is not working as expected

BIFROST-10080
Rigging: skeleton_to_points and points_to_skeleton nodes

BIFROST-10019
Rigging: strands_to_skeleton computes orientations from basis

Use _ strands_basis_to_orientation _ prior to converting to skeleton

BIFROST-10225
Rigging: strands_to_skeleton node

BIFROST-9457
SDK: GCC: Two ways to convert String to StringView

BIFROST-10224
SDK: Remove C++14 support (Executor and Geometry SDK)

BIFROST-10148
Terminals: 2D object arrays make terminal flags disappear

BIFROST-9560
Terminals: Flags are explicitly set on copy, paste if and only if they were explicitly set on copied node.

BIFROST-9839
Terminals: Flags on compound not updated correctly when nested terminals are added

BIFROST-9840
Texture Maps: Add icon for image nodes

BIFROST-10237
Texture Maps: Add png to file types list for read_image.

BIFROST-10476
Texture Maps: EXR format loads the first layer that was sorted by OIIO causing read issue in bifrost

BIFROST-10498
Texture Maps: Texture lookup operator

BIFROST-10141
Texture Maps: Update OpenColorIO to 2.3.0

BIFROST-10277
Texture maps: Color management

BIFROST-10254
USD: Add support for Maya USD typeName attribute

BIFROST-10105
USD: Edit PointInstancer nodes

BIFROST-10356
USD: In App Doc for the new PointInstancer nodes

BIFROST-10492
USD: New icons

BIFROST-10104
USD: One click workflow to create variants from Maya selection

BIFROST-10272
USD: Operator to get the attribute connections

BIFROST-10457
VNN: vnnNode command crash when using a . in a string flag parameter

refrain from using . in a string parameter

BIFROST-9924
Volume: Artifacts with Gaussian smoothing of adaptive level set

Use the same detail size on all mesh to volume conversions and turn adaptivity off.

BIFROST-10152
Volume: Converting shell in solid mode with optimized adaptivity has holes and artifacts in the surface

Set max relative error to zero.

BIFROST-9422
Volume: Crash running offset levelset in a solver with grid topo on

Turn grid retopology off

BIFROST-10137
Volume: Rebuild level set artifact with thickening 0

- Add a thickening of 1, or

- Turn optimized adaptivity off

BIFROST-9314
Volume: Resize level set creates artifacts along sharp level set edges

BIFROST-10298
Volume: Surface nets in volume_to_mesh

BIFROST-10151
Volume: volume_to_mesh additional algorithm

BIFROST-9833
Volume: volume_to_mesh artifact with adaptive level set cubes

BIFROST-9680
Volumes: Regression in offset_level_set

BIFROST-9949
Watchpoint: ESC Termination and watchpoint instabilities (Mac and Linux)

BIFROST-10472
Watchpoints: Crash on New scene after exploding a compound with a Watchpoint

BIFROST-10028
Watchpoints: Data Browser does not close when its associated Watchpoint is removed

BIFROST-9831
Watchpoints: Don't load with the anchor in the right place

BIFROST-9366
Watchpoints: GeoLocation array is not working

BIFROST-9993
Watchpoints: Remove the Export Data greyed entry in the watchpoint.

BIFROST-9629
Watchpoints: Visual glitch and recompilation diving into graph

BIFROST-8441

Was this information helpful?