Opticks Pubications, Presentations, Notes

As servers may become inaccessible this content is hosted from three servers. If you find access problems, try another server.

Opticks Mailing List And Archive

To subscribe to the low volume mailing list, send an email to opticks+subscribe@groups.io

https://groups.io/g/opticks forum/mailing list archive
email:opticks+subscribe@groups.io subscribe to mailing list

Day to day Opticks development is in bitbucket

Github Opticks repo is only updated infrequently, for snapshots

Images

Opticks Documentation

Note that the Opticks documentation and examples are lagging behind Opticks developments. So I suggest only a cursory look at the above documentation.

Any examples using G4Opticks.hh are from the old workflow and should not be followed. The G4CX package is the top level package in the new workflow that replaces G4OK.

A scratch document with some notes that are uptodate (as of December 2022) is available at:

Opticks Transition to a the all new NVIDIA OptiX 7 API

I do not recommend the use of NVIDIA OptiX < 7 currently, as all Opticks development effort is currently on using the all new NVIDIA OptiX 7 API.

Note that the NVIDIA OptiX 6->7 transition is like an entirely different project, practically all Opticks code has been changed or needs to change to accomodate this API transition.

The Opticks "reference" NVIDIA OptiX version is currently 7.0.0 so I recommend you use the first column of versions in the below.

The recommended version sets to use are driven by the OptiX version release notes. They specify the development CUDA version used to build each OptiX version and the minimum NVIDIA driver version.:

OptiX          *7.0.0*          7.5.0             7.6.0
NVIDIA Driver   435.21+         515+              520+
CUDA            10.1            11.7              11.8

Beyond that the CUDA version then constrains the versions of gcc and c++ dialect that can be used:

CUDA            10.1            11.7              11.8
nvcc c++        c++03,11,14     c++03,11,14,17    ?
gcc             8.3.0           11.2              ?

Publications

https://www.epj-conferences.org/articles/epjconf/abs/2021/05/epjconf_chep2021_03009/epjconf_chep2021_03009.html

Integration of JUNO simulation framework with Opticks: GPU accelerated optical propagation via NVIDIA OptiX

CHEP 2021 Proceedings : Simon Blyth, EPJ Web of Conferences 251, 03009 (2021)

https://www.epj-conferences.org/articles/epjconf/abs/2020/21/epjconf_chep2020_11003/epjconf_chep2020_11003.html

Meeting the challenge of JUNO simulation with Opticks: GPU optical photon acceleration via NVIDIA OptiX

CHEP 2019 Plenary Proceedings : Simon Blyth, EPJ Web of Conferences 245, 11003 (2020)

https://www.epj-conferences.org/articles/epjconf/abs/2019/19/epjconf_chep2018_02027/epjconf_chep2018_02027.html

Opticks : GPU Optical Photon Simulation for Particle Physics using NVIDIA OptiX

CHEP 2018 Proceedings : Simon Blyth, EPJ Web Conf. 214 02027 (2019)

http://iopscience.iop.org/article/10.1088/1742-6596/898/4/042001

Blyth, Simon C, 2017 J. Phys.: Conf. Ser. 898 042001

Opticks : GPU Optical Photon Simulation for Particle Physics using NVIDIA OptiX

CHEP 2017 Proceedings : Published by IOP Science

References to Opticks

https://geant4-data.web.cern.ch/ReleaseNotes/ReleaseNotes.11.0.html

Geant 11.0 release notes, new example:

CaTS - New application implementing a flexible and extendable framework for the simulation of calorimeter and tracking detectors. It also demonstrates how to use Opticks for the creation and propagation of optical photons.

Opticks Videos

https://www.youtube.com/watch?v=CBpOha4RzIs

Longer cut: https://www.youtube.com/watch?v=QzH6y0pKXk4

http://v.youku.com/v_show/id_XMTUxNjM3MzA4OA==.html

Introduction to CUDA

Repository with some examples of CUDA and Thrust, including an extended "reconstruction" example integrating a Minuit2 controlled fit with NLL evaluated on the GPU using thrust::transform_reduce.

Introduction to NumPy

