Good that there is no possible legal issue.
So, I've been playing around with knotplot a bit, and have been looking at his thesis which explains it pretty well. There are a lot of options to play around with and I'm still trying to figure out most of them. From my perspective, when it comes to visualization knotplot is really good at smoothing out knots and resizing/readjusting the complicated parts of the diagrams, as I referred to above. I think knot support in Sage should definitely incorporate these methods. Editing a knot in knotplot can be pretty difficult though, at least as I experienced it. Most of the editing I was trying to do was with the push/pull rockets, where you can grab a node or a stick between nodes, and push it in some direction that you want that part of the knot to go. You can constrain the push force to lie in say the xy plane, or a single axis direction, and you can rotate the viewing orientation. Theoretically you can make any adjustments to the knot that you want by switching force directions, rotating the view as necessary, and stopping and starting the smoothing dynamics as often as needed, but its not intuitive or easy. When it comes to knot manipulation, my opinion is that knotplot is not actually a good substitute for old fashioned planar knot diagrams. Also, since everything is going on in 3D, I can see that it would be easy to loose track mid-process of what you were trying to do with the knot or link in the first place. The only thing about planar knot diagrams is that on paper at least, you have to constantly erase and redraw your knot, and mistakes are easily made. Also, you don't have automatic smoothing and rearranging of complex parts that you get with knotplot. I think you can combine both of these approaches though and produce a very good tool to manipulate knot diagrams (and interface to all the other calculation goodies that you need). The main idea I am considering is that you can restrict the knot drawing to be mostly planar (to be relatively near the xy-plane) by adding in an external force which compresses the knot into a region near the xy-plane. For instance a force with magnitude proportional to z^4 directed towards the xy-plane, which would keep the knot roughly within a squashed rectangular region that would look like this: R: -20 < x < 20, -20 < y < 20, -1 < z < 1 If the user then wanted to do some manipulation on the knot, such as what would amount to a combination of Reidemeister 2 moves for instance, he could pull a piece of the knot out of the region R, apply a push/pull force with the mouse to the part of the knot he wished to move, lift it out of the region R, and then let it go when it had reached the place he wanted it to be. The affected part of the knot would then just fall back down into the region R, and the smoothing dynamics would do the rest. (What I just wrote smooths under the rug a lot of user interface details, but its just a general idea.) The diagram could also be made stable by basically making the thickness of the knot a large enough fraction of the height of the region R (in this case the height is 2, so if the thickness of the knot were say 2/3 the diagram would be stable). There are some other benefits to this approach. It would be very easy to get a planar diagram (just project down into the xy-plane), and it would be easier to keep a step by step record of how the knot was rearranged during a manipulation process (also because of the ease of getting planar diagrams). It would also be fairly easy to convert other more compact representations of a knot into this form. You just have to specify a height function for points in the planar diagram. I can start working on a proposal for this, but I just wanted to check if this sounds like something you would want, or if you have any suggestions that I should consider? -- 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/d/optout.
