Metadata-Version: 2.4
Name: mimodium
Version: 0.0.1
Summary: Reproducible system-level simulations for distributed massive MIMO research.
Project-URL: Documentation, https://mimodium.readthedocs.io/
Project-URL: Source, https://github.com/LPSchulz/mimodium
Project-URL: Issues, https://github.com/LPSchulz/mimodium/issues
Author-email: Leonard Schulz <leonard.schulz@tuhh.de>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Keywords: 5G,6G,6G research,MIMO,open-source,reproducible research,simulation,system-level simulation,wireless communications
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.12
Requires-Dist: dagreon>=0.2.0
Requires-Dist: matplotlib<4,>=3.8
Requires-Dist: numpy<3,>=2
Requires-Dist: scipy<2,>=1.14
Provides-Extra: dev
Requires-Dist: build<2,>=1; extra == 'dev'
Requires-Dist: pydata-sphinx-theme<1,>=0.15; extra == 'dev'
Requires-Dist: pytest<10,>=8; extra == 'dev'
Requires-Dist: ruff<1,>=0.8; extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints<4,>=2; extra == 'dev'
Requires-Dist: sphinx-copybutton<1,>=0.5; extra == 'dev'
Requires-Dist: sphinx-design<1,>=0.6; extra == 'dev'
Requires-Dist: sphinx-gallery<1,>=0.18; extra == 'dev'
Requires-Dist: sphinx<9,>=7; extra == 'dev'
Requires-Dist: twine<7,>=5; extra == 'dev'
Provides-Extra: docs
Requires-Dist: pydata-sphinx-theme<1,>=0.15; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints<4,>=2; extra == 'docs'
Requires-Dist: sphinx-copybutton<1,>=0.5; extra == 'docs'
Requires-Dist: sphinx-design<1,>=0.6; extra == 'docs'
Requires-Dist: sphinx-gallery<1,>=0.18; extra == 'docs'
Requires-Dist: sphinx<9,>=7; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest<10,>=8; extra == 'test'
Description-Content-Type: text/markdown

<p align="center">
  <img src="docs/_static/brand/mimodium-logo.svg" alt="Mimodium" width="720">
</p>

# Mimodium

Mimodium is a Python research library for reproducible cell-free massive MIMO
system-level simulations. It provides Dagreon task components for scenario
generation, propagation and channel modeling, signal-processing algorithms,
evaluation metrics, and visualization.

The documentation is available on
[Read the Docs](https://mimodium.readthedocs.io/).

## Installation

Mimodium requires Python 3.12 or newer. Install the published package with:

```bash
python -m pip install mimodium
```

To install Mimodium from a source checkout, run:

```bash
python -m pip install .
```

## Development

Create and activate a virtual environment from the repository root:

```bash
python -m venv .venv
source .venv/bin/activate
```

Then install Mimodium and its development dependencies:

```bash
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
```

Check formatting and lint the package, tests, and documentation with:

```bash
ruff format --check src tests docs
ruff check src tests docs
```

## Testing

Run the complete test suite with:

```bash
pytest
```

## Building the Documentation

Build a local HTML preview with:

```bash
sphinx-build -b html docs docs/_build/html
```

The generated documentation is written to `docs/_build/html`.

For release validation, build the documentation with warnings treated as
errors:

```bash
sphinx-build -E -W --keep-going -b html docs docs/_build/html
```

## License and Citation

Mimodium is licensed under `GPL-3.0-or-later`; see [LICENSE](LICENSE).

If you use Mimodium in a research publication, cite the software version and
exact commit using [CITATION.cff](CITATION.cff).

Mimodium is pre-release research software. Its API and numerical behavior may
continue to evolve; pin exact versions and commits for reproducible studies.
