Skip to content
Raul Montoya Cardenas edited this page Jul 29, 2026 · 3 revisions

NeuroPulse.jl (TemporalFocus)

Wiki hero

Generated with Grok Build: Grok 4.5 · xAI Imagine (/imagine)

Spike-driven relevance routing for modular neural systems.

Julia package: TemporalFocus 0.1.0 | Julia: 1.9+ (CI: 1.12) | License: MIT OR Apache-2.0

The GitHub repository and Pages path remain Limen-Neural/NeuroPulse.jl. The package identity in Project.toml is TemporalFocus. Use using TemporalFocus in new code.

TemporalFocus computes per-tick routing weights from:

  • spike density (α = 0.50)
  • manifold surprise via EMA readout deviation (β = 0.35)
  • routing momentum (γ = 0.15)

It is intentionally narrow: relevance routing only — not an SNN runtime, trainer, or hardware supervisor.

Public API (preferred)

Symbol Role
ActivityRegion Per-region summary: rate ∈ [0,1] + readout Vector{Float32}
RegionRouter Pre-allocated mutable routing state
update_routing! In-place per-tick weight update
routing_diagnostics One-line log string
adapt_leak! Optional stress → leak helper
save_state / load_state! Checkpoint / restore router buffers

Legacy aliases (LobeState, NeroOrchestrator, update_relevance!, nero_diagnostics) still resolve to the generic API.

Start Here

Page Description
Overview Mental model and package boundary
Getting Started Install, quick start, examples
Project Structure Layout and deps
Architecture Owns vs does not own
API Reference Types and functions
Interop Contract Frozen Float32 shapes (LIM-228)
Routing Algorithm α/β/γ, EMA, inhibition, softmax
Checkpointing save_state / load_state!
Legacy API NERO aliases
Testing Test suite
CI and Quality GHA, format, Documenter
Ecosystem Sibling packages
Roadmap Status and cleanup targets
Glossary Terms

Quick Start

using TemporalFocus

router = RegionRouter(
    n_regions = 4,
    n_out = 8,
    region_names = ["sensor", "reservoir", "memory", "decoder"],
)

regions = [
    ActivityRegion(0.82f0, Float32[0.9, 0.7, 0.2, 0.1, 0.0, 0.1, 0.3, 0.5]),
    ActivityRegion(0.28f0, Float32[0.3, 0.2, 0.1, 0.0, 0.0, 0.0, 0.2, 0.2]),
    ActivityRegion(0.41f0, Float32[0.4, 0.6, 0.5, 0.2, 0.1, 0.1, 0.0, 0.1]),
    ActivityRegion(0.12f0, Float32[0.1, 0.1, 0.0, 0.0, 0.4, 0.6, 0.8, 0.9]),
]

update_routing!(router, regions)
println(router.routing_weights)
println(routing_diagnostics(router))

Docs

License

Dual-licensed under MIT or Apache-2.0 at your option.


Last updated: July 29, 2026 Updated by: Grok Build: Grok 4.5 Package tip reference: c9ff99c (main, through dependabot cache #38)

Clone this wiki locally