SpOd accepts pre-formated data, essentially lists or arrays of numbers interspersed with header information and viewing parameters. It operates then as an interactive viewer. There is nothing especially sophisticated about the way objects are rendered. What this viewer does do, is provide a simple and convenient way to create from lists and  arrays of data, basic graphical objects, such as surfaces, graphs, traces, and animated objects within a 3D viewing space.
 
A single instance of the viewer may support multiple surfaces (currently up to 10), static or animated graphs and traces, as well as visual markers, in total some 400,000 objects at a time.
 
 Viewing is from a 2D screen, but the working space is a fixed 3D volume, nominally bounded by (±10, ±6, ±6) units. The object data is assumed to be in readable text floating-point format,  but as the data is read into memory, it is scaled and offset to fit the viewing volume. The  parameters  for scaling and shifting the objects are included as part of the individual object headers.
 
With the viewing space able to be rotated about a centrally located origin, objects that extend beyond the nominal volume, by even as much as a factor of a hundred, are often still able to be viewed from some angle or other, by suitably rotating into view.
 
Data files may be generated by any number of means, as lists or arrays from spreadsheets, or output from environments like Matlab or Octave, or from shell scripts. By assuming a text format the graphics files may also be conveniently edited within a conventional text editor. It is sometimes quicker to cut and paste objects together, or edit display parameters than to regenerate object data and header formats from programmed scripts.
 
Data objects may be stored collectively or separately. The UNIX cat command may be conveniently used to combine objects on the fly for viewing purposes.  The object data files may provide a convenient stepping off point for subsequent processing steps. The further processing may be then coded appropriately for viewing. It is often convenient to retain the series of intermediate processing stages creating in effect a visual journal of the research steps.
 
Multiple and simultaneously instances of the viewer process may also be invoked independently with separate object source files, giving even greater flexibility and opportunity for a comparative display of research results.
 
The object file format is to be described here: (still coming)
 
Once the objects are loaded you may flexibly view them by using appropriate key/mouse actions. These are summarised below both in alphabetic order, but also by function
 
Alphabetic listing of key commands
(note: that since much of the software was developed in relation to sleep studies, there are some commands that are specific to this work.)
 
          key             action
  1.  a          Sleep staging :- sensors disconnected/connect
  2.  b          toggle surface display mode:
  3.                i) triangular tessellations,
  4.                ii) colour gradiant, iii) smoothed
  5.  d         Sleep staging :- s1
  6.  e         Sleep staging :- s2
  7.  f          Sleep staging :- nrem
  8.  g         Go,  animation : - forward rate increase or  reverse rate decrease
  9.  h         Animation : - window width increase
  10.  i          Index animation : - toggle scope mode,
  11.                   i) w/out motion
  12.                   ii) z-motion
  13.                   iii) y-motion
  14.  j          Jump to next stored view
  15.  l           labels display/inhibit toggle
  16.  o         Sleep staging markup computed
  17.  r          Sleep staging :- rem sleep
  18.  s         Sleep staging :-  sleep/wake
  19.  t           tumble forward rate increase
  20.  w         Sleep staging :- wake/sleep
  21.  A         Sleep staging :- sensors connect /disconnected
  22.  B          BOTH tumble/roll and animation, used in conjunction with t/T and g/G
  23.  D         Sleep staging :- S1/S2
  24.  E         Sleep staging :- S2/S1
  25.  F         Sleep staging :- NREM
  26.  G         Animation :- reverse rate increase /forward rate decrease
  27.  H         Animation :- window width decrease
  28.  I          display of X-graphs toggle simultaneous display / animated display
  29.  L          toggle static graphs intensity controlled/disabled, by light angle
  30.  O          display sleep staging
  31.  R          REM
  32.  S          Sleep
  33.  T          tumble forward rate decrease
  34. <sp>     freeze animated display, reset animation rates.
  35.  1          toggle select/deselect 1st graphics object
  36.  2          toggle select/deselect 2nd graphics object
  37.  3          toggle select/deselect 3rd graphics object
  38.  4          toggle select/deselect 4th graphics object
  39.  5          toggle select/deselect 5th graphics object
  40.  6          toggle select/deselect 6th graphics object
  41.  7          toggle select/deselect 4th surface object
  42.  8          toggle select/deselect 3rd surface object
  43.  9          toggle select/deselect 2nd surface object
  44.  0          toggle select/deselect 1st surface object
  45.  !            illuminated scale $z-x$ plane, brightness incr.
  46.  @         illuminated scale $z-x$ plane, brightness dec.
  47.  #           illuminated scale $y-x$ plane, brightness incr.
  48.  $           illuminated scale $y-x$ plane, brightness dec.
  49.  %          toggle major scale axis
  50. $<$esc$>$      exit display
  51.  $\rightarrow$       surface colour, red/green shift
  52.  $\leftarrow$       surface colour, green/red shift
  53.  $\uparrow$       light intensity offset  increase
  54.  $\downarrow$       light intensity offset  decrease
  55.  shft $\rightarrow$       blue light increase
  56.  shft $\leftarrow$       blue light decrease
  57. left btn&
  58. right btn (option + mouse)
  59. middle btn (ctrl + mouse)  
 
SpOd commands