Bifrost 2.8.0.0 Release Notes (2024)

Bifrost 2.8.0.0 is a major feature release with new capabilities, performance improvements. It is available for Maya 2022, 2023, and 2024 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

Bifrost 2.8.0.0 Release Notes (1)

Component tags

Bifrost now supports component tags. Component tags are named clusters of subgeometry (points, faces, face vertices, strands, voxels) that can be selected and specified for various operations. They allow you to procedurally "tag" parts of models and manipulate the tagged parts.

Maya's component tags are automatically converted to Bifrost tags by default when geometry is imported, and Bifrost tags are automatically converted to Maya tags when the graph output is converted to Maya geometry.

Tags can be produced by geometry operations and be used to drive further operations. You can also directly author tags with new nodes such as tag_inside_geometry and tag_randomly.

The new nodes that are included for working with tags are:

  • tag_scope for visualizing tagging.
  • tag_randomly for producing tags of random components.
  • tag_inside_geometry for tagging points, faces, etc., inside of other geometries.
  • tag_by_angle_between_vectors for tagging things like upward facing normals.
  • tag_strand_ends for tagging strand's start or end points.

All the nodes have diagnostic visualizations to show what is tagged. They also all produces weights (for example, the weights produced by tag_inside_geometry are based on the distance to the surface) that are controlled by an fcurve and can be used to control further operations. The tag data is a Boolean array that can also be used as weights.

A browser graph called flowers shows creating flowers and strands using tag data at each step.

New rubber material and MPM improvements

The new source_mpm_rubber node is ideal for simulating materials such as rubber and other purely elastic materials. It works with the existing MPM framework and can be used in the same way as source_mpm_snow and other materials.

While it is possible to get similar results using gel with an extremely high yield stress, the dedicated rubber material is easier to use and has better performance. It is also more realistic under large deformations compared to gel.

In addition, the make_mpm_cloth node now includes a port to control rest_length_scale to create inflation or deflation effects. You can vary the value over time for inflation or deflation that needs to happen over several frames to maintain simulation stability, or simply for art directon. Interesting results can be obtained using a noise field with an fcurve to vary the intensity over time.

The mpm_solver_settings node also has a new option to prioritize speed versus accuracy for collisions: collide_particles. This option (on by default) determines whether to collide the particles themselves as an additional collision phase. When turned off, collisions are still performed but they use the volume representation and bounciness and roughness have no effect. Certain types of effects may see worthwhile performance gains without introducing artifacts, especially large-scale effects like an avalanche where exact particle accuracy is not necessary.

UI logic

You can now enable, disable, hide, and show parameters and groups based on the other settings in the Parameter Editor. For example, you can hide a color widget if the associated display option is toggled off. This UI logic has been added to many existing compounds to reduce clutter, and you can also use it in your own compounds.

Bifrost 2.8.0.0 Release Notes (2)

To add this logic when editing a compound's UI, select the parameter or group to be affected and click Add Conditional Display Rule in the Customize UI editor. The conditions that are available depend on the type of the controlling parameter (Boolean, integer, float, string, or auto). This creates a special group, and you can drag more parameters into it to control them by the same rule as well as drag the group itself. You can also nest these groups inside each other.

Formatted sticky notes

You can now format sticky notes using Markdown syntax. Click the Markdown button to activate formatting, then enter Markdown syntax manually or use the menu (right-click or click ... in the upper-right corner).

Bifrost 2.8.0.0 Release Notes (3).

Shift on connect

The new Options > Shift on Connect setting moves upstream nodes when adding a node onto an existing connection. This applies when you select a connection and then press Tab for a new node, as well as when you Alt+drag an existing node onto a connection. It also applies when exploding compounds (making room for the newly visible nodes), and respects backdrops and nearby sticky notes.

Better smoothing

The new smooth_level_set_property node provides smoothing on level-set volume surfaces. In addition to the Gaussian, Mean, and Median modes already available for smooth_voxel_property, it supports two new modes: Laplacian and MeanCurvature. These algorithms smooth the surface while preserving surface details. They are similar to OpenVDB's levelSetFilter smoothing modes, and work on the spatially adaptive level sets in Bifrost.

Additionally, both smooth_voxel_property and smooth_level_set_property support an input mask to control where smoothing is applied. The mask can be either a field or on existing property on the volume, and you can choose to interpret it either as a level set or fog value.

Delete strand points

The delete_points compound has been updated to support strands. Internally, it uses the new delete_strands_points node which is also available as a building block for your own compounds.

Get geo component indices

The new get_geo_component_indices nodes returns the array of indices for the specified component type from an input geometry. It is a convenient building block for procedural geometry. For example, you can use it with an auto-looping port and avoid the need for a for-each loop.

Exposing ports to Maya

When exposing a port to Maya, it now keeps its value in the same way as exposing a port in a compound. This makes workflows between Maya and Bifrost smoother.

Rebel Pack nodes

Another batch of Rebel Pack nodes has been modernized and added to Bifrost. These include:

  • remap_fog_density, formerly extract_volume_density
  • create_particle_trails
  • points_array_to_strand_trails
  • memory_cache
  • memory_frame_cache
  • randomize_direction, formerly randomize_vector_in_cone
  • randomize_direction_array
  • create_mesh_cylinder
  • sample_points_by_radius

New graphs

The following new graphs are available in the Bifrost browser:

  • Fire: pyroclastic_explosion
  • Rubber: rubber_helix
  • Sand: sand_grain_instances
  • Volumes: ragged_cloud

Other new nodes

  • log_message
  • update_face_centers
  • disconnect_mesh_faces
  • set_layer_permission

Arnold and USD Compatibility Information

Bifrost 2.8.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 4.0.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

The new features of this release bring with them a few changes that break backward compatibility with previous versions of Bifrost. You may need to modify graphs or republish compounds in some older scenes to obtain the same results as before.

Changes in Detail

