SlideShare a Scribd company logo
1 of 30
1/12/2017 1
Geant4 Visualization Special Topic:
How to Make a Movie
Loris Greaud
Acknowledgement
• The techniques presented here were pioneered by John Allison.
• This talk draws heavily on the documentation and examples that John presented
at last month’s Geant4 Collaboration Workshop in Lisbon.
1/12/2017 2
Part 1: The Old Technique
Stitching Still Pictures Together to Make a Movie
1/12/2017 3
Stitching Still Pictures Together to Make a Movie
• Making movies with just changes to camera position has been possible for years
using macros
– Produce a large number of still images
– Stitch them together into a movie file (mpeg)
• Conversion to mpeg somewhat complicated
– Documented since release 8.2
– New section of the Application Developers Guide, section 8.10.
• I’ll show you here how to do it with OpenGL, but you can also do it using other
drivers that can output pictures, such as DAWNFILE and RayTracerX
1/12/2017 4
Movies: Stitched Together from Multiple Stills
1/12/2017 5
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
It’s All About Macros
• Main Macro
– /control/verbose 2
– /vis/open OGLSX
– /vis/drawVolume
– /vis/viewer/reset
– /vis/viewer/set/style surface
– /vis/viewer/set/projection perspective 50 deg
– /control/alias phi 30
– /control/loop movie.loop theta 0 360 1
• Inner Macro, movie.loop
– /vis/viewer/set/viewpointThetaPhi {theta} {phi}
– /vis/viewer/zoom 1.005
– /vis/viewer/refresh
• At each step of the macro
– the volume rotates a little
– zooms in a little
– and then refreshes the OpenGL window
• Demo live from Geant4
1/12/2017 6
Omit /vis/viewer/refresh on auto-refresh
devices such as OGLIX and OGLSX
To Create a Movie File, Start by Saving the Individual Frames
• Main Macro stays the same:
– /control/verbose 2
– /vis/open OGLSX
– /vis/drawVolume
– /vis/viewer/reset
– /vis/viewer/set/style surface
– /vis/viewer/set/projection perspective 50 deg
– /control/alias phi 30
– /control/loop movie.loop theta 0 360 1
• Inner Macro, movie.loop, just has one extra command to output to file
– /vis/viewer/set/viewpointThetaPhi {theta} {phi}
– /vis/viewer/zoom 1.005
– /vis/ogl/printEPS
– /vis/viewer/refresh
• At each step of the macro
– the volume rotates a little
– zooms in a little
– and then an eps file is produced
1/12/2017 7
Omit /vis/viewer/refresh on auto-refresh
devices such as OGLIX and OGLSX
From EPS to MPEG (slide 1 of 2)
• To turn the many eps files into a single mpeg, you first need to generate an mpeg
parameters file. To do this, you will use the script:
– make_mpeg2encode_parfile.sh
– which can be found in
• geant4/UserDoc/UserGuildes/ForApplicationDevelope
r/html/
Visualization/
• Run the script as:
– make_mpeg2encode_parfile.sh G4OpenGL_*eps
• Edit the resulting mpeg2encode.par file to specify file type and size
– Before “/* horizontal_size */” put a size, such as:
• 600 /* horizontal_size */>
– Before “< /* vertical_size */” put a size, such as:
• 600 /* vertical_size */>
– Before /* aspect_ratio_information” put a ration, such as:
• 1 /* aspect_ratio_information 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */1/12/2017 8
From EPS to MPEG (slide 2 of 2)
• You’ll need an eps conversion facility called “convert” that you can get from:
– imagemagick.org
• Batch convert the eps files to ppm files using a shell command such as:
– for i in G4OpenGL*eps; do j=`basename $i .eps`;
command="convert $i $j.ppm"; echo $command; $command; done
• Finally, run the mpeg encoder using the parameters file and the ppm files:
– mpeg2encode mpeg2encode.par G4OpenGL.mpg
– mpeg2encode is free software from:
• http://www.mpeg.org/MSSG/
• The resulting mpeg file can be run in any mpeg player.
– For example, on a Mac, opening G4OpelGL.mpg starts a QuickTime player.
• The above instructions used OpenGL, but you can also make a movie using other
drivers that can output pictures, such as DAWNFILE and RayTracerX.
– For details on making movies from any of those drivers, see section 8.10 of the
Geant4 Application Developers Guide.1/12/2017 9
Part 2: the New Technique
Time Development of the Event
Live from OpenGL
1/12/2017 10
New Technique: Time Development of the Event
• New features since release 8.2 allow you to do a new kind of Geant4 movie.
You will be able to make movies that show Time Development of an event
– I.e., a shower in slow motion
• Based on technique of “time-slicing”, breaking trajectories into individual slices,
each with a time attribute.
– requires newer visualization features, rich trajectory and some extensions to
the OpenGL Stored driver
• /vis/open OGLSX
or for windows
/vis/open OGLSWin32
• You can run these animations Directly from Geant4. You do NOT need to output
any files or stitch them together into an mpeg.
1/12/2017 11
Movies: Live from Geant4 OpenGL
1/12/2017 12
QuickTime™ and a
decompressor
are needed to see this picture.
What was in the Previous Movie
• http://www.hep.man.ac.uk/u/johna/pub/Geant4/Movies/
pi-10Gevpi+neutronZoom.mp4
• 10 GeV/c pi- on lead (in a lead-liquid-argon calorimeter, exampleN03 with QGSP
physics)
– A plethora of slow pions, protons and neutrons
– Three fast pi- and one fast pi+ that subsequently interacts again
– Neutrons (yellow) hang around for several ns
• Green circle is the light front
– Careful viewer will notice that near the end of the event, some particles
appear to cross the light front. This was a bug in the way the light front
sphere was rendered in perspective view, fixed in release 8.2
1/12/2017 13
You’ll Need Geant4 Release 8.2 or
Newer
• Because you’ll need the latest Rich Trajectory code
– so that it can instrument each trajectory step with a time value
• And the latest Enhanced Trajectory Drawing code
– so that it can slice the trajectory into many different graphics primitives based on
time slices
• And the latest Geant4 OpenGL Driver
– so that it can show one time slice at a time
• And the latest Trajectory and Hit Filtering
– so you can get all of those annoying low energy gammas out of the picture
• The techniques shown in this talk were first unveiled by John Allison at the 2006
Geant4 Collaboration Workshop in Lisbon
– See John’s example movies at:
http://www.hep.man.ac.uk/u/johna/pub/Geant4/Movies/
1/12/2017 14
The New Vis Tutorial Examples
• There are two example macros in the visTutor part of example N03.
This presentation is based on those examples.
– /examples/novice/N03/visTutor/exN03Vis12
– /examples/novice/N03/visTotur/exN03Vis13
• Before you try to make a move, just build and run exampleN03 normally and
check that you have OpenGL working. You’ll need the “stored” version of
OpenGL for this work:
– /vis/open OGLSX
or on Windows
/vis/open OGLSWin32
• Make sure something appears in the OpenGL window when you do a simple
visualization command such as:
– /vis/drawVolume
1/12/2017 15
The New Trajectory Commands
• The examples use various forms of the following commands:
• Add trajectories using the new Rich Trajectory option
– /vis/scene/add/trajectories rich
• Create a trajectory model to color by charge
– /vis/modeling/trajectories/create/drawByCharge
• Specify the new time-slicing option in the trajectory model
– /vis/modeling/trajectories/drawByCharge-0/default/
setTimeSliceInterval 0.1 ns
• Chops trajectory into pieces, each assigned a time range
• Remember that particles are often relativistic and travel 30
cm/ns
• Filter trajectories to remove gammas
– /vis/filtering/trajectories/create/particleFilter
– /vis/filtering/trajectories/particleFilter-0/add gamma
– /vis/filtering/trajectories/particleFilter-0/invert true
1/12/2017 16
The OGL Commands
• At present, the time-dependent animation only works in the Stored Mode OpenGL drivers
– /vis/open OGLS*
So the commands are specific to /vis/ogl
• Specify time window
– /vis/ogl/set/startTime 2 ns 1 ns
– Items are displayed if their time range* and viewer’s time window overlap
– Default time range is -infinite to infinity, so normal items such as detector geometry are
always drawn
• Specify how fast slices should fade, gives a “vapor trail” effect
– /vis/ogl/set/fade 1
• Specify whether the light wavefront should be shown
– /vis/ogl/set/displayLightFront true -90 0 0 mm
• Specify whether the current time should be displayed
– /vis/ogl/set/displayHeadTime true
1/12/2017 17
The Time-Slice Loop
• Simplest form, from exN03Vis12.mac
– /control/alias timeRange 0.1
– /control/loop loop.mac startTime -{timeRange} 0.7 0.005
• where loop.mac specifies start time and range for which slices to show
– /vis/ogl/set/startTime {startTime} ns {timeRange} ns
• Slightly more complicated form, from exN03Vis13.mac, adds panning so that camera
follows the light front and specifies time slices by end time rather than start time
– /control/alias timeRange 0.1
– /control/alias dx 0.3
– /control/loop loop.mac endTime 0 0.7 0.001
• where loop.mac specifies end time for which slices to show
– /vis/viewer/pan {dx} 0 mm
– /vis/ogl/set/endTime {endTime} ns {timeRange} ns
1/12/2017 18
Running the Vis Tutorial Examples
• examples/novice/N03/visTutor/exN03Vis12.mac
does three animations in a row:
– Draw by charge with trajectory points
– Draw by particle ID (remove g’s)
– p-m-e decay
• examples/novice/N03/visTutor/exN03Vis13.mac
does one animation, more complex since it includes camera panning
– 10 GeV EM shower showing light front
– Camera follows (pans) at speed of light
• To run either of them:
– Make sure you have Geant4 Release 8.2 or newer
– Build examples/novice/N03
– Run N03 with one of the above macros, such as:
• $G4WORKDIR/bin/Darwin-g++/exampleN03
visTutor/exN03Vis12.mac
1/12/2017 19
1/12/2017 20
Still from
exampleN03
visTutor/
exN03Vis12.mac
1 GeV electron into
lead-liqAr
calorimeter
Demo live from
Geant4
Unfortunately text
is lost making a
movie file (a
current
OpenGLeps
“feature”)
Some More Example Animations
• The following is a set of example animations prepared by John Allison.
• You can check them out yourself from John’s movies page:
– http://www.hep.man.ac.uk/u/johna/pub/Geant4/Movies/
1/12/2017 21
1/12/2017 22
50 MeV electron into
lead-liqAr
calorimeter
e- red
e+ blue
 green
