Skip to main content

PyPI License: MIT Bindings Code style: Ruff

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)

Source distribution for mnt.designer 0.2.0
File Size Uploaded
mnt_designer-0.2.0.tar.gz 69.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mnt.designer 0.2.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page