What's Fixed in Bifrost 2.8.0.0
Add namespace Bifrost to geometry types that do not have it BIFROST-8470
Aero: Boost detail with points kills combustion BIFROST-2823
Aero: Improve Aero and combustion simulation UI with the new UI logic BIFROST-8805
Aero: Store blue flame and refinement causes crash BIFROST-8622
Alembic: Change default interpolation mode to Linear BIFROST-8722
Arnold-Bifrost: Blocky black voxel artifacts in volume render BIFROST-8872
Arnold-Bifrost: Exporting Bifrost to .ASS will crash Maya
Install MtoA 5.3.4.1 to obtain this fix.
BIFROST-9007
Arnold-Bifrost: Exports of graphs into USD files with Arnold-USD don't work when kicking those USD files BIFROST-7914
Arnold-Bifrost: In graph Arnold volume material issue with dual scattering BIFROST-8683
Arnold-Bifrost: Points disc rendering method has reversed normals BIFROST-8623
Arnold-Bifrost: Strands don't render properly when some strands have only 1 point BIFROST-7568
Arnold-Bifrost: Update Arnold-Bifrost test suite BIFROST-7063
Assigning aiStandardVolume in the graph crashes BIFROST-8964
Bifcmd: Complains about JSON files with only one top-level compound BIFROST-8664
Browser Graphs: Aero pyroclastic combustion example BIFROST-8316
Browser Graphs: MPM Shell remove checker options from compound BIFROST-8222
Browser Graphs: MPM rubber material BIFROST-8887
Browser Graphs: MPM sand production workflow BIFROST-8322
Browser Graphs: Remove USD nodes from sandGrainInstances browser Maya file. BIFROST-9190
Browser Graphs: Update snow_activation example BIFROST-7993
Browser Graphs: Update the procedural cloud example to "ragged cloud" BIFROST-7363
Compiler: Ability to know discovered job ports when running graph resolver BIFROST-5605
Compiler: Adding a member at the top of a struct cause compound to crash upon creation BIFROST-8967
Fan-In: Crash or corrupted connections on "auto" array ports BIFROST-8839
File IO: Add error messages to logs when input/output nodes fail BIFROST-8908
File IO: Prevent Alembic crash by checking for valid geometry properties BIFROST-8673
Fluids: Ship legacy fluids with compressed json and don't check for URI BIFROST-8509
Geometry > Tags > internal are exposed BIFROST-9298
Geometry: Add catmull-rom interpolation to resample_strands BIFROST-8299
Geometry: Create a collection of tag and weight nodes BIFROST-8699
Geometry: Implement delete_strand_points BIFROST-7903
Geometry: Incorrect output from tag_by_angle_between_vectors with unnormalized vectors. BIFROST-9119
Geometry: Port group on location_scope should not use snake_case style BIFROST-8655
Geometry: Rename tag_by_angle_between_vectors.angle_threshold to .max_angle BIFROST-9167
Geometry: Rename tag_strands_by_end_points BIFROST-9104
Geometry: Spacing in the extruded faces are not even when curves are used BIFROST-8239
Geometry: detach_faces not transferring non-indexed face_vertex properties properly BIFROST-8431
Geometry: extrude_faces fails to on some faces that share 1 vertex BIFROST-8451
Geometry: get_geo_component_indices BIFROST-8906
Geometry: resample_strands should pass-through degenerate strands BIFROST-8540
Geometry: using extrude_faces to "thicken" an open mesh. BIFROST-8537
Graph Editor: View framing doesn't persist in local or referenced compounds BIFROST-4157
Graph Execution: Unused job ports are not always cleared BIFROST-5546
Interaction: "create value node" creates nodes in odd far-away positions, and connected wrong if a connection is selected BIFROST-4156
Interaction: Clicking a port grouping title on a node will automatically expand group BIFROST-8865
Interaction: Crash after localizing compound and clicking on the breadcrumb trail BIFROST-8971
Interaction: Crash replacing nodes then navigating BIFROST-8847
Interaction: Crash using "Move To" to move ports BIFROST-9058
Interaction: Crash when selecting a prim and Graph Material from Selection from edit menu
Can graph Material or Prim from outliner or VP instead
BIFROST-8653
Interaction: Fan-in port does not connect when dragging node with option/alt key pressed BIFROST-8473
Interaction: Inline fcurve flyout does not go away properly BIFROST-9019
Interaction: Overloaded compounds switching causes the compound to disappear BIFROST-9142
Interaction: Reconnecting a wire from a Fan-In from one node to another doesn't successfully connect BIFROST-8588
Interaction: UI must release its references on graph before we delete the graph/container BIFROST-7389
Interaction: Undoing a deleted connection with a watchpoint to a fan-in port crashes BIFROST-9150
Interface: Color picker works poorly with dual monitors BIFROST-8721
Interface: Connect nodes on creation checkbox is broken BIFROST-9069
Interface: Custom Icons not loading on Properties/Info Panel BIFROST-8957
Layout: Bad node placement on connection line with auto-shift layout graph mechansim BIFROST-8915
Layout: Explode compound and make room BIFROST-8762
Layout: Extreme jump and left behind node when inserting a node on a connection line with nested backdrops BIFROST-8916
Layout: Insert node and make room BIFROST-8761
Layout: Shift on connect issue causing downstream nodes to select and move BIFROST-9118
Layout: Shift on connect menu option BIFROST-8976
Layout: Shift on connect new node is visible in parameter editor BIFROST-9024
Liquids: meshing graph crashes with empty input BIFROST-8998
Loading: Crash when creating a value node with a struct when struct contains only values of the same type BIFROST-8586
MPM: Ability to use an SDF as a source BIFROST-8689
MPM: Add mpm_gel and mpm_shell to the quick create menu on simulate_mpm BIFROST-8823
MPM: Add profiler output for the solver BIFROST-8544
MPM: Cloth crumpling and buckling with rest length scaling BIFROST-8954
MPM: Cloth rest_length_scale doesn't have an effect if points at are zero height BIFROST-8953
MPM: Cloth tolerate changing topology as a source BIFROST-8690
MPM: Collision sample J clamping BIFROST-8881
MPM: Document solver settings style and render_velocity BIFROST-8885
MPM: Improve simulation UI with the new UI logic BIFROST-8806
MPM: Move plastic_deformation browser example from Cloth to Shell category BIFROST-8271
MPM: Optional point collisions BIFROST-8543
MPM: Restore Original Defaults BIFROST-9256
MPM: Rubber material BIFROST-8687
MPM: Simulation fails to generate granular particles from a cloth mesh BIFROST-9149
MPM: Source_particle_rotations should work with MPM system BIFROST-8763
MPM: Torn fiber pieces are still connected in the simulation and crash on rewind BIFROST-8796
MPM: Unstable points should show in diagnostic BIFROST-8860
MPM: Update basic graphs to include materials on the simulation node BIFROST-8449
MPM: User defined rest length scale for cloth BIFROST-8688
MPM: Vary_source_property should be added to rubber right click function BIFROST-8991
MPM: properties that work with vary_source_property should be added to in-App docs BIFROST-8990
Maya Plug-In: Enable Color Set Display Color when creating a Maya mesh with a point_color color set BIFROST-8477
Maya Plug-in: Convert Maya vertex and face selection sets to Bifrost component tags BIFROST-8606
Maya Plug-in: Exposing a port to Maya does not maintain its value BIFROST-8489
Maya Plug-in: Multiple references to bifrostGraphShape with namespace stops Bifrost graph evaluation BIFROST-9025
Maya Plug-in: SetAttr on graph json is corrupting graphs BIFROST-8649
NanoVTT: Artifact when displaying levelset BIFROST-8846
NanoVTT: Artifacts on adaptive level set BIFROST-8518
NanoVTT: Blackbody artifacts from OCIO config BIFROST-8969
NanoVTT: Levelset artifacts in both interactive and non-interactive mode BIFROST-9091
NanoVTT: Smooth level set results in render artifacts BIFROST-8720
NanoVTT: Support cubic interpolation sampling BIFROST-8438
NanoVTT: Support upres conversion BIFROST-8439
NanoVTT: Update browser examples for new volume shader BIFROST-8012
Node Library: Update simulation in-node documentation after parameter reordering BIFROST-9125
Node library: Conversion nodes do not behave correctly if the input is the same type as the output BIFROST-1655
Particles: Add UI logic to improve parameter readability BIFROST-8792
Particles: Passthrough properties on source BIFROST-8739
Rebel Pack: Remap Fog Density BIFROST-8113
Rebel Pack: create_particle_trails BIFROST-7691
Rebel Pack: create_strands_around_strands BIFROST-8007
Rebel Pack: memory cache BIFROST-8108
Rebel Pack: randomize directions & friends BIFROST-7622
Rebel Pack: Dissolve most of the rebel pack BIFROST-7469
Rebel Pack: create_mesh_cylinder BIFROST-8464
Rebel Pack: disconnect_mesh_faces BIFROST-8023
Rebel pack: points_array_to_strand_trails BIFROST-7688
Rebel pack: memory_cache & friends BIFROST-8132
Rebel pack: sample_points_by_radius BIFROST-7617
Regression in viewport performance BIFROST-8963
Rendering: Major performance drop after material assignement BIFROST-8842
SDK: CppParser does not error for nested structure types BIFROST-6473
SDK: Improve error message when user use a non-copy constructible class BIFROST-8709
SDK: More flexible inputs on header parser with "headers_to_parse" env var BIFROST-8711
SDK: Split plugin config file BIFROST-6535
SDK: change signatures of getEnv functions in Bifrost Executor BIFROST-7769
Simulation: Add vary_source_property to quick create menu on simulation nodes BIFROST-8824
Sliders: slider and color picker assignments on simulation operators BIFROST-8602
Sticky Notes: Improve formatting of Markdown code blocks, inline code, single line breaks, margins sizes with text sizes BIFROST-8528
Sticky Notes: Sticky note color can change on file reopen BIFROST-8837
Terminals: Terminal flags by default should be off BIFROST-8612
UI Logic: After renaming a port, the logic expression breaks BIFROST-8753
UI Logic: Conditionally hide or disable fields in the parameter editor BIFROST-7933
UI Logic: For weights and geometry ports, unconnected containers (arrays or objects) are empty and should be "false" BIFROST-8752
UI Logic: Hiding properties doesn't eliminate the spacing to the next UI item entirely BIFROST-9099
UI Logic: If a based on port is inside a group of ports that are to be hidden, do not hide it BIFROST-8827
UI Logic: Published compounds lose expanded/collapsed port states when publishing BIFROST-8942
UI Logic: Remove plus icon; Add support for combo boxes and enum; fit and finish details BIFROST-8728
UI Logic: Show conditional UI on parameters BIFROST-8758
UI Logic: When a parameter is part of a conditional group, the label and input column widths shouldn't be recalculated BIFROST-8770
USD: Add support for half and matrix attribute types BIFROST-8077
USD: Fix deprecation warnings related to amino_cpp2json_foreach BIFROST-9093
USD: Relative reference path option BIFROST-8574
USD: Replace pxr namespace with PXR_NS BIFROST-9103
USD: Replace the iterate by a for_each in define_usd_mesh BIFROST-8788
USD: Update to USD 23.08 BIFROST-9055
USD: Wrong auto-connection to add_to_stage compound BIFROST-9067
USD: set_layer_permission node BIFROST-9008
Viewport: Bifrost shape disappears from viewport after edits to the graph that don't affect the output. BIFROST-8725
Viewport: Graph with empty terminal outputs leaves objects in viewport after "File: New Scene" and can crash BIFROST-8681
Volume: Adaptive level set artifacts with coarsen_voxel_property default values BIFROST-8679
Volume: Bandwidth can cause severe artifacts BIFROST-8542
Volume: Conversion to mesh of adaptive level set creates shading artifacts BIFROST-8978
Volume: Convert-to-volume with minHoleRadius and optimized adaptivity results in indentations in level set surface BIFROST-8519
Volume: Dilate, Smooth, Erode workflow creates jitter on surface BIFROST-8979
Volume: Empty volume from points_to_volume crash BIFROST-8778
Volume: Expose max_relative_error for volume conversions BIFROST-8977
Volume: Field to Volume Viewport Bug BIFROST-9140
Volume: Level set artifacts with mean curvature smoothing when preceded by rebuild_level_set BIFROST-9092
Volume: Level set offset gives wrong result with optimized adaptivity on. BIFROST-8497
Volume: Look changes with older volume scenes
Fog volume output is 0.5 voxels thinner than in previous versions due to treating 0 as outside. To achieve the same result, set the offset to 0.5 voxels (which is 0.5 detail_size).
BIFROST-9241
Volume: Mask input for smooth voxel property nodes BIFROST-8692
Volume: Max relative error should behave similarly on convert_to_volume and read_openVDB BIFROST-9076
Volume: Optimize Points to Volume BIFROST-7135
Volume: Optimize smooth_level_set_property BIFROST-9030
Volume: Points-to-volume adaptivity tile-artifacts with liquid meshing workflow
Turn adaptivity off on the points to volume node
BIFROST-9037
Volume: Rebuild level set creates artifacts for adaptive volumes BIFROST-8579
Volume: Resize_level_set crashes if fog volume is connected to the node BIFROST-8960
Volume: Smooth level set property node BIFROST-8435
Volume: Using sharpen_voxel_property enters infinite loop for liquid meshing workflow BIFROST-9038
Volume: Volume nodes remove shader assignment BIFROST-7987
Volume: field_to_volume changed with irregular levelsets (disable parameter "rebuild_level_set" for old behavior) BIFROST-8984
Watchpoints: Crash when creating a watchpoint on matrix type BIFROST-8790
Watchpoints: data min/max values are displaying random values on empty array BIFROST-8972

Parent page: Bifrost for Maya Release Notes

Bifrost 2.8.0.0 Release Notes (2024)

References

Top Articles
Latest Posts
Article information

Author: Rev. Leonie Wyman

Last Updated:

Views: 6588

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Rev. Leonie Wyman

Birthday: 1993-07-01

Address: Suite 763 6272 Lang Bypass, New Xochitlport, VT 72704-3308

Phone: +22014484519944

Job: Banking Officer

Hobby: Sailing, Gaming, Basketball, Calligraphy, Mycology, Astronomy, Juggling

Introduction: My name is Rev. Leonie Wyman, I am a colorful, tasty, splendid, fair, witty, gorgeous, splendid person who loves writing and wants to share my knowledge and understanding with you.