Skip to main content

PyDNS — 2D DNS Viewer (PyQt6 + Fortran)

A lightweight 2D Direct Numerical Simulation (DNS) visualizer using:

  • PyQt6 for the GUI
  • NumPy + f2py (Fortran) for the DNS solver
  • Runs on macOS
  • Optional .app bundle via PyInstaller

🚀 Quick Install (macOS + gcc + uv)

1. Install system tools

brew install uv
brew install gcc
  • uv — Fast Python package manager + virtualenv + runner
  • gcc — provides gfortran for the Fortran module

2. Install Python and activate it

git clone git@github.com:mannetroll/pydns.git
cd pydns
uv python install 3.13.9
uv python pin 3.13.9
uv venv --python 3.13.9
source .venv/bin/activate
uv sync

🔧 Build the Fortran extension without OpenMP

If your solver file is dns_driver_min.f:

cd fortran
bash build_dns_macos.sh

This produces:

dns_fortran.cpython-313-darwin.so

▶ Run the DNS Viewer

DNS Viewer Window

uv run python main_min.py

Build Wheel:

uv build

Produces:

dist/pydns-0.1.1-cp313-cp313-macosx_15_0_arm64.whl

🖥 Build a macOS .app

The project includes pydns.spec.

Build the bundle:

uv run pyinstaller pydns.spec

Produces:

dist/pydns.app

Double-click to launch.

twine & pypi.org

uv add --dev build twine
uv run python -m build
uv run twine upload dist/*

one-liner

curl -LsSf https://astral.sh/uv/install.sh | sh
uv run --with mannetroll-pydns==0.1.2 python -m main_min

Release files for mannetroll-pydns 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mannetroll-pydns 0.1.2
File Size Uploaded
mannetroll_pydns-0.1.2.tar.gz 878.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mannetroll-pydns 0.1.2
File Interpreter ABI Platform
mannetroll_pydns-0.1.2-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details

Total release size: 1.8 MB

Release files / mannetroll_pydns-0.1.2.tar.gz

Download URL mannetroll_pydns-0.1.2.tar.gz
Size 878.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2dabd0b4d09e0af48c9c9f810a099af7205f758264f5efca1dcd78e4769efb7c
BLAKE2b-256 checksum
How to use checksums
08a63d640dbabbad4ad8a3e91110a5d6fe16f83f7857bd3c96c179569bc53610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / mannetroll_pydns-0.1.2-cp313-cp313-macosx_15_0_arm64.whl

Download URL mannetroll_pydns-0.1.2-cp313-cp313-macosx_15_0_arm64.whl
Size 885.3 kB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
550099c77e3ad7b259ff29c317b0fe28c5f62bb6a25c1a7979410b2afd53476d
BLAKE2b-256 checksum
How to use checksums
5606bb0f370baf861a7d6dd40dace3a6209f96ae9f65018e28bf5775cbdc92cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

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