Hierarchical Yield and Radionuclide Rates — isotope production in stacked target assemblies
Project description
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.
Try it now — full simulation runs in the browser, no install, no data leaves your machine.
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.
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)
Contributing
- Fork and create a feature branch
- Python:
uv sync --all-extras, thenuv run pytestanduv run ruff check src/ - Frontend:
cd frontend && npm ci, thennpm testandnpm run check - Commit format:
type(scope): description - 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
eXoma — Exotic Matter Applications — is a research group at ETH Zürich focused on novel radioisotope production methods and targetry.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hyrr-0.1.3.tar.gz.
File metadata
- Download URL: hyrr-0.1.3.tar.gz
- Upload date:
- Size: 67.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31b693d691726d0492848a63260d207803d74ac404fbba9331d73ab272441c93
|
|
| MD5 |
465bc62dc8d3173c1943c297cb766342
|
|
| BLAKE2b-256 |
bceb94a9acc4e47105f4449e327685e79174ce27d5250efde0633268e6b28a61
|
Provenance
The following attestation bundles were made for hyrr-0.1.3.tar.gz:
Publisher:
release.yml on exoma-ch/hyrr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyrr-0.1.3.tar.gz -
Subject digest:
31b693d691726d0492848a63260d207803d74ac404fbba9331d73ab272441c93 - Sigstore transparency entry: 1110034854
- Sigstore integration time:
-
Permalink:
exoma-ch/hyrr@5a1ec04e1029bc788752f6e342845bba3ae8af6b -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/exoma-ch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5a1ec04e1029bc788752f6e342845bba3ae8af6b -
Trigger Event:
push
-
Statement type:
File details
Details for the file hyrr-0.1.3-py3-none-any.whl.
File metadata
- Download URL: hyrr-0.1.3-py3-none-any.whl
- Upload date:
- Size: 79.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1420d1e1098d408226d9238a1ef33a5ec59f204ed5a3547f54b3b552ce3a3f6b
|
|
| MD5 |
fa716ec96cee0f1340f5765ab8b8e424
|
|
| BLAKE2b-256 |
61f9cd86326fae35a1bf42331ff922f2c9a6bbebb6de45f292c540fb525cc0ed
|
Provenance
The following attestation bundles were made for hyrr-0.1.3-py3-none-any.whl:
Publisher:
release.yml on exoma-ch/hyrr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyrr-0.1.3-py3-none-any.whl -
Subject digest:
1420d1e1098d408226d9238a1ef33a5ec59f204ed5a3547f54b3b552ce3a3f6b - Sigstore transparency entry: 1110034861
- Sigstore integration time:
-
Permalink:
exoma-ch/hyrr@5a1ec04e1029bc788752f6e342845bba3ae8af6b -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/exoma-ch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5a1ec04e1029bc788752f6e342845bba3ae8af6b -
Trigger Event:
push
-
Statement type: