Managing Large Networks

This manual often illustrates a particular topic with a very simplified node network, but in actual production, of course, your networks are likely to get very large and complex. This chapter is intended to highlight a number of shortcuts and other features that can make the job of building and changing a large network faster and easier.

Tip:
You may also want to refer to chapter 4, "Key Concepts ," which covers memory usage in Chalice and facility-wide sharing of Chalice node data.
Shortcuts
Finding Nodes Fast
Grouping Nodes
Creating Custom Networks

Shortcuts

This section highlights some of the ways you can set up your file initially to save steps later, as well as a number of shortcuts for getting around in large networks and for adjusting node parameters.

Check Preference Settings

Chalice lets you change default settings for a number of features by using the panels accessed from the Preferences menu (see chapter 11, "Setting Preferences "). Say, for example, that you regularly use the Inspect panel in monitors--you can change the default monitor interface so that the Inspect panel appears automatically, rather than having to request it each time you open a monitor. You can change similar defaults, such as the fps playback rate in flipbooks and the size of new nodes. Another thing that can save a lot of time is to set the default for premultiplication status to match the type of image data you will be using most. This default controls the initial state of all premultiply buttons in nodes such as Mcomp.

If you are using proxy files, check the default monitor resolutions in Proxy Preferences. If you make sure that the default resolutions for Low and Medium monitors in Proxy Preferences match the size of your proxy inputs, you avoid having Chalice scale the proxy input image up or down a little every time you bring up a low or medium monitor.

Add Comments

One of the simplest yet most useful features is the ability to give nodes unique, descriptive names and to add comments to any node. Taking the extra time initially to add comments where appropriate can save you a lot of time in the long run. Comments are especially useful if anyone else may ever have to modify your grail file, or if you have to go back and make changes to a particular shot that you haven't looked at in days or weeks.

The easiest way to access comments is to click and hold the "i" button on the node itself. A popup menu will display any comment along with other information about the current node image, such as resolution, number of channels, and bit depth.

The "i" button can be a real timesaver, as you can go from node to node and get basic information without having to click the title bar for each node to make it active and then click the Info tab in the node panel.

Getting Around in the Workspace

The Chalice workspace can be as large as necessary to accommodate all the nodes in a network, but the portion of the workspace visible at any one time cannot. To get the maximum size visible workspace, you can toggle in and out of "Full Layout" mode using the Alt-f key combination. In Full Layout, the node panel and radar map disappear to make more room to display the network (the menu bars are still visible).

If you need to connect two nodes that are so far apart that both of them cannot be visible in the workspace at the same time, use the scroll bars or radar map to navigate from one node to the other to make the connection. (Dragging in the workspace to move will remove any connector line attached to your cursor.)

Optimizing Node Display

To make more room in the visible workspace you can also make some or all nodes smaller, turn off the icon display in the node, and collapse related nodes into groups (see the section of this chapter on Grouping Nodes ).

You can change the default display of new nodes; however, you can also change any or all nodes already in the workspace whenever necessary, without resorting to the individual node display commands in the local node menu of each node.

To make the same change to multiple nodes, select them and use the appropriate command in the Layout menu. For example, you can select all nodes (using the command in the Edit menu) and choose the "hide icons" command from the Layout menu. Then you can select certain key nodes and use the "show icons" command to turn their icon displays back on. The same holds true for changing the size of nodes; just select a new size from the "change size" submenu in the Layout menu.

Turning off icon display for nodes that don't need it is especially important if you want to specify that node icons auto update (in the Node Preferences panel). This can be a great convenience, but in a large network it can consume too much memory if every node is updated unnecessarily.

Zoom Mode

Even when you have optimized node display, a large network can still extend well beyond the visible workspace. In this case, you can zoom in or out on the network by going into Zoom mode. Use the Alt-z command to toggle in and out of Zoom mode. Once you are in zoom mode, hold down the Alt key and use the middle mouse button to drag up and down in the workspace. This will zoom you in and out. Node display is simplified in Zoom mode, but nodes are still selectable.

