Wednesday, November 24, 2004

User Interface with 3 planes - Instant input, Narrative output, plus more

I've felt for a couple years that a more flexible interface has 3 planes that fill your screen, superimposed on each other, and alpha blend into each other.

The three planes are interdependent. The content in any other plane may be navigated to, changed, revealed through another plane, or hidden by another plane depending what one is clicking on, hovering over, or highlighting in a given plane that has your input focus.

1st Plane: Is for text entry, form/data entry, command entry, and source code entry.

  • It has a list with text that represents EVERYTHING in the system (only rendered when visibly navigated to or scrolled to).
  • It's a grid, collapsible, searchable, and also navigable locally with arrow keys.
  • It's akin to the spreadsheet, but not with fixed columns, so it's more flexible.
  • It's like the heads-up-display in a 3D game.
  • It would also be used more for filtering & sorting.
  • It’s like the table in a HTML page.
  • It’s like a Wiki with every page stacked together into one page, but collapsible, and editable at the paragraph/cell level instead of the page level of granularity.
  • Everything above a certain line is considered private, everything below is shareable, and visibly distinguished so one never confuses the two.
  • You don’t e-mail a copy of content. You just label that cell or group of cells sharable to a certain person or group and even for a limited time. The recipient then decides if they want to copy, reference, link to, or share in turn to others your cell. This includes scripts, methods, and classes too. (Sharable to web browser user, XML parser, and RSS consumption would be nice too but not necessary.)
  • Like OOP, the cells have the properties & classes, which to can be expanded and collapsed into lines/columns in the grid akin to a pivot table.
  • The cells could also be nesting like the tiles in the Squeak tile view of the code Browser.
  • This design is also less taxing on the OS and hardware infrastructure.
  • It allows immediate entry of commands without depending on how you get to a certain 3D space to enter the command, just any empty cell is a “command line”. It’s a place to automatically save and display those commands for logs & history, also shareable.
  • It’s also a log of generated code to recreate your movements/activities to create a flythrough or script.
  • It's also your menu system and help system.
  • All in the same modifiable, shareable, consistently navigated, consistently collapsible, consistently linkable interface.
  • 1st plane screens would be “shared” to Croquet portals as projects are today.

2nd Plane: Is more like the 2D graphic, art, drawing, and painting.

  • It is more like the layout format that Morphic & web pages have made us familiar with.
  • Content is placed on a Cartesian grid.
  • This plane is used less for user input, more for output, and more for “drag & drop”.
  • Screens in this plane “blends” with certain grids the 1st Plane to make visually appealing forms.
  • 2nd plane screens would be “shared” to Croquet portals as projects are today.

3rd Plane: Is for 3D. This is the Croquet shared space.

  • It is used even less for input than the other two planes but dependant on the other two planes.
  • It’s for the collaboration, telling a story, demos, narratives, touring a data set, quick overviews, simulations, and immersive experiences.
  • Snapshots, movies, or camera views can be shared with the 1st plane cells and 2nd plane image graphics.

As a student’s education progresses,

  1. They will spend most of their time in the 3rd plane (simulations and stories) and as they develop more abstract thinking
  2. They will change to spend more time creating and manipulating in the 2nd plane (schematic type thinking)
  3. With more abstractions they wil spend more time in the 1st plane (words becoming labels and symbols of & for complex ideas).
Nevertheless all planes should be available for all students all the time whatever their skill level so they can seamlessly, instantly move from one to the other when mentally or socially ready.

In essence, your GUI experience is one where you live in all three planes simultaneously. Your input focus is determined by quasi-modes on the keyboard or very temporary modes for the reasons Jef Raskin describes.

I enjoyed reading Jef Raskin's book "The Humane Interface - New Directions for Designing Interactive Systems". It's also affordable.

His site is at http://humane.sourceforge.net/home/

Here he also shows what advantages "leap" has over icons & lists. He espouses ZUI but I think he has forgotten how much time a ZUI takes to navigate. ZUI seems to work best with a known fixed data set like that of http://www.keyhole.com and where behavior, visual experience is predictable like flying in this case.