Cliff is in the vicinity and that always reminds me of our shared
interest in outfitting Synergetics with some Mathematica style clap
trop (caltrop? -- look it up, Braley-sans-w knows), except in my case
it's Python harkening back to APL (given my personal trajectory), more
than Wolframic in its computerized expression [*], but that's not a
problem for me if it ain't for Cliffie here.
Other names for the Quadrays namespace might be: Chakovians (after
David Chako of Synergetics-L fame); Tetrays (Chako's preferred term);
Caltrop Coordinates (vs. Cartesian); Simplicial Coordinates (but minus
J.H. Conway's focus on the hypercross and Coxeter.4D) -- and maybe
Klingon Coordinates in honor of the other big Conway (Damian).
What we do is shoot four "basis vectors" (pirating from linear
algebra) to the corners (1,0,0,0) (0,1,0,0) (0,0,1,0) and (0,0,0,1).
To reverse a basis vector is to flip its bits i.e. -(1,0,0,0) =
(0,1,1,1) and so on. So we end up not needing negative signs in this
canonical representation, though by another convention we might
alternatively insist that the sum of the 4-tuples always be zero.
The Cartesians claim 4 basis vectors is redundant, as they get by with
just 3, but then permit vector reversal to net them 7/8ths of their
space. Thanks to vector reversal and the three negative "not really"
basis vectors, the Cartesians have 3 additional "ghost vectors" doing
most of their dirty work for 'em i.e. pointing in that 7/8ths
negatively tainted space with only one quadrant remaining "positively
pure" and therefore directly accessible without all the "bad
neighborhood" connotations of a "non-basic" address.
So in point of fact, the Cartesians are using essentially six
reference vectors to the corners of a regular octahedron, not just
three, whereas in Chakovians we're using just four, and not relying on
vector reversal for back-handed access to anything.
The four positive basis rays vector-add to any point in Positive
Universe. Negative Universe is a through-the-origin inside-outing of
the reference tetrahedron. Your application may have no need for this
other space, conjoined through (0,0,0,0), but it's there if you need
it. Nor does it matter which you call Positive initially, though once
you've invested, conversion may be time-consuming (just like both left
and right XYZ coordinate systems have their followings).
My Synergetics on the Web @ grunch.net contains a thorough overview of
Chakovians (./synergetics/quadrays.html), plus transforms for
converting to-from XYZ, 4x4 rotation matrices courtesy of Tom Ace.
We don't insist on using these in public schools, e.g. won't be
targeting any school boards for not, but we do bring kids through on
field trips from time to time, just to remind 'em that XYZ thinking
ain't all its cracked up to be in some circles.
Alternatives exist, some of them smart cookie.
Kirby
[*] e.g. in some versions of coords.py, imported by rbf.py for doing
StrangeAttractor, rendering other concentric hierarchy graphics in the
4D++ IVM.FM (lots at my grunch.net and 4dsolutions.net websites).