Working with Nodes

In addition to holding down the Shift key as you select nodes, which can get tedious, there are shortcuts for selecting multiple nodes: The Edit menu contains a "Select All Nodes" command to select every node. And you can Alt-drag or Control-drag in the workspace to draw a bounding box around a group of nodes to select them. Or you can use the Local Node menu on a node to pick all upstream nodes or all downstream nodes (using the "Pick All Ancestors" and "Pick All Descendents" commands).

Some Chalice nodes accept multiple inputs. For a node with many inputs, you can right-click on each connector individually to find out which node is connected to each input. This popup display will also tell you what the connector is for, as when it is an optional input for a control image.

Node Creation

You don't need to go to the node menu bar every time you want to create a node. Middle-click and hold the input or output connector of a node to see a popup menu of all compatible nodes in alphabetical order. When you select one, you will see that a connector line has been created from the node that ends in a white box outline. Click in the workspace and this box turns into the type of node you selected from the menu, and it is already connected to the node it was created from.

You can also replace a node in one step: Middle-click the local node menu button of the node you want to replace. The same node selection menu will appear as when you middle-click a node connector. In this case, however, when you choose a node type from the menu it will replace the current node.

In large networks with dozens of input elements, you often perform the same set of operations on multiple images. To shorten this process, don't recreate the same nodes over and over. You can copy or clone an existing node or group of nodes. Or you can add a group of nodes to the Custom menu, from which you can access them whenever you need to without having to find the original nodes and clone them.

The same principle applies to individual node parameter settings. You can create presets for any node type to quickly access a specific set of parameter settings.

Working with Node Data

Monitors

Be sure to familiarize yourself with all of the options available in Chalice monitors (see chapter 8, "Monitors and Flipbooks "). For example, you can navigate from frame to frame in a monitor using arrow keys, rather than clicking a button on the Frame Controller. If you need to navigate directly from key frame to key frame, by the way, you can use the arrow buttons on the Key Framer device in the node panel.

You can use the middle mouse button to drag the image around in the monitor. If so, you can also use the handy F9 hot key to snap the image back to center.

If you are using a work monitor, be sure to check the node documentation for shortcuts specific to that node. For instance, you use the arrow keys with modifier keys to change translation, rotation, and scaling values in small increments in the Transform work monitor.

We also recommend that you learn to use the image buffers to your advantage (they are also described in chapter 8). You can use options such as Buffer Persistence and the ability to bind a buffer to a node to save a lot of time waiting for re-cookss.

Parameters

As described in "Using Data Entry Fields " in chapter 6, there are a several shortcuts to changing parameter values in fields. You can middle-click in any field to use the ladder bar shortcut for data entry. And the associated gang control lets you use ladder bar to set multiple field values simultaneously.

Also, whenever you see the Cascade button (downward-pointing arrow) next to a column of parameter fields, you only have to enter a value in the top field and the Cascade button will copy it to the other fields in the list.

You can use the Resolution popup menu wherever it is associated with a pair of fields to select a resolution from the menu list rather than keying in numbers every time.

If you are going to be animating a lot of parameters, we recommend that you take the time to review chapter 9, "Space-Time Editor (STED) "; it has helpful shortcuts that aren't obvious otherwise.

A final tip for setting parameters in large networks is to use the data channel functions whenever appropriate--rather than entering a specific value for a parameter, you can specify that another node's parameter value be used. Then you can adjust the one node parameter and all the others will use the new value. These functions are explained in appendix B, "Chalice Expression Language ." You don't have to be a computer programmer to figure out how to use many basic expressions.

Finding Nodes Fast

A grail file for a complex network can get very large. In most cases, the fastest way to find a particular node is to use the node search function, which enables you to search for nodes by name using literal strings or cshell regular expressions.

