Skip to content
Jgocunha edited this page Apr 10, 2026 · 10 revisions

dynamic-neural-field-composer

A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.


What are Dynamic Neural Fields?

Dynamic Neural Fields are a mathematical framework from computational neuroscience. They model how populations of neurons collectively represent, maintain, and transform information distributed over continuous feature dimensions — such as spatial position, orientation, or color.

A DNF is governed by a differential equation over a one-dimensional activation field u(x, t). The field's dynamics emerge from the interplay between:

  • A resting level that pulls activation downward in the absence of input
  • A lateral interaction kernel (excitatory center, inhibitory surround) convolved with the field's output
  • External inputs from stimuli or other fields

This produces characteristic behaviors that are useful for building cognitive and robotic architectures:

Behavior Description
Detection A sufficiently strong input drives the field above threshold, forming a localized bump
Working memory A bump persists self-sustainedly after the input is removed
Selection Competing inputs resolve into a single winner-take-all bump

What this library provides

Component Description
Simulation engine Time-stepped loop that manages and steps all elements
Element library Neural fields, lateral interaction kernels, stimuli, field couplings, noise
Learnable couplings Weight-matrix couplings with Hebbian, Oja, and Delta learning rules
Real-time visualization Line plots and heatmaps rendered via ImPlot
Interactive GUI Node-graph editor, element inspector, field metrics panel, plot controls
Serialization Save and load complete simulation configurations as JSON

The library is useful both as a simulation tool (run and inspect neural field dynamics interactively) and as a C++ framework (link it into your own application and drive fields programmatically).


Navigation

Getting Started Prerequisites, building, running, and your first simulation
Architecture Module overview and design philosophy
Simulation The Simulation class — lifecycle, elements, persistence
Elements The Element base class, factory, and component system
Visualization Plots, heatmaps, and the Visualization class
Application & UI The Application class and available GUI windows
Element Reference Every element type with its parameters and components
Testing Google Test setup, how to build and run the test suite
Examples Walkthrough of all included examples

Namespace

All library code lives in the dnf_composer namespace. Elements are further nested under dnf_composer::element.

using namespace dnf_composer;
using namespace dnf_composer::element;

Clone this wiki locally