Learning NumPy is highly recommended for more efficient data preparation for upload to the GPU and analysis of results.

Opticks Presentations

2024

env/presentation/opticks_20240215_geant4_forum.html

Slides describing G4OpBoundaryProcess customizations for the JUNO PMT Optical Model (some of which may be presented by Cécile Jollet at the below meeting)

Geant4 Technical Forum, 15 Feb 2024

2023

env/presentation/opticks_20231219_using_junosw_plus_opticks_release.html

Advert for first JUNOSW+Opticks relase

AFG Simulation Meeting, Dec 19, 2023

env/presentation/opticks_20231211_profile.html

Profiling + Status

Simulation Meeting, IHEP, Beijing, China, Dec 11, 2023

env/presentation/standalone_20230930_cpp_test_debug_ana_with_numpy.html

Standalone C++ software testing, debugging and analysis with python packages: NumPy, matplotlib, pyvista, ...

Hohhot School, Inner Mongolia, China, Sept 30, 2023

env/presentation/opticks_20230907_release.html

JUNOSW + Opticks : Release Planning

JOC Meeting, IHEP, Beijing, Sept 7, 2023

env/presentation/opticks_20230726_kaiping_software_review.html

JUNO+Opticks : Progress Review

JUNO Summer Meeting, Kaiping, Software Review, July 26, 2023

env/presentation/opticks_20230611_qingdao_sdu_workshop.html

Opticks : GPU Optical Photon Simulation via NVIDIA® OptiX™ 7, NVIDIA® CUDA™ (11 June 2023)

Workshop on HEP Computing and Software, SDU, Qingdao Campus, Remote Presentation

env/presentation/opticks_20230525_MR180_timestamp_analysis.html

Opticks + JUNO : MR180 Timestamp Analysis (25 May 2023)

env/presentation/opticks_20230508_chep.html

Opticks : GPU Optical Photon Simulation via NVIDIA® OptiX™ 7, NVIDIA® CUDA™ (8 May 2023)

Presented by Dr Tao Lin, IHEP, CAS

env/presentation/opticks_20230428_More_junoPMTOpticalModel_issues_and_Validation_of_CustomG4OpBoundaryProcess_fix.html

Opticks + JUNO : More junoPMTOpticalModel issues and validation of CustomG4OpBoundaryProcess fix (28 April 2023)

env/presentation/opticks_20230206_JUNO_PMT_Geometry_and_Optical_Model_Progress.html

Opticks + JUNO : PMT Geometry and Optical Model Progress (6 February 2023)

Summary of last 6 months, Abstract:

PMT Geometry fixes and several bugs found with the FastSim based junoPMTOpticalModel implementation are presented, including incorrect polarization and propagation time. A proposed fix using standard Geant4 together with customized G4OpBoundaryProcess is described. The fix has the advantage of allowing a natural 2-volume PMT geometry which can also be used on GPU.

2022

env/presentation/opticks_20221220_junoPMTOpticalModel_FastSim_issues_and_CustomG4OpBoundaryProcess_fix.html

junoPMTOpticalModel FastSim issues, and proposed fix using a CustomG4OpBoundaryProcess (20 December 2022)

  • fixes would facilitate bringing the TMM functionality to GPU within Opticks

env/presentation/opticks_20221117_mask_debug_and_tmm.html

JUNO + Opticks geometry fixes (Mask, MaskTail, MaskVirtual) (17 November 2022)

  • Validations reveals Opticks and JUNO bugs
    • rare close to ellipsoid "apex" rays missed : fixed with zcut+safety
    • nmskSolidMaskTail uncoincidence : still spurious intersects
    • thin cylinder (hz 0.15 mm) "lip" issue : mis-translation + precision loss
    • arises from near axial rays onto very thin cylinders
    • fixed by reimplementing CSG_CYLINDER more simply (less flops)
    • nmskSolidMaskVirtual : fixed : CSG_CONE quadratic precision loss, close to apex issue
    • hama : MaskTail crosses PMT body
  • junoPMTOpticalModel TMM calc on GPU

env/presentation/opticks_20220718_towards_production_use_juno_collab_meeting.html

