Introduction

Node-based programming

How the dataflow graph works: sources, transforms, sinks, compounds, and execution modes.

The dataflow model

Captyse's business logic is a directed graph of nodes — like Nuke, Blender's compositor, or Simulink. Data flows from Source nodes (sensors, imports, generators) through Transform nodes (FFT, filter, matrix ops) to Sink nodes (displays, exporters).

Topological execution

A graph-execution service orders nodes topologically, caches results, and recomputes only what changed (dirty-tracking). Every wire result is cached in a probe; named outputs publish into a registry so visualizers, the Explorer, and the math console all see the same single source of truth.

Compounds (subsystems)

Any subgraph can collapse into a reusable compound node with macro_in / macro_out boundary ports. Compounds nest, carry their own parameters, and thread uncertainty lineage across their boundary. Promote any inner parameter to the compound's inspector — the Simulink/VFX "mask".

Execution modes

Beyond plain dataflow, Captyse offers several execution modes:

  • Conditional Subsystem — only the taken branch runs (lazy pruning).
  • Simulation — cyclic feedback compounds run through the ODE engine.
  • Identification / Fit — wrap a simulation in a transparent Levenberg–Marquardt loop to fit parameters (±σ) to measured data.

Variables everywhere

Reference any signal, dataset, or node output by name with {{variableName}} — in the console, a Text node, or a parameter field. Bind any numeric parameter to a variable; binding is two-way and reactive — edit the variable and every bound parameter updates and the graph re-runs.

See also

Explore the Node Reference for every built-in, or read about the simulation engine.