Abstract
We are elaborating a system of visualization programs synthesis for problems
of the numerical simulation. The system is intended for automation of
graphics programs development. SAGE is an acronym for the Scientific Application
Graphical Environment.
Objectives
The main goal of the SAGE-project is to create a programming tool, which
provides development of visualization programs without explicit coding
and does not require any knowledge of graphics and graphical user interface
programming from the user. The system is called for to reduce the intellectual
efforts and time costs paid by researcher dealing with development of
visualization program.
Preface
Fast evolution of the computational technologies maintain growth of the
numerical simulation popularity. Nowadays, numerical simulation is used
in many natural sciences. One peculiarity of such simulation is a production
of huge volume of numerical data, which are not convenient for analysis
without prior visualization.
It is imortant to have a high-quality view on the model’s behaviour by
means of usage of intermediate and final numerical data of modeling. That
is why researchers face the necessity of searching and selection of visualization
tools.
There are two ways to solve this probem: a) write a specific graphical
application by hand; and b) use of an existing programming product.
The first way is not optimal, because the researcher has to know, how
to manage and use the integration development environment, window's management
libraries (e.g. MFC, OWL) and graphical languages (e.g. OpenGL). Moreover,
development of the visualization program is very laborious process including
many steps such as design, coding and debugging of a program. In a whole,
all these things are as difficult as development of simulation program.
Existent visualization tools (e.g. MATLAB, TechPlot, OpenDX etc.), as
a rule, cannot fully satisfy all users' demands. Some of them don't provide
creation of stand-alone graphical programs, others have no ability for
visualization program GUI editing, thirds impose their own data format
and sequence of data-handling etc.
One big problem flows out of all these statements. The problem is about
how to get a visualization tool in the simplest and the fastest way.
Description
SAGE-system provides a tool for development of visualizaiton applications
with required GUI, with no explicit code writing and no explicit library
usage. The main idea of such type of development is concluded in the fact,
that process of creation of the visualization program is going on by means
of manipulation with the simplest graphical objects and doesn't concern
with direct programming. Instead of human, SAGE automatically produces
necessary code by itself.
SAGE-system should satisfy completely for the following set of requirements:
Provide static and dynamic visualization of the wide range of types of
the scientific data;
- Produce stand-alone visualization programs;
- Create and edit GUI for the visualization programs;
- Should be easy to learn and simple to use;
- Should be portable between Windows and UNIX operating system's families.
- Should be scalable, that is should can increase its own functionality
using itself.
The software structure
SAGE-system consists of three main components: 1) Fragment Library; 2)
LAVA-compiler (LAVA is an acronym for a Language of Assembling Visualization
Application); and 3) Graphical Framework.
The Fragment Library is intended for program fragments manipulation (storage,
addition, usage etc.). A fragment can be an usual variable, element of
the graphical interface (e.g. a button) or some algorithm (e.g. reading
data from file). It can be implemented as like a library function (class)
or like as a C/C++ code written by user. SAGE provides tools for assembling
new program fragments from fragments already existed.
LAVA-language is destined for description of visualization program. One
can express all the parameteres and features of graphical application
using this language. It is possible to produce C++ code from LAVA-code,
and that produced code will be the visualization program. LAVA-compiler
provides this translation. The C++-program, produced by LAVA-compiler,
is to be compiled by C/C++-compiler and as a result of it an executable
file will be generated.
SAGE graphical user interface provides functionality, which was mantioned
above. User works directly in a graphical framework, which generate LAVA-program
based on his actions.
State-of-the-art
The first version of the LAVA-compiler is released. It is possible now
to develop the visualization programs in this language. The initial content
of the fragments' library is created (now, there are 29 fragments there).
Stubs for main menu and for basic GUI-components are developed.
Participants
Head of project: Malyshkin
V. E.
Senior developer: Cherkasov
A. V.
Developers: Lavrushenko N. B.
|