The digital replication of the human brain - now with dynamic simulation capabilities!
This repository contains both:
- Static Brain Atlas: A comprehensive knowledge base of brain structure and function
- Dynamic Brain Simulation: A living, functioning spiking neural network with temporal evolution
Before: The brain atlas returned text descriptions of processes
ActionPotential.get_depolarization()
# Returns: "Depolarization Phase: Voltage rises from -70mV to +30mV..."Now: Actual voltage simulations with real neurons!
from brain_simulation import SimulatedNeuron
neuron = SimulatedNeuron(0)
neuron.add_synaptic_input(15.0)
spiked = neuron.update(dt_ms=0.1)
# neuron.voltage_mv actually changes: -70 → -55 → +30 mV✅ Stateful Neurons: Voltage changes over time based on ion currents
✅ Simulation Loop: "Heartbeat" advances network through time
✅ Spiking Neural Network: Threshold-based firing, spike propagation
✅ Synaptic Connections: Weighted connections with transmission delays
✅ Hebbian Learning: "Cells that fire together, wire together" - weights strengthen with co-activity
✅ Nernst Equations: Real ion equilibrium potentials (Na+, K+, Ca2+, Cl-)
✅ Signal Propagation: Demonstrated Retina → V1 → Visual Association
from brain_simulation import BrainSimulation
import numpy as np
np.random.seed(42)
sim = BrainSimulation(dt_ms=0.1)
# Create a 3-layer network: Retina → V1 → Visual Association
sim.create_simple_network(n_sensory=10, n_processing=20, n_output=5)
# Simulate visual input
for step in range(1500): # 150 ms
if (step // 100) % 2 == 0: # Flash every 10 ms
sim.stimulate_region("Retina", current=25.0)
sim.simulate_step(enable_learning=True)
# View results
stats = sim.get_statistics()
print(f"Total spikes: {stats['total_spikes']}")
print(f"Firing rate: {stats['average_firing_rate_hz']:.2f} Hz")Output:
Total spikes: 636
Firing rate: 121.14 Hz
Retina: 470 spikes → V1: 151 spikes → Association: 15 spikes
- Macro-Architecture: Forebrain, Midbrain, Hindbrain with all major regions
- Functional Lobes: Frontal, Parietal, Temporal, Occipital
- Deep Structures: Hippocampus, Amygdala, Basal Ganglia, Thalamus, Hypothalamus, Cerebellum
- Evolutionary Context: Each region tagged with evolutionary origin and systemic dependencies
- Sensory Pathways: Visual, auditory, somatosensory, pain/temperature
- Motor Pathways: Corticospinal, corticobulbar tracts
- Associative Pathways: Corpus callosum, arcuate fasciculus, fornix
- Dopaminergic Pathways: Mesolimbic, mesocortical, nigrostriatal
- Information Flow: Sensory Input → Processing/Integration → Motor/Hormonal Output
- Neurons: Complete structure (dendrites, soma, axon, terminals, myelin)
- Glial Cells: Astrocytes, microglia, oligodendrocytes, ependymal cells
- Cell Types: Pyramidal neurons, Purkinje cells, granule cells, interneurons
- Action Potentials: Complete mechanism with LaTeX equations
- Resting state (-70 mV)
- Depolarization (Na⁺ influx)
- Repolarization (K⁺ efflux)
- Nernst equations for ion potentials
- Neurotransmitters: Dopamine, Serotonin, Glutamate, GABA, Acetylcholine, Norepinephrine
- Chemical formulas in LaTeX
- Receptor types (lock and key mechanisms)
- Synthesis locations
- Effects and functions
- Long-Term Potentiation (LTP): Molecular cascade for learning
- Long-Term Depression (LTD): Synaptic weakening and refinement
- Structural Plasticity: Synaptogenesis, synaptic pruning, neurogenesis
- "Cells that fire together, wire together" (Hebb's Law)
- Stateful Neurons: Real-time voltage dynamics (-70 mV to +30 mV)
- Ion Channels: Na+, K+, Ca2+, Cl- with Nernst potentials
- Spike Generation: Threshold-based firing (threshold: -55 mV)
- Synaptic Transmission: Weighted connections with delays (1-5 ms)
- Hebbian Learning: Synaptic plasticity (LTP/LTD implementation)
- Network Simulation: Multi-layer signal propagation
- Temporal Evolution: Simulation "heartbeat" (0.1 ms time steps)
- Multi-Compartment Neurons: Dendrites, soma, axon with spatial voltage propagation
- Hodgkin-Huxley Dynamics: Realistic ion channel kinetics (Na+, K+ gates)
- Neurotransmitter Systems: Glutamate, GABA, dopamine, serotonin, acetylcholine, norepinephrine
- STDP Learning: Spike-timing-dependent plasticity (precise temporal learning)
- Homeostatic Plasticity: Network stability through synaptic scaling
- GPU Acceleration: PyTorch/TensorFlow support for millions of neurons
- Sparse Connectivity: Memory-efficient large-scale networks
- Connectome Integration: Framework for real brain connectivity data
- Attention Mechanisms: Top-down modulation of sensory processing
- Working Memory: Persistent activity circuits (7±2 items)
- Reinforcement Learning: Dopamine-based TD learning
- Decision Making: Evidence accumulation (drift-diffusion model)
- Sensory Input: Camera and microphone processing to spike trains
- Motor Output: Neural activity to robot joint commands
- Sensorimotor Loops: Closed-loop embodied cognition
from brain_atlas import BrainAtlas
# Initialize the atlas
atlas = BrainAtlas()
# Query a specific region
hippocampus = atlas.query("Hippocampus")
print(f"Function: {hippocampus['primary_function']}")
print(f"Dependencies: {hippocampus['systemic_dependencies']}")
# Get neural pathway information
visual_pathway = atlas.get_pathway("Visual")
print(f"Route: {visual_pathway.origin} → {visual_pathway.destination}")
# Get neurotransmitter details
dopamine = atlas.get_neurotransmitter_info("Dopamine")
print(dopamine.get_latex_formula())
# Get action potential mechanism
print(atlas.action_potential.get_full_cycle())
# Get neuroplasticity mechanisms
print(atlas.neuroplasticity.get_ltp_mechanism())from brain_simulation import BrainSimulation, SimulatedNeuron
import numpy as np
# Create a simulation
sim = BrainSimulation(dt_ms=0.1)
# Build a neural network
sim.create_simple_network(n_sensory=10, n_processing=20, n_output=5)
# Run simulation with sensory input
for step in range(1500): # 150 ms
time_ms = step * sim.dt_ms
if (int(time_ms / 10.0) % 2) == 0:
sim.stimulate_region("Retina", current=25.0)
sim.simulate_step(enable_learning=True)
# Analyze results
stats = sim.get_statistics()
print(f"Total spikes: {stats['total_spikes']}")
print(f"Average firing rate: {stats['average_firing_rate_hz']:.2f} Hz")from brain_simulation_advanced import (
AdvancedBrainSimulation,
NeurotransmitterType
)
# Create advanced simulation
sim = AdvancedBrainSimulation(use_gpu=False, dt_ms=0.1)
# Add multi-compartment neurons with Hodgkin-Huxley dynamics
for i in range(10):
sim.create_multicompartment_neuron(i, n_dendrites=5)
# Create STDP synapses with different neurotransmitters
sim.create_stdp_synapse(0, 1, NeurotransmitterType.GLUTAMATE)
sim.create_stdp_synapse(1, 2, NeurotransmitterType.DOPAMINE)
# Add cognitive modules
sim.add_cognitive_modules(n_memory_units=7, n_rl_states=10, n_rl_actions=4)
# Enable embodiment (sensory input and motor output)
sim.enable_embodiment()
# Run simulation
for step in range(1000):
stats = sim.simulate_step()
print(sim.get_summary())# Install dependencies
pip install -r requirements.txt
# Optional: Install GPU support (choose one)
pip install torch # For PyTorch GPU acceleration
# OR
pip install tensorflow # For TensorFlow GPU acceleration
# Run the static atlas demonstration
python brain_atlas.py
# Run comprehensive static atlas examples
python example_usage.py
# Run dynamic simulation demonstration
python simulation_demo.py
# Run advanced simulation demonstration (NEW!)
python advanced_demo.pySee ATLAS_DOCUMENTATION.md for complete documentation including:
- Detailed feature descriptions
- Usage examples
- Data structure explanation
- LaTeX equation reference
- Application scenarios
See SIMULATION_DOCUMENTATION.md for simulation documentation including:
- SimulatedNeuron, Synapse, and BrainSimulation APIs
- Biophysical realism (Nernst equations, action potentials)
- Hebbian learning implementation
- Network building and analysis
- Performance considerations and scaling
See ADVANCED_DOCUMENTATION.md for advanced features documentation including:
- Phase 2: Multi-compartment neurons, Hodgkin-Huxley dynamics, STDP, homeostatic plasticity
- Phase 3: GPU acceleration, sparse connectivity, massive scale simulation
- Phase 4: Connectome integration, realistic connectivity, white matter delays
- Phase 5: Attention, working memory, reinforcement learning, decision-making
- Phase 6: Sensory input/motor output interfaces, sensorimotor loops, embodiment
- Complete API reference and examples
- Performance optimization guide
The atlas is organized as a nested, queryable logic tree:
BrainAtlas
├── Macro-Architecture (Forebrain, Midbrain, Hindbrain)
│ ├── Regions (with functions, origins, dependencies)
│ └── Subregions (hierarchical nesting)
├── Connectome (Neural pathways and white matter tracts)
├── Neurotransmitters (with chemical formulas and receptor mechanisms)
├── Cellular Architecture (neurons and glial cells)
├── Action Potential (complete mechanism with equations)
└── Neuroplasticity (LTP, LTD, structural changes)
The simulation engine manages live computational components:
BrainSimulation
├── Neurons (SimulatedNeuron objects)
│ ├── voltage_mv (dynamic state)
│ ├── ion_concentrations (Na+, K+, Ca2+, Cl-)
│ ├── spike_times (history)
│ └── voltage_history (trace)
├── Synapses (connections with weights)
│ ├── weight (adjustable strength)
│ ├── delay_ms (transmission time)
│ └── learning_rate (plasticity)
├── Neuron Groups (organized by region)
│ ├── Retina (sensory input)
│ ├── V1 (processing)
│ └── Visual_Association (output)
└── Simulation State
├── current_time_ms
├── dt_ms (time step)
└── statistics (spikes, firing rates)
SENSORY INPUT → PROCESSING/INTEGRATION → MOTOR/HORMONAL OUTPUT
Every brain region depends on others to function. Example:
- Prefrontal Cortex ← Thalamus, Amygdala, Hippocampus, Basal Ganglia
- Primary Motor Cortex ← Basal Ganglia, Cerebellum, Thalamus, Spinal Cord
Neurotransmitters use "Lock and Key" receptor mechanisms:
- Ionotropic: Ligand-gated ion channels (fast, milliseconds)
- Metabotropic: G-protein coupled receptors (slower, seconds-minutes)
Brain rewires itself through:
- LTP: Strengthens frequently used connections
- LTD: Weakens rarely used connections
- Synaptogenesis: Creates new synapses
- Pruning: Eliminates inefficient synapses
brain_atlas.py- Main brain atlas implementationexample_usage.py- Comprehensive atlas usage examplesATLAS_DOCUMENTATION.md- Complete atlas documentation
brain_simulation.py- Simulation engine with neurons, synapses, and networksimulation_demo.py- Comprehensive simulation demonstrationsSIMULATION_DOCUMENTATION.md- Complete simulation documentation
brain_simulation_advanced.py- Advanced simulation with Phases 2-6 featuresadvanced_demo.py- Demonstrations of all advanced featuresADVANCED_DOCUMENTATION.md- Complete advanced features documentation
requirements.txt- Python dependencies (numpy, optional: torch/tensorflow)README.md- This file
- Education: Neuroscience teaching and learning
- Research: Computational neuroscience modeling
- Medicine: Drug development, diagnosis, treatment planning
- Reference: Quick lookup of brain structures and functions
- AI/ML: Brain-inspired spiking neural networks
- BCI: Brain-computer interface development
- Neuroscience Research: Disease modeling (Alzheimer's, Parkinson's, epilepsy)
- Cognitive Modeling: Attention, memory, decision-making
- Neural Engineering: Prosthetics, neuroprosthetics
- Computational Neuroscience: Testing theories about neural computation
- Language: Python 3.x
- Data Format: Hierarchical object model with dictionary export
- Chemical Notation: LaTeX for publication-quality equations
- Query API: Region, pathway, and neurotransmitter lookup
- Export: JSON serialization of complete atlas
- Language: Python 3.x with NumPy
- Time Resolution: 0.1 ms time steps (configurable)
- Neuron Model: Simplified integrate-and-fire with realistic parameters
- Biophysics: Nernst potentials, ion concentrations, refractory periods
- Learning: Hebbian plasticity (LTP/LTD)
- Scale: Hundreds to thousands of neurons (CPU-based)
- Future: GPU acceleration for millions of neurons
The current implementation provides the blueprint (static atlas) and the engine (dynamic simulation). To scale toward truly "sentient" behavior, the next steps are:
- Transition from static descriptions to dynamic state
- Implement simulation loop ("heartbeat")
- Create spiking neural network architecture
- Implement Hebbian learning
- Demonstrate signal propagation
- Multi-compartment neuron models (dendrites, soma, axon)
- Hodgkin-Huxley dynamics (detailed ion channel kinetics)
- Multiple neurotransmitter systems (dopamine, serotonin, etc.)
- Spike-timing-dependent plasticity (STDP)
- Homeostatic plasticity
- GPU acceleration (PyTorch/TensorFlow/CUDA)
- Millions of neurons in parallel
- Sparse connectivity matrices
- Distributed computing framework
- Import real connectome data framework (Human Connectome Project)
- Region-specific neuron populations
- Realistic synaptic densities
- White matter tract delays
- Attention mechanisms
- Working memory circuits
- Reinforcement learning (dopamine reward signals)
- Decision-making networks
- Multi-modal sensory integration
- Real sensory input (camera, microphone)
- Motor output (robot control)
- Sensorimotor loops
- Autonomous behavior
Current Status: Phases 1-6 complete! Advanced brain simulation with biophysical realism, massive scale, cognitive functions, and embodiment.
This brain atlas and simulation implementation synthesizes knowledge from computational neuroscience, systems biology, neuroanatomy, molecular neuroscience, and evolutionary neuroscience research.
This implementation is provided for educational and research purposes.