About¶
![../_images/screenshot.png](../_images/screenshot.png)
nodeworks provides a graphical programming interface where users can add, delete, and copy Nodes. The user can then connect the various output and input Terminals of the Nodes with Connections. The network can be solved by walking the Nodes, based on a topological sort, and calling the process function associated with each Node.
Nodal components include:
a Node which contains high level functionality including the process method
a NodeGraphic which handles the drawing and mouse interactions with Nodes
the Terminals which provide input and output as well as user interaction through widgets
the Connections used to link Nodes at the Terminals
![../_images/schematic.png](../_images/schematic.png)
The Nodes have been designed to be extremely flexible, allowing for:
Arbitrary number of inputs/outputs
Arbitrary widgets for input on each Terminal
Single or multiple Terminal connections
Delegates for editing Node names
Style framework for formatting the Nodes, Terminals, and Connections