Yellow circles are
step points --
geometrical
boundaries or
physical processes
Single50MeV.mpg
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
1/12/2017 23
10 GeV electron into
lead-liqAr calorimeter
over 800 ps
Single10GeVSlow.mpg
Gammas filtered out
/vis/filtering/
trajectories/create/
particleFilter
/vis/filtering/
trajectories/
particleFilter-0/add
gamma
/vis/filtering/
trajectories/
particleFilter-0/
invert true
Electrons red
Positrons blue
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
1/12/2017 24
Same 10 GeV electron,
camera follows by
panning at light speed
Single10GeVFollowed.mpg
Shows light front
(wave front of light
starting at same time
and place)
/vis/ogl/set/
displayLightFront
true -90 0 0 mm
Time range 800 ps
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
1/12/2017 25
100 MeV +
pi+100MeVmu+e+.mpg
Stops, decays to
+
Stops, dallies
(meanlife 2 s),
decays to e+
Annihilates to
gamma-gamma
Compton
scattering
Duration 4 s
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
1/12/2017 26
10 Gev -
pi-10GeVEMShower.mpg
N04 hadronic physics
Interacts early
(potential confusion
with EM shower)
Produces EM shower,
presumably via charge
exchange to 0 
Neutrons also
produced
+ magenta
- cyan
n yellow
 green
