QEMation
  Quaternion
  Equation
  aniMation
The Vision Thing
  The BIG picture
  L  O  N  G term
  Demos
Development
  Scope (projects)
  Quality
  Management
Vision
The BIG picture
This is an open source project to use quaternion equations to drive animations. Quaternions are like the real numbers, but they contain 4 slots, one for time, three others for space. Very fast manipulation of quaternion equations on large data sets may generate interesting images. The animations should be viewable on personal computers and the Internet.
L  O  N  G  term goal
Quaternion equations have been used to do physics, ranging from classical physics, to the Maxwell equations, and into Quantum Mechanics. It should be possible to use the equations for a hydrogen atom to generate a technically accurate picture of the atom in various states. Someday it may be possible to generate an animation of two hydrogen atoms fusing to form a helium atom.
Demos
Qlib tests, numberical functions in C ported to javascript

Development

Scope (projects): Qlib, QEMation, CLQ, Qcalc, Qdb, c2js
Qlib: the library of fast quaternion mathematics for large data sets
This is the core software, the number cruncher. To optimize for speed and portability, it is written as a collection of functions because all languages use functions. Objects are used minimally, since that requires memory operations.
Qemation: input an equation and initial conditions such as the hydrogen atom in quantum mechanics, and outputs an animation
Qcalc: a calculator that uses quaternion mathematics.
Anyone know of a good open source scientific calculator to use as a starting point?
CLQ: Command Line Quaternions
A command line interface to a quaternion library.  Involves only numberical manipulation of quaternions, no data structures.  clq-0.1.tar.gz, Debian package, or RPM package, files available.
q_fractal
Given an integer N, and a quaternion from the commands line, calculates q_n+1 = q_n^2 - 1, n times, unless +/- 10,000 is reached and the program exits. Results are printed on the command line. No attempt is made to generate a picture. This is only a number generating program. Here is the code, q_fractal-0.1.tar.gz.
Qdb: A database for interesting quaternion equations and structures
c2js: translates quaternion programs written in c into javascript
Javascript is a hack of a language, but it is fast for browsers. This program will take functions required from qlib and qemation and convert that into javascript.

 
Quality
Accuracy
The output of all math functions must be checked against duplicates in Mathematica.
Speed
If a scene has several thousand objects that are moving independently and need to be viewed from two closely-spaced vantage point (for 3D effects), many calculations are required per frame. Benchmarks for each function need to be developed, so that even small differences in code that make speed improvements on large data sets can be confirmed.

 
Management Stuff
Software Development Lifecycle: Evolutionary Prototyping
Evolution involves PROVING superiority, not about telling a tall tale.  Any function call in these programs can be replaced if a side-by-side test program can demonstrate that it works faster.
Project Organization
This web site will be data central. A mailing list service will be used for announcements. To subscribe, send email to majordomo@world.com without a subject that contains "subscribe quaternions" in the body.
Project Control: tar & feathered dictator
Doug Sweetser will act as an informal dictator.  Files will be gzipped and tarred. If three people begin actually contributing source code, the I'll reserve a domain names and move this to sourceforge. Anyone will to send their precious free time developing cool mathematical physics code deserves the best :-)
Priorities: 1. Scope, 2. Quality, 3. schedule, 4. cost
A commercial software project has these four parameters, but this open source work really only involves the first two. The primary objective is to be able to play with quaternions in new ways. The secondary criteria is that the software works well, and works fast. There is no time table or budget beyond supporting this web page, so have fun defining the requirements and coding.
Copyrights and License: GNU General Public License, version 2 (GPL)
Copyright (C) 2000 Douglas B Sweetser <sweetser@alum.mit.edu>
Please see the GPL for details.

Home Page | Quaternion Physics | Pop Science
Java | The Bike | Lindy Hop | Contact Doug

Copyright © 2000, doug <sweetser@alum.mit.edu> All rights reserved worldwide.