Skip to content

Getting Started

Raul Montoya Cardenas edited this page Jul 29, 2026 · 2 revisions

Getting Started

Requirements

Requirement Detail
Julia 1.10, 1.11, or 1.12 (Project.toml compat)
CUDA CUDA.jl 5.x; a functional NVIDIA GPU for real steps
VRAM RTX-class GPU with ≥14 GB recommended for full EnsembleBrain
CPU-only Package loads and runs CPU tests; GPU constructors/step! need a device

Check availability after load:

using LiquidCortex
LiquidCortex._cuda_available[]  # true when CUDA.functional()

Installation

From the local project

] activate .
] instantiate

Or:

julia --project -e 'using Pkg; Pkg.instantiate()'

From GitHub

using Pkg
Pkg.add(url="https://github.com/Limen-Neural/LiquidCortex.jl")

Registry Pkg.add("LiquidCortex") may not resolve until published to a registry; prefer the Git URL or a local clone for now.

Dependencies

Package Purpose
CUDA GPU arrays, cuSPARSE mat-vec
SparseArrays / LinearAlgebra / Statistics / Random / Printf Sparse init, norms, covariance, RNG, diagnostics
Sentry Optional runtime exception capture when SENTRY_DSN is set

Your First SparseBrain

using LiquidCortex
using CUDA

# 65,536-neuron lobe, τ_m = 20 ms (defaults: n_in=14, n_out=16)
brain = SparseBrain(20.0f0)

# Custom I/O dimensions
brain = SparseBrain(20.0f0; n_in=8, n_out=4, name="demo")

u = CUDA.zeros(Float32, 8)
step!(brain, u; inhibition=0.3f0)

println(diagnostics(brain))
println(get_output(brain))

Your First EnsembleBrain

using LiquidCortex
using CUDA

ensemble = EnsembleBrain(n_in=8, n_out=4)
u = CUDA.zeros(Float32, 8)

ensemble_step!(ensemble, u; inhibition=0.1f0, reflex_signal=0.15f0)

println(ensemble_diagnostics(ensemble))
println(get_ensemble_output(ensemble))

EnsembleBrain builds four lobes:

Lobe τ_m Aggregation weight
Fast 10 ms 0.4
Medium 25 ms 0.3
Slow 50 ms 0.2
Integrator 100 ms 0.1

When |reflex_signal| > 0.1, the Fast lobe gets a STDP rate boost (flash-learning). See Inhibition and Reflex Gating.

Standalone Example Script

With a GPU:

julia --project examples/brain_standalone.jl

This runs 100 SparseBrain steps and 50 EnsembleBrain steps with custom dims. See Standalone Example.

Optional: Sentry

Copy .env.example.env (never commit .env):

export SENTRY_DSN="..."          # enables Sentry.jl in __init__
export SENTRY_AUTH_TOKEN="..."   # sentry-cli for release workflows
export SENTRY_ORG=limen-neural
export SENTRY_PROJECT=liquidcortex

Runtime exceptions in step! / ensemble_step! are captured asynchronously (best-effort, non-blocking) when Sentry is enabled.

Run Tests

julia --project -e 'using Pkg; Pkg.test()'
# with coverage:
julia --project -e 'using Pkg; Pkg.test(; coverage=true)'

CPU tests always run. GPU tests run only when LiquidCortex._cuda_available[] is true.

Next Steps


Last updated: July 28, 2026 Updated by: Grok Build: Grok 4.5 Package tip reference: 4e2698c (main)

Clone this wiki locally