Skip to main content
Welcome to Elata’s machine-learning stack for brain and physiological data. This repo is where you:
  • Ingest and organize raw signals (e.g. EEG and related streams)
  • Build, train, and evaluate ML models
  • Expose models via CLI tools and a web application
  • Share reproducible experiments through notebooks and versioned model artifacts
This page is your landing hub:
  • A quick mental model of the repo
  • How branches are typically used
  • Where to go next depending on what you’re trying to do
If you just want to run something locally right away, skip ahead to Pick your path.

What lives in this repo?

brain-ml is designed as a full stack ML workspace:
  • Core library (src/)
    Data loading, preprocessing, feature pipelines, model definitions, training/eval loops, and shared utilities.
  • Web app (webapp/)
    Frontend for visualizing runs, inspecting datasets, and interacting with trained models through a browser. This is where “non-ML” teammates usually live.
  • Notebooks (notebooks/)
    Research and exploration: quick experiments, ablation studies, visualizations, and one-off analyses.
  • Model artifacts (models/)
    Checkpoints, exported weights, and metadata. Typically gitignored; think of this as the “outputs” of your experiments.
  • Docs (docs/)
    Everything that powers the Mintlify docs site:
    • High-level guides under /docs/guides/
    • Tutorials under /docs/tutorials/
    • API and SDK reference under /docs/reference/
    • This page under /docs/getting-started/index.md
  • Scripts (scripts/)
    Helper scripts for documentation and tooling:
    • generate_python_docs.sh: builds Python API docs into docs/reference/sdk/python/autogenerated/
    • generate_typedoc.sh: builds frontend TypeScript docs into docs/reference/sdk/typescript/typedoc/
The root also includes standard project files like README.md, CHANGELOG.md, .github/workflows/ for CI, and .gitignore.

Branches: how work is usually organized

brain-ml is designed to support multiple parallel tracks of work: production-ready pipelines, active development, and more experimental research. The exact branch names may vary between teams and forks, but you’ll typically see three kinds of branches:
  1. Stable / release branches
    Long-lived branches that correspond to deployable, stable code (e.g. a main or release/* branch).
    • Intended for: production deployments, reproducible results, and published docs.
    • CI should be green; tests and core pipelines expected to pass.
  2. Integration / feature branches
    Branches where active development happens (e.g. dev, webapp/*, pipeline/*, feature/*).
    • Intended for: day-to-day work, integrating new models or data pipelines, webapp changes, etc.
    • May contain breaking changes, WIP experiments, or newer dependencies.
  3. Experiment / research branches
    Short-lived branches (often prefixed like exp/* or research/*) for model or dataset experiments.
    • Intended for: trying new architectures, loss functions, or preprocessing approaches.
    • Not guaranteed to be stable; may never be merged.
To see what’s available in your clone:
# Clone the repo (SSH)
git clone git@github.com:Elata-Biosciences/brain-ml.git
cd brain-ml

# Fetch all remote branches
git fetch origin --prune

# List local and remote branches
git branch -a