Navigation
index
modules
|
next
|
previous
|
env
»
Env documentation
»
geant4
»
Geant4 Geometry Export
»
Quick search
Enter search terms or a module, class or function name.
Links
env
tl
repo
edocs
heprez
tl
repo
hdocs
backup status
Content Skeleton
Installing
env
Base Tools
LOG
TODO
Sys Admin
Plotting
SCM
Trac
ROOT
Sphinx Extensions
Matplotlib
nose
SVN
Numerical Python, numpy et al
PyPy : faster python
Tools
MySQL hotcopy
MySQL Tools
SQLite
DB scripts
QXML
Fossil
Java Demos
cuda
pycuda
geant4
Geant4 Release Notes
Geant4 GPU
Geant4 Profiling
Geant4 Release Notes
Verbosity
Geant4 Documentation
GiGa
Geant4 API
Geant4 Optical Photon
Geant4 Processes
Medical Communities Using Geant4 (esp. optical photon)
Geant4 Geometry Export
g4py
nuwa
Geant4 Event
Geant4
Geant4 Multi Threading
muon_simulation
chroma
llvm
Graphics
cuda
opencl
Linux
Cloud
Package Management
ui
debugging
mercurial
javascript
nuwa
ccgpu
pygame
zeromq
doc
Python
osx
hg
simoncblyth.bitbucket.org
numpy
Muon Simulation Presentation
optix
This Page
Show Source
Previous topic
VRML2FILE implementation
Next topic
DAE TOOLS
Geant4 Geometry in Collada
ΒΆ
DAE TOOLS
Planning Geant4 Collada Exporter
About Collada
Geant4 docs
How to implement ?
Triangulate the output geometry ?
Collada Double Sided Faces
Sketchup DAE exporter
XML format
CADMesh : From CAD files into Geant4 G4TessellatedSolid
XMLDAE : raw G4DAE node structure
Questions
Reversible Char Swaps
Raw Node Tree
Compare daenames with wrlnames : tracing the id
PyCOLLADA Internals
XML parsing into IndexLists
collada._loadNodes
scene.loadNode
Node.load
Binding objects to a list of transforms
SceneNodes
PyCOLLADA Triangulation
WRL Crosscheck : reveals mangled vertex coordinates
Vertex Coordinate Debug : finding the invertex rotation matrix
Coordinate Systems
Collada
Geant4
GDML
VRML2
GDML Geometry Trace
Debug PV1
near_rock
vertices
pycollada Access
PV0 WorldBox
PV1 near_rock untransformed
PV1 near_rock transformation
PV1 primitives
Unsuccessfull diddling
reconcile PV1 vertices, VRML2 cf pycollada
PV1 VRML2 coordinates
Transformation Implementations
PyCollada Transformation Inconsistency
PyCollada Primitive Fix
G4DAEWriteStructure::MatrixWrite
G4GDMLReadStructure::PhysvolRead rotation inverted ?
G4Transform3D::G4Transform3D
PyCollada Recursive Transformations
Geant4 Transform handling
DAE cf WRL
Questions
Answered Questions
Create DAE DB
Attaching two DB in sqlite3
Consistent Volume counts
Volume index join between WRL and DAE tables in separate DB
Vertex Count Discrepancy for 1688/12230 volumes (14 %)
With first generation DAE makes no difference
Discrepancies grouped by geometry id
Caution System SQLite3 is glacial on N
Check GDML
Visual check of discrepants : lots of interesting shapes
Same process DAE then WRL : vertex counts match
Same process WRL then DAE : vertex counts match
Built Meshlab in order to read DAE and WRL
Nov 18 2013 : Same Process export : WRL then DAE
WRL coordinate roundings again
OOPS : FIX IS ON CMS02 BUT NOT BELLE7
max squared offset per volume, before VRML mm rounding fix
Nov 18 2013 : Same Process export : DAE then WRL
Nov 19 : recompile N Geant4 with patched VRML2
Nov 19 : Move Matrix fix from pycollada monkey patch to G4DAEWrite
DAE WRL comparison with invrot done in DAE writing
DAE Viz
Face Check
Investigate DAE/WRL code path differences
Polysmry for debug
Always Create Polyhedron
[Dec 3, 2013] Back to Face checking after MeshLab Visualisation Interlude
With Poly reuse : quick polysmry is matching
With poly reuse
DGV_20131204-1746 : after removing all extra poly creation
VGD_20131204-1806 : VRML first
Crossed Order Comparison
DAE cf WRL at code level
Compare G4DAE and VRML2 geometry handling code
BooleanProcessor
G4Polyhedron::SetNumberOfRotationSteps ?
Geant4
Collada To Chroma
Initial Shakedown
g4daeview
DAEVIEW FUNCTIONS
DEPENDENCIES
Delta : OSX 10.9.2 chroma virtualenv python, based off macports py27
G4PB : OSX 10.5.8 macports py26
G4DAE and G4DAEVIEW Development History
g4daeview.py
Usage Tips
Usage text
Event Loading/slicing tips
Receive ChromaPhotonList from Remote Geant4
Load/Save ChromaPhotonList
Screen Captures and apache publishing
Grab Screen Captures including GLUT menus
Partial geometry
Target Mode
interactive target selection
near/far clipping controls
ISSUES
solid picking
TODO
placemarks
markers
Viewpoint Bookmarks
ISSUES
Animation
interpolate between bookmarks
orbiting mode
animation control
photon propagation time control : interactive and auto scanning
remote control
raycast launch control
interactive switch to metric pixels presentation
screen capture
movie capture
Parallel/Orthographic projection
Presentation
G4DAEView Chroma
Single PMT Test
A Few PMTs and radial shield
g4daeview debugging
Tricks to work out whats gone wrong
Issue
Near behaving like far
Removing the scale kludge
Targetting outer volumes draw blanks
Near
Light control
Unproject
Trackball
Remote Control
Modes of operation
scaled mode
target mode
Scenarios
detail view
outside view
Lighting
G4DAEVIEW Lights
reference
Light Positioning
Controlling a Light’s Position and Direction
Understanding Lights
glumpy lights
refs
Daeview Dev Notes
Limitations
GPU Out-of-memory during BVH construction with full Juno geometry (50M nodes?)
Old Issues To Be Revisited
More Bizarrness
Animation
Reflectors
Bizarre
Interpolation
Interpolation Jumps (FIXED)
DAEVertexBuffer Dev Notes
Interop
Too Many Moving parts
AoS or SoA
Data flow
What needs to be shared between CUDA and OpenGL ?
Single VBO approach (array-of-structs)
NVIDIA Example
Targetted googling
andyswarm
Separate VBO approach (struct-of-arrays)
glBindBuffer
OpenGL Drawing Techniques
glDrawElements
glDrawElements offset
glPushClientAttrib
glMultiDrawElements
Read OpenGL buffer back into numpy arrays
DAEPhotonsShader
OpenGL Shader Language
GLSL 120
GLSL 120 Extensions
GL_EXT_gpu_shader4
GL_EXT_geometry_shader4
glVertexAttribIPointer API hunt
GL_NV_vertex_program4
Fixed Pipeline and Shaders
Bitwise operations glsl
line strip finnicky
shaders and integers dont mix in version 120
Photon Level Debug
Issues
spagetti style and surface step selection incompatible
Pushing Up the Slots causes BUS error (AVOIDED)
Single Photon Debug
Photon Picking
Make Bialkali absorb rate ?
Quite a lot of many step histories
Visual distinction for zombie photons
Difficult to zoom into closeups
Photon Appearance
ESR Step start Asymmetry
Material Step Starts
Discrepancy between presentation modes (FIXED)
Material Selection not compatible with Spagetti style
Timeconstant for reemitted photons ?
Infinite wavelength for reemitted photons (FIXED)
Disappearing/Reappearing Photon 3126 : FIXED
Missing NO_HIT : FIXED
Dropouts : 91 long bouncers out of 4165
Fixed Issues
Repeatability/Seeding Doubts
Techniques
daephotonsanalyzer.sh
truncation
debugphoton
history selection
Restrict to photons with n-step histories
Restrict birth time range, allowing to examine cohorts
cohort mode, third value in cohort string
photon highlighting
style playoff
Material Pair Debug
Thoughts on how to proceed
Geant4 step level comparison
Machinery
DAEPhotonsAnalyzer.get_material_pairs
Both end material check
Implement step selection based in
from
and
to
materials
Broken chain
Examine the big hitters
Observations
Long lived
Propagated Flags Mismatch
G4DAEView Performance
Pushing to max-slots 100 bogs down performance
Apple OpenGL Profiler
LINE_STRIP slow performance report
Optical Photon Marshalling
Overview/Issues
Numpy Serialize into buffer ?
Efficient Selection of Numpy array, eg just the hits with PMTID > 0
Current lifecycle of optical photon data
Photon Data
Using C++ placement new for dummy OP ?
Alternate Serialization/Compression to ROOT TObject
Propagate Timeouts
Objectives
mock001 : normal incidence NAN_ABORT
mock001 : axis aligned photons issue
Code Improvements
Dependencies
DONE
Issues
timeouts
mock photons
vbo vs non-vbo hit count difference
mocknuwa propagation testing over network
file based propagation testing
visualize initial positions by holding propagation
vbo propagation
non-vbo propagation
threading sensor ids back to caller (vbo)
threading sensor ids back to caller (non-vbo)
BVH Splits
Datamodel
Performance Data Model examples
MySQL Performance Schema
Instrumenting Python Code
Profiling Python
Projects for instrumentation
Graphite : Graphing infrastructure
whisper
G4DAEView geometry cache
Fixed Problem was the time sorting again
Serialization
Current Solution : NPY
Alternatives serialization/deserialization to ROOT ?
NEXT
contenders
comparisons
capnproto
cereal
boost serialization
G4DAEView Dependencies
Dependencies Tree
Alternatives to GLUT ?
Implications of ancient OpenGL 2.1
GLFW
glfwcy with PyOpenGL and OpenGL 3.2
glfw python wrappers
migration from glumpy to glfw
G4DAEView Ideas
JSON State vending
Tight zooming not easy
Attempts to do rotation interpolation with no geometry visible cause NaN fails
During VBO structural changes
Live Style Change issues FIXED
Step Interpolation Visualization IMPLEMENTED
What about non-Chroma devices ?
Geometry Shaders
Node selection only applies to to particular geometry dyb/juno/lxe
Live Updating Test
worker
client
Next
improved structuring
Histogramming
issues
Photon provenance
ChromaOtherList for transport over ZMQ
Geant4 Chroma Process
Avoid Geometry Duplication
interactive target switching
NEEDS OVERHAUL
smaller things
G4DAEView Architecture
Division of concerns
G4DAEView Issues
Fallovers
Photon Presentation
NAN Abort Photon
VBO Propagation Call Sequence needs simplification now that using NPL
G4DAECHROMA transport testing
Same Node Success
Client sends workload to broker
Worker polls the broker for smth to do
Normal Topology Success, via tunneling both client and worker
G4DAEChroma Memory Leak
Executive Summary
Initial Observation of 30G VSIZE
Large VSIZE
Not ballooning to 30G
vmmap
vmmap -resident
G4DAEChroma.cpp : ZMQResponder, CUDA kernel call
Progress
Motivation
Dependencies
Initialization
Propagation
NPY Geometry Cache
Potential Dependencies
CuPP
boost::program_options
boost::numeric::ublas::vector<double>
cuda::thrust
CUDA Unified Memory
Other Libs
G4DAEChroma CUDA tune
Small Problem Size
Large problem size
Variation of time with workload
Larger than 512 ?
Straggler Mode
Propagate Queues
Visualizing GenSteps
swift
Apples SceneKit uses ColladaDOM it seems
Navigation
index
modules
|
next
|
previous
|
env
»
Env documentation
»
geant4
»
Geant4 Geometry Export
»