JUNO Progress Towards Production : Completed OptiX 7 Simulation re-implementation (July 18, 2022)

  • Validation : Opticks-Geant4 A-B testing
  • Opticks Packages : Many Removed, Many Added
  • Simulation : Why so much had to be re-implemented ?
  • Opticks Packages : Many more to be removed
  • Systematic Approach to Random Alignment of Two Simulations
  • NEXT : Update JUNO-Opticks integration to use new Opticks

env/presentation/opticks_20220329_progress_towards_production.html

JUNO Progress Towards Production : QSim WIP (March 29, 2022)

  • January : Updating to JUNO trunk geometry
  • February : Generalize Opticks CSG to handle "list-nodes" : n-ary (not binary) CSG
  • March : Geometry Optimization + Migrating Sim from Old to New Workflow
  • Big Picture of Multi Year Transition to new workflow (OptiX 7 compatible)
  • Standalone Geant4 Tests : Cerenkov, RayLeigh, Boundary
  • Boundary matched QSimTest.sh and G4OpBoundaryProcessTest.sh
  • Dynamic Prim Selection :in memory CSGCopy with selection => construct any combination of Prim
    • enables per-prim measurement : to locate source of slowdowns
  • Dynamic Prim Selection Speed Scan : One "G4VSolid" Geometries

env/presentation/opticks_20220307_fixed_global_leaf_placement_issue.html

JUNO Geometry Updates and Fixes (March 7, 2022)

  • Investigate XJfixtureConstruction Complex CSG Solid
  • Reveals incompatibility of : CSG intersect alg and tree balancing
  • develop CSG list-nodes as solution for complex CSG without balancing
  • Algorithm for Ray Intersection onto Shape defined by CSG Tre
  • Generalized Opticks CSG into three levels : tree < node < leaf (to support list-nodes without recursion)
  • CSG_CONTIGUOUS Union : n-ary (not bin-ary) CSG intersection
  • CSG_OVERLAP Intersection : CSG intersection
  • More closely suiting intersect algorithm to geometry => better performance
  • transform bug from incomplete tree/node/leaf split
  • OTracerTest debug comparing rasterized OpenGL render with raytrace render

env/presentation/opticks_20220227_LHCbRich_UK_GPU_HACKATHON.html

LHCb RICH + NVIDIA UK GPU HACKATHON (February 28, 2022)

  • Instructions for RICH Simplified rendering with Opticks/CSGOptiX and NVIDIA OptiX 7

env/presentation/opticks_20220118_juno_collaboration_meeting.html

JUNO+Opticks Photons : Validation and Deployment Plan (January 18, 2022)

  • Geometry/Translation Issues Summary
  • PMT Mask Modelling Fix
  • Fastener : interfering subtraction-of-subtraction issue from daughter cavity
  • Opticks CSG is surface-centric : more fragile but inherently faster that Geant4 volume-centric implementation
  • 2D Geant4 Geometry Slicing
  • Cutdown PMT breaks Opticks translation, ZSolid fix : actually cut the tree
  • Render Speed Check After Geometry fixes : smallish time range
  • History Matching Check
  • Chi2 points to PE_PA solid discrepant => XJfixtureConstruction
  • XJfixtureConstruction : Complex CSG causing coincidence problems
  • Investigate XJfixtureConstruction Positions : geometry overlaps, mid-chimney
  • XJanchorConstruction : spurious line associated wit big sphere subtraction
  • SJReceiverConstruction : disjoint

env/presentation/opticks_20220115_innovation_in_hep_workshop_hongkong.html

IAS Program on High Energy Physics 2022 : Mini-workshop on Experiment/Detector: Innovation in HEP Detectors and Computing, January 13-14, 2022

Opticks : Innovation in Optical Photon Simulation via state-of-the-art GPU Ray Tracing from NVIDIA® OptiX™ (January 14, 2022)

  • Movies ≈ monte carlo optical photon simulations
  • Fundamental "Rendering Equation" of Computer Graphics (Kajiya 1986), Neumann series solution
  • Monte carlo path tracing : limited by ray tracing
  • Optical Simulation : Computer Graphics vs Physics
  • SIGGRAPH 2018 : NVIDIA Quadro RTX : leap in ray tracing performance

