Skip to content

HYRR

Hierarchical Yield and Radionuclide Rates

A pure Python package and browser app for predicting radio-isotope production in stacked target assemblies.

Launch the web app — runs entirely in the browser, no install needed. | Desktop app — Windows, macOS, Linux, works offline.

Features

  • Table-based stopping powers — NIST PSTAR/ASTAR reference data instead of bare Bethe-Bloch
  • Compound materials — Bragg additivity for any material composition via py-mat
  • Stacked layer geometries — beam propagation through windows, targets, degraders, backings
  • Repeating layer groups — repeat a layer set N times or until beam energy drops below a threshold
  • Depth profiles — spatially resolved heat deposition and activity distributions
  • Parquet data store — fast columnar lookups via Polars, replaces 547,000 text files
  • Pure Python — no Fortran compiler, no container, uv add hyrr
  • Browser frontend — Svelte 5 + TypeScript with a pure-TS physics engine, zero backend
  • Desktop app — Tauri v2 native wrapper, all data bundled, fully offline-capable
  • MCP server — agent-driven analysis via the Model Context Protocol (mcp/)

Performance

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

Significantly faster and lighter than Isotopia: pure NumPy/SciPy with Parquet-backed nuclear data, no heavy ORM or database server.

Quick Example

from hyrr.models import Beam, Element, Layer, TargetStack

beam = Beam(projectile="p", energy_MeV=16.0, current_mA=0.15)
mo100 = Element(symbol="Mo", Z=42, isotopes={100: 1.0})
target = Layer(
    density_g_cm3=10.22,
    elements=[(mo100, 1.0)],
    energy_out_MeV=12.0,
)
stack = TargetStack(beam=beam, layers=[target])

Or just use the web app — configure beams, layers, and enrichments in the UI and get results instantly.