If you are looking for a node whose image is cooked into an image buffer, or you want to find nodes in a specific branch of a network, however, try these shortcuts:

Image Buffer "Find This Node" Command

Often, you want to find a node that has its image data stored in one of the nine Chalice image buffers. Each image buffer is represented by a button in a strip that is located just below the Frame Controller on the main interface.

Right click and hold any of the buffer buttons to display the buffer popup menu:

  • If no data has been cooked into the buffer, the menu will read simply "Unattached."
  • If the buffer does contain image data, however, the popup menu will display the name of the node, along with other basic information.

The item in the popup menu that shows the name of the node, also says "Find this node." If you select this item from the menu, the node will be selected and the workspace view will be adjusted to show the node, if it was outside the visible area.

Local Node Menu "Pick All" Commands

In a large network you will often have dozens of Disk Input nodes, each starting a separate network of operations that only meet downstream at a composite node. In this case, you often find that you need to go to the specific Disk Input that is feeding a filter node, or that you want to quickly identify the operators connected to a particular Disk Input.

You can use the "Pick All Ancestors" command on the local node menu of the filter node to highlight all upstream nodes. This trail of nodes will also highlight in the Radar Map, making it easy to find and select the Disk Input.

Conversely, you can use the "Pick All Descendents" command at a Disk Input node to highlight all nodes connected to it downstream.

Tip:
Using the Pick All Descendents command at each Disk Input node in turn is a good way to get an overview of the dataflow when you need to familiarize yourself with someone else's grail file.

Performing Node Searches

The Search Nodes command is accessed from the Chalice Edit menu. It opens a panel from which you perform the search.

Find

To find a node, type the name of the node in the text entry field of the Search panel, and then click the Find button. All nodes that match the search criteria will be highlighted (both in the workspace and in the radar map).

Find Next

You can click the Find Next button to highlight each match in turn. If any of the found nodes are beyond the visible workspace, the Find Next command will bring them to the center of the workspace.

Note:
The Search Nodes command works at the current workspace level only. It will not find a node that matches the search criteria if the node is inside of a Group node. To search within a Group node, push into it first and then perform the search.

Using Metacharacters

If you do not remember the exact name of the node, or if you want to find a group of similarly named nodes, you can type wildcard characters (metacharacters) in the search string:

* matches any string of characters, including none
? matches any single character
[ ] matches any single character you type within the brackets

For example, typing:

image?_scaled would find nodes named image1_scaled, image2_scaled, etc.
image* would find all node names starting with the word image: image, image1_scaled, image_cropped, etc.
*image would find all node names ending with the word image: scaled_image, cropped_image, etc.
*[1] would find all node names ending in the number 1: image1, image101, cropped_image1, etc.

Grouping Nodes

Chalice provides the ability to group multiple nodes into an organizational unit, which is known as a group node. The main function of Group nodes is to simplify large, complex dataflows, making them more manageable and easier to debug.

Often, a similar series of operations must be carried out on multiple image elements. One way to simplify this task is to group together the nodes that perform the operations and clone them for each element.

Creating a Group

Unlike other node types, Group nodes are not created by choosing one from a Node menu. Rather, you define and create a Group node by selecting one or more nodes in the workspace and choosing the Group command (Alt g) from the Group menu.

The group node appears as another node in the workspace, however group nodes never display a frame icon (just as you cannot bring up a monitor from a group node), as they are simply containers for other nodes and do not process data in and of themselves.

All existing input and output connections to and from individual nodes are retained when the nodes are grouped, including any connections to external nodes (that is, nodes outside the group).

Push In

To view the contents of a Group node, select the Push In command (Alt +) from the Group menu. The Chalice workspace changes to display the nodes (the children) within the Group node (the parent):

Pull Out

Select the Pull Out command (Alt -) to view the next higher level--the level that contains the Group node you pushed into.

Ungroup

