APIs, libraries, external data sources, and copyright references
A community-developed Monte Carlo neutron and photon transport simulation code. It is utilized in our backend to model complex geometry shielding and calculate the photon energy spectrum using exact physical principles.
Custom-built analytical solver for fast radiation shielding calculations. Integrates point kernels over 6 source geometries (point, line, disk, cylinder, sphere, slab) via JIT-compiled numerical quadrature. Incorporates GP-fitting buildup factors (ANSI/ANS-6.4.3) for scattered photon contributions. Accelerated by Numba.
Python package for radioactive decay modelling supporting 1252 radionuclides, full decay chains, branching ratios, and metastable isomer states. Used in dose_engine/isotopes.py to compute exact half-lives and disambiguate isomers (e.g. Tc-99m vs Tc-99) when querying the IAEA Live Chart API. Bundled nuclear data from ICRP-107.
JIT (Just-In-Time) compiler translating annotated Python/NumPy functions to optimized native machine code via LLVM. Used with @numba.njit to accelerate critical integration loops in geometry.py for all 6 source geometries, yielding 10–100× speedup versus pure Python.
Fundamental package for scientific array computing in Python. Used throughout the dose engine and OpenMC model for vectorized attenuation coefficient interpolation, Gauss–Legendre quadrature grids, and multi-shield geometry array operations.
Fundamental algorithms for scientific computing in Python. Provides advanced numerical integration routines, interpolation, linear algebra, and signal-processing utilities. Used as a transitive dependency by radioactivedecay for decay chain matrix exponentiation.
A Python WSGI HTTP Server for UNIX. Serves the Flask application in production via systemd (doseshield.service), managing worker processes for concurrent user requests on port 5000.
A lightweight WSGI web application framework in Python. Handles HTTP routing via Blueprints (doseshield_bp, openmc_bp), Jinja2 template rendering, and all JSON API endpoints (/api/calculate, /api/nuclides, /api/decay_lines).
A popular and flexible JavaScript charting library. Powers our visualization of the photon energy spectra (OpenMC output), dose vs. shield thickness curves, multi-layer attenuation profiles, and dose rate vs. distance charts.
Beautiful, consistent, community-maintained open-source icon library. Used throughout the dashboard for all UI controls, labels, and navigation elements (shield-alert, cpu, database, sliders, activity icons, etc.).
NIST photon cross-sections database providing μ/ρ (cm²/g) tabulated for 30+ shielding materials (water, concrete, iron, lead, aluminium, tungsten, uranium…) over 50 keV – 10 MeV. Hardcoded into dose_engine/physics.py → MU_RHO for 13 discrete energies.
Photon fluence-to-ambient dose equivalent H*(10) conversion coefficients (pSv·cm²) for energies 10 keV – 10 MeV. Used to convert computed photon fluence rates (γ/cm²·s) into practical dose rates (μSv/h). Implemented as the ICRP74_H10_CONVERSION lookup table in dose_engine/physics.py, with factor 3.6×10⁻³ (pSv/s → μSv/h).
Geometric-Progression (GP) empirical fitting parameters (b, c, a, xk, d) for gamma-ray buildup factors in water, concrete, iron, and lead. Stored in dose_engine/physics.py → BERGER_PARAMS and evaluated by buildup_gp.py → calculate_gp_buildup() for scattered-photon dose contributions.
Online REST API queried at runtime to retrieve discrete gamma emission lines (energy MeV, intensity %) for any radionuclide absent from the local cache. Endpoint: nds.iaea.org/relnsd/v1/data?fields=decay_rads&rad_types=g. Called from dose_engine/isotopes.py → get_nuclide_gammas() with a 5 s timeout and automatic fallback to the local JSON cache.
Comprehensive decay data for 1252 radionuclides: half-lives, decay modes, branching fractions, and daughter products. Bundled within the radioactivedecay Python library. Used via rd.Nuclide(name).half_life() in isotopes.py to disambiguate isomeric states (e.g. Tc-99m vs Tc-99, Ba-137m vs Ba-137).
Evaluated Nuclear Data File library providing photon-atom cross sections for photoelectric absorption, coherent (Rayleigh) and incoherent (Compton) scattering, and pair production. Used directly by OpenMC for Monte Carlo photon transport and energy deposition scoring.