- Decent graphical user interface.  I'm thinking of converting the qbism math
  to Tcl extensions and writing the user interface as a Tcl script using Tk.

- No-discontinuity mode.  XOP_PROJECTION, XOP_SHIFT, XOP_SHIFTBACK, and
  XOP_CONDITIONAL sometimes introduce discontinuities which don't always look
  pleasant, but with a little work they can be tamed.

- Ability to limit the operations to be used.

- Custom transformations.  If we're going to use Tcl, why not take advantage of
  its inherent scriptability?  Maybe critcl can be used to speed up the result.

- Adaptive oversampling.  There's no reason to oversample except at and around
  discontinuities.

- Compatibility.  There are several QBE renderers, so we shouldn't extend that
  format.  In fact, we shouldn't even support writing QBE files of nonstandard
  size.  But QBM holds possibilities.

- Research why GQbist sometimes produces different output.

- BLEND function.  "dest = source * sum(control) / 3 + control * (1 -
  sum(control) / 3)"

- Algorithm optimizer.  Don't bother initializing registers that are never
  used.  More importantly, don't apply any operations that don't affect the
  output.  Skip operations that cancel each other out.

- Distributed and/or multithreaded computation.  The qbism algorithm is
  essentially functional and therefore infinitely scalable.  Distributing the
  work and collecting the results is another matter.

- Support hardware vector operations.  SSE ahould offer a big speedup, but it's
  probably not worth supporting 3Dnow and MMX.  Does anyone want to contribute
  AltiVec code?

And now some ideas for the user interface...

- History.  It's important to be able to go back in event of a click leading to
  a less-desirable family of algorithms.

- Adjustable preview size.  64x64 may be good, but sometimes the user will want
  to look a little closer.

- Adjustable sine wave.  The frequency multiplier and phase offset represent a
  great way to make tiny tweaks to the resulting output.

- Adjustable coarseness.  The "coarseness," a term borrowed from AMIGA Qbist,
  is the amount of variation between algorithms in a family of alternatives.

- Interactively editable algorithm.  The algorithm may resemble an assembly
  language program.  This is essentially the same as the QBM output.

- Zooming/adjusting render region.  Sometimes there's an area of interest other
  than full extent.

- Use images as initial register values.  This should produce really fantastic
  results.
