The node is the unit of processing in CRANQ. It takes data from signals and parameters through input ports, processes the data, and sends the result via output ports.
Internal structure of a node
If you took away all the connections and grouping from a CRANQ program, only a bunch of fundamental (code) nodes would remain.
Nodes can be made reusable.
Reusing nodes is very important because that's how we speed up development both for ourselves and for others.
Reusable nodes are called prototypes.
When we add a node from the Repo, we're actually reusing a node. A node in the Repo is therefore always a prototype - and when dragged to the canvas it becomes an instance of a node.
Prototypes in the Repo
Instances on the Canvas
Node instances inherit every property of the prototype - ports, data types, structure, and code - but in addition to these, they can also have parameter values set on input ports. Instances can only exist in the context of a parent node, whereas prototypes live in the Repo without context.