MNT Designer: A Comprehensive Design Tool for Field-coupled Nanocomputing (FCN)
MNT Designer is a comprehensive, fully open-source, GUI-based tool that advances the design of Field-coupled Nanocomputing circuits from high-level logic specifications through to fabrication-ready, cell-level layouts. By unifying previously separate stages such as physical design, “on-the-fly” gate design, and verification in a graphical user interface, the tool streamlines an otherwise fragmented workflow. Specifically, it enables researchers and designers to import and edit high-level logic descriptions, generate and refine gate-level layouts, verify design-rule compliance, and export completed designs for simulation and fabrication. The modularity and scalability of the proposed approach accommodate both exact and heuristic algorithms, offering flexibility in tackling the wide range of problems and constraints inherent to FCN technologies. The ability to manually adjust layouts alongside automated post-layout optimization algorithms further empowers experts to explore custom solutions for performance-critical or domain-specific designs. Moreover, the integrated gate-design functionality for SiDBs facilitates rapid prototyping and testing of new concepts. Overall, by integrating these capabilities into a single, user-friendly environment, the presented tool fills a critical gap in existing FCN design tools. It thereby accelerates research and development in nanoscale computing, ultimately paving the way for more efficient, reliable, and scalable FCN circuits.
Related publication presented at DATE: paper and IEEE-NANO: paper.
Usage of MNT Designer
MNT Designer supports Python 3.11–3.14 and uses pyfiction 0.8.0 or newer. Create a virtual environment using your Python installation:
$ python3 -m venv .venv
$ source .venv/bin/activate
For fish, activate with source .venv/bin/activate.fish instead. On Windows PowerShell, use .venv\Scripts\Activate.ps1.
Install and start Designer:
$ python -m pip install --upgrade mnt.designer
$ mnt-designer
The interface opens at http://127.0.0.1:5001. The original mnt.designer command remains supported.
Use --help to see the options, or choose another port and open the browser yourself:
$ mnt-designer --port 5053 --no-browser
Development
Clone the repository and install it in a Python 3.11+ virtual environment:
$ git clone https://github.com/cda-tum/mnt-designer.git
$ cd mnt-designer
$ python -m pip install -e '.[test]'
$ python -m pytest
$ mnt-designer
The editable installation is needed to share the mnt namespace with pyfiction; setting PYTHONPATH alone is not sufficient.
Run the repository checks with pre-commit run --all-files after installing pre-commit.
Hosting notes
The built-in server is intended for local use and binds to loopback by default. For deployment, use a production WSGI
server with mnt.designer.app:app and one worker process: layouts and logic networks are held in process-local memory,
not shared between workers, and are lost when the server restarts. Export work you want to keep.
Request-body reads are limited to 5 MiB, including multipart upload overhead, before native layout or Verilog parsing. Rejected imports and editor saves leave the current layout and code unchanged. Configure a matching request-size limit in your reverse proxy when hosting Designer, including for streamed requests without a content length.
Designer generates a random session secret at startup. Set MNT_DESIGNER_SECRET_KEY to a securely generated secret if you
need a stable signing key; this does not make the in-memory layouts persistent. See Flask's
deployment guidance before exposing the application publicly.
References
In case you are using MNT Designer in your work, we would be thankful if you referred to it by citing the following publications:
@INPROCEEDINGS{hofmann2025codesign,
author = {S. Hofmann and M. Walter and R. Wille},
title = {{Late Breaking Results: Physical Co-Design for Field-coupled Nanocomputing}},
booktitle = {{Design, Automation and Test in Europe (DATE)}},
year = {2025},
}
@INPROCEEDINGS{hofmann2025mntdesigner,
author = {S. Hofmann and J. Drewniok and M. Walter and R. Wille},
title = {{MNT Designer: A Comprehensive Design Tool for Field-coupled Nanocomputing}},
booktitle = {{International Conference on Nanotechnology (IEEE Nano)}},
year = {2025},
}
Metadata
Release files for mnt.designer 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mnt_designer-0.2.0.tar.gz | 69.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mnt_designer-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 122.6 kB
Release files / mnt_designer-0.2.0.tar.gz
| Download URL | mnt_designer-0.2.0.tar.gz |
|---|---|
| Size | 69.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7fcd55786954a7d93b7b42063298c72c00a054b6be919e0a86e6d5597cf6d58c
|
|
BLAKE2b-256 checksum How to use checksums |
d03eac8a2d86b20532784a739ea384a1a4220e7cac72c08cef4834a21feacfe3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logRelease files / mnt_designer-0.2.0-py3-none-any.whl
| Download URL | mnt_designer-0.2.0-py3-none-any.whl |
|---|---|
| Size | 52.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8178c04b150b6c7036b618d16fcbd053c66a14248a0e330e4f09b5f30463e26a
|
|
BLAKE2b-256 checksum How to use checksums |
883527621375cd2c869f880b76e4cafdfb5277b94b5645ea0eb0081a39e5c36d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency log