
Inputs and Outputs are a part of Factories and Nodes.
A Connection can be made between Sources and Targets, it is drawed as an arrow.
A Source is always an Input of a Factory of an Output of a Node.
A Target is always an Output of a Factory of an Input of a Node.
Every Source can have more than one Connections, a Target only can have one Connection.
Mandatory vs. Optional, Empty Content
Inputs and Outputs that has not a Value or Wave has "Empty Content". When a Input or Output is Optional, it can have Empty Content but a mandatory Input or Output cannot.
Mandatory Inputs and Outputs are drawed containing a point at the center:

All Target objects (Node Inputs and Factory Outputs) that is not connected to Source Object, can have a Constant Value or Wave. For objects that are mandatory, it must have a Constant Value or Wave. Objects that have a Constant Value of Wave are drawed with an extra border:

Wave Inputs and Outputs can Contain or refer to a Wave, or it has no Content.

A Wave Source (Factory Input of Node Output) have also a Memory Mode.
If the Memory Mode is "None" the Wave is deleted when it is not needed anymore, this saves memory.
If the Memory Mode is "Save" the Wave is always saved, good for analysing after running the factory, this costs memory.
Objects that has Memory Mode "Save" has a square around it:

Value Inputs and Outputs can not contain Wave, but can contain Values such a numbers and strings.
An Input and Output has always a Type Domain, this tells which kind of Values an Input or Outpus can contain, such as numbers, time, strings.
Type Domains - Single Types
When a Input or Outpus has a "single" Type domain, it can only contain a certain given Type. For example when a Input has Type Domain "Time", it can only contain a Time such as "1.5 s", it cannot contain for example a String.
The following example is a Factory which has Inputs with non-discrete numeric Single Type Domains:

The following example is a Factory which has Inputs with discrete Single Type Domains:

The following example is a Factory which has Inputs with String(like) Single Type Domains:

Type Domains - Compound Types
When a Input or Outpus has a "compound" Type domain, it can contain multiple given Types. For example when a Input has Type Domain "All computable Values", it can contain for example Time, Factor, Fysical Length, because you can do mathematic functions such as "Add", it cannot contain for example a String, you cannot do mathematic functions with Strings.
The following example is a Factory which has Inputs with Compound Type Domains:

Dependent of the Type Domain, an Input or Output has also a Value Domain. For some Type Domains, for example Type domain "Message Kind", the Input or Output has no Value Domain.
Examples of a Value Domain for Type Domain "Time" are:
- Alle Values.
- Not Zero.
- Positive.
- Negative.
- Positive Not Zero.
- Negative Not Zero.
Factories can make use of Nodes. A Node can be seen as a Blackbox Factory seen from the outside.
A Node reads Content its own Inputs (if is has) and do some processing. After processing, the Outputs are filled with Content (or not).
- Builtin Nodes
a Builtin Node is given by the WaveThunder itself. This are for example sound manipulating function,
as you can use directly on Wave windows, or for example mathematical functions.
- Factory Nodes
A Factory Node is always connected to a Factory. This Factory must be loaded in the WaveThunder. Dependent of the kind of the Factory Node the Factory is used some way to do the work. In some cases the Factory is used (runned) multiple times, or sometimes not used.
The following Factory has two nodes. De Node "Volume" is a Builtin Node to change the volume of the incoming Wave. The second Node refer to a Factory with name "Example Node Network" which must be loaded in the WaveThunder:

Last updated: 29-11-2025