Network Operation

Each time the step button is pressed in the network panel--that is, each time a network is iterated--the following occurs:

1. Any input nodes are updated based on sensory couplings.
2. The high level standard network is updated. This updates all neurons, synapses, and subnetworks. Their colors and sizes are updated accordingly.
3. State information is sent to the gauges.
4. Signals are sent to worlds via Output couplings.

To reflect the fact that the network has been updated the "time" label is updated as well.

The neural network is essentially a graph, a collection of nodes connected by vertices (the vertices are neurons and the connections are synapses). The whole network has three lists: a list of nodes, a list of connections, and a list of networks ("subnetworks"). The connections have references to the source and target nodes they connect. When a network is updated the program goes through the list of neurons and calls an update function internal to each one, and similarly with the list of synapses. Buffers are used so that the whole network can be updated synchronously.