[SnapPea-planning] priorities
Nathan Dunfield
nmd at illinois.edu
Sun May 3 13:10:06 EDT 2009
Nathaniel wrote:
> 1. Port SnapPea to MacOSX / Cocoa
> 2. bring the documentation and unit tests of the Snappea routines up
> to Sage standards.
> 3. make the graphics routines work within Sage notebooks.
> I'm not sure about the relative priority of these. In particular, it
> seems to me like (1) would be substantially easier than (3), and also
> that it would provide a better user experience, but of course it would
> only be useful for people who use the Mac.
> Marc and/or Nathan, do you have a good idea about how much effort
> would be involved in (1) and (2)?
> Jeff, how much time would you expect to spend on an MacOSX port (if
> you were doing one)?
In terms of the difficulty of (1), it's hard for me to judge, as my
experience with Cocoa is limited to adding a few features to Jeff's
version, and I never really became fluent in either Cocoa or
Objective C. (I definitely recommend Hillegrass's book on Cocoa, by
the way.) My wild guess is that I could do it in 3-4 weeks or so,
but I'm really not very good at that sort of stuff. Looking at
Jeff's draft SnapPeaX compared to SnapPea Classic, I see the
following tasks:
* Add straight forward to implement features (those with minimal
graphics):
* View menu:
Chern-Simons
Orientation Cover
All Covers
Core geodesics/Holonomies
Cusp shapes
(Change) Peripheral curves
Tetrahedra shapes
Retriangulation
* Tools menu:
Closed census
Torus bundles
Isometry
* Link Editor: the current one was an interesting experiment, but
needs to be replaced with an old-style one. Here, Marc's Plink
(Python/tk) would be an excellent model, and since Objective-C and
Python are *very* similar, you should be able to lift the basic
structure from that.
* Cusp neighborhoods: The graphics in Jeff's version Classic version
are very detailed, but limited user interaction, just sliding the
image around.
* Finish the Dirichlet domain viewer. In particular, you need to be
able to click on the cells of the polytope and get information about
them.
I would say that the above is about as much (maybe a little more) as
what already exists, so if Jeff remembers how much time he put into
the Cocoa version, you've probably got that much left.
------
(2) Is very straight-forward. It would take me less than a week to
do, maybe quite a bit less. Marc and I are currently polishing
SnapPy (as the new Python interface to SnapPea is called), and adding
doctests is pretty trivial. (See http://docs.python.org/library/
doctest.html for more on this).
Also, one only needs to add such things if one wants SnapPy to be
part of *default* install. As an optional packages such niceties
aren't necessary.
------
(3) Let me experiment a bit and get back to you on this, and maybe
consult the folks on sage-devel for their insight.
Best,
Nathan
More information about the SnapPea-planning
mailing list