James M. Lawrence


Recent projects

esve: a platform-independent C++ library for building 3D and 4D visualization applications.

Includes several applications: hopfviewer (viewing the Clifford torus), topeviewer (viewing 4D polytopes), and examples of user-defined parametric surfaces in 3D and 4D.

esve-1.0.3 download
esve-1.0.3 documentation
esve-1.0.3 Windows binaries


Four-Dimensional Geometry and Visualization: an introductory-level paper.

This paper is the basis for esve.

four-1.0.3 download


symfind: symmetry detection software.

Find the automorphism group of a directed graph (possibly with colored vertices and arcs).

Find the symmetry group of a set of points in n-dimensional space. The permutation representation and the matrix representation are both available, including the eigenvalues and eigenvectors of each element.

Written in C++ with optional bindings to the ruby language.

symfind-1.0.3 download
symfind-1.0.3 documentation


linalg: a linear algebra package for ruby.

Eigenvalues, eigenvectors, QR decomposition, singular value decomposition, etc.

Includes bindings to the LAPACK library.

This package is required for the spacegroup ruby script found in symfind.

linalg-1.0.0 download


electrons on the 3-sphere: a collection of minimal configurations of electrons constrained to the 3-sphere.

Includes a description of each configuration's symmetry group (produced by symfind).

These may be viewed with topeviewer.

s3-electrons-1.0.3 download


Dickson algebras: an implementation of "Dickson double algebras" (complex, quaternions, octonions, sedenions, etc.) in the spirit of template metaprogramming.

Includes a comprehensive test of general Dickson algebra identities as well as octonion and quaternion identities.

dickson-1.0.3 download


James M. Lawrence <quixoticsycophant@yahoo.com>

updated Tue May 30 15:56:10 UTC 2006
old stuff