Add a node
You can add a node to a Bifrost graph using either the Tab menu or the Node Library.
- The Tab menu is a pop-up that you can invoke as you work for an uninterrupted flow.
- The Node Library is a pane that stays open so that you can more easily browse and filter the available nodes.
Using the Tab menu
To add a node using the Tab menu:
Press the Tab key to open the Tab menu.
Do any one of the following:
Start typing to see a list of matching nodes below, then use your pointer to select a node (or use the arrow keys to highlight a node then press Enter). You can type:
- The first consecutive letters of a node's name up to any length.
- Up to seven letters that form a concatenation of the beginnings of words in a node's name. For example, "gepopo" matches
get_point_position
, and "gpp" matches bothget_point_position
as well asget_particle_solver_properties
and others. You can skip words but they must be in order; for example,scve
matchesscalar_to_vector2
and others. - 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 findscale_to_vector3
by typing "s v3".
Browse and select a node from the namespace list on the right using your pointer or the arrow keys.
Select from the list of recently used nodes above.
Using the Node Library
To open the Node Library, choose Windows > Node Library from the Bifrost Grpah Editor's main menu. By default, it opens docked on the left but you can drag its title bar to have it floating or to dock it on the right.
You can:
- Use the namespaces at left to browse the available nodes.
- Add a single node to the graph by double-clicking or dragging it in.
- Ctrl+click to toggle-select multiple nodes and then drag them all into the graph at once.
- Type in the Search box to see the matching nodes. The search is the same as for the Tab menu:
- The first consecutive letters of a node's name up to any length.
- Up to seven letters that form a concatenation of the beginnings of words in a node's name. For example, "gepopo" matches
get_point_position
, and "gpp" matches bothget_point_position
as well asget_particle_solver_properties
and others. You can skip words but they must be in order; for example,scve
matchesscalar_to_vector2
and others. - 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 findscale_to_vector3
by typing "s v3". - The search results are filtered by the namespace selection at left. To see all matching nodes, click All Nodes at the top.
- Hover the pointer over a node and then hover over its 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).
- Click a node's star icon to add or remove it from your favorites.
Copying and pasting nodes
You can also use Ctrl+C and Ctrl+V to copy and paste a selected node or group of nodes. You can even copy and paste nodes between instances of the Graph Editor running in different sessions.
Renaming nodes
After you add a node, you can rename it by double-clicking its name and typing a new one. Only alphanumeric characters and underscores are supported. Unsupported characters are automatically changed to underscores. For compatibility with scripting, names cannot start with a numeral.
Names that reflect the purpose of nodes, rather than their types, can make your graph easier to understand. You can still see the type of a node in the Info Bar when you hover the pointer over a node, or in the Parameter Editor when you select a node. Alternatively, you can press T to display the types of nodes above their names.
You can also set a value display expression for any node by double-clicking its name in the graph as if to rename it, and then entering a string that includes one or more port names inside curly braces, for example {my_port}
. Value display expressions are shown for nodes that have them instead of their names unless Display > Show Node Names is on for those nodes.
Modifying referenced compounds
After adding a referenced compound, you cannot add a node or make other changes inside it. To modify a referenced compound, you must import it locally into the graph first. To do this, go out of the node if you have entered it, then right-click on it and choose Make Editable.
Unknown nodes
When you work with custom compounds, especially with different versions of multiple node libraries, it may turn out that a referenced compound uses unavailable nodes internally. This happens when the JSON files that define the internal compounds cannot be found among the currently available node libraries.
When there is a referenced compound that depends on unavailable nodes, the missing nodes are re-created as "unknown nodes". These appear as dark red nodes in the graph. The graph cannot work as before in this state, because the computations performed by these nodes are unkown.
However, the external connections and input values of the unknown nodes are preserved. This lets you see the graph as it existed before, and gives you a chance to fix or update the graph more easily.
You can copy and paste unknown nodes, as well as modify and save scenes that contain them. You can also explode compounds that contain them, and remove unknown ports using the right-click menu. The graph will work properly once the proper node definitions are available.
Hidden internal nodes
Some nodes are considered "internal" and are unavailable from the Tab menu by default. These are typically low-level helper nodes that are usually not appropriate for high-level use in graphs.
To unhide all nodes so that you can easily add them to graphs, set the environment variable BIFROST_DISABLE
to hide-internal-nodes
.
If you are developing your own compound libraries and want to hide some of your own low-level compounds, you can edit the metadata in their JSON files. To see some examples, search the installed files for "metaName": "internal"
. Both individual node definitions and entire namespaces can be hidden.