Deep-Learning framework for Engineering AI. Built on transformer building blocks, it delivers the full engineering stack, allowing teams to build, train, and operate industrial simulation models across engineering verticals.
See the codeIt is possible to use the framework either from source or from the pre-built packages.
git clone https://github.com/Emmi-AI/noether.gitInstallable package is available via pip and can be installed as:
pip install emmiai-noether
or if you use uv:
uv pip add emmiai-noether
If you prefer to work with the source code directly without installing a prebuilt package.
If you are running on NVIDIA GPUs or need custom CUDA paths, you must configure your environment variables first. Please follow our Advanced Linux Setup Guide before running the command below.
Create a fresh virtual environment and synchronize the core dependencies after cloning the repo:
uv venv && source .venv/bin/activate
uv sync
Note: Initial installation may take several minutes. Duration depends on your hardware and network speed.
Validate your installation by simply running the tests (if something fails with module import errors it means that the installation was incomplete):
pytest -q tests/
if the tests are passed (warnings are okay to be logged) then you're all set and ready to go!
You can install Noether directly from GitHub as well:
uv add "emmiai-noether @ git+https://github.com/Emmi-AI/noether.git"
This way you will stay always up-to-date with the recent updates and don't wait for the built packages being released.
You might be in a situation when your venv won't be configured as intended anymore, to fix this:
deactivate.venv (optionally add uv.lock): rm -rf .venv uv.lockuv cache cleanuv venv && source .venv/bin/activateuv.lock file: uv lockpre-commit installYou can get started with scaffolding a project directly with uvx:
uvx --from emmiai-noether noether-init my_project
cd my_project
uv run noether-train --hp my_project/configs/base_experiment.yaml
Or if you have emmiai-noether already installed:
uv run noether-init my_project
cd my_project
uv run noether-train --hp my_project/configs/base_experiment.yaml
See the scaffolding tutorial for all options and the generated project structure.
End-to-end training and evaluation examples for specific engineering tasks.
Train AB-UPT on the DrivAerML aerodynamics benchmark with a preset-based CLI. Ready-to-use model sizes for CPU, GPU, and Apple Silicon.
recipes/aero_cfd/showcase/cd recipes/aero_cfd/
export PYTHONPATH=$(git -C ../.. rev-parse --show-toplevel)/recipes:$PYTHONPATH
python -m showcase.cli train \
--dataset-root /path/to/drivaerml \
--output-path /path/to/outputs \
--model-size scaled \
--accelerator gpu \
--precision float16
| Recipe | Description | Quicklinks |
|---|---|---|
| AB-UPT Showcase | AB-UPT on DrivAerML with a preset-based CLI for training, evaluation, and VTK export. | code · docs |
| External Aerodynamics | Multi-dataset aero CFD (ShapeNet-Car, AhmedML, DrivAerML, DrivAerNet++, Emmi-Wing) across AB-UPT, UPT, Transformer, and Transolver. | code · walkthrough · scripts |
| Fluid Heat Transfer | Neural surrogates for heat transfer on the SIMSHIFT Heatsink benchmark -- predict 3D velocity, temperature, and pressure fields from heatsink geometry. | code · docs |
Browse the full list in the Noether Recipe Zoo.
Training time for the AB-UPT model on the ShapeNet-Car dataset across hardware configurations.
[!NOTE] All benchmarks were conducted using FP32 precision to establish a baseline for raw computational performance.
| Hardware | Config | Precision | Time | Speedup |
|---|---|---|---|---|
| MacBook Pro M3 Max | 1x MPS | FP32 | 135m | 1.0x |
| RTX Pro 4500 (Blackwell) | 1x GPU | FP32 | 26m | 5.2x |
| RTX Pro 4500 (Blackwell) | 2x GPU | FP32 | 8m | 16.8x |
| NVIDIA H100 | 1x GPU | FP32 | 5.7m | 23.6x |
We follow these standards:
docs/.pytest -q tests/.ruff as a linter and formatter as well as mypy for type checking.
Their configuration is defined in the project's root pyproject.toml.main branch.
To install pre-commit execute:
pre-commit install
To run the pre-commit configuration on all files, you can use:
pre-commit run --all-files
To run the pre-commit configuration on specific files use:
pre-commit run --files /your/file/path1.py /your/file/path2.py
In case of bugs use a corresponding template to create an issue.
In case of feature requests you can submit a PR with clear description of the proposed feature. In that case it must follow the guidelines, or file a feature request as an issue. In that case, we will consider adding it to our backlog.
src/ directory as Sources Root (right mouse button click on the folder -> Mark Directory as)Continuation indent from 8 to 4.Power operator (**)Worth noting that we work with macOS and Linux environments thus in case of any issues on Windows, at this time, you have to find workarounds yourself.
[!NOTE] TL;DR: Research & development ✅| Production deployment ❌ (without commercial license)
The Noether Framework is licensed under a Non-Production License (based on Mistral AI's MNPL). This means you're free to use, modify, and research with the framework, but commercial/production use requires a separate commercial license from Emmi AI.
We're committed to open AI innovation while sustainably growing our business. For commercial licensing, contact us at partner@emmi.ai .
Read the full license here.
|
|
|
|
|
|
If you use Noether in your research or industrial applications, please cite this repository. A formal BibTeX entry for our forthcoming ArXiv publication will be provided here shortly.
@misc{noether2026,
author = { Bleeker, Maurits AND Hennerbichler, Markus AND Kuksa, Pavel },
title = {Noether: A PyTorch-based Framework for Engineering AI},
year = {2026},
publisher = {GitHub},
note = {Equal contribution},
url = {https://github.com/Emmi-AI/noether}
}
Python
78.6%
Jupyter Notebook
21.3%
Deep-Learning framework for Engineering AI. Built on transformer building blocks, it delivers the full engineering stack, allowing teams to build, train, and operate industrial simulation models across engineering verticals.
See the codeIt is possible to use the framework either from source or from the pre-built packages.
git clone https://github.com/Emmi-AI/noether.gitInstallable package is available via pip and can be installed as:
pip install emmiai-noether
or if you use uv:
uv pip add emmiai-noether
If you prefer to work with the source code directly without installing a prebuilt package.
If you are running on NVIDIA GPUs or need custom CUDA paths, you must configure your environment variables first. Please follow our Advanced Linux Setup Guide before running the command below.
Create a fresh virtual environment and synchronize the core dependencies after cloning the repo:
uv venv && source .venv/bin/activate
uv sync
Note: Initial installation may take several minutes. Duration depends on your hardware and network speed.
Validate your installation by simply running the tests (if something fails with module import errors it means that the installation was incomplete):
pytest -q tests/
if the tests are passed (warnings are okay to be logged) then you're all set and ready to go!
You can install Noether directly from GitHub as well:
uv add "emmiai-noether @ git+https://github.com/Emmi-AI/noether.git"
This way you will stay always up-to-date with the recent updates and don't wait for the built packages being released.
You might be in a situation when your venv won't be configured as intended anymore, to fix this:
deactivate.venv (optionally add uv.lock): rm -rf .venv uv.lockuv cache cleanuv venv && source .venv/bin/activateuv.lock file: uv lockpre-commit installYou can get started with scaffolding a project directly with uvx:
uvx --from emmiai-noether noether-init my_project
cd my_project
uv run noether-train --hp my_project/configs/base_experiment.yaml
Or if you have emmiai-noether already installed:
uv run noether-init my_project
cd my_project
uv run noether-train --hp my_project/configs/base_experiment.yaml
See the scaffolding tutorial for all options and the generated project structure.
End-to-end training and evaluation examples for specific engineering tasks.
Train AB-UPT on the DrivAerML aerodynamics benchmark with a preset-based CLI. Ready-to-use model sizes for CPU, GPU, and Apple Silicon.
recipes/aero_cfd/showcase/cd recipes/aero_cfd/
export PYTHONPATH=$(git -C ../.. rev-parse --show-toplevel)/recipes:$PYTHONPATH
python -m showcase.cli train \
--dataset-root /path/to/drivaerml \
--output-path /path/to/outputs \
--model-size scaled \
--accelerator gpu \
--precision float16
| Recipe | Description | Quicklinks |
|---|---|---|
| AB-UPT Showcase | AB-UPT on DrivAerML with a preset-based CLI for training, evaluation, and VTK export. | code · docs |
| External Aerodynamics | Multi-dataset aero CFD (ShapeNet-Car, AhmedML, DrivAerML, DrivAerNet++, Emmi-Wing) across AB-UPT, UPT, Transformer, and Transolver. | code · walkthrough · scripts |
| Fluid Heat Transfer | Neural surrogates for heat transfer on the SIMSHIFT Heatsink benchmark -- predict 3D velocity, temperature, and pressure fields from heatsink geometry. | code · docs |
Browse the full list in the Noether Recipe Zoo.
Training time for the AB-UPT model on the ShapeNet-Car dataset across hardware configurations.
[!NOTE] All benchmarks were conducted using FP32 precision to establish a baseline for raw computational performance.
| Hardware | Config | Precision | Time | Speedup |
|---|---|---|---|---|
| MacBook Pro M3 Max | 1x MPS | FP32 | 135m | 1.0x |
| RTX Pro 4500 (Blackwell) | 1x GPU | FP32 | 26m | 5.2x |
| RTX Pro 4500 (Blackwell) | 2x GPU | FP32 | 8m | 16.8x |
| NVIDIA H100 | 1x GPU | FP32 | 5.7m | 23.6x |
We follow these standards:
docs/.pytest -q tests/.ruff as a linter and formatter as well as mypy for type checking.
Their configuration is defined in the project's root pyproject.toml.main branch.
To install pre-commit execute:
pre-commit install
To run the pre-commit configuration on all files, you can use:
pre-commit run --all-files
To run the pre-commit configuration on specific files use:
pre-commit run --files /your/file/path1.py /your/file/path2.py
In case of bugs use a corresponding template to create an issue.
In case of feature requests you can submit a PR with clear description of the proposed feature. In that case it must follow the guidelines, or file a feature request as an issue. In that case, we will consider adding it to our backlog.
src/ directory as Sources Root (right mouse button click on the folder -> Mark Directory as)Continuation indent from 8 to 4.Power operator (**)Worth noting that we work with macOS and Linux environments thus in case of any issues on Windows, at this time, you have to find workarounds yourself.
[!NOTE] TL;DR: Research & development ✅| Production deployment ❌ (without commercial license)
The Noether Framework is licensed under a Non-Production License (based on Mistral AI's MNPL). This means you're free to use, modify, and research with the framework, but commercial/production use requires a separate commercial license from Emmi AI.
We're committed to open AI innovation while sustainably growing our business. For commercial licensing, contact us at partner@emmi.ai .
Read the full license here.
|
|
|
|
|
|
If you use Noether in your research or industrial applications, please cite this repository. A formal BibTeX entry for our forthcoming ArXiv publication will be provided here shortly.
@misc{noether2026,
author = { Bleeker, Maurits AND Hennerbichler, Markus AND Kuksa, Pavel },
title = {Noether: A PyTorch-based Framework for Engineering AI},
year = {2026},
publisher = {GitHub},
note = {Equal contribution},
url = {https://github.com/Emmi-AI/noether}
}
Python
78.6%
Jupyter Notebook
21.3%