Connecting pins allows sending data from one node to another node. While pins that are not connected can be directly edited.
The color of a pin represents its data type. You can find every possible data type in the Pin Data Types documentation.
Input and Output Pin
Input pins are located on the left side of a node and output pins are located on the right side of a node:
An input pin can only have one connection, while an output pin can target multiple input pins:
Peeking shows what information or data is being transferred through a connection or being present in a pin.
To do so, move the mouse cursor over a pin or connection while holding down the CTRL keyboard button:
The red line on the top of a peeker window indicates that the module is not used.
Pin Values panel
When a node is selected, its input pins are visible in the Pin Values panel.
The selected node also has a Name and Type value in the Pinal Values panel.
The name is automatically generated. If you drag and drop a file as a new node, then the node will use the file's name as the name of the node instead of the type of the node.
The name can not be changed to names that are already in use in the compound.
If an input pin has no connection, then the pin can be changed in the Pin Values panel.
If an input pin is connected, then the pin can not be changed in the Pin Values panel. Its value is greyed out.
Modifying Number Values
Number values can be precisely set by dragging the mouse from the pin value's edit field.
In the case of scalar and double values, the default change is 0.01 (1/100).
Pressing down Shift increases it by 10 times, to 0.1.
Pressing down CTRL increases it by 100 times, to 1.
Pressing down Shift and CTRL together decreases it by 10 times, to 0.001.
Pressing down ALT will change the decimal of the digit before the caret (text selection cursor):
All of this is also possible by using the keyboard's up and down arrows instead of the mouse. And on pins that are turned into a slider using the Dash Scalar module.
Integer numbers can be modified in a similar way, but the modification will be 100 times greater than with scalar numbers.
The keyboard can be used to navigate and change pins in the Pin Values panel.
Up and Down arrow buttons can change the selected pin. While the Enter button can allow you to edit and save a pin.
Left and Right arrows can change toggles (logical pin), lists, and number values even without using the Enter button.
Copy Pin Value
To copy the value of a pin, right-click on the pin's name and select copy:
Then, it is possible to paste the value to a similar type of pin. You can copy-paste on pins even in the Flow Editor:
Drag and Drop Pin Value
Another way to copy a pin's value is by dragging the name of the pin and dropping it on the value field of a pin. And dropping it into the Flow Editor will create a copy module with the value of the pin:
Changing File Reference
Pins that expect a file's location, can accept files by drag and dropping on them:
The 3 dot line can be used to open a browser window to search for similar file types:
If Instant preview is selected in the browser window, selected files will be instantly opened and played without the need to press the Open button:
This is especially useful if you want to go through lots of files and see how they look in your project or in your virtual world.
Pin Value Formatting Schemes
Some data types can be represented or formatted in different ways. In such cases, there is a small down arrow near the pin's value.
Vector Pin Value Formatting
Vector pin can represent a scalar (1D vector), a 2D, 3D, 4D, or an arbitrary length data array (Free Vector).
For example, in Free Vector mode, vectors can be added with comma separation:
Note that individual numbers in the vector can be modified by dragging the mouse. This is detailed in Modifying number values paragraph.
Transformation Pin Value Formatting
Transformation pin can represent a transformation where the scale is the same at all axis (Pos-Rot-ScalUni) or where the scale can be different per axis (Pos-Rot-ScalXYZ). Or it can be represented as a 4x4 transformation matrix:
Color Pin Value Formatting
The color pin has many options.
RGB stands for Red, Green, Blue. Hex is a hexadecimal HTML color code. HSB stands for Hue, Saturation, Brightness. HSL stands for Hue, Saturation, Lightness. And A is an extra field for Alpha.
Pin Data Type Conversion
Some pin data types can be directly converted to other data types. This image illustrates the possible conversions:
Notably, Vector can convert every data type above. Note: copy vector module is named Copy.
These conversions only work between modules, exposing (dotted line) to different data type pins won't work.
There are modules that can do conversion of other pin data types, for example, the Scalar to Text module.
Pin and Connection Tooltip
When the mouse pointer is over a pin or a connection, the data type is visible in the bottom left corner:
Where Video Player : Position (double precision scalar) stands for Node's Name : pin name (data type).
These pin types do not represent any kind of data flow, instead, designate specific relationships between modules.
They are located at the bottom of the modules:
Reset and Use Default
Most pin data types can have a default value. Dash and copy modules have the Use Default and Default pins for this purpose.
One can retrieve the Default value using the Reset option when right mouse-clicking on a pin:
It is also possible to reset pins on the Dashboard panel and on Control Boards.
The Revert option returns the value which was saved with the compound file.
Dash modules can expose pins as sliders:
If a Dash module is connected after a Pin Collector, then the slider will show up on the Control Board's Pin Values panel.
Transmit modules can transfer a pin's value without using a connection.
This is especially useful in complex projects with many compounds. Transmit modules make it possible for the compounds to transfer data to each other without connecting pins to each other:
Once a Transmit module's Into Tunnel pin is set, the Flow Editor registers the tunnel and other Transmit modules can use the tunnel by setting the From Tunnel pin.
Studio Camera compounds like VirtualCam_3-Cam.xcomp come with several tunnels built in. These can be used for example to trigger events in a scene or build logic based on the state of the Camera compound.
Global Irradiance Env Map and Global Specular Env Map are special global tunnel names kept for environment maps. These tunnels are used by IBL shaders.
Set ... Pin Modules
Modules like Set Scalar Pin can set a module's pin value without being connected to the module.
Use it in very special cases as it can lead to confusion. You can end up in a situation where a pin value changed and you have no idea what changed it.
In the screenshot below, when the Get Camera Transform trigger is pressed the Transform pin on the Dashboard will be filled up with the transformation of the Camera Tracking module:
The Set Transformation Pin's module pin refers to a module name, in the above screenshot, it is the module named Transform copy.
It is also possible to refer to module names inside a compound with a backslash character "\". While the "..\" can be used to access modules outside of the compound.
Here the Module pin refers to a Pin Collector's name inside the locked TrackedCam compound:
The referred Pin Collector inside the TrackedCam compound and on the Control Board: