Quick Start

This short notebook distils the essentials of the CANNs design philosophy so you can navigate the library quickly.

Use it as a high-level checklist before diving into the detailed design notebook or the codebase.

Module Overview

  • model Built-in model package.

    • basic Core CANN models and their variants.

    • brain_inspired Brain-inspired models.

    • hybrid Hybrid models mixing CANNs with ANNs or other mechanisms.

  • task Task utilities for CANNs, covering generation, persistence, import, and visualisation.

  • analyzer Analysis helpers focused on visualisation.

    • model analyzer Tools for examining CANN models, including energy landscapes, firing rates, and tuning curves.

    • data analyzer Routines for experimental-data-driven CANN analysis or dynamical inspection of virtual RNN models.

  • trainer Unified training and prediction interfaces.

  • pipeline End-to-end flows that combine the above packages for streamlined execution.

Models At A Glance

models

Overview

The models package implements base CANNs across different dimensionalities, brain-inspired variants, and hybrid combinations. It underpins the rest of the library and inter-operates with other modules to support varied scenarios.

The implementations are grouped by type:

  • Basic Models (canns.models.basic) Canonical CANN architectures and their variants.

  • Brain-Inspired Models (canns.models.brain_inspired) Brain-inspired network implementations.

  • Hybrid Models (canns.models.hybird) Hybrids that couple CANNs with ANNs or other mechanisms.

These models rely on the Brain Simulation Ecosystem, especially brainstate. brainstate—backed by JAX/BrainUnit—provides the brainstate.nn.Dynamics abstraction, State/HiddenState/ParamState containers, unified time-step control via brainstate.environ, and utilities such as brainstate.compile.for_loop and brainstate.random. With these building blocks, CANN implementations only describe variables and update rules while brainstate handles time stepping, parallelism, and randomness, lowering implementation overhead.

Tasks At A Glance

task

Overview

The task package generates, saves, loads, imports, and visualises CANN-specific stimuli. It offers predefined task types while allowing custom extensions for specialised needs.

Analyzers At A Glance

analyzer

Overview

The analyzer package supplies tools for inspecting CANN models and experimental datasets. It spans two categories: model analysis and data analysis.

Trainer Essentials

trainer

Overview

The trainer package exposes unified interfaces for training and evaluating brain-inspired models. It currently focuses on Hebbian learning, with room to add additional strategies later.

Pipeline Snapshot

Pipeline

Overview

The pipeline package chains models, tasks, analyzers, and trainers into end-to-end workflows so that common needs are satisfied with minimal user code.

Next Steps

  • Read Design Philosophy for the full story.

  • Explore examples under examples/ to see each module in action.

  • Extend the library by following the extension tips in each section.