Modularization and implementation of a new GUI

The most exciting project to be funded by the new grant will be the development of a more modern and user-friendly graphical interface to GENESIS. This will be done in conjunction with an update and modularization of the GENESIS code.

The following summary of our plans will give you an idea of the changes that you can expect in the future.

Although the development of the GENESIS simulation code and libraries of simulation elements has kept pace with the times, and continues to provide a solid base for modeling in computational neuroscience, the current software organization of GENESIS is more than 15 years old. Since GENESIS was originally designed, both the capabilities of computer hardware and software, as well as the expectations and abilities of computer users have changed. GENESIS was developed at a time when one could expect a modeler to also be a computer programmer. Accordingly, GENESIS was based on the use of the command line on a Unix system, using X Windows as the graphical standard for its GUI. Simulations were then constructed by creating simulation scripts (programs) with a text editor. The widespread usage of Windows-based operating systems, however, has produced a new generation of computer users, who have no familiarity with a command line environment and expect "point and click" GUIs requiring little or no programming skills. This is true even for computer scientists and engineers, let alone neurobiologists. Because GENESIS has always been designed with the use of real neurobiologists in mind, it is now necessary to change the GENESIS interface.

The solution to both the expectations and needs of users, and the full utilization of the ever increasing capacities provided by networked modern computers involves separating the simulation base code from the GENESIS GUI. Such a separation further allows us to reimplement the GUI in a modern, more sophisticated and flexible graphical standard. With support from this grant we will separate the GENESIS GUI from the simulation base code, and re-implement the GUI in Java. These changes will not only provide much more flexible use of computing resources and significant reductions in the amount of time and effort necessary to port GENESIS to new platforms, but will also provide a significant enhancement of the use of the system, as well as full access to GENESIS over the World Wide Web. We anticipate these changes will significantly enhance both the research use of GENESIS by neurobiologists, and the use of GENESIS in neuroscience education. Much of this design has been prototyped (see http://www.modelersworkspace.org), but until now we have not had the resources to carry out the implementation.

By separating the GENESIS computational base and graphics code, the GENESIS simulation base code will, in effect, become a compute server accepting commands from an external interface, rather than from commands typed on a GENESIS command line. A user will then be able to choose to run both the interface and GENESIS kernel on the same workstation, or run GENESIS split between the workstation and a remote computer. Applying this technique to GENESIS will make it much easier for users to use both their own networked resources, and high-performance systems such as parallel supercomputers.

In addition to the enhanced functionality provided immediately by this approach, these changes will also provide for the possibility, in the future, that the GENESIS simulation core could be replaced with other, faster simulation base codes or alternate command parsers. One such system, called MOOSE, is currently being tested by GENESIS developer Upinder Bhalla in Bangalore, India. MOOSE (Messaging Object Oriented Simulation Environment) is a reimplementation of the core GENESIS simulator code with a much faster and cleaner messaging. It provides for implementation of multiple command parsers, including C, Java, and backwards compatible GENESIS Scripting Language. Replacing much of the old GENESIS C code with code from MOOSE is expected to make GENESIS easier to maintain, and greatly ease porting GENESIS to other platforms, such as Microsoft Windows. Of course, while efforts like MOOSE continue to be developed, GENESIS users will have the option of using the existing simulation base code. Again, the approach we have taken is to build upon the functionality of the current GENESIS system until such time as the value of a new system has been demonstrated. We want to emphasize that this general approach will assure complete backwards compatibility with existing simulation objects and constructed simulations. As GENESIS was designed to be easily extensible through the inclusion of additional libraries of commands and objects, the server version can be extended to include additional functionality that may be required.

Perhaps the most significant consequence of separating the GENESIS GUI from the computional code is the opportunity to reimplement the GENESIS GUI in a more generally available and more powerful graphical system. Specifically the new interface will embody three interrelated goals: (a) Re-implementing the user interface in Java; (b) Providing a user-friendly toolbox metaphor to ease the use of GENESIS by non-programmers; and (c) Making the user interface available both as a standalone program and as a downloadable application that can run inside a web browser.


Back to the main page