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`).