[SnapPea-planning] priorities
Nathan Dunfield
nmd at illinois.edu
Sun May 3 14:41:06 EDT 2009
> If we're going to get this ambitious, I think it makes sense to
> rewrite the core in a modern language. I'd favor either Haskell or
> Python (not knowing very much about either), as being friendlier to
> mathematicians who aren't experienced programmers. Also, there's no
> special reason we can't have both -- we should have a reasonable
> separation of the various modules, and it's possible to write common
> library routines, some of which would handle the conversion between
> human-readable file and internal representation.
In an ideal world, rewriting the core in a modern language would make
sense, but in this one I suspect it's too low on the reward/work
ratio to be worth it --- for one thing, it would be a tremendous
amount of work, even with todays more expressive programming languages.
Also, you can get a lot of the benefits of rewriting the core by just
mixing it in with more modern code. For instance:
* Marc and I wrote, some years ago, a Python triangulation package
called "t3m" (which is available at our website). It does basic
normal surface theory, including spun normal surfaces. We have a
class that "mixes" t3m's representation of a 3-manifold with
SnapPea's and allows you to do things like this:
>>> from boundary_slopes import *
>>> M = OneCuspedManifold("8_20")
>>> M.find_normal_surfaces()
>>> M.boundary_slopes()
[(0, 1), (1, 0), (2, -1), (4, -1), (8, 3), (10, -1)]
>>> M.volume()
4.1249032518076758
>>> M.fundamental_group()
Generators:
a,b
Relators:
aabbaabbaaBAAAB
* In this context, I should also mention Ben Burton's program
"Regina" (http://regina.sf.net) which focuses on Normal surface
theory. The core triangulation library is written in C++ and there
is a full python interface to this. He also has a complete GUI,
based on KDE/Qt, which runs on Linux and OS X. Ben's program is very
well documented, though I haven't used it all that much. (Which I
think comes back to my response to Bill's question about big vs.
small. Ben's program is big, and when it was first introduced was
very hard to get to compile much less mess with. I think it is much
better now, but I haven't been motivated to look at it much because,
of course, I already understand how t3m works...)
---------------------------
In terms of additional items for your wish list, an idea version of
GUI SnapPea would encompass Damian Heard's orbifold additions to
SnapPea as shown in his Orb program.
Best,
Nathan
More information about the SnapPea-planning
mailing list