Shape Optimization of Gridded Surfaces Advisor: Carlo Séquin Programmed by: Avik Das Victor Huang Roller Coaster Framework: http://inst.eecs.berkeley.edu/~cs184/sp11/framework/ ~~ ABOUT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TODO ~~ HOW TO BUILD ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ensure that all external dependencies have been satisified. Then, the following command will build the application on *nix: make TODO Windows build steps ~~ HOW TO RUN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./coaster [track-file-name] If a track name is not specified, you may choose a track through the GUI. After a track has been chosen and its parameters set, click RUN to start the optimization. The speed can be adjusted anytime, while the twist penalty weight is only applied when a new optimization starts. ~~ VIDEOS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A number of videos are available of optimizations using available tracks: Figure 8 - figure-8-3.trk - http://www.youtube.com/watch?v=LJDDK7KmojI Twisted Circle - twisted-circle-2.trk - http://www.youtube.com/watch?v=uV50lRR-AXc Twisted Double Circle - twisted-circle-3.trk - http://www.youtube.com/watch?v=maLrhkQjMkw Slightly Twisted Double Circle - double-circle-1.trk - http://www.youtube.com/watch?v=q3mw6VaoTko Double Circle - double-circle-2.trk - http://www.youtube.com/watch?v=lTN48PvzrMs ~~ EXTERNAL DEPENDENCIES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following libraries are used, along with the package that provides them on Ubuntu (and possibly other Debian-based systems, including Debian itself). * Eigen 2 (libeigen2-dev) - http://eigen.tuxfamily.org/index.php?title=Main_Page * Libbost Math 1.40 (libboost-math1.40-dev) - http://www.boost.org/doc/libs/1_40_0/libs/math/doc/html/index.html * Libbost Filesystem 1.40 (libboost-filesystem1.40-dev) - http://www.boost.org/doc/libs/1_40_0/libs/filesystem/doc/index.htm * Libbost System 1.40 (libboost-system1.40-dev) - http://www.boost.org/doc/libs/1_40_0/libs/system/doc/index.html * libpng 1.2 (libpng12-dev) * OpenGL + GLUT (freeglut3-dev) The following libraries are also used, but required more involved setup: * AntTweakBar - http://www.antisphere.com/Wiki/tools:anttweakbar - This has been tested by building the library as a static library (see general technique at http://www.alecjacobson.com/weblog/?p=1370), and storing libAntTweakBar.a in ./lib/. It should work if the library is installed system-wide as a dynamically loaded library.