{'fraction_non_alphanumeric': 0.02564102564102564, 'fraction_numerical': 0.0019230769230769232, 'mean_word_length': 5.145669291338582, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A toolkit for knot diagram sketching, encoding and re-generation

Knots occur in many areas of science and art. The mathematical field of Knot Theory studies an idealised form of knots by viewing them as closed loops in 3-space. They can be formally studied via knot drawings which are well-behaved projections of the knot onto the 2-D plane. Equivalence of knots in 3-space (ambient isotopy) can be encapsulated via sequences of diagram rewriting rules, called Reidemeister moves, but finding such sequences demonstrating isotopy of two knots can be immensely challenging. Whilst there are some sophisticated tools available for some knot theoretic tasks, there is limited (free) tool support for certain knot creation and interaction tasks, which could be useful for lecturers and students within University courses. We present KnotSketch, a tool with multiple functionalities including the ability to: (i) read off a form of Gauss code for a user sketched diagram; (ii) generate a diagram from such a code; (iii) regenerate a knot diagram via a different projection, thereby producing examples of equivalent knot diagrams that may look very different; (iv) interaction capabilities to quickly alter the knot via crossing changes and smooth the curves of the sketched diagram; (v) export facilities to generate svg images of the constructed knots. We evaluate KnotSketch via a case study demonstrating examples of intended usage within an educational setting. Furthermore, we performing a preliminary user study to evaluate the general usability of the tool.