Skip to content

Releases: gemc/src

Dev Nightly

01 Jun 06:33

Choose a tag to compare

Dev Nightly Pre-release
Pre-release

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...
Read more

0.2

21 May 12:37

Choose a tag to compare

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.sh and gemc.csh environment setup scripts so users
    can source one file to configure PATH, library paths, and PYTHONPATH.
    The scripts add both the installed bin and api directories to PATH,
    since the api directory 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


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.sh for 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 g4view option 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.sh and gemc.csh environment setup scripts that configure
    PATH, library paths, and PYTHONPATH, including the installed api directory
    on PATH
  • Cleaned up Meson test behavior by fixing duplicate test names and making
    ROOT-dependent tests conditional on ROOT availability
  • Used $SIM_HOME instead of $GEMC for installation paths
  • Preloaded streamer plugins before Geant4 creates worker threads
  • gemc.cc preloads only the streamers that are configured.
  • Temporarily protected explicit G4VisExecutive teardown 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 gparticles events 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_template to provide simpler geometry and methane target material
  • Adjusted simple_flux target material to G4_lH2
  • Added handling of style=2 in PyVista by using cloud rendering
  • Fixed wireframe rendering in PyVista
  • Improved the PyVista example
  • Added the g4light option to g4camera to set the light direction
  • Fixed not assigning optical properties to materials when they were set to zero

0.1

29 Apr 20:14

Choose a tag to compare

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 dev release
  • 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