Workshop-to-do-list

Software Carpentry

==================


Git: https://swcarpentry.github.io/git-novice/



Features for the next release

=============================


0) Link exterior to diagram: https://arxiv.org/abs/2112.03251


1) Drilling specific geodesics (not restricted to `dual_curves`).


2) Faster finite-index covers: https://github.com/3-manifolds/low_index


Infinite todo list

==================


0) Better documentation, better tests, including of underlying modules

(e.g. `t3m`).


1) Small issues::


https://github.com/3-manifolds/SnapPy/issues


2) Taut foliations, based on https://arxiv.org/abs/1904.04628

Need to add a copy of the C-extension `pycosat` to SnapPy.


3) Make the horoball viewer use the GPU directly via the shader;

should be able to slightly modify the `inside_view` code.


4) Merge Damian Heard’s Orb into the SnapPea kernel and add

functionality so SnapPy can handle any orientable obifold, not just

those with link singularities, including geodesic boundaries.


5) Direct verified computations with closed manifolds, based on:

https://arxiv.org/abs/1904.12095


6) Hyperbolic geometry + number theory. Make SnapPy+Sage a complete

replacement for good old `snap`. See Andrew Yarmola's GitHub

version for macOS. See Nicholas's code:


https://github.com/nicholasrouse/snappy-nt


See also `KleinianGroups` by Page http://www.normalesup.org/~page/

takes arithmetic data (field, algebra, order, level) and produces

the 3-manifold.


7) For the PD code to otholinear diagram method, add additional

vertices for the longer segments so switching to smooth mode

doesn’t change the (apparent) topology.


8) The thing that Kyle Miller wrote at ICERM in 2019 that goes from

photo of a knot to SnapPy link file:

https://github.com/kmill/knotfolio


This in JavaScript, needs to be moved to Python, issue of

dependencies (most of which are in Sage).


9) Reimplement Berge’s Heegaard algorithms (some code needed for this

in spherogram, namely Whitehead simplifications).


10) When saving link diagrams in PLink, there are issues with large

links and various gap parameters you can only fiddle with

programmatically. This could be cleaned up.


11) The ortholinear drawings of links that spherogram generates from

PD codes are nice, but it could be fun to have other methods, e.g.

based on sphere packings, Tutte embeddings, etc.


12) eta invariant.


13) (Ken) Covers of tangles.


14) (Ken) Knotted graphs in PLink/spherogram.


15) (Maria) Cubical lattice stick numbers. Can we make tables?


16) (Matthias) Additions to `inside_view`:


a) Move onto/into particular geometric object

(geodesic/horoballs).


b) Surgery grid for selecting Deh surgery space.


17) (Matthias) Draw Dehn surgery space via the GPU.



Code levels

===========


Python: 35k loc (+16k of comments)

Cython: 5k loc (+2.5k of comments)

C/C++ (SnapPea): 37k loc (+33k of comments)


Not including `twister`, `knot_floer_homology`, various underlying

libraries (`cypari`).