2021

env/presentation/opticks_20211223_pre_xmas.html

JUNO Opticks : OptiX 7 Ray Trace times >100x faster following geometry fixes (December 23, 2021)

  • ZSolid::ApplyZCutTree applied to both NNVT and Hama PMTs
  • fixed base_steel G4Polycone with multiple R-inner
  • Opticks-Offline CMake Integration
  • subtraction of huge acrylic sphere led to huge Fastener bounding box fixed by positivizing CSG tree and not including bbox of complemented
  • render timings suggests no bad bottlenecks remaining
  • LHCb RICH SphereWithPhiSegment : CSG_PHICUT unbounded expt
  • NEXT : mask tail cutting across PMT bulb, integrate CSGOptiX into Opticks

env/presentation/opticks_20211117.html

JUNO Opticks : PMT Z-cut issue : (November 17, 2021)

  • Hamamatsu PMT Solid breaking Opticks : CSG tree height 8 : TOO DEEP
  • SOLUTION ACTUALLY CUT THE CSG TREE : using ZSolid.hh
  • ZSolid::ApplyZCutTree using "placement new" trick
  • MAJOR SIMPLIFICATION tree cut from (node:15, prim:8, height:7) -> (node:7, prim:4, height:3)

env/presentation/opticks_autumn_20211019.html

Opticks Autumn : (October 19, 2021)

  • Cerenkov energy sampling via ICDF lookups ?
  • Monte Carlo "Rejection Sampling" VS "Inverse Transform Sampling"
  • Opticks Updates for Geant4 11.beta (1100)
  • Planar 2d ray tracing to create CSG geometry cross-sections (later known as "simtrace")
  • AdditionAcrylicConstruction : pointless CSG subtraction of holes
  • CSG sub sub bug ? Subtracted subtraction yielding spurious intersects
  • inherent CSG fragility regarding coincident faces
  • DO NOT subtract CSG holes for daughters : not necessary, doubles expense, causes bugs

env/presentation/juno_opticks_cerenkov_20210902.html

JUNO Opticks : Summer Progress (Sep 2, 2021)

  • "s2" Cerenkov integration (HMM: does s2 impl cope with float better ?)
  • PMTSimParamSvc::get_pmt_ce bug
  • New Opticks Package for NVIDIA OptiX 7.0 API : CSG, CSGOptiX, QUDARap, (transitional: CSG_GGeo)
  • CPU/GPU counterpart header pattern eg QSim.hh/qsim.h
  • NEXT : Looking for single precision Cerenkov generation solution

env/presentation/lz_opticks_optix7_20210727.html

Notes on OptiX 6->7 migration : "Qudarap" pure CUDA photon generation (July 27, 2021, Virtual, H7)

  • Cerenkov Matching : requires double precision rejection sampling, attempts to understand why
  • nascent qudarap : qctx.h(later becomes qsim.h)
  • NEXT : gs seeding photons, integrate CSGOptiX with qudarap

env/presentation/juno_opticks_20210712.html

JUNO Opticks/Geant4 Optical Photon Simulation Matching (July 12, 2021)

  • Tools for Optical Photon Simulation Matching
  • JUNO Offline DsG4Scintillation : Reemission Bookkeeping
  • Long list of fixed JUNO-Opticks material property/geometry issues
  • Scintillation Wavelength chi2 Matching : Multi-resolution GPU texture
  • JUNO Offline trunk G4Cerenkov_modified : BUG FIX
  • NEXT : Slow Fasteners CSG, Unify wit OptiX 7 "branch"

env/presentation/opticks_vchep_2021_may19.html

Integration of JUNO simulation framework with Opticks (May 19, 2021) vCHEP

  • New "Foundry" Model : Shared CPU/GPU Geometry Context
  • First OptiX 7 Renders : slow geometry found

env/presentation/lz_opticks_optix7_20210518.html

Notes on OptiX 6->7 migration, CSG, CSG_GGeo, CSGOptiX (May 18, 2021, Virtual, H6)

1st full JUNO ray trace with OptiX 7 CSGOptiX enabled by CSGFoundry model

