Skip to content

lennart-finke/knottingham

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Knottingham

is a tool that lets you draw and manipulate knot diagrams, sporting a clean yet somewhat hand-made look. You can:

  1. Draw a knot from scratch & Have its intersections calculated for you
  2. Adjust it as a Bezier curve
  3. and Export it to TikZ/SVG/JSON!

other features include:

  • Computing the Alexander, Jones and HOMFLY Polynomial
  • Undoing
  • Styling
  • Non-Reidemeister Move detection

You can give it a go yourself over here.

If Knottingham helped you with your research or teaching, we are very happy to be cited as

@article{finke2024,
  author={Finke, Lennart and Weitz, Edmund},
  journal={IEEE Transactions on Visualization and Computer Graphics}, 
  title={A Phenomenological Approach to Interactive Knot Diagrams}, 
  year={2024},
  volume={30},
  number={8},
  pages={5901-5907},
  doi={10.1109/TVCG.2024.3405369}}

Local Execution / Development

For a local setup, clone the repository, run a webserver in the base directory for example with python3 -m http.server 8000 and open a browser window on http://localhost:8000. Contributions or suggestions are of course welcome.

Heritage

Knottingham was inspired by two cool tools for drawing and identifying knots, namely the Knot Identification Tool by Joshua Horowitz and KnotFolio by Kyle Miller. For the feature of producing a minimal orthogonal knot diagram, it uses the PyPi Module spherogram after compilation to Webassembly to be compatible with pyodide. Spherogram is licensed under GNU-2. For more involved knot invariants using Sage, API calls to SageCell are used. Knottingham renders with paper.js. Many thanks to the authors!

How it Works

You can read the preprint about Knottingham here or the finished paper in the IEEE Transactions on Visualization and Computer Graphics.

License

Knottingham is free software and licensed under MIT.

Any and all feedback is appreciated! You can mail to developer/at/fi-le.net.