Emergent Assembly Networks – rotation & mirror reasoning with GPU acceleration
HyperCubeX EAN (HCX-EAN) is a research framework that explores Emergent Assembly Networks – minimal neuron-like agents able to solve Abstract Reasoning Corpus (ARC) tasks via self-organisation.
| Module | Status |
|---|---|
| Rotation & Mirror connectors | ✅ |
| BatchPolicyScheduler (multi-task) | ✅ |
| Shared REINFORCE baseline | ✅ |
| GPU backend (PyTorch – CUDA/MPS) | ✅ prototype |
| Monitoring (CSV/JSON + GIF/MP4) | ✅ |
| Robustness (synaptic noise + refractory) | ✅ |
| CI/CD (lint, tests, coverage) | ✅ |
| Docs & Diagrams | ⏳ |
See complete documentation at https://mattjeff.github.io/EAN/.
python scripts/grid_search.py --alphas 0.05 0.1 0.2 --decays 0.99 0.995 0.999python scripts/clean_outputs.py --dry # preview
python scripts/clean_outputs.py # delete generated artefacts# clone & install
pip install -r requirements.txt # core deps
pip install -r requirements-dev.txt # dev / CI deps
# run tests
pytest -q
# benchmark CPU vs GPU (CUDA/MPS)
export EAN_BACKEND=torch
python benchmarks/bench_ean.py --grid 100 --ticks 5000 --backend torch
python benchmarks/bench_ean.py --grid 100 --ticks 5000 --backend cpu# run controller benchmark with memory persistence
python scripts/run_benchmark.py \
--data_dir data/training \
--modes heuristic,controller \
--load_assemblies weights/assemblies.json \
--save_assemblies weights/assemblies.json
# advanced: GPU benchmark
export EAN_BACKEND=torch
python benchmarks/bench_ean.py --grid 100 --ticks 5000 --backend torch
python benchmarks/bench_ean.py --grid 100 --ticks 5000 --backend cpupython experiments/curriculum_rotation3x3.py \
--ticks 3000 \
--batch 8 \
--backend torch \
--noise-std 0.05 \
--logger run.csv --visualiser spikes.gifCSV & JSON-Lines logs will be generated; an animated GIF of energy & spikes is exported.
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Teachers │ ◀──▶ │ Adapters │ ◀──▶ │ Assemblies │
└────────────┘ └────────────┘ └────────────┘
▲ ▲
│ │
│ ┌────────────┐ │
└─────────▶│ Network │◀─────────┘
└────────────┘
▲
│ backend = CPU | Torch
▼
┌────────────┐
│ Backend │
└────────────┘
- Create branch
feature/<name>. - Ensure
pytest -q&flake8pass. - Push & open PR – GitHub Actions will run lint, tests & coverage.
MIT © 2025 HyperCubeX Contributors