CERN Accelerating science

Visworkplan 20090213

To Do List as of 13 February 2009.

As is standard for Geant4 Planned Features documents,

(1) means expected to be done in first half of year

(2) means expected to be done in second half of year

(2/*) means may get to this in second half of year or maytake longer

Add new driver, G4OpenGLFile, uses OpenGL to makes PSwithout any graphics window - (1)

Laurent has the lead.


Improve control over location and size of all GL windows -(1)

(previously didn't work for Motif).

Laurent has the lead.


Extend Qt with panels for high-precision values input,hierarchy control, GL-free rendering - (1)

Add new panel in order to choose cuts/zoom/rotation/center(better precision than with mouse).

Add new panel to choose displayed volumes as in HepRep.

Make an OpenGL mode to render without OpenGL windows (inVRML, PS, EPS, JPG ).

Laurent has the lead.


Develop shared common command to set filename for allfile-based viewers - (1)

Currently, some viewers have name hard coded, some get namefrom environment variable, some get name from viewer-specific commands.


Add Initial Kinetic Energy to trajectory attributes - (1)


Add "remaining energy" attribute to richtrajectory points - (1)

Shows energy remaining at that step.


Add more trajectory models and filters - (2)

Detailed below:


New trajectory model: model by what interaction type createdparticle.

Somewhat similar to drawByOriginVolume, but this isdrawByOriginProcess (or just drawByProcess for short).


New trajectory model: model hue by particle type and at sametime model intensity by momentum.


New trajectory filter: show random subset of trajectories.

To handle the issue of very large numbers of trajectories.

So, for example, I could ask to just show 1 out of 5trajectories


New trajectory filter: filter by fraction of primary energy(rather than by absolute energy).


New trajectory filter: filter by how many generations fromprimary

(eg., show me only primary, secondaries and thirdgeneration, but no further).


New trajectory filter: filter by destination volume and bywhether deposited energy there.


Develop web-based DAWN rendering service - (2/*)

Accepting that some users are not going to have DAWN ontheir own machine, set up a web based service. User fills out a form to tell where to find the .prim file,fills out some other parameters that are the equivalent to running the DAWNsetup GUI on user's local machine, and tells it their email address. User then hits the submit button andwalks away.

Some time later, user get an email that tells where to pickup the completed eps file.

Could also have options to process the file through DAWNCUTor DAVID.

Could even generate more views than user had asked for afterthe first one (if it has spare capacity).

Laurent might take the lead.


Improve visualization tools for voxel geometries - (2/*)


Support filtering of geometry according to attributes - (2/*)

This is the geometry compliment to/vis/filtering/trajectories.

Already have this as geometry "culling", but onlyworks for culling by visibility, daughter visibility and density – plus,if mother opaque, covered daughter volumes. Could be generalized along the lines of the trajectoryfilters.

HepRep browsers currently let one make such cuts on theclient side.

/vis/geometry commands already do some of these things.


Asymmetric scaling: extend support to non-GL drivers (suchHepRepFile and DAWN) - (2/*)

Already supported for the OGL-based drivers.

Laurent check for Qt.


Background color: extend support to non-GL drivers (such asHepRepFile and DAWN) - (2/*)

Already supported for the OGL-based drivers.

Laurent check for Qt.


Window location: extend support to non-GL drivers (such asHepRepFile and DAWN) - (2/*)

Already supported for the OGL-based drivers.


2D and 3D text: support in more drivers (currently in OGLand DAWN) - (2/*)

Nearly done in Open Inventor. How do you position it? 2D or 3D?

Empty implementations: HepRep, VRML1/2.


Smooth shading: support in more drivers - (2/*)

Is this correctly handled in Open Inventor?


Label trajectories or hits with G4Atts (currently have inHepRepFile) - (2/*)

For drivers that do not natively support such labeling.

Use the new 3D Text primitives. Require new commands to select which attributes to display.


Control of auxiliary edges: support in more drivers(currently have in OGL and DAWNGUI) - (2/*)

Such edges are also known as "Soft Edges."


Enhance interoperability of the different visualizationdrivers - (2/*)

i.e.. - using one driver to set camera parameters/visibilityin another.

e.g., use WIRED to select view and visibility, then have G4generate a DAWN prim file that contains the appropriate visibility and haveDAWN render this with the appropriate camera parameters.

Similarly, could drive RayTracer from WIRED.

DAWN and RayTracer thus serve as export formats.

Could similarly derive vis parameters from FRED or Motifversion of GL.

Point is to use a fast, rotatable viewer to drive one of theslow, high quality renderers.

Simplest solution is to have WIRED write out a G4 macro thatsets camera position, etc. G4 usercould then just run the macro by hand.

More elaborate solutions would involve not just setting visparameters but also vis attributes (e.g., using one driver to edit visattributes that are then used by another driver).

Require two new Geant4 commands, "file outputname" and "export format".

Laurent can implement for X/Win/Qt/OI drivers.


Support dynamic loading of visualization drivers - (2/*)

Probably difficult, but worth a feasibility study.


Hierarchical VRML (rather than current flat VRML) - (2/*)


Implement /vis/scene/add/title - (2/*)

Arguments: [<title="Geant4">] [<size>][<x>] [<y>] (2D)


Implement /vis/scene/add/date - (2/*)

Arguments: [<size>] [<x>] [<y>] (2D)


Implement /vis/scene/add/logo2D - (2/*)


Implement /vis/scene/add/text2D - (2/*)


Integrated visualization of field lines - (2/*)

Electric, magnetic, maybe even gravitational.

Initial explorations using stream line techniques, initiallyin Open Inventor, shown by Jane Tinslay at Lisbon.

Would eventually include at least minimal solution for allvis drivers (e.g., handled at base vis level rather than by driver-specificfeatures).

Project suspended when Jane's position was lost.


Full support for visualization of boolean shapes - (2/*)

Some Solids Cannot be Modeled by G4Polyhedron.

Existing commands such as sectionPlane and cutAwayPlaneeither work for only some drivers or just do not give the result that mostusers want.

See John and Evgueni’s proposal, summarized Oct 05 as:

Reimplement existing functionality, including:

Improved algorithms for Boolean processing;

Caching of normals (for speed);

Offer the option of user-supplied normals (for space savingand speed);

Add a new Boolean operation – cut – that createsopen polyhedra for cutaway views.

Guy has some other ideas for how to improve the situation,such as by applying small tilts, but no time to implement.