Content-Type: multipart/related; type="text/html"; boundary="Apple-Mail=_EDF876E8-C119-46BD-A566-287E45FF72FA" --Apple-Mail=_EDF876E8-C119-46BD-A566-287E45FF72FA Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252
Sounds cool, Not = aware of any open alternatives I'm afraid but might have an = idea.

One way I can think of is to iteratively = collapse edges of the graph to find two adjacent tetrahedral centres = which share 3 vertices. You could restrict this to only = collapse cyclic parts - perhaps restricted to a given ring = size which is defined as rigid. When you find two centres which = share three vertices compute the relative parity of one (relative to the = non-shared vertex). Then the relative parity of the other (again = relative to the non-share vertex) but keep the ordering of the shared = vertices the same. If the configuration is valid the parties should = be inverse of each other.

The only tricky = part there is the collapsing but might not be too bad. Not a general = method but reducing all cyclic edges where both vertices are not a = bridge-head tetrahedral centre might be starting = point.

Hope it = helps,
J