[GRASS5] starting discussion on next generation UI

With the impending (hopefully) release of the 6.0.1 bugfix and looking ahead (shortly?) to 6.2, it seems to be a good time to start a discussion about the future of the GRASS interface.

Currently, there is:

  1. a pretty functional TclTk interface, which could be made considerably better with more sophisticated programming and newer TclTk tools;

  2. the option of accessing GRASS files and using some GRASS tools within QGIS;

  3. a Java interface used in JGrass too link GRASS and R functions;

  4. a rumor I’ve heard about someone working on a new QT interface for GRASS

  5. discussion of using GTK to create a new interface.

It is good that the project is sufficiently active to encourage these various efforts at making GRASS—and GIS in general—more accessible to users. However, I’ve begun to worry if we are about to get the cart before the horse, designing interfaces before we think seriously about what we need and want in a UI.

While I don’t want to discourage creativity, I think it would be a good idea if we had a discussion about what we need in an interface: what kind of features are essential, desirable, undesirable; how it should function through commands, menus, buttons, and other devices; and how it should interact with users in terms of visual, textual, or other feedback. Once a framework for UI requirements have been reasonably well sketched out, then we can look at available platforms and expertise to develop it.

It seems that now is a good time to plan the interface systematically, while we have a decently functioning interface and growing interest in GRASS as comprehensive tool for analysis and visualization of spatial data. It may turn out that most people are very happy with the way the current interface works and it just needs to be improved. Or it may be that we should consider something very different. Perhaps GRASS could lead the way in new interface concepts for GIS and spatial technologies. There are a lot of creative, talented people involved in this project. A new interface project might be a good way to get them to exercise this creativity and talent, and contribute to spatial information tools worldwide.

I suggest that we could start by simply listing (and hopefully coming to consensus) a set of wishes for the UI. The next step would be to transform these wishes into a set of design specifications that we can then use for UI improvement or redesign.

If this does turn into a fruitful discussion, I’ll volunteer to save all the emails and try to distill them in a month or so to see where we are at. There’s probably more to say, but I’ll simply start out here with a few features that I think are important.

      • WISH LIST FOR GRASS UI - - -
  1. I think GRASS should continue to have its own integral, default UI—although the beauty of an open source tool like this is that is can also be incorporated into other projects and UI’s. The recent GRASS user survey suggests that most GRASS users also want an integral UI for GRASS

2 . We need to maintain a command line interface (for power users and for scripting) AND have a graphical UI

  1. I like the current structure of separating controls from display windows (perhaps because I started with Map Info). It lets me look at multiple views of spatial data with less screen clutter.

  2. If we end up keeping command dialogs, I’d (usually) like them to go away after I click run—with their output directed to the main control window. (This could get tricky running multiple processes, but should be solvable) I’d like to have a button that brings up their last state when I open then so I could easily rerun something without having to keep the dialog open.

  3. I wonder if there is a way to seamlessly combine NVIZ-like visualization with the ‘standard’ displays so that all displays have the potential for 2.5D and 3D display and we don’t have to run a special visualization module?

  4. We need to have better, interactive access to attribute data tables (including query and management) given their importance in the new vector architecture.

  5. It should be easier to do spatial queries of attribute records—without having to create a new file. (this is not really a UI issue, but related to one)

  6. Users should be able to customize the UI to some extent, so that they could have the tools they use most often easily accessible, but wouldn’t always have to wade through the entire tool set.

Well, that’s more than I planned on and I’ll probably come up with more later. But now I want to open this up to the rest of you. Please feel free to forward this to people who are not currently on the developers list but perhaps should be.

Michael


Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

Hi all.
I applaud Michael for rising the question. My personal feelings from a
professional user prespective:

At 22:54, venerdì 29 luglio 2005, Michael Barton has probably written:

- - - WISH LIST FOR GRASS UI - - -

1. I think GRASS should continue to have its own integral, default
UI‹although the beauty of an open source tool like this is that is can also
be incorporated into other projects and UI¹s. The recent GRASS user survey
suggests that most GRASS users also want an integral UI for GRASS

Do not agree. Qgis as an interface has unparalleled ease of use, a strong
community and fast developmente, and features of paramount importance (one
for all: point-and-click printing). My suggestion is to channel efforts in
this direction. With very limited work we can have all common GRASS commands
available in qgis. This has the important advantage of enlarging the user
base for grass (one long-standing problem), smoothing the learning curve
(notoriously the main obstacle for the adoption of grass in many real-world
situations).

2 . We need to maintain a command line interface (for power users and for
scripting) AND have a graphical UI

Agreed fully.

5. I wonder if there is a way to seamlessly combine NVIZ-like visualization
with the Œstandard¹ displays so that all displays have the potential for
2.5D and 3D display and we don¹t have to run a special visualization
module?

I believe NVIZ requires a more or less complete rewriting. Current version is
rather fragile (it is probably the GRASS command that required most
troubleshooting, at least in our installations), and does not use advanced
visualization features now present in all graphic cards.