Others grey
Duration 2 ns
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
1/12/2017 27
10 Gev -
pi-10GeVNeutrons.mpg
N04 hadronic
physics
Produces neutron
chain reaction
 filtered
e- red
e+ blue
+ magenta
- cyan
n yellow
 green
Others grey
Duration 2 ns
QuickTime™ and a
YUV420 codec decompressor
are needed to see this picture.
1/12/2017 28
Another 10
GeV -
pi-10Gevpi+neutron
SideView.mp4
3 fast -
+ interaction
3 ns
Mpeg4 encoding
with QuickTime Pro
QuickTime™ and a
decompressor
are needed to see this picture.
1/12/2017 29
Same
pi-10Gevpi+neutron
Zoom.mp4
Perspective
view
Slow zoom
Detector
drawing
suppressed
3 ns
QuickTime™ and a
decompressor
are needed to see this picture.
Geant4 Visualization Resources
1/12/2017 30
Geant4 Installation Guides
http://geant4.slac.stanford.edu/installation
Hands on HepRApp Tutorial
http://geant4.slac.stanford.edu/Presentations/vis/G4HepRAppTutorial/G4HepRAppTutorial.html
Hands on DAWN Tutorial
http://geant4.slac.stanford.edu/Presentations/vis/G4DAWNTutorial/G4DAWNTutorial.html
Hands on OpenGL Tutorial
http://geant4.slac.stanford.edu/Presentations/vis/G4OpenGLTutorial/G4OpenGLTutorial.html
Geant4 Visualization Commands
http://geant4.slac.stanford.edu/Presentations/vis/G4VisCommands.ppt (and .pdf)
Geant4 Advanced Visualization
http://geant4.slac.stanford.edu/Presentations/vis/G4VisAdvanced.ppt (and .pdf)
How to Make a Movie
http://geant4.slac.stanford.edu/Presentations/vis/HowToMakeAMovie.ppt (and .pdf)
Visualization Chapter of the Geant4 User’s Guide for Application Developers
http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/
List of Visualization Commands:
http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/
AllResources/Control/UIcommands/_vis_.html
For Questions or Comments: Geant4 Visualization Online Forum:
http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/visualization.html

More Related Content

What's hot

gcma: guaranteed contiguous memory allocator
gcma:  guaranteed contiguous memory allocatorgcma:  guaranteed contiguous memory allocator
gcma: guaranteed contiguous memory allocatorSeongJae Park
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
OSDC 2014: Christian Patsch - System Orchestration with Capistrano and Puppet
OSDC 2014: Christian Patsch - System Orchestration with Capistrano and PuppetOSDC 2014: Christian Patsch - System Orchestration with Capistrano and Puppet
OSDC 2014: Christian Patsch - System Orchestration with Capistrano and PuppetNETWAYS
 
OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?ScyllaDB
 
Refactoring Katello Installer modules - Ewoud Kohl van Wijngaarden
Refactoring Katello Installer modules - Ewoud Kohl van WijngaardenRefactoring Katello Installer modules - Ewoud Kohl van Wijngaarden
Refactoring Katello Installer modules - Ewoud Kohl van WijngaardenNETWAYS
 
New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingScyllaDB
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-Anatoly Bubenkov
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMIgalia
 
Láďa Prskavec: Docker.io
Láďa Prskavec: Docker.ioLáďa Prskavec: Docker.io
Láďa Prskavec: Docker.ioDevelcz
 
Load2010 Kvm Tutorial
Load2010 Kvm TutorialLoad2010 Kvm Tutorial
Load2010 Kvm Tutorialloadays
 
Kubernetes for Java Developers
Kubernetes for Java DevelopersKubernetes for Java Developers
Kubernetes for Java DevelopersAnthony Dahanne
 
Using Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at ScaleUsing Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at ScaleBoris Pavlovic
 

What's hot (17)

gcma: guaranteed contiguous memory allocator
gcma:  guaranteed contiguous memory allocatorgcma:  guaranteed contiguous memory allocator
gcma: guaranteed contiguous memory allocator
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
GitLab on OpenShift
GitLab on OpenShiftGitLab on OpenShift
GitLab on OpenShift
 
OSDC 2014: Christian Patsch - System Orchestration with Capistrano and Puppet
OSDC 2014: Christian Patsch - System Orchestration with Capistrano and PuppetOSDC 2014: Christian Patsch - System Orchestration with Capistrano and Puppet
OSDC 2014: Christian Patsch - System Orchestration with Capistrano and Puppet
 
OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?OSNoise Tracer: Who Is Stealing My CPU Time?
OSNoise Tracer: Who Is Stealing My CPU Time?
 
Refactoring Katello Installer modules - Ewoud Kohl van Wijngaarden
Refactoring Katello Installer modules - Ewoud Kohl van WijngaardenRefactoring Katello Installer modules - Ewoud Kohl van Wijngaarden
Refactoring Katello Installer modules - Ewoud Kohl van Wijngaarden
 
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
 
New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using Tracing
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAM
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker.io
Docker.ioDocker.io
Docker.io
 
Láďa Prskavec: Docker.io
Láďa Prskavec: Docker.ioLáďa Prskavec: Docker.io
Láďa Prskavec: Docker.io
 
Dockerizing pharo
Dockerizing pharoDockerizing pharo
Dockerizing pharo
 
Load2010 Kvm Tutorial
Load2010 Kvm TutorialLoad2010 Kvm Tutorial
Load2010 Kvm Tutorial
 
Kubernetes for Java Developers
Kubernetes for Java DevelopersKubernetes for Java Developers
Kubernetes for Java Developers
 
