Search
Start typing to search...

Pin

Author:

Introduction

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

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:

NOTE: The red line on the top of a peeker window indicates that the module is not used.

In the case of Collection and Vector data type, it is possible to scroll through data using the mouse scroll wheel when the data overflows the peeker's window:

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.

Keyboard Navigation

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. 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 dragging 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 1D vector (Scalar), 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: Individual numbers in the vector can be modified by dragging the mouse. This is detailed in the Modifying number values paragraph.

Some modules have their vector pin in Free Vector format by default. While others, usually the ones in math, are in Scalar format by default.
The Scalar format has an extra bounding box, making it easy to differentiate between Scalar and Free Vector formatting:

Transformation Pin Value Formatting

The transformation pin can represent a transformation where the scale is the same at all axes (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, and Brightness. HSL stands for Hue, Saturation, and 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:

NOTE: Vector can convert every data type above.
NOTE: The 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).

Reference Pins

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 that was saved with the compound file.

Dash Modules

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

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:

Close
Loading spinner icon
1/10