Skip to main content

HYRR

Hierarchical Yield and Radionuclide Rates

A pure Python package for predicting radio-isotope production in stacked target assemblies, using TENDL cross-section data and NIST stopping power tables.

Web App | Desktop App | Documentation

Try it now — full simulation runs in the browser, no install, no data leaves your machine. Need offline access? Download the desktop app for Windows, macOS, or Linux.

What it does

  • Stopping power via PSTAR/ASTAR table lookup (replaces Bethe-Bloch)
  • Energy-integrated production rates for any projectile (p, d, t, ³He, α)
  • Bateman equations for activity, yield, and decay chains
  • Compound materials with natural or enriched isotopic composition
  • Stacked layer geometries (windows, targets, degraders, backings)
  • Depth-resolved heat and activity profiles

Performance

HYRR is designed for interactive use — simulations are fast enough for real-time parameter sweeps:

Operation Time
Single isotope production rate ~56 µs
Full layer simulation (all isotopes) ~1.6 ms

Compared to tools like Isotopia, HYRR is significantly faster and lighter: pure NumPy/SciPy with Parquet-backed nuclear data (no heavy ORM, no database server). The browser frontend achieves similar performance with a pure TypeScript compute engine.

Installation

uv add git+https://github.com/exoma-ch/hyrr.git

Quick start

from hyrr import TargetStack, Layer, Beam

stack = TargetStack(
    beam=Beam(projectile="p", energy_MeV=30.0, current_mA=0.15),
    layers=[
        Layer(material=havar, thickness_cm=0.0025),
        Layer(material=enriched_mo100, energy_out_MeV=12.0),
        Layer(material=copper, thickness_cm=0.5),
    ],
)

result = stack.run(irradiation_time_s=86400, cooling_time_s=86400)
result.summary()

Frontend

exoma-ch.github.io/hyrr — hosted on GitHub Pages, zero backend.

The browser frontend (frontend/) is a standalone Svelte 5 + TypeScript app with a pure-TS physics engine (no Python/WASM). Nuclear data is lazy-loaded from Parquet files via hyparquet. All computation runs locally — no server, no data upload.

The physics engine is also published as @hyrr/compute (npm workspace under packages/compute/) for use in Node.js tools and the MCP server.

Key frontend features:

  • Repeating layer groups — wrap layers into groups repeated N times or until beam energy drops below a threshold
  • Undo/redo — Cmd+Z / Cmd+Shift+Z with 50-deep history
  • Simulation mode — Auto (live) or Manual (run on demand) with status indicator
  • URL sharing + sessions — full config (including groups) encoded in URL hash; session tabs persist across reloads
  • Isotope filter — shared filter bar above activity plots and activity table

Install channels

HYRR ships through one channel per surface. Pick the one that matches what you actually want:

You want… Use Command
The desktop GUI GitHub Releases Download installer (.dmg / .msi / .deb / .AppImage)
The MCP server, no GUI uvx (PyPI) claude mcp add hyrr -- uvx hyrr-mcp
The MCP server, already have desktop desktop binary claude mcp add hyrr -- /Applications/HYRR.app/Contents/MacOS/hyrr --mcp
The Python library pip / uv pip install hyrr
The browser app static GitHub Pages hyrr.app
Build the MCP from source (devs) cargo, from a checkout cd hyrr-mcp && cargo build --release./target/release/hyrr-mcp

See docs/adr/0001-mcp-single-ssot-and-install-channels.md for the rationale behind the split.

MCP Server

Agent-driven irradiation analysis via the Model Context Protocol. All entry points share the same Rust codepath (core/src/mcp/) — adding a tool means editing one file and every surface picks it up on next build.

Tools: simulate, list_materials, list_reaction_channels, get_decay_data, compare_simulations, get_stack_energy_budget, get_stopping_power, get_isotope_production_curve. Every response footer carries *Library: <id>* so agents see which nuclear data fed the calculation.

Desktop App

Download — available for Windows, macOS (Apple Silicon & Intel), and Linux.

The desktop app (desktop/) wraps the same frontend in a native window using Tauri v2. All nuclear data (~68 MB Parquet) is bundled, so it works fully offline on air-gapped machines. Built with the system webview — the installer is ~15 MB.

Platform Artifact
Windows 10+ .msi installer + .exe (NSIS)
macOS 10.15+ .dmg (Apple Silicon) / .dmg (Intel)
Ubuntu 22.04+ .deb + .AppImage

Releases are built automatically via GitHub Actions on version tags (v*).

Development

git clone --recurse-submodules https://github.com/exoma-ch/hyrr.git
cd hyrr
uv sync --all-extras
uv run pytest

Frontend:

cd frontend
npm ci
npm run dev
npm test          # vitest
npm run check     # svelte-check (TypeScript)

Desktop (requires Tauri CLI and Rust):

npm install -g @tauri-apps/cli
cd desktop && npx tauri dev

Contributing

  1. Fork and create a feature branch
  2. Python: uv sync --all-extras, then uv run pytest and uv run ruff check src/
  3. Frontend: cd frontend && npm ci, then npm test and npm run check
  4. Commit format: type(scope): description
  5. Open a PR against main

Dependencies

  • numpy, scipy — numerics
  • polars — data access (Parquet backend)
  • matplotlib — plotting
  • py-mat — material definitions
  • nucl-parquet — evaluated nuclear data (TENDL, ENDF/B, JENDL, JEFF, EXFOR)

About eXoma

eXomaExotic Matter Applications — is a research group at ETH Zürich focused on novel radioisotope production methods and targetry.

License & legal

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyrr-0.20.0.tar.gz (5.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyrr-0.20.0-py3-none-any.whl (71.0 kB view details)

Uploaded Python 3

File details

Details for the file hyrr-0.20.0.tar.gz.

File metadata

  • Download URL: hyrr-0.20.0.tar.gz
  • Upload date:
  • Size: 5.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hyrr-0.20.0.tar.gz
Algorithm Hash digest
SHA256 e1289c8c9d7897d59cedeee6426bbb151a4ea2719ee7465b7120b5902b3ca73f
MD5 17f866b26271145161323fa911873a8b
BLAKE2b-256 da33932d6da2e0d736584d30bd9eeb2fcdeb00b06bce730f875253fe0812b287

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyrr-0.20.0.tar.gz:

Publisher: release.yml on exoma-ch/hyrr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hyrr-0.20.0-py3-none-any.whl.

File metadata

  • Download URL: hyrr-0.20.0-py3-none-any.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hyrr-0.20.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd62ab8290ce992553c98417ad9ee5532e9b769a29357f2cc1392c41fc25b110
MD5 5dd64903555a9c51c692b668da2ee040
BLAKE2b-256 c1db637028e513a0ea3f78a00025bcbd31bad84d13231a8cdf07bf2698dea678

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyrr-0.20.0-py3-none-any.whl:

Publisher: release.yml on exoma-ch/hyrr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.21.1

2 files

0.21.0

2 files

0.20.1

2 files

This release

0.20.0 This release

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.3

2 files

0.16.2

2 files

0.16.1

2 files

0.16.0

2 files

0.15.1

2 files

0.15.0

2 files

0.12.1

2 files

0.12.0

2 files

0.11.3

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.1

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.2.0

2 files

0.1.3

2 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