Add a node

You can add a node to a Bifrost graph using either the Tab menu or the Node Library.

Using the Tab menu

The Tab menu

To add a node using the Tab menu:

  1. Press the Tab key to open the Tab menu.

  2. 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 both get_point_position as well as get_particle_solver_properties and others. You can skip words but they must be in order; for example, scve matches scalar_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 find scale_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.

Node Library

You can:

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.

Tip:

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.

A graph with unknown nodes

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.