223 lines
6.9 KiB
Plaintext
223 lines
6.9 KiB
Plaintext
----- How to visualize Geant4 simulation -----
|
|
----- with VRML-network drivers and g4vrmlview -----
|
|
|
|
November 04, 1999
|
|
|
|
Satoshi Tanaka and Yasuhide Sawada
|
|
Fukui University, Japan
|
|
tanaka@i1nws1.fuis.fukui-u.ac.jp
|
|
|
|
------------------------
|
|
Section 1: Introduction
|
|
------------------------
|
|
|
|
This is a document to explain how to perform Geant4
|
|
"remote" visualization with VRML. You can visualize Geant4
|
|
simulation on your WWW browser.
|
|
You have to prepare the following softwares beforehand:
|
|
|
|
(1) Geant4
|
|
(2) g4vrmlview, a small java software included in the Geant4 package
|
|
|
|
geant4/source/visualization/VRML/g4vrmlview/
|
|
|
|
Or you can also obtain it from our ftp site:
|
|
|
|
ftp://i1nws2.fuis.fukui-u.ac.jp/pub/graphics
|
|
/fukui_graphics_system/g4vrmlview_VERSION.tar.gz
|
|
|
|
|
|
(3) VRML browser, e.g., vrweb, VRMLview, etc
|
|
|
|
|
|
-----------------------------------------------
|
|
Section 2: What is the Geant4 VRML-network drivers?
|
|
-----------------------------------------------
|
|
|
|
Geant4 VRML-network drivers are included in visualization category of
|
|
the Geant4 package:
|
|
|
|
geant4/source/visualization/VRML/
|
|
|
|
The VRML-network drivers work as follows:
|
|
|
|
(1) Convert 3D data of Geant4 simulation into VRML 1.0/2.0 codes.
|
|
(2) Send the generated VRML codes to another process of "g4vrmlview",
|
|
running at either local or remote host.
|
|
|
|
(Note: For local visualization, use the VRML-file drivers,
|
|
which can be invoked with the following commands:
|
|
|
|
.....
|
|
|
|
Idle> /vis/sceneHandler/create VRML1FILE
|
|
|
|
for VRML 1.0 and
|
|
|
|
Idle> /vis/sceneHandler/create VRML2FILE
|
|
|
|
for VRML 2.0.
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
Section 3: Environmental variables to customize the VRML-network drivers
|
|
------------------------------------------------------------------------
|
|
|
|
You can customize the VRML-network drivers by setting environmental
|
|
variables at Geant4 host, i.e., the host where Geant4 runs:
|
|
|
|
Geant4_host % setenv G4VRML_PORT port_number
|
|
Geant4_host % setenv G4VRML_HOST_NAME host_name
|
|
|
|
The default port number is 40801, and the default host name
|
|
is "localhost". You need not define the environmental
|
|
variables if you use the default values.
|
|
|
|
|
|
---------------------------------
|
|
Section 4: What is g4vrmlview?
|
|
---------------------------------
|
|
|
|
g4vrmlview is a software written in java.
|
|
It works as follows:
|
|
|
|
(1) Receive VRML codes from a VRML-network driver of Geant4
|
|
via local or wide-area network.
|
|
(2) Save the received VRML codes to a local file named "g4.wrl" etc.
|
|
(3) Invoke a VRML viewer, which is specified at the command line,
|
|
automatically.
|
|
|
|
--------------------------------------
|
|
Section 5: How to install g4vrmlview
|
|
--------------------------------------
|
|
|
|
You need JDK1.1 to install g4vrmlview.
|
|
The installation can be done by doing the following steps:
|
|
|
|
(1) % cd g4vrmlview
|
|
(2) Edit Makefile and set a proper directory name to variable
|
|
"INSTALL_DIR". The default setting is:
|
|
|
|
INSTALL_DIR = "/usr/local/javaclass"
|
|
|
|
Later, java classes (g4vrmlview.class etc) are installed
|
|
to the directory specified by the variable INSTALL_DIR.
|
|
|
|
(3) Set the environmental variable "CLASSPATH" in .cshrc etc.
|
|
(This step can be skipped in some platforms.)
|
|
For example, if JDK1.1.1 is installed in the directory
|
|
"/usr/local/dev/jdk1.1.1" and you want to install g4vrmlview
|
|
into "/usr/local/javaclass", then the variable CLASSPATH
|
|
should be defined as:
|
|
|
|
# java in Unix (.cshrc)
|
|
setenv CLASSPATH .:/usr/local/dev/jdk1.1.1/lib/classes.zip:\
|
|
/usr/local/javaclass
|
|
|
|
Similarly, in Windows NT/95, if JDK.1.1 is installed in
|
|
the directory "C:\jdk1.1.1" and you want to install g4vrmlview
|
|
into C:\dev\javaclass, you should add the following lines to
|
|
AUTOEXEC.BAT:
|
|
|
|
# java in Windows NT/95 (autoexec.bat)
|
|
SET CLASSPATH = .;C:\jdk1.1.1\lib\classes.zip;C:\dev\javaclass
|
|
|
|
(4) % make clean
|
|
(5) % make
|
|
|
|
(6) Test created java classes using g4mini.
|
|
You can do it using two separate windows,
|
|
instead of using two separate hosts.
|
|
Here we assume that we use windows named "window_1"
|
|
and "window_2", and use the VRML browser "vrweb".
|
|
|
|
window_1 % java g4vrmlview vrweb
|
|
Waiting for requests at port 40801 ...
|
|
|
|
window_2 % java g4vrmlview vrweb
|
|
% java g4mini
|
|
Usage: java g4mini src_file server_hostname
|
|
|
|
window_2 % java g4mini sample.wrl localhost
|
|
|
|
The test is successful if you see pictures on the VRML browser.
|
|
|
|
Now you can use g4vrmlview if the class path of java is,
|
|
explicitly or implicitly set to the current directory.
|
|
Go on to the next step if you want to install g4vrmlview into
|
|
a public place.
|
|
|
|
Here you have to become root if you do not have permission
|
|
to INSTALL_DIR. If the directory INSTALL_DIR does not exist,
|
|
it will be created automatically.
|
|
|
|
(5) % make install
|
|
|
|
|
|
--------------------------------------
|
|
Section 6: How to use g4vrmlview
|
|
--------------------------------------
|
|
|
|
(1) Invoke g4vrmlview at the host where g4vrmlview runs,
|
|
say, "VRML_host". For example,
|
|
|
|
VRML_host% java g4vrmlview VRML_browser_name
|
|
|
|
where the last argument is a name of your favorite VRML browser.
|
|
|
|
(2) Invoke Geant4 at the host, where Geant4 runs, say, Geant4_host.
|
|
For example,
|
|
|
|
Geant4_host% exampleN03
|
|
|
|
.....
|
|
|
|
Idel> /vis/sceneHandler/create VRML1
|
|
|
|
for VRML 1.0 and
|
|
|
|
Idel> /vis/sceneHandler/create VRML2
|
|
|
|
for VRML 2.0.
|
|
|
|
|
|
---------------------------------------
|
|
Section 7: More notes on g4vrmlview
|
|
---------------------------------------
|
|
|
|
(1) Format of invoking g4vrmlview:
|
|
|
|
% java g4vrmlview VRML_browser_name [port_number]
|
|
|
|
VRML_browser_name:
|
|
"netscape", "vrweb", etc,
|
|
or "NONE" to suppress invoking VRML browser
|
|
|
|
port_number:
|
|
The default port number is 40801.
|
|
If you have set the environmental variable
|
|
"G4VRML_PORT" at Geant4 host,
|
|
you have to give the same port number.
|
|
For example,
|
|
|
|
Geant4_host % setenv G4VRML_PORT 40802
|
|
VRML_host % java g4vrmlview netscape 40802
|
|
|
|
(2) Auto increment of port number:
|
|
If the port number 40801 is already in use, it is
|
|
automatically incremented one by one up to 40810.
|
|
|
|
(3) Multiple thread:
|
|
g4vrmlview is a multi-thread software.
|
|
It can accept data from plural Geant4 at the same time.
|
|
|
|
(4) Saving VRML codes to files:
|
|
VRML codes sent from Geant4 is saved to a file named
|
|
"g4.wrl". If g4.wrl already exists, the file name is
|
|
incremented to g4_2.wrl. Similarly the file name is
|
|
incremented to g4_3.wrl, g4_4.wrl, etc.
|
|
The files are created in the directory where you invoked g4vrmlview.
|
|
|
|
|
|
===== End of document =====
|