There is a newer version of the record available.

Published March 31, 2026 | Version v2
Software Open

guv-calcs v0.6.0: An open-source Python library for modeling germicidal UV in indoor environments

Contributors

Description

guv-calcs is an open-source Python scientific computing library for physically based modeling of germicidal ultraviolet (GUV) light in indoor environments, with a focus on far-UVC (200–235 nm) applications. The library provides core numerical tools for representing lamps, spatial geometry, calculation planes and volumes, and exposure metrics such as irradiance, fluence rate, and cumulative dose.

The package implements vectorized radiative transfer calculations using measured photometric data (IES/ULD files), supports flexible three-dimensional room geometries, and is designed for integration with higher-level tools such as visualization dashboards, airflow models, and risk frameworks for airborne pathogen control. The codebase emphasizes reproducibility, transparency, and modularity so that researchers, engineers, and manufacturers can inspect, extend, and validate the underlying calculations.

guv-calcs forms the computational backbone of the broader Illuminate ecosystem, but is usable as a standalone library for custom analyses, batch simulations, and method development. The project aims to improve rigor and accessibility in far-UVC modeling by providing a free, auditable, and community-maintained alternative to proprietary software.

v0.6.0 Release Notes

Added

  • Polygonal room support (polygon rooms, volgrids, calcplanes)
  • Multi-room interface
  • Millimeter unit support
  • Lamp fixture plotting
  • Wavelength and survival plots
  • Strain/subspecies filtering with permissive aliasing
  • Renamed Data -> InactivationData

Changed

  • Beefed up lamp placement algorithm with fixture-aware bounding boxes
  • Refactored lamp geometry into separate components
  • Consolidated polygrid and Registry classes
  • Broke out calc_zone, geometry, and io into separate submodules
  • Removed dead code, extracted shared from_dict utility
  • Replaced face_data tuples with NamedTuples
  • Unified enum from_any boilerplate
  • Spectrum is now immutable dataclass
  • Renamed spectra -> spectrum
  • Simplified efficacy module
  • All rooms are polygons internally; scene dummied out

Fixed

  • Serialization bugfix for polygon rooms
  • Plotting concave polygon plane values
  • Lamp placement in edge mode and correct orientation
  • Lamp placement logic with bounding boxes outside of rooms
  • Type mixing bugfix

Files

jvbelenky/guv-calcs-v0.6.0.zip

Files (1.5 MB)

Name Size Download all
md5:6311140f0f272a4f428b9da9680b8427
1.5 MB Preview Download