Releases: gemc/src
Releases · gemc/src
Dev Nightly
Commits on main since 2026-05-21
- 2026-05-21 e951ec7 — dev date change and better 0.2 release notes (by Maurizio Ungaro)
0.2
This version includes:
- Support for the LUND generator format
- Installed environment setup scripts for easier GEMC usage
- Python analyzer
- Additional examples
- Jupyter support
- Various bug fixes and improvements
Release notes
- Cleaned up registry container names and improved the CI summary
- Added a more robust algorithm to determine the GEMC version from the GitHub tag
- Updated Assimp to 6.0.5
- Added examples:
- Simple_Flux
- Materials
- PyVista
- Cherenkov
New developments
- Support for the LUND generator format through the generator factory. Events are distributed over Geant4 threads.
- Installed the Python analyzer package alongside GEMC.
- Added Jupyter support for the examples and quickstart.
- Added installed
gemc.shandgemc.cshenvironment setup scripts so users
can source one file to configurePATH, library paths, andPYTHONPATH.
The scripts add both the installedbinandapidirectories toPATH,
since theapidirectory includes executables. - Added VTK export to the API. This requires the optional PyVista Jupyter extras:
pip install "pyvista[jupyter]". - Included various bug fixes and improvements.
Addressed issues
- Issue #87: Support the LUND generator format
- Issue #83: Install environment setup scripts
- Issue #82: Add analyzer scripts
- Issue #81: Fix Cherenkov bug and add example (thanks to Zhiwen)
- Issue #79: Add Jupyter support
Supported platforms
Both x86_64 and ARM64 platforms are supported.
- macOS: 26
- Ubuntu: 24.04
- AlmaLinux: 9.4
- Fedora: 42
- Debian: 13
- Arch Linux: latest
Dependencies
- Geant4: 11.4.1 or higher
- CLHEP: 2.4.6.0 or higher
- Xerces-C: 3.2 or higher
Detailed list of changes and fixes
- Changed Docker image names by removing the Geant4 version
- Removed Docker build from the workflow summary
- Used
ci/gemc_version.shfor both the Meson project version and the GEMC version.
Uses the tag name to determine the version - Added optical properties and moved material routines in
g4materials.cc - Fixed CI tests not exiting after failures
- Fixed the Python API not resetting ASCII files for new variations
- Fixed
g4viewoption help - Added a screenshot boolean and function in
GRunAction::EndOfRunAction - Added cloud style for volumes (
0=wireframe,1=solid,2=cloud) - YAML files are more consistent across examples
- Installed the Python analyzer package alongside GEMC, matching the existing installed API layout.
- Added installed
gemc.shandgemc.cshenvironment setup scripts that configure
PATH, library paths, andPYTHONPATH, including the installedapidirectory
onPATH - Cleaned up Meson test behavior by fixing duplicate test names and making
ROOT-dependent tests conditional on ROOT availability - Used
$SIM_HOMEinstead of$GEMCfor installation paths - Preloaded streamer plugins before Geant4 creates worker threads
gemc.ccpreloads only the streamers that are configured.- Temporarily protected explicit
G4VisExecutiveteardown on Linux. This is a possible
Geant4 bug: a double-free in a process-wide G4Colour map during static destruction - Added a workaround for UndefinedBehaviorSanitizer on Linux by using
LD_PRELOAD - Used common library and OS/version definitions for deployment and sanitizer workflows
- Made CI workflow job names more consistent
- Added the LUND input format through
gmanager - Distributed LUND events and
gparticlesevents to Geant4 threads - Added VTK capabilities: examples now display the interactive view
- Added vertex information to true and digitized data
- Fixed a missing closing brace in the JSON format
- Adjusted
system_templateto provide simpler geometry and methane target material - Adjusted
simple_fluxtarget material toG4_lH2 - Added handling of
style=2in PyVista by using cloud rendering - Fixed wireframe rendering in PyVista
- Improved the PyVista example
- Added the
g4lightoption tog4camerato set the light direction - Fixed not assigning optical properties to materials when they were set to zero
0.1
The code is stable enough at this point to call this a release.
Release notes
The core of GEMC is now complete and includes:
- Python API to create geometry and materials
- Support for ASCII, SQLite, GDML, CAD meshes volume imports
- Custom extensibility of digitization, output formats, electro-magnetic fields
- Built-in dosimeter, flux, particle_counter
- Built-in ASCII, CSV, JSON, ROOT output
- PyVista 3D visualization
Two examples are provided that reproduce the Geant4 basic examples B1 and B2.
The CI workflow includes:
- Code deployment and testing
- A nightly
devrelease - Homepage and Doxygen documentation
- Sanitizer checks
- CodeQL analysis
Issues Addressed
- [#21]: Complete multipole fields implementation
- [#25]: add g4 dialog with search capabilities
- [#34]: SQLite database support.
- [#29]: new class logger
- [#23]: complete B1 example
- [#1]: Update homepage
- [#19]: Add doxygen
- [#50]: simplify goptions command line
- [#51]: use verbosity and options in meson.build
- [#60]: revisit i_test meson option
- [#68]: add JSON output format
- [#67]: gdata flow not clear
- [#44]: all options help consistency
- [#69]: add detector tree viewer
- [#26]: add csv output
- [#37]: add B2 example
- [#53]: each subclass should instantiate its own logger
Supported platforms
Both AMD and ARM processors are supported.
- macOS: 26
- Ubuntu: 24.04
- AlmaLinux: 9.4
- Fedora: 42
- Debian: 13
- ArchLinux: latest
Dependencies
- Geant4: 11.4.1 or higher
- CLHEP: 2.4.6.0 or higher
- Xerces-C: 3.2 or higher