THE ZIGZAG PORTABLE / POCKET OPERATING SYSTEM
Theodor H. Nelson, Founding Designer, Project Xanadu
This is intended to be a brief summary of the original
intention of what is now the XanaduSpace demo.
It was intended as a portable, or pocket, operating
system that could be run anywhere.
For the moment I will call it PocketOS, which
will surely never be its name if completed.
Names which have been contemplated include
- ZZOOS (ZigZag Orthogonal Operating System)
- XANADOS, which unfortunately merges Xanadu
with ZigZag conceptually
- ZX (it's on the Web in the first design; I can't
even find it anymore, but it's at Xanadu Australia)
- TEDOS (absolutely not)
It is meant to provide Integrated Software in a sense
that was popular in the 1980s, specifically software
that does a lot of things you'd want in one framework--
the equivalents of word processing, hypertext,
organizers, spreadsheet and much more.
While conventional operating systems deal with
hierarchical directories, conventional compiled
applications and data to match the applications,
this is built around hyperthogonal / zzstructure
and its uses--
- a framework of zzstructure
- applitudes, which do the equivalent of applications
in ZigZag structure by a combination of code and
- data in zzstructure
- code in zzdimensional languages + code in cells
- templates for specific forms of work,
as clonable frames
XanaduSpace is intended to be only one such
applitude, but it got away and took over.
=== === === INTENDED LEVELS OF THE SYSTEM
ROCK BOTTOM: ZIGZAG-- zzcells and code for
basic ZigZag operations.
SANDY BOTTOM (covering the rock bottom)--
additional interpretive code in cells.
A SCAFFOLDING WHERE ZZSTRUCTURES ARE
Main Street (horizontal)
Park Avenue (vertical)
Docks (where slices and zzstructures come and go
under user control)
Coney Island (where dimwheels and viewwheels
can be seen to go around)
ZZOGL, a glue layer between ZigZag and OpenGL
with no action at a distance-- every viewable
object is in a rank connected to its model object.
This makes the construction of scenes,
their actions and transitions, controllable by
THE FLOATINGWORLD SPACE THEATER,
a viewing system for Zzogl.
XANADUSPACE, a specific system for viewing,
editing and manipulating documents.
=== === === ZZ GRAPHICS IN N DIMENSIONS
(never mind the several proposed trademarks,
there's no point if they're not working).
The point is to be able to sworf any number of objects--
changing position, angle, size, shape, color, texture--
by changing the dimensions being currently shown
in the X,Y and Z of FloatingWorld 3D. This gives us--
- sworfing of objects, changing position and size
- transplosion, meaning the explosive movement
of a bunch of objects from one set of positions to
- folding spaces, wherein the dimensions are substituted
1-to-1 or many-to-1 or 1-to-many or several-to-several,
with amazing view results I can't describe
This has many many uses.
=== === === FUNDAMENTAL OPERATIONS FROM
A USER'S POINT OF VIEW
My fundamental premise: THE USER ARRIVES RUNNING,
has no time to read a manual.
- whatever is typed in immediately becomes an Item,
mapped to zzcells, given a permascroll address and
made available to the Xanadu level
- instead of mapping the items into sequence (as in
word processing) or hierarchy (as in outliners),
a new item joins a storm of items floating in space.
The user stirs them, assigns them priority,
gives them some connections, and they become
(if desired) sequential text or xanaconnected pages.
NUMBERS AND SPREADSHEET FUNCTIONALITY:
Numbers are assigned to cells which can be embedded
in Xanadu for calculation and re-use.
Dimension d.xeq handles spreadsheet functions
and calculations of many kinds.
A document with embedded calculations may be
created easily, rather than "embedding a spreadsheet."
ZigZag is intrinsically a database system.
=== GRAPHICS AND SYSTEM PROGRAMMING
A user may employ the macros already present
(or which WILL be already present) to create a
scene in XanaduSpace.
Cells may represent hanging-positions in space,
and given multiple coordinates for sworfing.
Xanadu user operations are logged in hypertime.
(I am wary of extending this fully to ZigZag.)
=== CREATING A XANADU VIEW
A Xanadu view is a set of pages hanging in some
arrangement the user wants to present.
For this the user creates a set of hanging-points,
or an algorithm for making hanging-points,
and these hanging-points are assigned to pages.
=== CREATING A HOMEPLEX (equivalent of a
"desktop" in ND)
The user assigns hanging-points, and their
characteristic motions, to--