is a tool that lets you draw and manipulate knot diagrams, sporting a clean yet somewhat hand-made look. You can:
- Draw a knot from scratch & Have its intersections calculated for you
- Adjust it as a Bezier curve
- 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}}
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.
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!
You can read the preprint about Knottingham here or the finished paper in the IEEE Transactions on Visualization and Computer Graphics.
Knottingham is free software and licensed under MIT.
Any and all feedback is appreciated! You can mail to developer/at/fi-le.net.