To ungroup a Group node, select it and choose the Ungroup command (Alt G) from the Group menu. This will eliminate the Group node, placing the nodes it contained back in the current workspace.

Note:
Ungrouping a Group node does not delete its contents. To delete a Group node, along with the nodes it contains, select the Group node and use the Delete Node(s) command in the Edit menu, or press the Del key.

Working with Group Nodes

Key points to remember when working with Group nodes include the following:

  • New nodes can be created within a Group node, and nodes can be deleted from a Group node.
  • Nodes within a Group node can be connected to each other as well as to external nodes.
  • Group nodes can be nested; that is, new Group nodes can be created within existing Group nodes.
  • Group nodes can be copied, pasted, cloned, deleted, added to the Custom menu, and otherwise treated like other nodes.

Level Indicator

The Chalice workspace displays one level at a time. The current level is indicated on the Main Menu bar:

The "top" level (the level you are in when you open a grail file) is always "/chalice/chalice1." If you create a Group node named "matte_fix" at this level and push into it, the Level Indicator will read "/chalice/chalice1/matte_fix":

Node Names

Group nodes are named just like other node types. By default, Chalice names the first Group node you create "group1" (the second would be named "group2" and so on).

Chalice requires that every node in the workspace have a unique name. More precisely, this means every node at the current level. Therefore, Chalice will allow a node named "color1" at the level of "/chalice/chalice1" and at the level "/chalice/chalice1/group1." However, if you cut or copy the "color1" node from the group1 level and paste it in the top level, Chalice will rename the node to a unique name ("color2," for example).

Exporting Connections

When you create a connection to an external node from the input or output of a child, you are "exporting" the connection. When a new Group node is created, Chalice automatically exports any connections from nodes being grouped to nodes outside the group.

Each input connector that has been exported from a child is represented by a corresponding input connector on the Group node itself. And each output connector exported from a child is represented by a corresponding output connector on the Group node. This example shows a group node with no input connections and four output connectors:

You can then use the connectors on the Group node as if they were the source connectors on the children inside the Group node: you can connect them, disconnect them, and reconnect them to different external nodes.

To export a connection, Alt-click the left mouse button on the input or output connector of a child node. Chalice creates an export flag, which is a short connecting line with a square at the end. The square indicates that the connection has been exported, but not yet connected to an external node.

If you pull out, you will see that the Group node now has a corresponding connector, which works like any other node connector.

Once you connect the input or output to a node, push back into the Group node and you will see that the corresponding export flag is now an arrow (instead of a square). This indicates that the connection has been exported and is connected to an external node.

Note:
To "un-export" a connection, Alt-click the connector again. Chalice will remove the exported connection from the node.

Connector Info

You can use the right mouse button to click any input connector of a Group node to find out which child it leads to.

You can use the right mouse button to click the input connectors of child nodes to display connection information. This allows you to determine what external nodes a child is connected to without pulling out of a Group node.

Info Button

Click the Info button on a Group node for the following:

  • Full Name displays the full pathname of the Group node, for example, "/chalice/chalice1/group1."
  • Inputs displays the total number of connections available to node inputs within the Group node.
  • Outputs displays the total number of connections available from node outputs within the Group node.
  • Children displays the number of nodes that compose the Group node.
  • Comments displays any text that may have been entered in the Comment field of the Info Tab.

Group Node Panel

When a Group node is selected in the workspace, a corresponding group node panel appears. This panel provides Inputs and Outputs parameter tabs, which list any or all imported or exported connections. (A Group node can have no inputs and/or outputs or multiple inputs and/or outputs.)

Inputs Tab

Chalice creates an entry in the Inputs Tab for every connection into the Group node. Each entry lists the name of the child node to which the connection leads and the number of the child node input being referenced.

Each entry also includes an Up Arrow button and a Comment field for that input:

  • Use the Up Arrow buttons to change the order of the inputs on the Group node.
  • Type any text you wish into the Comment field. The comment will be displayed, along with other connection information, when you use the right mouse button to click the corresponding connector on the Group node.