Using Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at ScaleUsing Rally for OpenStack certification at Scale
Using Rally for OpenStack certification at Scale
 

Viewers also liked

Get Overview Of Film Production By Loris Greaud
Get Overview Of Film Production By Loris GreaudGet Overview Of Film Production By Loris Greaud
Get Overview Of Film Production By Loris GreaudLoris Greaud
 
The Israel-Gaza Conflict:
 Social Media Become the Informational Front Line
The Israel-Gaza Conflict:
 Social Media Become the Informational Front LineThe Israel-Gaza Conflict:
 Social Media Become the Informational Front Line
The Israel-Gaza Conflict:
 Social Media Become the Informational Front LineThe New School
 
Learning From The Context
Learning From The ContextLearning From The Context
Learning From The ContextLauren Pressley
 
New Faculty Seminar | VCCS | 2015
New Faculty Seminar | VCCS | 2015New Faculty Seminar | VCCS | 2015
New Faculty Seminar | VCCS | 2015Achieving the Dream
 
Data journalism and open data educational projects
Data journalism and open data educational projectsData journalism and open data educational projects
Data journalism and open data educational projectsIrina Radchenko
 
KT 특강_온라인사업개발_130510_강장묵
KT 특강_온라인사업개발_130510_강장묵KT 특강_온라인사업개발_130510_강장묵
KT 특강_온라인사업개발_130510_강장묵JM code group
 
Homeorchard.ucdavis.edu
Homeorchard.ucdavis.eduHomeorchard.ucdavis.edu
Homeorchard.ucdavis.edupierre110
 
Howe School Forum, Fall 2003
Howe School Forum, Fall 2003Howe School Forum, Fall 2003
Howe School Forum, Fall 2003pberzins
 
200512F_CLTHE_Full
200512F_CLTHE_Full200512F_CLTHE_Full
200512F_CLTHE_FullJames Werner
 
Team b ethics scrapbook project_wk5
Team b ethics scrapbook project_wk5Team b ethics scrapbook project_wk5
Team b ethics scrapbook project_wk5toniagolfin
 
Resources on Regions
Resources on RegionsResources on Regions
Resources on RegionsKristin Wolff
 
webteaching.ppt
webteaching.pptwebteaching.ppt
webteaching.pptVideoguy
 

Viewers also liked (20)

Get Overview Of Film Production By Loris Greaud
Get Overview Of Film Production By Loris GreaudGet Overview Of Film Production By Loris Greaud
Get Overview Of Film Production By Loris Greaud
 
Iss
IssIss
Iss
 
The Israel-Gaza Conflict:
 Social Media Become the Informational Front Line
The Israel-Gaza Conflict:
 Social Media Become the Informational Front LineThe Israel-Gaza Conflict:
 Social Media Become the Informational Front Line
The Israel-Gaza Conflict:
 Social Media Become the Informational Front Line
 
Web 2.0 in Law Libraries
Web 2.0 in Law LibrariesWeb 2.0 in Law Libraries
Web 2.0 in Law Libraries
 
Learning From The Context
Learning From The ContextLearning From The Context
Learning From The Context
 
New Faculty Seminar | VCCS | 2015
New Faculty Seminar | VCCS | 2015New Faculty Seminar | VCCS | 2015
New Faculty Seminar | VCCS | 2015
 
CV_myashar_2017
CV_myashar_2017CV_myashar_2017
CV_myashar_2017
 
Data journalism and open data educational projects
Data journalism and open data educational projectsData journalism and open data educational projects
Data journalism and open data educational projects
 
KT 특강_온라인사업개발_130510_강장묵
KT 특강_온라인사업개발_130510_강장묵KT 특강_온라인사업개발_130510_강장묵
KT 특강_온라인사업개발_130510_강장묵
 
Homeorchard.ucdavis.edu
Homeorchard.ucdavis.eduHomeorchard.ucdavis.edu
Homeorchard.ucdavis.edu
 
Smart mobility 2015
Smart mobility  2015Smart mobility  2015
Smart mobility 2015
 
122634800 viver-de-luz-adendo
122634800 viver-de-luz-adendo122634800 viver-de-luz-adendo
122634800 viver-de-luz-adendo
 
Howe School Forum, Fall 2003
Howe School Forum, Fall 2003Howe School Forum, Fall 2003
Howe School Forum, Fall 2003
 
The Links Between the Neighborhood Food Environment & Childhood Nutrition
The Links Between the Neighborhood Food Environment & Childhood Nutrition The Links Between the Neighborhood Food Environment & Childhood Nutrition
The Links Between the Neighborhood Food Environment & Childhood Nutrition
 
200512F_CLTHE_Full
200512F_CLTHE_Full200512F_CLTHE_Full
200512F_CLTHE_Full
 
Team b ethics scrapbook project_wk5
Team b ethics scrapbook project_wk5Team b ethics scrapbook project_wk5
Team b ethics scrapbook project_wk5
 
Resources on Regions
Resources on RegionsResources on Regions
Resources on Regions
 
webteaching.ppt
webteaching.pptwebteaching.ppt
webteaching.ppt
 
Taller Google Perú
Taller Google PerúTaller Google Perú
Taller Google Perú
 
I010224146
I010224146I010224146
I010224146
 

Similar to Make Their Short Film By Loris Greaud

Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded LinuxChris Simmonds
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerIntroducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerAkihiro Nomura
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upJonathan Lee
 
2012 04-19 theory-of_operation
2012 04-19 theory-of_operation2012 04-19 theory-of_operation
2012 04-19 theory-of_operationbobwolff68
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devicesChris Simmonds
 
