Black Screen when running Example1

Geant4 Version: 11.3.2
Operating System: Ubuntu 25.04
_Compiler/Version:_14.2.0
_CMake Version:_3.31.6

I recently upgraded to ubuntu 25.04 from 24.04. Geant4 was running okay on my previous OS but on the new version, I’m having issues with visualization. I built geant4 from source and there was no error (x11 and qt both on). But when I tried to run example1, I am seeing a black screen. I tried rebuilding with either qt off and x11 on or qt on and x11 off but nothing seem to work. Here is the output of the visualization section. Any help is appreciated. I should also add that ccmake configuration says X11_xcb_xkb_INCLUDE_PATH X11_xcb_xkb_INCLUDE_PATH-NOTFOUND (in case this is relevant)

Visualization setting

/control/execute vis.mac

Macro file for the visualization setting in the initialization phase

of the B1 example when running in interactive mode

Specify a viewer, e.g., /vis/open OGL, or allow a system choice:

/vis/open
Default graphics system is: OGL (based on build flags).
Default window size hint is: 600x600-0+0 (based on G4VisManager initialisation).
Note: Parameters specified on the command line will override these defaults.
Use “vis/open” without parameters to get these defaults.
/vis/sceneHandler/create OGL
/vis/viewer/create ! ! 600x600-0+0
/vis/viewer/refresh

This chooses a graphics system (in order of priority):

- by argument in G4VisExecutive construction.

- by environment variable, G4VIS_DEFAULT_DRIVER.

- by information in ~/.g4session.

- by mode (batch/interactive) and if interactive, by your build flags.

See “Choosing a graphics viewer” in the Application Guide for details.

For example, with environment variable G4VIS_DEFAULT_DRIVER:

The format is []. Set this, e.g:

(bash) export G4VIS_DEFAULT_DRIVER=TSG

(tcsh) setenv G4VIS_DEFAULT_DRIVER OI

or on the command line, precede the app invocation, e.g:

G4VIS_DEFAULT_DRIVER=Vtk ./

The window-size-hint can optionally be added, e.g:

(bash) export G4VIS_DEFAULT_DRIVER=“OGLSX 1000x1000-0+0”

Other suggestions for G4VIS_DEFAULT_DRIVER (see list of registered

graphics systems printed at the start):

DAWNFILE: to create a .prim file suitable for viewing in DAWN.

HepRepFile: to create a .heprep file suitable for viewing in HepRApp.

VRML2FILE: to create a .wrl file suitable for viewing in a VRML viewer.

“TSG_OFFSCREEN 1200x1200”: to create an image file with TSG.

See the tsg_offscreen.mac in examples/basic/B5 for more commands

to change the file format, file name, picture size, etc.

Disable auto refresh and quieten vis messages whilst scene and

trajectories are established:

/vis/viewer/set/autoRefresh false
/vis/verbose errors
Visualization verbosity is now errors (2)

Draw geometry:

/vis/drawVolume
/vis/scene/create
/vis/scene/add/volume world -1 -1 none m 0 0 0 0 0 0
/vis/sceneHandler/attach

Specify view angle:

/vis/viewer/set/viewpointVector -1 0 0
/vis/viewer/set/lightsVector -1 0 0

Specify style (surface, wireframe, auxiliary edges,…)

/vis/viewer/set/style wireframe
/vis/viewer/set/auxiliaryEdge true
/vis/viewer/set/lineSegmentsPerCircle 100

Draw smooth trajectories at end of event, showing trajectory points

as markers 2 pixels wide:

/vis/scene/add/trajectories smooth
/tracking/storeTrajectory 2
Attributes available for modeling and filtering with
“/vis/modeling/trajectories/create/drawByAttribute” and
“/vis/filtering/trajectories/create/attributeFilter” commands:
G4TrajectoriesModel:
Event ID (EventID): G4int
Run ID (RunID): G4int
G4SmoothTrajectory:
Charge (Ch): unit: e+ (G4double)
Track ID (ID): G4int
Initial kinetic energy (IKE): G4BestUnit (G4double)
Initial momentum magnitude (IMag): G4BestUnit (G4double)
Initial momentum (IMom): G4BestUnit (G4ThreeVector)
No. of points (NTP): G4int
PDG Encoding (PDG): G4int
Parent ID (PID): G4int
Particle Name (PN): G4String
G4SmoothTrajectoryPoint:
Auxiliary Point Position (Aux): G4BestUnit (G4ThreeVector)
Step Position (Pos): G4BestUnit (G4ThreeVector)
/vis/scene/notifyHandlers
/vis/modeling/trajectories/create/drawByCharge
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
/vis/scene/notifyHandlers scene-0
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
/vis/scene/notifyHandlers scene-0