env/presentation/lz_opticks_optix7_20210504.html

Notes on OptiX 6->7 migration, CSG, CSGOptiX, CSGOptiXGGeo (May 4, 2021, Virtual, H5)

env/presentation/juno_opticks_20210426.html

JUNO-Opticks Notes, slow solids identified (April 26, 2021)

env/presentation/lz_opticks_optix7_20210406.html

Notes on OptiX 6->7 migration, "Foundry" CSG Model (April 4, 2021, Virtual, H4)

env/presentation/lz_opticks_optix7_20210315.html

Notes on OptiX 6->7 migration, (Mar 15, 2021, Virtual, H3)

env/presentation/opticks_detector_geometry_caf_mar2021.html

Compute Accelerator Forum (March 10, 2021, Virtual, 20+10 min)

env/presentation/lz_opticks_optix7_20210225.html

Notes on OptiX 6->7 migration, (Feb 25, 2021, Virtual, H2)

env/presentation/lz_opticks_optix7_20210208.html

Notes on OptiX 6->7 migration, (Feb 8, 2021, Virtual, H1)

env/presentation/opticks_jan2021_juno_sim_review.html (Feb 1, 2021, Virtual)

Review JUNO + Opticks progress + plans, 20 mins

2020

env/presentation/opticks_aug2020_sjtu_neutrino_telescope_workshop.html (August 2020, Virtual)

SJTU Shanghai, Next Generation Neutrino Telescope Workshop

Opticks : GPU photon simulation via NVIDIA® OptiX™ + GPU/Graphics background + Application to neutrino telescope simulations ?

env/presentation/opticks_jul2020_juno.html (6 July 2020, IHEP Virtual)

JUNO Collaboration Meeting, Software Session

Integration of JUNO Offline + Opticks : GPU Optical Simulation with NVIDIA® OptiX™

env/presentation/opticks_may2020_hsf.html (27 May 2020, CERN Virtual)

HSF Simulation Working Group Meeting, 20 minutes presentation

Opticks GPU Optical Simulation with NVIDIA® OptiX™ - Development Experience : Problems and Successes

Winter 2019

env/presentation/opticks_gpu_optical_photon_simulation_dec2019_ihep_epd_seminar.html (Dec 2019, Beijing)

IHEP EPD/PIFI Seminar

Opticks : GPU Optical Simulation via NVIDIA® OptiX™ + A Mental Model for Effective Application of GPUs

env/presentation/opticks_gpu_optical_photon_simulation_nov2019_chep.html (Nov 2019, Adelaide)

CHEP 2019 Invited Plenary

Meeting the Challenge of JUNO Simulation with Opticks : GPU Optical Photon Acceleration via NVIDIA® OptiX™

Summer 2019 : Opticks status

env/presentation/opticks_gpu_optical_photon_simulation_jul2019_ihep.html (July 2019, Beijing)

JUNO Collaboration Meeting

Progress with JUNO + Opticks : GPU Optical Photon Simulation with NVIDIA OptiX

Early 2019 : Opticks status

env/presentation/opticks_gpu_optical_photon_simulation_jan2019_sjtu.html (17 Jan 2019, Shanghai)

JUNO Collaboration Meeting

Status of Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Autumn 2018 : Tools, Techniques and Opticks

env/presentation/opticks_gpu_optical_photon_simulation_oct2018_ihep.html (31 Oct 2018, Beijing)

IHEP Seminar

Tools, Techniques and Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Summer 2018 : Opticks Progress : Direct workflow, aligned validation

env/presentation/opticks_gpu_optical_photon_simulation_jul2018_chep.html (10 July 2018, Sofia)

CHEP 2018 Conference

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Brief Opticks Introductory presentation, with many backup slides

env/presentation/opticks_gpu_optical_photon_simulation_sep2017_wollongong.html (Sep 2017, Wollongong)

Geant4 Collaboration Meeting, University of Wollongong, Australia

A brief introduction to Opticks, presented in plenary session despite being listed in parallel.

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Autumn 2017 : Opticks Introductory presentation

env/presentation/opticks_gpu_optical_photon_simulation_sep2017_jinan.html (Sep 2017, Jinan)