Tomcat from a cluster to the cloud on RP3
Tomcat from a cluster to the cloud on RP3Tomcat from a cluster to the cloud on RP3
Tomcat from a cluster to the cloud on RP3Jean-Frederic Clere
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
ABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat InternalsABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat InternalsBenjamin Zores
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Renesas DevCon 2010: Starting a QT Application with Minimal Boot
Renesas DevCon 2010: Starting a QT Application with Minimal BootRenesas DevCon 2010: Starting a QT Application with Minimal Boot
Renesas DevCon 2010: Starting a QT Application with Minimal Bootandrewmurraympc
 
Docker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore MeetupDocker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore Meetupsangam biradar
 
OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...
OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...
OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...OpenNebula Project
 
How Can OpenNebula Fit Your Needs: A European Project Feedback
How Can OpenNebula Fit Your Needs: A European Project FeedbackHow Can OpenNebula Fit Your Needs: A European Project Feedback
How Can OpenNebula Fit Your Needs: A European Project FeedbackNETWAYS
 
Android Platform Debugging and Development at ABS 2014
Android Platform Debugging and Development at ABS 2014Android Platform Debugging and Development at ABS 2014
Android Platform Debugging and Development at ABS 2014Opersys inc.
 
Automated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceAutomated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceDani Llewellyn
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
Web componenet using angular element
Web componenet using angular elementWeb componenet using angular element
Web componenet using angular elementHimanshu Tamrakar
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 

Similar to Make Their Short Film By Loris Greaud (20)

Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded Linux
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 SupercomputerIntroducing Container Technology to TSUBAME3.0 Supercomputer
Introducing Container Technology to TSUBAME3.0 Supercomputer
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
 
2012 04-19 theory-of_operation
2012 04-19 theory-of_operation2012 04-19 theory-of_operation
2012 04-19 theory-of_operation
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devices
 
september13.ppt
september13.pptseptember13.ppt
september13.ppt
 
Tomcat from a cluster to the cloud on RP3
Tomcat from a cluster to the cloud on RP3Tomcat from a cluster to the cloud on RP3
Tomcat from a cluster to the cloud on RP3
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
ABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat InternalsABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat Internals
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Renesas DevCon 2010: Starting a QT Application with Minimal Boot
Renesas DevCon 2010: Starting a QT Application with Minimal BootRenesas DevCon 2010: Starting a QT Application with Minimal Boot
Renesas DevCon 2010: Starting a QT Application with Minimal Boot
 
Docker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore MeetupDocker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore Meetup
 
OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...
OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...
OpenNebulaConf 2013 - How Can OpenNebula Fit Your Needs: A European Project F...
 
How Can OpenNebula Fit Your Needs: A European Project Feedback
How Can OpenNebula Fit Your Needs: A European Project FeedbackHow Can OpenNebula Fit Your Needs: A European Project Feedback
How Can OpenNebula Fit Your Needs: A European Project Feedback
 
Android Platform Debugging and Development at ABS 2014
Android Platform Debugging and Development at ABS 2014Android Platform Debugging and Development at ABS 2014
Android Platform Debugging and Development at ABS 2014
 
Automated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceAutomated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build Service
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Web componenet using angular element
Web componenet using angular elementWeb componenet using angular element
Web componenet using angular element
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 

Recently uploaded

VIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service Gulbarga
VIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service GulbargaVIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service Gulbarga
VIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service GulbargaRiya Pathan
 
VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...
VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...
VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...Riya Pathan
 
Call Girl Nashik Saloni 7001305949 Independent Escort Service Nashik
Call Girl Nashik Saloni 7001305949 Independent Escort Service NashikCall Girl Nashik Saloni 7001305949 Independent Escort Service Nashik
Call Girl Nashik Saloni 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Hot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtS
Hot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtSHot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtS
Hot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtSApsara Of India
 
LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)
LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)
LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)bertfelixtorre
 
Cash Payment Contact:- 7028418221 Goa Call Girls Service North Goa Escorts
Cash Payment Contact:- 7028418221 Goa Call Girls Service North Goa EscortsCash Payment Contact:- 7028418221 Goa Call Girls Service North Goa Escorts
Cash Payment Contact:- 7028418221 Goa Call Girls Service North Goa EscortsApsara Of India
 
Private Call Girls Bally - 8250192130 | 24x7 Service Available Near Me
Private Call Girls Bally - 8250192130 | 24x7 Service Available Near MePrivate Call Girls Bally - 8250192130 | 24x7 Service Available Near Me
Private Call Girls Bally - 8250192130 | 24x7 Service Available Near MeRiya Pathan
 
Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...
Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...
Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...Riya Pathan
 
Udaipur Call Girls 9602870969 Call Girl in Udaipur Rajasthan
Udaipur Call Girls 9602870969 Call Girl in Udaipur RajasthanUdaipur Call Girls 9602870969 Call Girl in Udaipur Rajasthan
Udaipur Call Girls 9602870969 Call Girl in Udaipur RajasthanApsara Of India
 
1681275559_haunting-adeline and hunting.pdf
1681275559_haunting-adeline and hunting.pdf1681275559_haunting-adeline and hunting.pdf
1681275559_haunting-adeline and hunting.pdfTanjirokamado769606
 
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur EscortsVIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
GV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICE
GV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICEGV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICE
GV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICEApsara Of India
 
Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7Riya Pathan
 
Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7Riya Pathan
 
Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...
Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...
Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...srsj9000
 
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130Suhani Kapoor
 
Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service Kolhapur
VIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service KolhapurVIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service Kolhapur
VIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service KolhapurRiya Pathan
 
Models Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment Booking
Models Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment BookingModels Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment Booking
Models Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment Bookinganamikaraghav4
 
Call Girls in Faridabad 9000000000 Faridabad Escorts Service
Call Girls in Faridabad 9000000000 Faridabad Escorts ServiceCall Girls in Faridabad 9000000000 Faridabad Escorts Service
Call Girls in Faridabad 9000000000 Faridabad Escorts ServiceTina Ji
 