(if too many tracks cause core dump => /tracking/storeTrajectory 0)

Draw hits at end of event:

#/vis/scene/add/hits

To draw only gammas:

#/vis/filtering/trajectories/create/particleFilter
#/vis/filtering/trajectories/particleFilter-0/add gamma

To invert the above, drawing all particles except gammas,

keep the above two lines but also add:

#/vis/filtering/trajectories/particleFilter-0/invert true

Many other options are available with /vis/modeling and /vis/filtering.

For example, to select colour by particle ID:

#/vis/modeling/trajectories/create/drawByParticleID
#/vis/modeling/trajectories/drawByParticleID-0/default/setDrawStepPts true

To select or override default colours (note: e+ is blue by default):

#/vis/modeling/trajectories/list
#/vis/modeling/trajectories/drawByParticleID-0/set e+ yellow

To superimpose all of the events from a given run:

/vis/scene/endOfEventAction accumulate

Decorations

Name

/vis/set/textColour green
/vis/set/textLayout right
/vis/scene/add/text2D 0.9 -.9 24 ! ! exampleB1
/vis/scene/notifyHandlers

or, if your system does not support right-adjustment

#/vis/scene/add/text2D 0 -.9 24 ! ! exampleB1
/vis/set/textLayout
/vis/set/textColour

Axes, scale, etc.

/vis/scene/add/scale
/vis/scene/notifyHandlers
/vis/scene/add/axes
/vis/scene/notifyHandlers
/vis/scene/add/eventID
/vis/scene/notifyHandlers
/vis/scene/add/date
/vis/scene/notifyHandlers
/vis/scene/add/logo2D
/vis/scene/notifyHandlers
/vis/scene/add/logo
/vis/scene/notifyHandlers

Frame

/vis/set/colour red
/vis/set/lineWidth 2
/vis/scene/add/frame
/vis/scene/notifyHandlers
/vis/set/colour
/vis/set/lineWidth

Attach text to one edge of Shape1, with a small, fixed offset

/vis/scene/add/text 0 6 -4 cm 18 4 4 Shape1
/vis/scene/notifyHandlers

Attach text to one corner of Shape2, with a small, fixed offset

/vis/scene/add/text 6 7 10 cm 18 4 4 Shape2
/vis/scene/notifyHandlers

To get nice view

Make the “World” box invisible

/vis/geometry/set/visibility World 0 false
/vis/scene/notifyHandlers

“Envelope” is transparent blue to represent water

/vis/geometry/set/colour Envelope 0 0 0 1 .3
/vis/scene/notifyHandlers
/vis/viewer/set/style surface
/vis/viewer/set/hiddenMarker true
/vis/viewer/set/viewpointThetaPhi 120 150

Re-establish auto refreshing and verbosity:

/vis/viewer/set/autoRefresh true
/vis/viewer/refresh
/vis/verbose warnings
Visualization verbosity is now warnings (3)

For file-based drivers, use this to create an empty detector view:

#/vis/viewer/flush
Changing export format to “jpg”


Hi Sean

Mmm. There seems to be an issue with the latest Ubuntu. I don’t use it myself. All I can recommend is searching the Forum for “Ubuntu”.

If I recall, it seems it is important to install the latest graphics card driver for your graphics card and the particular Ubuntu version.

Come back if this continues to be a problem.

John

Thanks Allison,
I found a work around here Geant4 OGL visualiztion in Ubuntu 23.04. Setting XDG_SESSION_TYPE=x11 right before executing ./example1 worked. I guess this solution should be okay for now.

Thanks for letting us know, Sean.

You’re welcome. Also setting QT_QPA_PLATFORM=xcb works in case some one has similar issue in the future.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.