These are just some thoughts on the direction the javascript editor might go:
We can represent link diagrams by signed planar graphs where the sign on the edges gives us the crossing information (as depicted in http://en.wikipedia.org/wiki/Knots_and_graphs). We could then fill in the arc components of the link by using Bezier curves. An advantage of using this framework is that we can leverage existing planar graph drawing algorithms that have working computer implementations. We can enable the user to perform isotopy moves on the link diagram by using the vertices of the underlying planar graph as control points to click and drag. There are several other parameters that I can think of that can be manipulated, but I won't flood this post with all of them. Reidemeister moves change the underlying graph, so they have to be treated differently from isotopy of the diagram. We would need a way of selecting the arc components on which we are performing a Reidemeister move (For more complex diagrams this might involve grouping 2 or more arc components together so that they act as one arc component during the move). Also, if we want to be able to perform calculations about 3-manifolds, we have to be able to add and/or remove link components to the diagram which might drastically change the underlying graph. We also would want to keep track of surgery coefficients associated to link components, which involves computing linking numbers. [An interesting idea would be to create the data structure for the link diagram so that it is actually a record of all of the moves performed (isotopy, Reidemeister, etc..), sort of like a word processor document. The user could undo moves because there would be a history included in the data structure.] If additional time permits: Might want to create useful methods for creating knots, like ways to construct satellites of knots or cables of knots. Maybe adapt this so that the user can also work with braid representations of knots and links. There is also a move called the Rolfsen Twist, which I would like to implement. A picture of it can be found in this google book link: http://books.google.com/books?id=ahLKzRUTBbUC&pg=PA162&lpg=PA162&dq=rolfsen+twist&source=bl&ots=5rJU2Jv_AK&sig=-QRvjTVqX7H8nSm6SZYv_GEfaJE&hl=en&sa=X&ei=xMQVU_fCHOXa2QXMzIGoCQ&ved=0CCkQ6AEwAA Some things that would be good to set up: #connected components Fundamental group presentations (not always a useful invariant, but it's easy to get a presentation) Linking numbers Maybe someone working on the other end of the project could implement methods to calculate the Torsion invariants and the Alexander Polynomial in the case where the diagram is just a knot. Additionally, the Jone's polynomial can be calculated directly from the Tutte polynomial of the underlying graph (although this is algorithmically hard). Possible extensions: This all might be later extended to become a graphical Kirby Calculus tool, but that is just a thought at this point. -- You received this message because you are subscribed to the Google Groups "sage-gsoc" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-gsoc. For more options, visit https://groups.google.com/groups/opt_out.
