Skip to main content

Crate brainharmony

Crate brainharmony 

Source
Expand description

§brainharmony-rs — Brain-Harmony multimodal brain foundation model inference in Rust

Pure-Rust inference for the Brain-Harmony multimodal brain foundation model, built on Burn 0.20.

Brain-Harmony unifies morphology (T1 MRI) and function (fMRI) into 1D tokens using a Vision Transformer with:

  • Brain gradient + geometric harmonics positioning for spatial embeddings
  • Flexible patch embedding via Conv2d with dynamic patch size
  • JEPA architecture (encoder + predictor with momentum target)

§Three entry points

TypeLoadsUse case
BrainHarmonyEncoderencoder onlyproduce latent embeddings
ClassificationHeadclassification layerdownstream classification
MLPHead3-layer MLP headstage 2 finetuning

§Quick start — encode brain signal

use brainharmony::{BrainHarmonyEncoder, ModelConfig, DataConfig};

let (enc, ms) = BrainHarmonyEncoder::<B>::from_weights(
    "model.safetensors",
    "gradient_mapping_400.csv",
    "schaefer400_roi_eigenmodes.csv",
    &ModelConfig::default(),
    &DataConfig::default(),
    &device,
)?;
let result = enc.encode_safetensors("data/signal.safetensors")?;
result.save_safetensors("embeddings.safetensors")?;

§Backends

FeatureBackendNotes
ndarray (default)CPU (NdArray + Rayon)Add blas-accelerate on macOS
wgpuGPU (Metal / Vulkan)--no-default-features --features wgpu
wgpu-f16GPU (half precision)--no-default-features --features wgpu-f16

Re-exports§

pub use config::DataConfig;
pub use config::ModelConfig;
pub use config::YamlConfig;
pub use inference::BrainHarmonyEncoder;
pub use inference::EmbeddingResult;
pub use predictor_api::BrainHarmonyPredictor;
pub use classification::ClassificationHead;
pub use classification::MLPHead;
pub use classification::predict_classes;
pub use data::GradientData;
pub use data::GeohData;
pub use data::SignalInput;
pub use masks::MaskConfig;
pub use masks::full_context_mask;
pub use masks::jepa_masks;
pub use error::BrainHarmonyError;
pub use error::Result;
pub use model::encoder::apply_masks;
pub use weights::WeightFilter;
pub use weights::WeightMap;
pub use csv_export::save_embeddings_csv;
pub use hf_download::resolve as resolve_weights;
pub use hf_download::ResolvedWeights;
pub use hf_download::DEFAULT_REPO;

Modules§

classification
config
csv_export
CSV export utilities for Brain-Harmony embeddings.
data
error
hf_download
inference
masks
model
predictor_api
prelude
weights

Functions§

init_threads
Configure the global Rayon thread pool.