Recently uploaded (20)

VIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service Gulbarga
VIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service GulbargaVIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service Gulbarga
VIP Call Girls in Gulbarga Aarohi 8250192130 Independent Escort Service Gulbarga
 
VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...
VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...
VIP Russian Call Girls Nanded Chhaya 8250192130 Independent Escort Service Na...
 
Call Girl Nashik Saloni 7001305949 Independent Escort Service Nashik
Call Girl Nashik Saloni 7001305949 Independent Escort Service NashikCall Girl Nashik Saloni 7001305949 Independent Escort Service Nashik
Call Girl Nashik Saloni 7001305949 Independent Escort Service Nashik
 
Hot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtS
Hot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtSHot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtS
Hot Call Girls In Goa 7028418221 Call Girls In Vagator Beach EsCoRtS
 
LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)
LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)
LE IMPOSSIBRU QUIZ (Based on Splapp-me-do)
 
Cash Payment Contact:- 7028418221 Goa Call Girls Service North Goa Escorts
Cash Payment Contact:- 7028418221 Goa Call Girls Service North Goa EscortsCash Payment Contact:- 7028418221 Goa Call Girls Service North Goa Escorts
Cash Payment Contact:- 7028418221 Goa Call Girls Service North Goa Escorts
 
Private Call Girls Bally - 8250192130 | 24x7 Service Available Near Me
Private Call Girls Bally - 8250192130 | 24x7 Service Available Near MePrivate Call Girls Bally - 8250192130 | 24x7 Service Available Near Me
Private Call Girls Bally - 8250192130 | 24x7 Service Available Near Me
 
Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...
Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...
Private Call Girls Durgapur - 8250192130 Escorts Service with Real Photos and...
 
Udaipur Call Girls 9602870969 Call Girl in Udaipur Rajasthan
Udaipur Call Girls 9602870969 Call Girl in Udaipur RajasthanUdaipur Call Girls 9602870969 Call Girl in Udaipur Rajasthan
Udaipur Call Girls 9602870969 Call Girl in Udaipur Rajasthan
 
1681275559_haunting-adeline and hunting.pdf
1681275559_haunting-adeline and hunting.pdf1681275559_haunting-adeline and hunting.pdf
1681275559_haunting-adeline and hunting.pdf
 
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur EscortsVIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
VIP Call Girls Nagpur Megha Call 7001035870 Meet With Nagpur Escorts
 
GV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICE
GV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICEGV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICE
GV'S 24 CLUB & BAR CONTACT 09602870969 CALL GIRLS IN UDAIPUR ESCORT SERVICE
 
Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Bagbazar 👉 8250192130 ❣️💯 Available With Room 24×7
 
Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7
Kolkata Call Girl Airport Kolkata 👉 8250192130 ❣️💯 Available With Room 24×7
 
Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...
Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...
Hifi Laxmi Nagar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ D...
 
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
VIP Call Girls Service Banjara Hills Hyderabad Call +91-8250192130
 
Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Najafgarh Delhi 💯Call Us 🔝8264348440🔝
 
VIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service Kolhapur
VIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service KolhapurVIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service Kolhapur
VIP Call Girl Kolhapur Aashi 8250192130 Independent Escort Service Kolhapur
 
Models Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment Booking
Models Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment BookingModels Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment Booking
Models Call Girls Hridaypur | 8250192130 At Low Cost Cash Payment Booking
 
Call Girls in Faridabad 9000000000 Faridabad Escorts Service
Call Girls in Faridabad 9000000000 Faridabad Escorts ServiceCall Girls in Faridabad 9000000000 Faridabad Escorts Service
Call Girls in Faridabad 9000000000 Faridabad Escorts Service
 

