Skip to content

Releases: gemc/src

Dev Nightly

22 May 05:50

Choose a tag to compare

Dev Nightly Pre-release
Pre-release

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

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