- 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
- A quick mental model of the repo
- How branches are typically used
- Where to go next depending on what you’re trying to do
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
- High-level guides under
Scripts (scripts/)
Helper scripts for documentation and tooling:generate_python_docs.sh: builds Python API docs intodocs/reference/sdk/python/autogenerated/generate_typedoc.sh: builds frontend TypeScript docs intodocs/reference/sdk/typescript/typedoc/
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:
- Stable / release branches
Long-lived branches that correspond to deployable, stable code (e.g. amainorrelease/*branch).- Intended for: production deployments, reproducible results, and published docs.
- CI should be green; tests and core pipelines expected to pass.
- 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.
- Experiment / research branches
Short-lived branches (often prefixed likeexp/*orresearch/*) for model or dataset experiments.- Intended for: trying new architectures, loss functions, or preprocessing approaches.
- Not guaranteed to be stable; may never be merged.