Eco-Evo Graph Simulation – Tutorial
This demo simulates a directed, weighted graph with evolving structure and weights. Use the left panel to configure the graph at reset (Genesis), the Runtime sliders to tune evolution, and Test mode to probe the frozen graph with impulse/constant signals.
Top toolbar
- Play: run evolution continuously.
- Step: advance a single simulation step.
- Reset: rebuild the graph using the current Genesis parameters.
- Start test: enter / exit test mode (frozen graph).
Genesis (applied on Reset)
- m (inputs), n (outputs): number of input and output nodes.
- k (internal nodes): number of internal nodes at genesis (z-nodes).
- Graph construction:
- Bridging growth: starts from a fully connected z-core and grows via bridge events.
- Random growth: disables bridging; edges/nodes are added stochastically.
- Input source:
- Noise: i.i.d. Uniform(-1,1) noise on each input.
- Constant (1): all inputs fixed to 1.
- Sine: sine waves with different phases/frequencies per input.
- Activation:
- tanh: smooth saturating nonlinearity.
- ReLU: max(0, z).
- ReLU (with threshold): max(0, z − θ) with global θ.
- Identity: linear units.
- max |w_i x_i|: node picks the single strongest incoming contribution.
- Edge weight control:
- drifted Brownian motion (vanilla): random walk with drift μ on w.
- drifted BM with tanh constraint: same, but contributions use tanh(w·x).
- Ornstein–Uhlenbeck (OU): w follows an OU process with mean m and noise σ.
- BM with Hebbian drift: Brownian motion plus Hebbian drift ∝ |a_pre a_post|.
- BM Hebbian + tanh constraint: Hebbian drift with tanh(w·x) contributions.
- Hebb OU (Hebb mean + OU): OU on w whose mean is an instantaneous Hebbian function of the previous-step activations.
Runtime (evolution parameters)
- μ (drift): constant drift in Brownian modes (vanilla / tanh).
- σ (mutation): noise strength for all weight dynamics.
- p_flip: probability that near-zero edges flip sign instead of being removed.
- T_bridge: activation threshold for triggering bridge events.
- ω (bridge feedback): strength of stabilizing feedback edges around bridges.
- ε (near-zero): threshold below which edges are considered “near zero” and may flip or be deleted.
- K (bridge cooldown): minimum steps between bridge events at the same node.
- θ_hebb: Hebbian co-activation threshold; only edges with |a_pre a_post| above this are updated by Hebb.
- η_hebb: Hebbian learning rate; larger values make Hebbian effects stronger.
Test mode (frozen graph)
- Signal type:
- Impulse: one-step spike on input i, then 0.
- Constant: constant amplitude A on input i for all test steps.
- Input index i: which input node receives the test signal.
- Amplitude A: magnitude of the injected signal.
- Test steps: number of test iterations in frozen-graph mode.
Graph view and plots
- Click a node to see its current activation (popup near the cursor).
- Click an edge to see its current weight.
- Right panel shows ‖y(t)‖₂ over time and histograms of activations, weights, and degree.
For exact update equations and more details, see the README in the
demo/ directory of this project.