Welcome to Album’s documentation!
Album is an open-source framework that turns scientific routines into executable building blocks — and organizes them into a shareable, versioned, executable library of research software.
Album is built around two minimal primitives:
a solution — a single Python entry point that bundles metadata, arguments, an environment specification, and lifecycle hooks (
install/run/test) for a scientific routine;a catalog — a decentralized, git-native collection of solutions with an indexed search and an optional rendered website for discovery, provenance, and governance.
A solution is language-agnostic in practice: it can wrap tools implemented in Python, C++, R, Java, Kotlin, ImageJ/Fiji, napari, Blender, and more. Each solution declares its own micromamba environment and gets that environment provisioned in isolation at install time, so routines with conflicting dependencies coexist on one machine. Crucially, the optional post-environment install hook lets a solution download model weights, compile components, fetch external assets, or wire up GUI tools — capturing setup steps that a plain conda-style environment file cannot express. Together, these features are what make heterogeneous tools usable as building blocks of an executable library.
Solutions are reproducible, composable, and easy to evolve through an iterative Search → Implement → Share & Scale → Finalize cycle.
Album supports an iterative, collaboration-driven research-software cycle: discover existing routines, adapt and validate them, share and scale them with collaborators, then finalize them for long-term reuse (from arXiv:2110.00601, Fig. 1).
Album is FAIR-aligned by design — solutions are Findable through
catalog indexes and (optionally) Zenodo DOIs, Accessible via a single
album install regardless of the underlying tool stack,
Interoperable through typed arguments and parent/child solution reuse,
and Reusable thanks to versioned, environment-pinned, executable
artifacts. Album complements — rather than replaces — package managers,
workflow engines, and container runtimes. It is released under the MIT
license.
Because each solution is a single Python file with a machine-readable
manifest, it is also amenable to LLM-assisted authoring: an LLM can
draft a solution.py from natural-language requirements, and you validate
it with album test before deploying. See
Developing solutions for details.
Where to go next
New here? Start with Quick Start — CLI Reference and Installing Album.
Want to use solutions and catalogs? See Usage instructions for Album.
Want to write a solution? See Developing solutions.
Want to publish solutions for others? See Catalog management and Setting up Zenodo DOI minting for a request catalog (GitLab CI).
Want to package, containerize, or batch-run solutions? See Album Ecosystem, Album Docker, Album Package, Album Distributed.
Curious where Album has been used in practice? See Case studies.
Citing Album
If you use Album in academic work, please cite the project paper:
Albrecht, J. P., Schmidt, D., Rieckert, L., Otto, M. & Harrington, K. Album: executable building blocks for scientific imaging routines, from sharing to LLM-assisted orchestration. arXiv:2110.00601.
Contents:
- Quick Start — CLI Reference
- Installing Album
- Frequently Asked Questions / Troubleshooting
- Usage instructions for Album
- Album Ecosystem
- Developing solutions
- Catalog management
- Three ways to share a solution
- Catalog types
- How to automatically share solutions to GitLab / GitHub
- How to create and use a local catalog
- How to manually share a local catalog on GitLab / GitHub
- How to track solution development [within the catalog repository]
- How to create a catalog with a website representation
- Rapid prototyping
- DOI support for solutions
- Setting up Zenodo DOI minting for a request catalog (GitLab CI)
- Python API
- Album Package
- Album Docker
- Album Distributed
- Album MCP
- Case studies
- Contributing to Album
- REST API