FEAGI Core Architecture
Overview
feagi-core contains the pure neural computation components of FEAGI 2.0 - all algorithms that process neural activity without any I/O dependencies.
Repository Structure
This repository is a dedicated workspace for core FEAGI components, maintained separately from:
- feagi-io (I/O layer with feagi-io, separate repo)
- feagi-py (Python bindings and orchestration, separate repo)
- feagi-connector (agent SDK, separate repo)
- brain-visualizer (3D visualization, separate repo)
Note: The feagi-data-processing crates (feagi-structures, feagi-serialization, feagi-sensorimotor) have been merged into this repository as workspace members under crates/.
Crate Hierarchy
Foundation Layer
feagi-types: Core data structures (Neuron, Synapse, CorticalArea, etc.)- No dependencies except std/no_std primitives
- Used by all other crates
Infrastructure Layer
feagi-state-manager: Runtime state management- NEW: Multi-platform state management (std, no_std, wasm)
- Lock-free atomic operations for high-frequency access
- Agent registry, cortical locking, FCL window cache
- Depends on:
feagi-types,feagi-data-structures
Algorithm Layer (Core Neural Computation)
-
feagi-burst-engine: NPU execution & inference- Burst loop runner
- Synaptic propagation
- Neural dynamics
- Fire structures (FCL, Fire Queue, Fire Ledger)
- Depends on:
feagi-types,feagi-state-manager
-
feagi-brain-development: Neurogenesis (Brain Development Unit)- Cortical area creation
- Synaptogenesis (connectivity rules)
- Morphology patterns (projector, expander, etc.)
- Spatial hashing (Morton encoding)
- Depends on:
feagi-types,feagi-state-manager
-
feagi-plasticity: Synaptic learning- STDP (Spike-Timing-Dependent Plasticity)
- Pattern detection (temporal patterns)
- Memory neuron management
- Depends on:
feagi-types,feagi-state-manager
-
feagi-connectome-serialization: Connectome persistence- Binary serialization format
- LZ4 compression
- Checksum validation
- Depends on:
feagi-types
I/O Layer (TODO: Move to feagi-io repo)
-
feagi-io: Peripheral Nervous System- ZMQ/UDP transport for agent communication
- Agent registry & heartbeat
- Sensory injection, motor output, visualization streaming
- Status: Should be moved to separate
feagi-iorepository
-
feagi-agent: Rust agent SDK- Client library for building agents in Rust
- ZMQ connection management
- Sensory/motor data structures
- Status: Should be moved to
feagi-ioorfeagi-connectorrepository
Applications
feagi-inference-engine: Standalone inference binary- Command-line tool for running inference without Python
- Loads pre-trained connectomes
- Communicates with agents via ZMQ
- Depends on: All core crates
Dependency Graph
feagi-data-structures (merged workspace crate)
↓
feagi-types
↓
feagi-state-manager
↓
┌───────────────────┬────────────────────┬──────────────────┐
↓ ↓ ↓ ↓
feagi-burst-engine feagi-brain-development feagi-plasticity feagi-connectome-serialization
↓ ↓ ↓ ↓
└───────────────────┴────────────────────┴──────────────────┘
↓
feagi-io (I/O layer)
feagi-agent (I/O layer)
↓
feagi-inference-engine (application)
Note: feagi-serialization and feagi-sensorimotor are also workspace members.
Platform Support
Targets
- std (default): Linux, macOS, Windows, Docker
- no_std: RTOS, embedded (FreeRTOS, Zephyr, bare-metal)
- wasm: WebAssembly (single-threaded)
- wasm-threaded: WebAssembly with Web Workers
Conditional Compilation Strategy
// Core atomics work everywhere
#[cfg(feature = "std")]
use parking_lot::RwLock;
#[cfg(feature = "no_std")]
use spin::RwLock;
#[cfg(all(target_family = "wasm", not(feature = "wasm-threaded")))]
use std::cell::RefCell; // Single-threaded WASM
#[cfg(all(target_family = "wasm", feature = "wasm-threaded"))]
use wasm_sync::Mutex; // Multi-threaded WASM
Migration Roadmap
Completed
- ✅ feagi-types (foundation)
- ✅ feagi-burst-engine (algorithm)
- ✅ feagi-brain-development (algorithm)
- ✅ feagi-plasticity (algorithm)
- ✅ feagi-connectome-serialization (persistence)
- ✅ feagi-io (I/O, needs migration)
- ✅ feagi-inference-engine (application)
In Progress
- 🚧 feagi-state-manager (NEW, infrastructure layer)
- Skeleton created
- Modules stubbed out
- Implementation in progress
Planned
- 📋 Move
feagi-iotofeagi-iorepository - 📋 Move
feagi-agenttofeagi-ioorfeagi-connectorrepository - 📋 Publish all crates to crates.io with synchronized versions
Design Principles
1. Pure Computation
All core crates contain ONLY neural computation algorithms:
- ✅ Neuron dynamics
- ✅ Synaptic propagation
- ✅ Pattern detection
- ✅ Neurogenesis rules
- ❌ No network I/O
- ❌ No agent management (except state tracking)
- ❌ No Python dependencies
2. Platform Agnostic
Code must work on:
- Desktop (Linux, macOS, Windows)
- Cloud (Docker, Kubernetes)
- Embedded (Raspberry Pi, NVIDIA Jetson)
- RTOS (FreeRTOS, Zephyr)
- WASM (browser, Node.js)
3. Deterministic
- Fixed-size data structures where possible
- No heap allocation in hot paths (RTOS compatibility)
- Atomic operations for lock-free synchronization
- Predictable performance characteristics
4. Zero-Copy Where Possible
- Use
Arc<T>for shared ownership - Memory-mapped state for cross-process access
- Direct buffer references (no unnecessary cloning)
5. Rust/RTOS Compatible
- No Python in critical paths
- No dynamic dispatch in hot loops
- Static typing throughout
- Minimal dependencies
Publishing Strategy
Version Synchronization
All crates will be published with synchronized versions:
feagi-types = "2.0.0"feagi-state-manager = "2.0.0"feagi-burst-engine = "2.0.0"- etc.
Crates.io Namespace
feagi-types
feagi-state-manager
feagi-burst-engine
feagi-brain-development
feagi-plasticity
feagi-connectome-serialization
feagi-io (after migration to feagi-io)
Publishing Order
feagi-types(no dependencies)feagi-state-manager(depends on types)- Core algorithms (depend on state-manager)
- Applications (depend on core)
Testing Strategy
Unit Tests
Each crate has comprehensive unit tests:
cd crates/feagi-burst-engine
cargo test
Integration Tests
Cross-crate integration tests in tests/:
cargo test --workspace
Benchmarks
Performance benchmarks for critical paths:
cargo bench --workspace
Architecture Compliance
Automated checks for:
- No Python dependencies in core
- Platform-agnostic code
- Proper feature gating
Contributing
Adding a New Crate
- Place in appropriate layer (foundation/infrastructure/algorithm/I/O/application)
- Update this ARCHITECTURE.md
- Update root Cargo.toml workspace members
- Follow naming convention:
feagi-{component-name} - Add comprehensive tests
Modifying Dependencies
- Core crates should NOT depend on I/O layer
- All platform-specific code must be feature-gated
- Keep dependency tree minimal
Code Review Checklist
- No hardcoded network addresses
- No hardcoded timeouts
- Platform-agnostic paths
- Proper error handling (no panics in production paths)
- Tests pass on all platforms
- Documentation updated
References
Last Updated: 2025-10-28
Status: In Active Development