Shandong University, Physics Dept, Jinan, China

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Summer 2017 : moving to fully analytic geometry

env/presentation/opticks_gpu_optical_photon_simulation_jul2017_ihep.html (July 2017, Beijing)

JUNO Collaboration Meeting, IHEP, Beijing, China

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Early 2017 : optical simulation validated

env/presentation/opticks_gpu_optical_photon_simulation_jan2017_psroc.html (17 Jan 2017, Taipei)

PSROC Annual Meeting, Tamkang University, TKU, New Taipei City, Taiwan

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Late 2016 : optical simulation validated

env/presentation/opticks_gpu_optical_photon_simulation_nov2016_llr.html (2 Dec 2016, Paris)

JUNO Workshop, LLR, Ecole Polytechnique

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

env/presentation/opticks_gpu_optical_photon_simulation_oct2016_chep.html (11 Oct 2016, CHEP Conference, San Francisco)

CHEP 2016 Conference

Opticks : GPU Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Mid 2016

env/presentation/opticks_gpu_optical_photon_simulation_jul2016_weihai.html (19 July 2016, Weihai, China)

Shandong University Particle Physics Summer School

Opticks : Optical Photon Simulation for Particle Physics with NVIDIA OptiX

env/presentation/opticks_gpu_optical_photon_simulation_may2016_lecospa.html (16 May 2016, NTU, Taipei)

Seminar, Leung Center for Cosmology and Particle Astrophysics (LeCosPA) of the National Taiwan University (NTU)

Opticks : Optical Photon Simulation for Particle Physics with NVIDIA OptiX

Early 2016

env/presentation/opticks_gpu_optical_photon_simulation_april2016_gtc.html (April 2016, GPU Technology Conference, San Jose)

Opticks : Optical Photon Simulation for Particle Physics with NVIDIA OptiX

http://on-demand.gputechconf.com/gtc/2016/video/S6320.html GTC Talk Video (25 mins)

env/presentation/opticks_gpu_optical_photon_simulation_march2016.html (March 2016, DYB Meeting, Beijing)

Opticks : GPU Optical Photon Simulation

Includes single PMT validation

env/presentation/opticks_gpu_optical_photon_simulation.html (Jan 2016, JUNO Meeting, Xiamen)

Opticks : GPU Optical Photon Simulation

env/presentation/opticks_gpu_optical_photon_simulation_psroc.html (Jan 2016, PSROC Meeting, Kaoshiung)

Opticks : GPU Optical Photon Simulation

Same ground as Xiamen talk, but aiming at more diverse audience

Mid 2015

env/presentation/optical_photon_simulation_with_nvidia_optix.html (July 2015, JUNO Meeting, Beijing)

Optical Photon Simulation with NVIDIA OptiX

Why not Chroma ? Intro to OptiX. Developments needed to adopt it.

Early 2015

env/presentation/gpu_optical_photon_simulation.html (Jan 2015, JUNO Meeting, Guangzhou)

200x Faster Optical Photon Propagation with NuWa + Chroma ?

Getting Chroma operational with Dayabay Geometry, Runtime bridge development

env/presentation/gpu_accelerated_geant4_simulation.html (Jan 2015, DYB Meeting, Hong Kong)

GPU Accelerated Geant4 Simulation with G4DAE and Chroma

Similar to Guangzhou talk, covers GPU generation of DYB Cerenkov and Scintillation photons

Late 2014

env/presentation/g4dae_geometry_exporter.html (Sept 2014, Geant4 Meeting, Okinawa)

G4DAE : Export Geant4 Geometry to COLLADA/DAE XML files

reports

g4dae : Geant4 geometry exporter

Assimp fork : G4DAE extra property handling in C++

g4daeview : g4dae OpenGL viewer application

chroma fork : GPU optical photon simulation

env : Infrastructure bash/python scripts, dev cradle

Misc

Sources for this index page

How to Update the io servers

cd ~/simoncblyth.bitbucket.io
git push
git push github

How to update the juno.ihep.ac.cn server

tun   # open tunnel
N     # connect to workstation
ssh W # connect to web server

cd simoncblyth.bitbucket.io
git pull