Make Their Short Film By Loris Greaud

  • 1. 1/12/2017 1 Geant4 Visualization Special Topic: How to Make a Movie Loris Greaud
  • 2. Acknowledgement • The techniques presented here were pioneered by John Allison. • This talk draws heavily on the documentation and examples that John presented at last month’s Geant4 Collaboration Workshop in Lisbon. 1/12/2017 2
  • 3. Part 1: The Old Technique Stitching Still Pictures Together to Make a Movie 1/12/2017 3
  • 4. Stitching Still Pictures Together to Make a Movie • Making movies with just changes to camera position has been possible for years using macros – Produce a large number of still images – Stitch them together into a movie file (mpeg) • Conversion to mpeg somewhat complicated – Documented since release 8.2 – New section of the Application Developers Guide, section 8.10. • I’ll show you here how to do it with OpenGL, but you can also do it using other drivers that can output pictures, such as DAWNFILE and RayTracerX 1/12/2017 4
  • 5. Movies: Stitched Together from Multiple Stills 1/12/2017 5 QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 6. It’s All About Macros • Main Macro – /control/verbose 2 – /vis/open OGLSX – /vis/drawVolume – /vis/viewer/reset – /vis/viewer/set/style surface – /vis/viewer/set/projection perspective 50 deg – /control/alias phi 30 – /control/loop movie.loop theta 0 360 1 • Inner Macro, movie.loop – /vis/viewer/set/viewpointThetaPhi {theta} {phi} – /vis/viewer/zoom 1.005 – /vis/viewer/refresh • At each step of the macro – the volume rotates a little – zooms in a little – and then refreshes the OpenGL window • Demo live from Geant4 1/12/2017 6 Omit /vis/viewer/refresh on auto-refresh devices such as OGLIX and OGLSX
  • 7. To Create a Movie File, Start by Saving the Individual Frames • Main Macro stays the same: – /control/verbose 2 – /vis/open OGLSX – /vis/drawVolume – /vis/viewer/reset – /vis/viewer/set/style surface – /vis/viewer/set/projection perspective 50 deg – /control/alias phi 30 – /control/loop movie.loop theta 0 360 1 • Inner Macro, movie.loop, just has one extra command to output to file – /vis/viewer/set/viewpointThetaPhi {theta} {phi} – /vis/viewer/zoom 1.005 – /vis/ogl/printEPS – /vis/viewer/refresh • At each step of the macro – the volume rotates a little – zooms in a little – and then an eps file is produced 1/12/2017 7 Omit /vis/viewer/refresh on auto-refresh devices such as OGLIX and OGLSX
  • 8. From EPS to MPEG (slide 1 of 2) • To turn the many eps files into a single mpeg, you first need to generate an mpeg parameters file. To do this, you will use the script: – make_mpeg2encode_parfile.sh – which can be found in • geant4/UserDoc/UserGuildes/ForApplicationDevelope r/html/ Visualization/ • Run the script as: – make_mpeg2encode_parfile.sh G4OpenGL_*eps • Edit the resulting mpeg2encode.par file to specify file type and size – Before “/* horizontal_size */” put a size, such as: • 600 /* horizontal_size */> – Before “< /* vertical_size */” put a size, such as: • 600 /* vertical_size */> – Before /* aspect_ratio_information” put a ration, such as: • 1 /* aspect_ratio_information 1=square pel, 2=4:3, 3=16:9, 4=2.11:1 */1/12/2017 8
  • 9. From EPS to MPEG (slide 2 of 2) • You’ll need an eps conversion facility called “convert” that you can get from: – imagemagick.org • Batch convert the eps files to ppm files using a shell command such as: – for i in G4OpenGL*eps; do j=`basename $i .eps`; command="convert $i $j.ppm"; echo $command; $command; done • Finally, run the mpeg encoder using the parameters file and the ppm files: – mpeg2encode mpeg2encode.par G4OpenGL.mpg – mpeg2encode is free software from: • http://www.mpeg.org/MSSG/ • The resulting mpeg file can be run in any mpeg player. – For example, on a Mac, opening G4OpelGL.mpg starts a QuickTime player. • The above instructions used OpenGL, but you can also make a movie using other drivers that can output pictures, such as DAWNFILE and RayTracerX. – For details on making movies from any of those drivers, see section 8.10 of the Geant4 Application Developers Guide.1/12/2017 9
  • 10. Part 2: the New Technique Time Development of the Event Live from OpenGL 1/12/2017 10
  • 11. New Technique: Time Development of the Event • New features since release 8.2 allow you to do a new kind of Geant4 movie. You will be able to make movies that show Time Development of an event – I.e., a shower in slow motion • Based on technique of “time-slicing”, breaking trajectories into individual slices, each with a time attribute. – requires newer visualization features, rich trajectory and some extensions to the OpenGL Stored driver • /vis/open OGLSX or for windows /vis/open OGLSWin32 • You can run these animations Directly from Geant4. You do NOT need to output any files or stitch them together into an mpeg. 1/12/2017 11
  • 12. Movies: Live from Geant4 OpenGL 1/12/2017 12 QuickTime™ and a decompressor are needed to see this picture.
  • 13. What was in the Previous Movie • http://www.hep.man.ac.uk/u/johna/pub/Geant4/Movies/ pi-10Gevpi+neutronZoom.mp4 • 10 GeV/c pi- on lead (in a lead-liquid-argon calorimeter, exampleN03 with QGSP physics) – A plethora of slow pions, protons and neutrons – Three fast pi- and one fast pi+ that subsequently interacts again – Neutrons (yellow) hang around for several ns • Green circle is the light front – Careful viewer will notice that near the end of the event, some particles appear to cross the light front. This was a bug in the way the light front sphere was rendered in perspective view, fixed in release 8.2 1/12/2017 13
  • 14. You’ll Need Geant4 Release 8.2 or Newer • Because you’ll need the latest Rich Trajectory code – so that it can instrument each trajectory step with a time value • And the latest Enhanced Trajectory Drawing code – so that it can slice the trajectory into many different graphics primitives based on time slices • And the latest Geant4 OpenGL Driver – so that it can show one time slice at a time • And the latest Trajectory and Hit Filtering – so you can get all of those annoying low energy gammas out of the picture • The techniques shown in this talk were first unveiled by John Allison at the 2006 Geant4 Collaboration Workshop in Lisbon – See John’s example movies at: http://www.hep.man.ac.uk/u/johna/pub/Geant4/Movies/ 1/12/2017 14
  • 15. The New Vis Tutorial Examples • There are two example macros in the visTutor part of example N03. This presentation is based on those examples. – /examples/novice/N03/visTutor/exN03Vis12 – /examples/novice/N03/visTotur/exN03Vis13 • Before you try to make a move, just build and run exampleN03 normally and check that you have OpenGL working. You’ll need the “stored” version of OpenGL for this work: – /vis/open OGLSX or on Windows /vis/open OGLSWin32 • Make sure something appears in the OpenGL window when you do a simple visualization command such as: – /vis/drawVolume 1/12/2017 15
  • 16. The New Trajectory Commands • The examples use various forms of the following commands: • Add trajectories using the new Rich Trajectory option – /vis/scene/add/trajectories rich • Create a trajectory model to color by charge – /vis/modeling/trajectories/create/drawByCharge • Specify the new time-slicing option in the trajectory model – /vis/modeling/trajectories/drawByCharge-0/default/ setTimeSliceInterval 0.1 ns • Chops trajectory into pieces, each assigned a time range • Remember that particles are often relativistic and travel 30 cm/ns • Filter trajectories to remove gammas – /vis/filtering/trajectories/create/particleFilter – /vis/filtering/trajectories/particleFilter-0/add gamma – /vis/filtering/trajectories/particleFilter-0/invert true 1/12/2017 16
  • 17. The OGL Commands • At present, the time-dependent animation only works in the Stored Mode OpenGL drivers – /vis/open OGLS* So the commands are specific to /vis/ogl • Specify time window – /vis/ogl/set/startTime 2 ns 1 ns – Items are displayed if their time range* and viewer’s time window overlap – Default time range is -infinite to infinity, so normal items such as detector geometry are always drawn • Specify how fast slices should fade, gives a “vapor trail” effect – /vis/ogl/set/fade 1 • Specify whether the light wavefront should be shown – /vis/ogl/set/displayLightFront true -90 0 0 mm • Specify whether the current time should be displayed – /vis/ogl/set/displayHeadTime true 1/12/2017 17
  • 18. The Time-Slice Loop • Simplest form, from exN03Vis12.mac – /control/alias timeRange 0.1 – /control/loop loop.mac startTime -{timeRange} 0.7 0.005 • where loop.mac specifies start time and range for which slices to show – /vis/ogl/set/startTime {startTime} ns {timeRange} ns • Slightly more complicated form, from exN03Vis13.mac, adds panning so that camera follows the light front and specifies time slices by end time rather than start time – /control/alias timeRange 0.1 – /control/alias dx 0.3 – /control/loop loop.mac endTime 0 0.7 0.001 • where loop.mac specifies end time for which slices to show – /vis/viewer/pan {dx} 0 mm – /vis/ogl/set/endTime {endTime} ns {timeRange} ns 1/12/2017 18
  • 19. Running the Vis Tutorial Examples • examples/novice/N03/visTutor/exN03Vis12.mac does three animations in a row: – Draw by charge with trajectory points – Draw by particle ID (remove g’s) – p-m-e decay • examples/novice/N03/visTutor/exN03Vis13.mac does one animation, more complex since it includes camera panning – 10 GeV EM shower showing light front – Camera follows (pans) at speed of light • To run either of them: – Make sure you have Geant4 Release 8.2 or newer – Build examples/novice/N03 – Run N03 with one of the above macros, such as: • $G4WORKDIR/bin/Darwin-g++/exampleN03 visTutor/exN03Vis12.mac 1/12/2017 19
  • 20. 1/12/2017 20 Still from exampleN03 visTutor/ exN03Vis12.mac 1 GeV electron into lead-liqAr calorimeter Demo live from Geant4 Unfortunately text is lost making a movie file (a current OpenGLeps “feature”)
  • 21. Some More Example Animations • The following is a set of example animations prepared by John Allison. • You can check them out yourself from John’s movies page: – http://www.hep.man.ac.uk/u/johna/pub/Geant4/Movies/ 1/12/2017 21
  • 22. 1/12/2017 22 50 MeV electron into lead-liqAr calorimeter e- red e+ blue  green Yellow circles are step points -- geometrical boundaries or physical processes Single50MeV.mpg QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 23. 1/12/2017 23 10 GeV electron into lead-liqAr calorimeter over 800 ps Single10GeVSlow.mpg Gammas filtered out /vis/filtering/ trajectories/create/ particleFilter /vis/filtering/ trajectories/ particleFilter-0/add gamma /vis/filtering/ trajectories/ particleFilter-0/ invert true Electrons red Positrons blue QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 24. 1/12/2017 24 Same 10 GeV electron, camera follows by panning at light speed Single10GeVFollowed.mpg Shows light front (wave front of light starting at same time and place) /vis/ogl/set/ displayLightFront true -90 0 0 mm Time range 800 ps QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 25. 1/12/2017 25 100 MeV + pi+100MeVmu+e+.mpg Stops, decays to + Stops, dallies (meanlife 2 s), decays to e+ Annihilates to gamma-gamma Compton scattering Duration 4 s QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 26. 1/12/2017 26 10 Gev - pi-10GeVEMShower.mpg N04 hadronic physics Interacts early (potential confusion with EM shower) Produces EM shower, presumably via charge exchange to 0  Neutrons also produced + magenta - cyan n yellow  green Others grey Duration 2 ns QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 27. 1/12/2017 27 10 Gev - pi-10GeVNeutrons.mpg N04 hadronic physics Produces neutron chain reaction  filtered e- red e+ blue + magenta - cyan n yellow  green Others grey Duration 2 ns QuickTime™ and a YUV420 codec decompressor are needed to see this picture.
  • 28. 1/12/2017 28 Another 10 GeV - pi-10Gevpi+neutron SideView.mp4 3 fast - + interaction 3 ns Mpeg4 encoding with QuickTime Pro QuickTime™ and a decompressor are needed to see this picture.
  • 29. 1/12/2017 29 Same pi-10Gevpi+neutron Zoom.mp4 Perspective view Slow zoom Detector drawing suppressed 3 ns QuickTime™ and a decompressor are needed to see this picture.
  • 30. Geant4 Visualization Resources 1/12/2017 30 Geant4 Installation Guides http://geant4.slac.stanford.edu/installation Hands on HepRApp Tutorial http://geant4.slac.stanford.edu/Presentations/vis/G4HepRAppTutorial/G4HepRAppTutorial.html Hands on DAWN Tutorial http://geant4.slac.stanford.edu/Presentations/vis/G4DAWNTutorial/G4DAWNTutorial.html Hands on OpenGL Tutorial http://geant4.slac.stanford.edu/Presentations/vis/G4OpenGLTutorial/G4OpenGLTutorial.html Geant4 Visualization Commands http://geant4.slac.stanford.edu/Presentations/vis/G4VisCommands.ppt (and .pdf) Geant4 Advanced Visualization http://geant4.slac.stanford.edu/Presentations/vis/G4VisAdvanced.ppt (and .pdf) How to Make a Movie http://geant4.slac.stanford.edu/Presentations/vis/HowToMakeAMovie.ppt (and .pdf) Visualization Chapter of the Geant4 User’s Guide for Application Developers http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ List of Visualization Commands: http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/ AllResources/Control/UIcommands/_vis_.html For Questions or Comments: Geant4 Visualization Online Forum: http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/visualization.html