[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