gVXR: Training and Mini-Hackathon


First day of Advanced Imaging and Data Analysis (AIDA) gVXR + CIL + qim3d Training and Mini-Hackathon.

Day 1 (Tuesday 10 November 2026) is a hands-on workshop that introduces gVXR (gVirtualXray), an open-source X-ray simulation framework that uses GPU-accelerated implementations of the Beer-Lambert law to generate realistic radiographs and CT projection data in real time. Participants will learn how to build virtual X-ray experiments, simulate CT acquisitions, and create synthetic datasets for imaging research and development.

The training concludes with a mini-hackathon where participants will apply the techniques covered during the tutorials to solve practical imaging problems and explore their own research ideas.


Description

This workshop provides an introduction to simulation-based X-ray imaging using gVXR.

Participants will learn how to:

  • Create virtual X-ray imaging setups;
  • Define X-ray sources and detectors;
  • Model samples using surface meshes and voxelised data;
  • Simulate realistic radiographs and CT acquisitions;
  • Explore the effects of beam energy, filtration, and detector properties;
  • Generate synthetic datasets for algorithm development and machine learning;
  • Use simulation to support experiment planning and digital twinning.

The focus is on practical workflows and hands-on exercises using Python and Jupyter notebooks.


Who this workshop is for

This workshop is aimed at:

  • Researchers working with X-ray imaging or tomography;
  • Scientists planning imaging experiments;
  • Developers building image analysis or reconstruction pipelines;
  • Researchers and engineers interested in synthetic data generation for image segmentation and analysis with machine learning;
  • Students interested in computational imaging;
  • Anyone curious about simulation-driven imaging workflows.

Learning Objectives

By the end of this workshop, participants will be able to:

  1. Understand the principles and applications of gVXR

    1. Explain what gVXR (gVirtualXray) is and why it was developed;
    2. Describe how gVXR is used in:
      • Research;
      • Education;
      • Digital twinning;
      • Experiment planning;
      • Machine learning and AI.
  2. Understand the physical foundations of X-ray image simulation

    1. Explain the Beer-Lambert attenuation law;
    2. Describe how X-ray attenuation depends on material composition, density, and thickness;
    3. Explain how gVXR models X-ray image formation.
  3. Understand the capabilities and limitations of gVXR

    1. Identify the types of samples that can be simulated;
    2. Describe the main built-in functionalities, including:
      • Material modelling;
      • Source modelling;
      • Detector modelling;
      • Spectra generation;
      • 3D visualisation;
      • CT simulation;
    3. Understand how realistic imaging effects such as polychromatism, scintillation, blur, and noise are modelled;
    4. Understand how gVXR has been validated against experiments and other simulation methods.
  4. Build and simulate virtual X-ray experiments

    1. Define sources, detectors, samples, and acquisition geometries;
    2. Generate realistic radiographs;
    3. Simulate complete CT acquisitions;
    4. Generate synthetic datasets for downstream analysis.
  5. Use gVXR in practice

    1. Create reproducible workflows using Python and Jupyter notebooks;
    2. Use gVXR for experiment planning and digital twinning;
    3. Apply gVXR to practical imaging challenges during the mini-hackathon.
  6. Discover advanced and alternative ways of using gVXR

    1. Use gVXR through multiple programming languages and interfaces;
    2. Build simulation workflows using JSON scene descriptions and WebCT;
    3. Integrate gVXR into scientific imaging, image-analysis, and machine-learning workflows.

Pre-requisites

  • Basic knowledge of X-ray imaging is helpful but not required;
  • Some familiarity with Python is beneficial;
  • No previous experience with gVXR is necessary.

Practical Requirements

Participants should bring a laptop for the day.

The practical exercises will be delivered through a cloud-based platform, so no software installation is required during the training.

Exercises will be provided as Jupyter notebooks and Python scripts, allowing participants to reproduce the material on their own computers after the event. They are available from the gVXR Tutorials repository:

Reproducing the training at home

Instructions to install gVXR locally using Conda or pip are provided in this repository for participants wishing to repeat the exercises at home on Windows, or GNU/Linux.


Schedule

Time Session Topics
09:00 - 12:15 Introduction to gVXR and Hands-on Exercises • What is gVXR and what do people do with it?
• What can we image?
• Beer-Lambert attenuation law
• Main built-in functionalities
• Validation of gVXR
• Simulating radiographic and CT acquisitions
• Guided hands-on exercises

Coffee break / fika included
12:15 - 13:00 Lunch
13:00 - 15:00 ESS Tour Visit of the European Spallation Source (ESS) facilities
15:00 - 16:30 Hands-on Exercises and Mini-Hackathon • How to use gVXR in practice
• Choose a challenge and form a team
• Mini-hackathon
• Instructor-led discussions and support

Coffee break / fika included
16:30 - 17:00 Show-and-Tell • One slide per team: question, method, result, takeaway
17:00 - 19:00 Posters and Pizza Networking, discussions, and poster session

Mini-hackathon

The training concludes with a mini-hackathon. The aim is to leave with a result you can show, not just a notebook you ran.

Participants pick a challenge (or bring their own), form small teams (1-3 people), build and iterate with gVXR, and present their result in a short show-and-tell.

Track Participants will… …and show
A. CT artefact lab Create, quantify and reduce CT artefacts: noise, blur, beam hardening, photon starvation, undersampling A gallery of artefacts and the settings that cause or cure them
B. Digital twin Build a digital twin of their own scanner, or improve an existing one Real vs simulated images, side by side
C. Synthetic data for AI Generate a labelled dataset with controlled variability A dataset and a first trained model or analysis
D. Bring your own problem Apply gVXR to their own research question A feasibility or “what-if” study

Every team delivers:

  • One figure or short animation that tells the story;
  • A reproducible setup: a JSON file or a notebook anyone can re-run;
  • One finding: what did the simulation teach you?;
  • Their work shared on GitHub (or as a zip) so others can reuse it.

For track D, bring a mesh (STL), a segmented volume, or a description of your scanner and sample.


Training Notebooks

# Notebook Topic Description
1 test_installation.ipynb Installation and validation Verify that gVXR is correctly installed and that the graphics environment is working.
2 first_xray_simulation.ipynb First X-ray simulation Create a first radiograph using a monochromatic source, an ideal detector, and a simple sample.
3 numpy_integration.ipynb NumPy integration Access simulated data efficiently using NumPy arrays and avoid unnecessary memory copies.
4 multi_material-lungman_phantom.ipynb Multi-material samples Create realistic simulations using multiple STL files and reproduce a clinical radiograph of the Lungman anthropomorphic chest phantom.
5 polychromatism.ipynb X-ray spectra and filtration Simulate realistic X-ray tube spectra, investigate filtration, and visualise spectra.
6 scintillation.ipynb Detector modelling Model scintillator-based detectors and study their energy response.
7 visualisation.ipynb 3D visualisation Explore the simulation environment using K3D widgets, gVXR’s own ViewerPanel Jupyter widget, static renderings, and interactive 3D windows.
8 magnification-simulation.ipynb CT simulation and imaging geometry Investigate magnification, source-to-detector distance, image noise, and the impact of acquisition parameters on CT imaging.
9 magnification-reconstruction.ipynb CT reconstruction and artefact analysis Reconstruct CT data using CIL, analyse artefacts, and evaluate image quality.
10 segmentation-to-CT_scan-simulation.ipynb Segmentation to simulation Generate CT projection data and reconstructions from segmented images used as virtual phantoms.
11 simulated_data_generation.py Simulation to machine learning Generate large synthetic datasets and labels for machine learning, segmentation, and image-analysis workflows.