We welcome contributions to the MatCraft open-source core. Whether you are fixing a bug, adding a domain plugin, improving documentation, or implementing a new feature, here is how to get started.
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/matcraft.git
cd matcraft
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in development mode with all extras
pip install -e ".[dev,test,docs]"
# Install pre-commit hooks
pre-commit install
# Verify everything works
pytestmain: ``bash git checkout -b feature/my-new-feature ``
```bash # Run all tests pytest
# Run specific test file pytest tests/test_surrogate_mlp.py
# Run with coverage pytest —cov=materia —cov-report=html ```
``bash # These run automatically via pre-commit hooks ruff check src/ tests/ ruff format src/ tests/ mypy src/materia/ ``
main with a clear description of your changes.Adding new material domain plugins is one of the most impactful contributions. A domain plugin consists of:
components.yaml file defining the parameter schemaphysics.py file with approximate evaluation modelstests/test_plugin_<domain>.pydocs/domains/<domain>.mdSee src/materia/plugins/water/ for a complete example.
We are interested in alternative surrogate architectures:
Beyond CMA-ES, we would welcome implementations of:
Check the GitHub Issues page for open bugs and feature requests labeled good-first-issue or help-wanted.
conftest.py.All contributors must sign a CLA before their first pull request can be merged. The CLA bot will automatically comment on your PR with instructions. The CLA allows us to distribute your contributions under the Apache 2.0 license.
All contributors are listed in the CONTRIBUTORS.md file and acknowledged in release notes. Significant contributors may be invited to join the core maintainer team.