|
Dynamic Neural Field Composer 0.0.0
A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.
|
A C++ library and interactive application for building and simulating Dynamic Neural Field architectures.
Docs · Wiki · Releases · Contributing
Dynamic Neural Fields model how neuron populations represent and transform information over continuous dimensions (position, direction, color). They produce emergent behaviours — working memory, winner-take-all selection, sequence generation — from local excitation and surround inhibition.
This library lets you design, connect, simulate, and visualize DNF architectures at runtime, either programmatically or through a visual node-graph editor. Simulations can be saved and reloaded as JSON. The application is built with real-time performance in mind, and straightforward to embed in any C++ application.
Pre-compiled binaries are available on the Releases page. Download and run — no build tools or dependencies required. This is the quickest way to start composing and simulating DNF architectures without writing any code.
If you want to build from source, embed the library in your own project, or write custom examples, follow the steps below.
You must install the following manually:
| Platform | Requirements |
|---|---|
| Windows | Visual Studio 2022 with "Desktop development with C++" workload, Git |
| Linux | GCC 13+, CMake 3.20+, Git, OpenGL/X11 dev libraries |
| macOS | Xcode Command Line Tools, CMake 3.20+ |
Everything else — vcpkg, all library dependencies (imgui, implot, imgui-node-editor, nlohmann-json, imgui-platform-kit) — is installed automatically by the setup scripts.
Run setup once on a fresh machine, then build whenever you want to compile.
To install the library for use in another CMake project:
Define a field architecture in a few lines of C++ and watch it run:
More ready-to-run examples are in the examples/ folder, covering working memory, selection, sequence generation, 2D fields, Hebbian learning, and more.
| Category | Elements |
|---|---|
| Fields | NeuralField, NeuralField2d |
| Kernels | GaussKernel, MexicanHatKernel, AsymmetricGaussKernel, OscillatoryKernel (+ 2D variants) |
| Stimuli | GaussStimulus, TimedGaussStimulus, BoostStimulus, BoostStimulus2d (+ 2D variants) |
| Noise | NormalNoise, CorrelatedNormalNoise (+ 2D variants) |
| Couplings | FieldCoupling, GaussFieldCoupling |
| Memory | MemoryTrace, MemoryTrace2d |
| Resampling | Resize, Resize2d — interpolate an input field to a different spatial size (linear / nearest / cubic) |
| Dimensionality | Collapse — reduce a 2D field to 1D along an axis (sum / average / maximum / minimum); Expand — broadcast a 1D field into a 2D ridge |
Building the project produces two executables:
dnf-composer-static** — a single self-contained window with all panels in a fixed layout. Best for quickly running a simulation without any setup.**dnf-composer-dynamic** — a fully dockable ImGui application. Windows can be rearranged, detached, and dragged to secondary monitors.
The GUI is powered by Dear ImGui, keeping it fast and lightweight.
You can also write your own launcher, link against the library, and choose exactly which windows and architectures to load. See the Wiki for a step-by-step guide.
| Project | Publication |
|---|---|
| NEAT-DNFs | NEAT-DNFs: A NeuroEvolutionary Framework for Evolving Dynamic Neural Field Architectures · GECCO 2026 · 10.1145/3795095.3805169 |
| dynamic-neural-field-degeneration | Robustness and Adaptability in a Dynamic Neural Field Architecture Subject to Degeneration · ROBOT 2025 · Springer LNNS |
| vr-hr-joint-task | Dynamic Neural Field Based Anticipatory Action Selection for Human Robot Collaboration: A Virtual Reality Experiment · ICSR + ART 2026 |
| How We Can Use Dynamic Neural Fields in Human-Robot Joint Action | How We Can Use Dynamic Neural Fields in Human-Robot Joint Action · Tessa H. Janssen · MSc thesis · TU/e |
Benchmarking against established DFT frameworks shows dynamic-neural-field-composer achieves the highest simulation throughput — delivering ~15–41% higher throughput than Cedar, the next-fastest framework — while maintaining algebraic equivalence with established implementations (and full float64 precision). The full methodology, per-size results, and cross-platform validation are available at Jgocunha/dynamic-field-theory-software.
Bug fixes, new elements, documentation improvements, and example architectures are all welcome. Open an issue before starting non-trivial work so direction can be agreed on first. See CONTRIBUTING.md for the full process.
This project is licensed under the terms in [LICENSE](LICENSE).