A link from a source parameter to a set of Link Target Represent a link or parameter. Point toward an element parameter. "right click -> Goto" on the target to go to that element Read More

A Compo in Smode can be a lot more than just visual, especially through the use of links. Links offer the possibility of inserting logic in your compos, to create dynamic, interactive, and customizable content. Coupled with animation, parameters and external inputs (OSC, MIDI, video input, audio input, etc.), you can turn a composition into an interactive object.. Links are stored in a Link bank:

Multiple Targets

Links can have multiple targets.

To add a new target to an existing Link, right click on the new target parameter and use the Connect to menu.

You can also know visually which parameters of an Element are automated by selecting it. In the Parameters Editor Edit the parameters of the selected Element Read More , you will see a button listing the objects that target that parameter :

Learning - Links to external Devices In this chapter you will learn how to make your document react with Control devices (OSC / MIDI keyboard or control surfaces, etc.). First of all, we need to define which input control device will interact with Smode. To do this, open the Preferences in the EDIT > Preferences (F11)Edit Smode's Preferences menu in the main toolbar. In the Engine tab, select the "Control Devices" row, and press Add.

This will create a new Control Input device. You should select Device Identifier with the corresponding combo box. This Combo Box is filled with Identifier of Control Devices actually plugged physically with your computer. This Combo Box also contains Identifier creation menu for network based protocol device, such as ArtNet or Osc.

You can rename the device for convenience. The name of the device is recorded in the Smode document. this allows for different users to use a same document with the same device alias, connected to a different underlying hardware. For this sample we will use the Keyboard Control Device. Once the setting is done, you should click on the Apply Change button and close the Preferences panel. At the bottom of the main window, the Devices tab allows you to observe their activity. Devices are available next to the file button, like shown below. We use this to ensure that the connected devices are functional. You can read the last received messages, and their count and rate.

Now that your Control Device setting is created, you can create a Link with the Device with the Learn command. You can find the Learn menu by right clicking on any parameter. You can also right click on an Element and use the Learn menu, to select one of its learnable parameters.

let's learn the activation of an Uniform layer

That topic is in the process of being updated. Everything might not match the latest version of Smode.
The Learn dialog box is split in two part:
The top part is the control events list received during the dialog box life time.
The optional bottom part is the Action to be performed depending on the learned parameter type.
The control event list is updated each time a message is received. You should type on the keyboard to see the message list updated.
The control event identifier is displayed in newer to older order. Each control event identifier is followed by its current value with the "=" sign in between.
For Keyboard device, each key has its controller identifier with an associated Boolean value. True means key is down, False means key is up.
First, we select the wanted Controller identifier: "Keyboard key A" for instance, then we will try to use a "Convert To" Boolean Action to inspect the generated Rule.
Then press OK to close the Learn dialog Box.
We can now see that a Single Precision Device Rule Source has been created with a Target on the Layer activation.

The "Convert To" Action is the default Action done by Rule. In this case Smode tries to convert the Boolean Control Event Value to the Layer Activation State.
In result, when the A key is down the Layer is active, when the A key is up the Layer becomes inactive.

Here click on "Replace all" (remember that multiple Target can automate the same parameter):

Here click on the "Keyboard key A" Control Event, let the Toggle Boolean Action and press OK.

Here click on "Replace all" (remember that a Rule can have multiple Target). You can now see that the Lead dialog replaces the previous Rule by a more complex one:

When the A Keyboard key is up, the Layer Activation State is now Toggled. The main difference from the previous Rule is that we do not need to let the key pressed to see the Layer activated. This is performed by new Actions Element in the Rule: the "Toggle" Action and the "If Equals" Condition. The "If Equals" is a Condition. Condition is a kind of Action which allows to filter the value to be able to reach target parameters. The "If Equals" allows the Rule to send output if the Control Event Value is equal to its Value parameter. Here the Value is False, so the Rule matches only if the A key is Up. The Value is set to the Value of the Control Event at the Rule creation. We can switch the "If Equals" Value to True just to make the Layer activation toggling to be performed when the A key is Down. The Toggle Action is a special Action usable on Target of Boolean or Activation State type. The output value depends on the output one and toggle it.
Now here is a small tutorial to show you the use of different type of links. This in order to create procedural animations and interactive setups. Here the links are made from the "controller" position, but indeed, links can be made from any input and open wide possibilities :


  • Source (Link Source) : Source of the link
  • Targets (List of Link Targets) : Targets of the link

Parameters common to all Elements

  • Loading (Activation State) : The loading status of the link. It can be loaded , enabled by not loaded or unloaded
  • Activation (Activation State) : The activation status of the link. It can be active , enabled by not active or inactive
  • Color Label (RGB Color) : Associate a color label to your link to make it easily locatable
  • Solo (On/off option) : Activate this to keep only this link active and hide all other links in same location
  • Editable (Activation State) : The editabiliy status of the link. It can be locked directly , locked indirectly or editable
  • Preset (Element Preset Selector) : Select a preset to apply on the link
  • Status (Object's errors and warnings) : Warnings and errors associated to this link


Link Bank - A Bank A container for logic elements (animations, parameters, links, ...) Read More of Link A link from a source parameter to a set of Link Target Read More

Learn - An easy way to have everything interactive.

Link Source - The source of a link

Link Target - Represent a link or parameter. Point toward an element parameter. "right click -> Goto" on the target to go to that element

Link Modifier - add operations between source and target from a link

See Also: