Homotopy Visualizer README 08/17/2016 To input a curve: Begin clicking on the screen; each click will add a point to the curve. To finish drawing, click a second time on the bright green point with a 0, this is the starting point. (There must be at least three existing points on the screen, or the curve will not be closed by a second click on the starting point.) Click on the menu bar ‘file’ and select continuous draw. Then to begin drawing the curve, simply click on any point on the screen. This point will be the starting point of the curve. To begin drawing, move the mouse across the screen, tracing out the path of the desired curve. (One should NOT press the mouse down while drawing the curve.) Finally, to finish drawing in continuous draw mode, click a second time on the screen. The last point that was created will be attached by a line to the starting point. It is VERY important that one moves the mouse slowly while tracing the curve, as the program is sampling points to add to the curve based on how much the mouse is moved, and rapid movement throws off the movement measurements. Once done inputting the curve, the user may make local adjustments to the curve. This can be done in any of the following ways: to move a point: left click and hold the mouse down on a point and drag the point to the desired location to delete a point: right click on the desired point to add more points: points may be added between two consecutive points. To do this, left click on two adjacent points; they will both light up in bright blue (cyan) once selected. Points must be selected individually. A final click on the screen will add a new point between the two selected points Once completely done with the curve, click on the menu bar ‘file’ again, and select “done”. Note that once this is done, the user will not be able to add points between points anymore, but they can bypass the completeness of the curve by clicking on the ‘free movement’ checkbox, at which point the freedom to move points will be regained. Before selecting done, the user may go to the menu bar and select “reverse” to switch the orientation of the curve. Once done, the bottom left corner will display “completed”. The user may then save the curve; similarly, once curves have been saved, the user can bypass inputting a curve, and simply load a previously drawn one. Note that once a curve is loaded, the curve will not be done/completed yet, so the user will have the option to add, edit, or delete points/portions of the curve. When done, the user may select “Compute Min Homotopy”. The minimum homotopy algorithm will then be applied to the curve. Once it is done, the curve will be divided into different closed subloops that are self-overlapping, each with an intersection point as a basepoint. Each self-overlapping curve in this decomposition will be colored uniquely, and the number of its basepoint will be shown at the bottom under “splitting sequence”, in the corresponding color. The user may then walk through the homotopy by selecting “contract next SO” curve from the menu. The first curve in the sequence, the one with the basepoint of the number leftmost in the splitting sequence, will be contracted (removed entirely). This procedure may be completed until there is only one self-overlapping curve remaining. At this point, when "contract next SO curve" is selected again, the curve will be reloaded to its initial state. It is key that while walking through the homotopy as such, no points are moved or altered. If titus moves are applied, or any points are moved, then the minimum homotopy will be removed from the screen, as it may have been altered by the movement, and needs to be recomputed again. The last main ability of the program is to apply sequences of titus moves. After a curve has been completed, one may apply titus moves by selecting a face that is a monogon, bigon, or triangle. To see clearly whether a face is one of these three types, or is none, one may select the checkbox “Colored Faces”, which will darken the faces proportional to their winding numbers, green for negatives, blue for positives, and white for zeros. In this perspective, each of the faces will be numbered, and on the box on the right side of the program, users can see the classification of each face. To then select a face, simply click on the winding number of the face, and the face will turn black, once selected. If clicking repeatedly on the winding number does not select the face, it is because the face is not a monogon, bigon, or triangle, and consequently cannot be selected, as it is not a candidate for an elementary titus move. After a face is selected, the edges will light up different colors. The user may then select which combinatorial variant of the titus move to apply. For a mongon, there is no choice. For a bigon, the edge selected will be the one that remains fixed, while the other is swept over to the exterior epsilon neighborhood of the fixed edge. For a triangle, the edge selected will be the one swept around to the epsilon neighborhood on the outside of the other two edges. If a sequence of titus moves is applied until the curve becomes simple, the user may select “collapse” to contract the final simple curve to a point. The curve will then return to its last saved state, the state of the curve when “done” was last selected. Other small things to note: the self-overlapping-ness evaluation is constantly recomputed, after points are moved or deleted or titus moves are applied, and always applies to the current state of the curve as with any computational geometry program, there do exist rounding errors with the winding numbers. If one of the winding number is incorrect, jostling one of the points on the face usually works to correct it the intersection sequence will not be displayed for curves with n >= 18 points clicking the titus I/II/III buttons will highlight all monogons/bigons/triangles on the curve, but only if the “colored faces” checkbox has been selected