CS3451 Fall 2009 - Project 3 - Knots


By Allison Gooch


Phase 1 - Design Click here to view For this project, I started with my code from Project 2, and cleaned it up to meet my needs for Project 3. I decided on this approach because I wanted to make an applet with several 2D projections of the 3D space, laid out as viewports like various 3D software packages that are popular today. My program renders 2 ropes as arrays of spheres, with intermediate spheres in between to give the illusion of a solid rope. Each rope is a different color, but with green endpoints, which are the points the user can drag to edit the ropes. I found this approach to be an intuitive and quick way for the user to compose the knot of his or her choice. Enjoy!
Phase 2 - Physics Click here to view For this phase, I implemented smoothing and length preservation, and part of the required repulsion. For the length preservation, I used my own algorithm, but it moves the whole rope in its entirety rather than having one end fixed. I created a basic repulsion algorithm that I will be refining for phase 3.
Phase 3 - Rendering Click here to view For this phase, I fixed some issues with my phase 2. I also attempted to implement rendering with a quad mesh, but my quad mesh looks more like a ribbon than a rope. I haven't been able to figure out why. My repulsion is better, but still a bit buggy. I think, overall, however, it is easy to understand and use for the purpose of tying ropes.
Phase 4 - Animation Coming Soon! Coming Soon!