Opticks Overview

Opticks is structured as a collection of modular projects organized by their dependencies. This structure allows Opticks to be useful is different circumstances, for example on machines without an NVIDIA GPU capable of running CUDA and OptiX the OpenGL visualization functionality can still be used.

Project Dependencies

directory precursor pkg name required find packages
sysrap sysrap- SysRap PLog
boostrap brap- BoostRap OpticksBoost PLog SysRap
opticksnpy npy- NPY OpticksBoost PLog SysRap BoostRap GLM
optickscore okc- OpticksCore OpticksBoost PLog SysRap BoostRap GLM NPY
ggeo ggeo- GGeo OpticksBoost PLog SysRap BoostRap GLM NPY OpticksCore (abbreviation:BASE)
assimprap assimprap- AssimpRap BASE GGeo Assimp
openmeshrap openmeshrap- OpenMeshRap BASE GGeo OpenMesh
opticksgeo okg- OpticksGeometry BASE GGeo Assimp AssimpRap OpenMesh OpenMeshRap
oglrap oglrap- OGLRap BASE GGeo GLEW GLFW ImGui
cudarap cudarap- CUDARap PLog SysRap CUDA (ssl)
thrustrap thrustrap- ThrustRap OpticksBoost PLog SysRap BoostRap GLM NPY CUDA CUDARap
optixrap oxrap- OptiXRap BASE GGeo Assimp AssimpRap CUDARap ThrustRap
okop okop- OKOP BASE GGeo OptiX OptiXRap CUDA CUDARap ThrustRap OpticksGeometry
opticksgl opticksgl- OpticksGL BASE GGeo OptiX OptiXRap CUDA CUDARap ThrustRap OpticksOp Assimp AssimpRap GLEW GLFW OGLRap
ok ok- OK BASE GGeo Assimp AssimpRap OpenMesh OpenMeshRap OpticksGeometry GLEW GLFW ImGui OGLRap
cfg4 cfg4- cfg4 BASE GGeo Geant4 EnvXercesC [G4DAE]
okg4 okg4- okg4 BASE GGeo Assimp AssimpRap OpenMesh OpenMeshRap OpticksGeometry GLEW GLFW ImGui OGLRap Geant4 EnvXercesC

Roles of the Opticks projects

sysrap
logging, string handling, envvar handling
boostrap
filesystem utils, regular expression matching, commandline parsing
opticksnpy
array handling, persistency
optickscore
definitions, loosely the model of the app
ggeo
geometry representation appropriate for uploading to the GPU
assimprap
parsing G4DAE geometry file into the GGeo representation
openmeshrap
geometry fixing
opticksgeo
bring together ggeo, assimprap and openmeshrap to load and fix geometry
oglrap
OpenGL rendering, including GLSL shader sources
cudarap
loading curand persisted state
thrustrap
fast GPU photon indexing using interop techniques
optixrap
conversion of GGeo geometry into OptiX GPU geometry, OptiX programs for propagation
okop
operations, high level OptiX control
opticksgl
combination of oglrap- OpenGL and OptiX raytracing
ok
high level OKMgr and OKPropagator, pulling together all the above
cfg4
contained geant4, comparison of Geant4 and Opticks simulations
okg4

full integration of Opticks and Geant4 including:

  • Geant4 non-optical simulation (and optical too whilst testing)
  • Geant4 GDML detector geometry loading
  • Opticks DAE geometry loading etc…
  • optixrap: OptiX optical propagation
  • oglrap: OpenGL visualization
  • thrustrap: Thrust GPU indexing