We started to profile the program and to look at performance critical parts, finding them in the HepRep management (an HepRep representation can be VERY large for some event), the 3D/2D view managemnet, the CORBA connection. At the same time we realized that the GUI, on the contrary, is not a performance bottleneck in most of the cases.
So we operated a major shift on the architecture of FRED: now it is a Ruby program that load some C++ shared libraries for the critical part. Since now the GUI is built with scripts, it can be changed/augmented/extended easily. Moreover we solved our memory problem, the application seems more stable (and fast) and we are now able to add new features in a faster way (no compilation or linking time .. I want to try a new feature? I write it and try it)
A user can now write his own extension as small script that can be loaded in FRED .. if the script evolve in something big, he/she can also encapsulate it in a FRED plugin that can be loaded automatically at start of the application; as soon as scripts and plugins will start to pop up we can provide a repository for them .. and the most useful plugin can become part of FRED.
One important thing: a casual user DID NOT NEED to learn Ruby, to write scripts or whatever .. FRED will be provided with enough features to be usable at least as WIRED, with some specific features for GLAST. Only if the user want to customize or extend FRED than he will need to learn something of Ruby .. but also in this case we are working on the exposed API in order to provide a simple C++like one.
We have also started to use a graphic scene manager on top of OpenGL: the OpenSceneGraph This provide use with a faster 3D graphic (also on non accelerated machine) and a lot of new possible features, like text on the screen, transparency, HUD like information on the screen, animations etc etc
So, is it useful in some way? Well, at the moment we are aiming at providing the same functionalities of the Gleam GUI that all of you know and use; apart from doing that offline (no CORBA for now, but expect it in 1-2 weeks), functionalities are almost the same. You can pan the view, rotate, zoom, both with mouse or with keyboard shortcuts. You can save a Bmp screenshot or a PostScript one (true vectorial format). You can select a graphical object and see the attributes that have been attached to it.
For now the fillers mechanism (do you remember that?) are provided for just the geometry and the MonteCarlo data, but that should be enought for this beta testing of FRED .. if you want to help with suggestion to build fillers for digi and recon you are warmly welcomed ...
At the moment we are packaging everything in orded to distribute FRED in a simple way; if you are impatient and a Windows user, please send me an email and I'll send you a preliminary beta .. otherwise for next week core meeting we will setup the new FRED web page with download/installation for both windows and linux. In the distribution we will put also some HepRep event generated by GLAST to test FRED. This is the only source format for now, but CORBA (do you remember it in September) is almost ready.
Note that this will obviously slow down G4Generator or Gleam; at each event the TDS is "dumped" in the HepRep xml file, with lot of information attached to graphical objects, and this take time.