8. Users should be able to customize the UI to some extent, so that they
could have the tools they use most often easily accessible, but wouldn¹t
always have to wade through the entire tool set.

Agreed.

All the best.
pc
--
Paolo Cavallini
cavallini@faunalia.it www.faunalia.it www.faunalia.com
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy Tel: (+39)348-3801953

Michael Barton wrote:

- - - WISH LIST FOR GRASS UI - - -

One thing which you don't mention explicitly, but is quite important
IMHO, is that "real" GUIs are data-oriented (whereas tcltkgrass/d.m is
command-oriented).

In practice, this would typically mean, that you usually have a
"current" map, and this map would automatically be the primary input
for any operations requiring an input map. Also, the new maps created
by UI operations would be shown automatically.

Display should be much faster.

If maps are to be drawn using the existing d.* tools, they should be
drawn to PNG/PPM files which the display manager caches. Enabling,
disabling or re-ordering layers shouldn't result in any d.* commands
being executed.

[This is why the PNG driver supports PPM output with a PGM alpha
channel, and why g.pnmcomp was written. Unfortunately, the only masked
image format which Tk supports is GIF.]

Alternatively, the GUI needs to be able to perform all of the common
drawing operations natively.

4. If we end up keeping command dialogs, I¹d (usually) like them to go away
after I click run‹with their output directed to the main control window.
(This could get tricky running multiple processes, but should be solvable)

This should be trivial.

I¹d like to have a button that brings up their last state when I open then
so I could easily rerun something without having to keep the dialog open.

This should also be simple enough. The main reason why I split the
Tcl/Tk stuff in lib/gis/parser.c into G_gui() and G_tcltk() is so that
tcltkgrass/d.m gets a look in between the user clicking the Run button
and the command getting executed.

It wouldn't be much work to add e.g. a command history, where you can
retrieve the completed dialog state for any previous command. You just
need to override the default run_cmd procedure in gui.tcl with a more
complex version.

5. I wonder if there is a way to seamlessly combine NVIZ-like visualization
with the Œstandard¹ displays so that all displays have the potential for
2.5D and 3D display and we don¹t have to run a special visualization module?

If you make NVIZ essential, GRASS will only work on platforms where
NVIZ works, i.e. those with Tcl/Tk and OpenGL libraries which can
coexist.

8. Users should be able to customize the UI to some extent, so that they
could have the tools they use most often easily accessible, but wouldn¹t
always have to wade through the entire tool set.

Allowing them to use a private version of menu.tcl would provide some
of that quite easily. A similar thing would need to be done for the
toolbar.

--
Glynn Clements <glynn@gclements.plus.com>

On Fri, Jul 29, 2005 at 01:54:48PM -0700, Michael Barton wrote:

With the impending (hopefully) release of the 6.0.1 bugfix

If the majority agrees, I can work on a 6.0.1 RC1 bugfix release again.

and looking ahead (shortly?) to 6.2,

First we have to publish 6.1.x... A 6.2 will be a stable 6.1.

Just to avoid confusion about version numbers.

Markus

Glynn,

What systems on which GRASS is now run would be left out if OpenGL was
required for the display? TckTk could be updated so that it works with 8.4.x
or replaced by QT, GTK, etc. if needed.

Michael
______________________________
Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
Arizona State University
Tempe, AZ 85287-2402
USA

voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton

From: Glynn Clements <glynn@gclements.plus.com>
Date: Sat, 30 Jul 2005 14:55:27 +0100
To: Michael Barton <michael.barton@asu.edu>
Cc: grass devel <grass5@grass.itc.it>
Subject: Re: [GRASS5] starting discussion on next generation UI

5. I wonder if there is a way to seamlessly combine NVIZ-like visualization
with the ?standard? displays so that all displays have the potential for
2.5D and 3D display and we don?t have to run a special visualization module?

If you make NVIZ essential, GRASS will only work on platforms where
NVIZ works, i.e. those with Tcl/Tk and OpenGL libraries which can
coexist.

Michael Barton wrote:

What systems on which GRASS is now run would be left out if OpenGL was
required for the display? TckTk could be updated so that it works with 8.4.x
or replaced by QT, GTK, etc. if needed.

It's impossible to list specific platforms, because whether or not
OpenGL works on a given platform depends upon the graphics hardware,
the version of the graphics drivers (which are often obtained
separately), the history of which previous versions of the graphics
drivers have been installed (and may be interfering with the current
version), whether or not the user has manually installed a CVS
snapshot of X11 in order to get some aspect of their graphics hardware
working properly, and so on.

And that's just OpenGL. NVIZ also requires Tcl/Tk, and requires that
Tcl/Tk is willing to get along with OpenGL.

OpenGL on my system is fairly reliable, but even there, if my system
crashes (which is quite rare), it's *always* due to OpenGL.

--
Glynn Clements <glynn@gclements.plus.com>