/shape-optimization

Shape Optimization of Gridded Surfaces

Primary LanguageC++

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.