Outputs Tab

Chalice creates an entry in the Outputs Tab for every connection out of the Group node. Each entry lists the name of the child node from which the connection leads and the number of the node output being referenced.

Like the Inputs Tab described above, the Outputs Tab includes an Up Arrow button and a Comment field for every output connection.

Info Tab

The Info tab of a Group node contains a Comment field only. You can use the Comment field to enter any information you wish about the Group node. This information will be displayed whenever you click the Info button on the Group node itself.

Creating Custom Networks

In addition to the other menu categories, the Chalice Node Menu includes an additional pulldown menu: Custom. The other pulldown menus contain predefined lists of nodes, grouped by related functionality. The content of the Custom networks menu, however, is user-defined.

You add nodes, or entire node networks, to the Custom menu based on your needs. Take, for example, a situation in which you regularly use the same network of nodes to perform a common operation. You can select all of these nodes and add them to the menu as a single item. When you access this item from the menu, Chalice places the entire node network into the workspace, with all connections and parameter settings intact.

You use the Custom Networks panel to add items to or remove items from the Custom menu. This panel is accessed by selecting the "Edit Custom Networks..." item from the Chalice Edit menu.

Chalice saves any custom networks you create to the directory path specified by the CHALICE_CUSTOM_PATH environment variable.

The default location is /usr/grail/chalice2.0/support/custom. (On NT systems, replace "/usr/grail" with "C:\Program Files" or the equivalent on your workstation.)

Adding Custom Networks to the Menu

You can add any node or group of nodes in the currently open grail file to the Custom menu. You can also add an entire grail file.

To add all currently selected nodes to the menu, follow these steps:

  1. Select the node or group of nodes you wish to add to the menu.
  2. Select the "Edit Custom Networks..." menu item from the Edit menu.

  3. Chalice will display the Custom Networks window.
  4. Press the Install Selected button.

  5. Chalice will display the "Enter Name" panel.
  6. Key in a name for the custom network and press the Accept button.

  7. Be sure to follow standard UNIX naming conventions--see step 3 of "Saving a New File " in chapter 5 if you need more information.

    Once you press the Accept button, Chalice closes the "Enter Name" panel and adds the new item to the list in the Custom Networks window.
  8. Click the Close button in the Custom Networks window.

  9. Chalice closes the window and the new custom network is now installed in the Custom menu.

To add the contents of a different grail file to the Custom menu, follow these steps:

  1. Select the "Edit Custom Networks..." menu item from the Edit menu.

  2. Chalice will display the Custom Networks window.
  3. Press the Install File button.

  4. Chalice will display the "Install Custom Grail File" dialog box. This is a standard Chalice file dialog.
  5. Double-click on the name of the file you wish to designate as a Custom menu item, navigating the directory structure as necessary to locate the file.

  6. If you need more information about using the navigation tools in this dialog, see step 2 of "Opening an Existing File " in chapter 5.

    Chalice closes the "Install Custom Grail File" dialog box and adds the new item to the list in the Custom Networks window.
  7. Click the Close button in the Custom Networks window.

  8. Chalice closes the window and the new custom network is now installed in the Custom menu.

Removing Custom Networks from the Menu

You can delete items from the Custom menu at any time by using the Custom Networks panel that is accessed from the Chalice Edit menu.

Simply press the red "X" next to any item in the list and Chalice will remove it from the list, and from the Custom menu.

Note:
If an item you remove from the menu was created from an existing grail file, the original file will not be deleted, only the copy stored with the other items in the Custom menu.

Custom Networks Shipped with Chalice

Chalice ships with a number of custom networks, including annotated grail files that containing example networks of composite operations and other tasks. Each features a different configuration and provides explanatory notes that can be accessed by clicking and holding the Info buttons on the nodes.




Table of Contents | Index



Copyright 1996-1999 by Silicon Grail Corporation