Releases: gemc/src
Releases · gemc/src
Dev Nightly
Commits on main since 2026-05-21
- 2026-06-10 dfa79a6 — implemented empty drawlogical volume - until g4 will fix it (by Maurizio Ungaro)
- 2026-06-10 1d46bde — added button to set camera pars from view, and using defaults from g4camera (by Maurizio Ungaro)
- 2026-06-10 3aae78c — updated example cameras and some colors (by Maurizio Ungaro)
- 2026-06-10 5e1f41b — fixed overwrite of viewpointThetaPhi (by Maurizio Ungaro)
- 2026-06-10 f8ef968 — added pmaker gui for gparticles and with hooks to gaction. added scintillator barrel example, adjusted volume par gui (by Maurizio Ungaro)
- 2026-06-10 c413731 — added svg for pmaker (by Maurizio Ungaro)
- 2026-06-09 86ffb1e — internal_link_with is now computed before library (by Maurizio Ungaro)
- 2026-06-09 4d47403 — using shared for qt in sanitizers (by Maurizio Ungaro)
- 2026-06-09 0bd3238 — adding zlib_dep to example executables (by Maurizio Ungaro)
- 2026-06-09 ff9191c — testing static build for sanitizer only (by Maurizio Ungaro)
- 2026-06-09 bf40843 — testing simplified workflow (by Maurizio Ungaro)
- 2026-06-09 dacaca1 — removed hitbit set, storing all vars (by Maurizio Ungaro)
- 2026-06-09 c1b75db — added true information vars (by Maurizio Ungaro)
- 2026-06-09 2536e09 — Pre-parse plugin options hook for dynamic plugin option registration (by Maurizio Ungaro)
- 2026-06-09 c5e743b — fixed field options loading plugin path (by Maurizio Ungaro)
- 2026-06-09 fde83ef — utility functions (by Maurizio Ungaro)
- 2026-06-09 9c8ddec — documenting processGTouchableModifiersImpl (by Maurizio Ungaro)
- 2026-06-08 f6ec9c2 — added GEMC_PLUGIN_PATH and fixed case where nullptr for GDigitizedData was not picked up in gEventAction.cc (by Maurizio Ungaro)
- 2026-06-08 81da0ee — less aggressive images cleanup and added explicit units in gparticle (by Maurizio Ungaro)
- 2026-06-06 e0aa4e4 — testing new test deploy and binary workflow (by Maurizio Ungaro)
- 2026-06-06 5cc9897 — Merge pull request #140 from Jah-yee/main (by Mauri)
- 2026-06-06 32a25c2 — fix: remove dead birkConstant branch in getMaterialPropertyFromString (by Jah-yee)
- 2026-06-05 b44333f — added passive and active g4placements, default to active (by Maurizio Ungaro)
- 2026-06-05 1f5d536 — gui tweaks and added inspection button (by Maurizio Ungaro)
- 2026-06-05 096ce27 — replaced view buttons with svg (by Maurizio Ungaro)
- 2026-06-05 2fb4662 — added color buttons for scale and frame, and cleaned up ui (by Maurizio Ungaro)
- 2026-06-05 dd4e36f — added description to gvolume (by Maurizio Ungaro)
- 2026-06-05 32227f9 — added center and twinkle button (by Maurizio Ungaro)
- 2026-06-05 ccd929f — moved g4dialog at the bottom in the src (by Maurizio Ungaro)
- 2026-06-05 af0bfc3 — moved g4dialog at the bottom (by Maurizio Ungaro)
- 2026-06-05 686151c — doxygen style was missing (by Maurizio Ungaro)
- 2026-06-05 62d9902 — default background color is white (by Maurizio Ungaro)
- 2026-06-04 5f8ce87 — move all modules under gemc/ and adopt <gemc/module/header.h> namespaced includes (by Maurizio Ungaro)
- 2026-06-04 821da1c — reload run fixed for different variations with the caviat that optical properties must be carried across reload (by Maurizio Ungaro)
- 2026-06-04 c642d6f — added rm->PhysicsHasBeenModified(); in case different materials are introduced (by Maurizio Ungaro)
- 2026-06-04 0bc6f56 — added additional db variations to setup (by Maurizio Ungaro)
- 2026-06-04 2c91e1c — added new gPhotonDetector routine, similar to flux but only records optical photons. it does not require recordZeroEdep to be set. cherenkov detector modified to use it (by Maurizio Ungaro)
- 2026-06-04 2addd73 — better images cleanup (by Maurizio Ungaro)
- 2026-06-04 03e8771 — new cleanup (by Maurizio Ungaro)
- 2026-06-04 460fb74 — fixed cleanup workflow and separated annotations in their own yaml (by Maurizio Ungaro)
- 2026-06-03 67ca363 — added text, scale, frame, date and id (by Maurizio Ungaro)
- 2026-06-03 36f31f6 — added decorations, modified B1 accordingly, redraw visualization scene for GUI decoration updates (by Maurizio Ungaro)
- 2026-06-03 e5fabf3 — added decorations, modified B1 accordingly, redraw visualization scene for GUI decoration updates (by Maurizio Ungaro)
- 2026-06-03 feafac7 — Add yaml and display control for cloud point count and background color (by Maurizio Ungaro)
- 2026-06-03 81728ea — Avoid zsh reserved status variable in test retry helper (by Maurizio Ungaro)
- 2026-06-03 d8e7c2a — splash theme, geometry tweaks, addressed sanitizer and testing retry meson tests in the workflows (by Maurizio Ungaro)
- 2026-06-03 18d686c — Skip examples DB generation when Python env is unavailable (by Maurizio Ungaro)
- 2026-06-03 e48e61d — Resize setup tree columns after initial population (by Maurizio Ungaro)
- 2026-06-03 2c44785 — Clear accumulated event drawings on geometry reload (by Maurizio Ungaro)
- 2026-06-03 f41e923 — use theme aware splash (by Maurizio Ungaro)
- 2026-06-03 8baeab5 — Use Qt palette colors for GUI theme compatibility (by Maurizio Ungaro)
- 2026-06-03 708d134 — Add configurable splash screen scale (by Maurizio Ungaro)
- 2026-06-02 0f64271 — several changes to address geometry reload and run (by Maurizio Ungaro)
- 2026-06-02 1ca2aac — Generate examples database during install (by Maurizio Ungaro)
- 2026-06-02 27ff1e7 — Use build-tree databases for module tests (by Maurizio Ungaro)
- 2026-06-02 da5f632 — Run geometry test databases from build tree (by Maurizio Ungaro)
- 2026-06-02 c1c7797 — Normalize GUI board line endings explicitly (by Maurizio Ungaro)
- 2026-06-02 eb7683e — Defer GUI initialization until selected geometry is loaded (by Maurizio Ungaro)
- 2026-06-02 6af924e — Add runtime option update helper (by Maurizio Ungaro)
- 2026-06-02 200723f — Add reload lifecycle signal and regression test (by Maurizio Ungaro)
- 2026-06-02 09d6e3f — Clear GUI visualization state before geometry reload (by Maurizio Ungaro)
- 2026-06-02 6950a85 — Fix detector geometry reload state and sensitive detector reuse (by Maurizio Ungaro)
- 2026-06-02 b3aeb3b — Reset reused sensitive detector state on geometry reload (by Maurizio Ungaro)
- 2026-06-02 47fcd09 — extended spash time (by Maurizio Ungaro)
- 2026-06-02 5bd7602 — reloading if system is empty (by Maurizio Ungaro)
- 2026-06-02 5bb6ed4 — Keep GUI independent from GEMC startup utilities (by Maurizio Ungaro)
- 2026-06-02 a1f578d — Refresh GUI volume tree after setup reload - using gemcArchitecture.svg and added gsplash option to control gsplash timing (by Maurizio Ungaro)
- 2026-06-02 2452670 — Clean up CI labels and Node 24 workflow settings (by Maurizio Ungaro)
- 2026-06-02 ab33920 — added workflow binary_tarballs.yml (by Maurizio Ungaro)
- 2026-06-02 2ffc46a — new workflow does tarballs release and tests (by Maurizio Ungaro)
- 2026-06-02 5683bbd — Update 0.3 release notes for binary tarballs and Isolated ROOT linkage to the ROOT gstreamer plugin (by Maurizio Ungaro)
- 2026-06-01 34dc8ea — Use explicit repo for dev release tarball upload (by Maurizio Ungaro)
- 2026-06-01 c10719f — Initialize Geant4 data vars before packaging (by Maurizio Ungaro)
- 2026-06-01 b53ae13 — created binary tarballs that attach to the dev release. (by Maurizio Ungaro)
- 2026-05-29 d69d291 — skip CI workflows for LICENSE changes alongside other governance docs (by Maurizio Ungaro)
- 2026-05-29 602e61e — fixed LICENSE.md and improved release notes (by Maurizio Ungaro)
- 2026-05-29 17ea75f — Add analyzer y-vs-x CLI tests and v0.3.0 notes (by Maurizio Ungaro)
- 2026-05-28 5c992e7 — readme update (by Maurizio Ungaro)
- 2026-05-28 ab32acb — added pygemc badge (by Maurizio Ungaro)
- 2026-05-28 1e5f164 — updated documents and workflow to skip md updates (by Maurizio Ungaro)
- 2026-05-28 165d2b3 — do not run workflow on README changers and better examples thumbnails (by Maurizio Ungaro)
- 2026-05-28 97942f5 — Update GEMC license coverage to 2026 (by Maurizio Ungaro)
- 2026-05-28 f8f4c1b — updated README (by Maurizio Ungaro)
- 2026-05-27 b03e579 — set run-name for workflow_dispatch in dockers_deploy_and_test.yml (by Maurizio Ungaro)
- 2026-05-27 09b4472 — added workflow_dispatch (by Maurizio Ungaro)
- 2026-05-25 82ad331 — removed alma patch, should work now (by Maurizio Ungaro)
- 2026-05-25 c5e9a6a — giving up on alma9 for gemc3 (by Maurizio Ungaro)
- 2026-05-25 cee8a01 — testing alma9 fix (by Maurizio Ungaro)
- 2026-05-25 f0fea15 — testing hatch-vcs for alma distros (by Maurizio Ungaro)
- 2026-05-25 e09e582 — conditional build-isolation (by Maurizio Ungaro)
- 2026-05-25 ef45ded — restoring no-build-isolation (by Maurizio Ungaro)
- 2026-05-24 3e7c1ec — test skipp pygemc in codeql and sanitize ci (by Maurizio Ungaro)
- 2026-05-24 5dfdc95 — testing lower memory fixes for alma (by Maurizio Ungaro)
- 2026-05-24 f91d8b0 — fixed sanitize test and testing cache for alma9 failure (by Maurizio Ungaro)
- 2026-05-24 f8582d7 — testing the new tags (by Maurizio Ungaro)
- 2026-05-23 e68e1c1 — testing no depth on pygen (by Maurizio Ungaro)
- 2026-05-23 fafd3f7 — codeql missing venv and build error check failure fix (by Maurizio Ungaro)
- 2026-05-23 50429da — pygemc installed on meson install (by Maurizio Ungaro)
- 2026-05-23 24f0a5e — Two-venv architecture: build-tree venv for tests, prefix venv at install time (by Maurizio Ungaro)
- 2026-05-22 8568dde — dockerfile updated to use pygemc - pushing this to test the ci _(by Maurizio U...
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