Visual / Dataflow Languages Family Index
type: language-family-index family: visual-dataflow languages_catalogued: 22 tags: [language-reference, family-index, visual-programming, dataflow, no-code]
Visual / Dataflow Languages — Family Index
Family overview
Visual / dataflow languages express programs as directed graphs: nodes are operators (functions, filters, generators) and edges carry values, signals, or events. Execution is implicit in the topology — data arrives at a node, the node fires, results propagate downstream. This contrasts with the control-flow model of textual languages (sequence, branch, loop) and aligns naturally with signal processing, simulation, and reactive UI domains where the shape of computation mirrors the shape of the physical or perceptual system being modeled.
The family splits along two axes. Visual-only vs hybrid: pure graph editors (Pd, Quartz Composer, Origami) require all logic to live in patches; hybrids (TouchDesigner, Houdini, vvvv) embed textual escape hatches (Python, VEX, HLSL) for what graphs express awkwardly. Audience: engineering (LabVIEW G in test/measurement, Simulink in control systems, Modelica in multi-domain physics), creative-coding/music (Pd, Max/MSP, Reaktor, TouchDesigner), interaction-design (Origami Studio, ProtoPie), education (Scratch, Snap!, Blockly), and the no-code app-building strain (Bubble) which is dataflow-adjacent rather than strictly dataflow.
These languages have surprising industrial longevity. LabVIEW remains the lingua franca of physical-test labs forty years on. Simulink is mandatory tooling at every automotive Tier-1. Modelica drives EV powertrain and HVAC modeling at OEMs. The visual paradigm wins where domain experts (electrical engineers, mechanical engineers, sound designers, architects) are not full-time programmers but need executable models of their domain.
In our deep library
None of these are deep-noted — visual languages don’t reduce to grammar/semantics writeups the way textual ones do. Cross-reference adjacencies:
- music-audio — Pd, Max/MSP, Reaktor Core, OpenMusic
- scientific — Simulink, Modelica
- basics-and-teaching — Scratch, Snap!, Blockly
- gpu-and-shaders — Houdini VEX (textual but graph-embedded)
Tier 3 family table
| Language | First appeared | Domain | Vendor / origin | Status (2026) | URL |
|---|---|---|---|---|---|
| LabVIEW G | 1986 | Test, measurement, instrumentation | National Instruments | Active; dominant in T&M | https://www.ni.com/labview |
| Simulink | 1984 | Control systems, model-based design | MathWorks | Active; standard in automotive/aero | https://www.mathworks.com/products/simulink.html |
| Pure Data (Pd) | 1996 | Real-time audio, multimedia | Miller Puckette (open source) | Active; FOSS sibling of Max | https://puredata.info/ |
| Max/MSP | 1985 (Max), 1997 (MSP) | Music, interactive media | Cycling ‘74 | Active; flagship for live audio | https://cycling74.com/products/max |
| Quartz Composer | 2005 | Motion graphics, prototyping (macOS) | Apple | Deprecated; bundled in Xcode but unmaintained | https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/ |
| vvvv | 2002 | Realtime graphics, installations | vvvv group (.NET-hosted) | Active; “gamma” generation modern | https://vvvv.org/ |
| TouchDesigner | 2000 | Live visuals, projection, installations | Derivative | Active; widely used in AV production | https://derivative.ca/ |
| Houdini VEX | 2002 (VEX 2) | Procedural 3D, FX, shading | SideFX | Active; textual-in-graph hybrid | https://www.sidefx.com/docs/houdini/vex/index.html |
| Modelica | 1997 | Acausal multi-domain physical modeling | Modelica Association | Active; open standard | https://modelica.org/ |
| Modelica Standard Library (MSL) | 2002 | Reference component library for Modelica | Modelica Association | Active; v4.x current | https://github.com/modelica/ModelicaStandardLibrary |
| NoFlo | 2013 | Flow-based programming for JavaScript | Henri Bergius / community | Maintained; niche | https://noflojs.org/ |
| Node-RED | 2013 | IoT, integration, automation flows | IBM / OpenJS Foundation | Active; ubiquitous in IoT | https://nodered.org/ |
| OpenMusic | 1998 | Computer-aided composition | IRCAM | Active; research-grade | https://openmusic-project.github.io/ |
| Reaktor Core | 2005 (Core layer) | Modular synth / DSP design | Native Instruments | Active inside Reaktor 6 | https://www.native-instruments.com/en/products/komplete/synths/reaktor-6/ |
| Bubble | 2012 | No-code web apps | Bubble Group | Active; no-code growth | https://bubble.io/ |
| Grasshopper | 2007 | Parametric / generative architecture | Robert McNeel & Associates (Rhino) | Active; AEC standard | https://www.grasshopper3d.com/ |
| Dynamo | 2011 | BIM / Revit visual scripting | Autodesk | Active; bundled with Revit | https://dynamobim.org/ |
| Scratch | 2007 | Education (children) | MIT Media Lab Lifelong Kindergarten | Active; v3 web-based | https://scratch.mit.edu/ |
| Snap! | 2011 | Education (with first-class procedures) | UC Berkeley | Active; CS-principles courses | https://snap.berkeley.edu/ |
| Blockly | 2012 | Framework for block-based editors | Active; embeds in many tools | https://developers.google.com/blockly | |
| Origami Studio | 2014 | UI / interaction prototyping | Meta (Facebook) | Active but slowed; macOS only | https://origami.design/ |
| ProtoPie | 2017 | UI / interaction prototyping (cross-platform) | Studio XID | Active; commercial | https://www.protopie.io/ |
Notable threads
- LabVIEW’s hardware moat. Python (with PyVISA, nidaqmx) has eaten general scripting in test labs, but LabVIEW persists because NI controls the GPIB/PXI/DAQ hardware stack and ships first-class drivers, FPGA targets (LabVIEW FPGA), and real-time deployment to PXI controllers. The language is the fence around the hardware ecosystem; replacing it means replacing instrumentation.
- Modelica’s acausal trick. Unlike Simulink (causal — every block has fixed inputs/outputs), Modelica equations are acausal: a
Resistordeclaresv = R*iand the compiler decides causality at simulation time. This lets engineers compose mechanical, electrical, hydraulic, and thermal components freely — a single circuit can mix all four domains, and the solver figures out the DAE. Foundation of EV powertrain modeling at most OEMs (via Dymola, OpenModelica, SimulationX). - Pd vs Max. Same author (Miller Puckette), divergent paths: Max became the polished commercial tool with broad adoption in interactive media and Ableton integration (Max for Live); Pd stayed FOSS and minimal, beloved in academic computer music and embedded audio (libpd ships inside countless apps and games). Patches are almost portable but not quite.
- Flow-Based Programming as a recurring meme. J. Paul Morrison formalized FBP at IBM in the early 1970s — independent processes communicating over typed bounded queues. Largely ignored mainstream, but resurfaces every decade: NoFlo (2013), Node-RED (2013, IoT-flavored FBP), Apache NiFi (data-engineering-flavored FBP), and conceptually in modern stream processors. The idea that “components + ports + connections” generalizes better than function calls keeps proving correct in narrow domains.
- The educational dataflow line. Scratch (2007) crystallized block-based programming for kids; Snap! extended it with first-class procedures, lambdas, and lists-of-lists (it’s genuinely closer to Scheme than to Scratch internally); Blockly is the framework underneath Microsoft MakeCode, App Inventor, Code.org, and dozens of vendor-specific editors. The blocks/text divide stops being binary in advanced cases — Snap! lets you write block-based recursion that would terrify a CS101 student.
- No-code is mostly not dataflow. Bubble’s logic editor is event-driven imperative with a graph-shaped UI. Retool, Glide, Softr, etc. are form/table builders with formula languages. The genuinely dataflow no-code tools are rarer (n8n, Zapier paths, Pipedream are closer). Don’t conflate “visual builder” with “dataflow language” — most no-code is closer to spreadsheets-plus-UI than to Pd or Simulink.
Citations
- https://www.ni.com/labview
- https://www.mathworks.com/products/simulink.html
- https://puredata.info/
- https://cycling74.com/products/max
- https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/
- https://vvvv.org/
- https://derivative.ca/
- https://www.sidefx.com/docs/houdini/vex/index.html
- https://modelica.org/
- https://github.com/modelica/ModelicaStandardLibrary
- https://noflojs.org/
- https://nodered.org/
- https://openmusic-project.github.io/
- https://www.native-instruments.com/en/products/komplete/synths/reaktor-6/
- https://bubble.io/
- https://www.grasshopper3d.com/
- https://dynamobim.org/
- https://scratch.mit.edu/
- https://snap.berkeley.edu/
- https://developers.google.com/blockly
- https://origami.design/
- https://www.protopie.io/
- https://jpaulm.github.io/fbp/ (J. Paul Morrison, FBP reference)