Git Product home page Git Product logo

developabilityoftrianglemeshes's Introduction

This is the code accompanying the paper "Developability of Triangle Meshes" by Oded Stein, Eitan Grinspun, and Keenan Crane.
The paper is to appear in ACM Trans. Graph 2018, vol. 37, number 4.
More info on the paper can be found on its project page, http://www.cs.columbia.edu/cg/developability/


This code is meant to run on macOS 10.13, with Xcode and the Developer tools installed.

This code is built with cmake.
Go to the code directory, and then:

mkdir build
cd build
cmake ..
make

Options can be adjusted with ccmake in the build directory.
Be sure to set CMAKE_BUILD_TYPE to Debug or Release respectively.


The application is run in the build directory by issuing:
./applications/main/main path_to_mesh.obj

There are multiple keypress options to influence the different flows.
A few are listed here:
- TAB: perform one optimization step
- Space: continuously optimize
- up / down arrow keys: increase / decrease step size.
- e: toggles developability energies. 0/1 are the L2/Linf version of the
      covariance energy, modified to reduce spikes. 2/3 are the L2/Linf version
      of the covariance energy sans modification. 4/5 are the L2/Linf version
      of the combinatorial energy.
- m: toggles the minimization strategy. The options are L-BFGS & Overton's
      line search, gradient descent & backtracking linesearch, and gradient
      descent without any linesearch. If a linesearch strategy is active,
      the input from the up / down arrow keys will be overwritten by the
      line search.
- s: in-place 1-4 subdivision of the mesh. Use this, as described in the paper,
      after some time has passed with the flow to get nice, hi-res models.
- n: toggle remeshing of degenerate triangles
- f: cut and flatten mesh. Will write a flattened & cut mesh to
      flattened_out.obj and a mesh with the flattened & cut texture coordinates
      to mesh_with_flattened_texcoord.obj.
      This method is rather sensitive to parameters defined in
      measure_once_cut_twice.cpp at the beginning of the file.
- c: toggles coloring of the mesh
- d: toggles edge coloring by dihedral angle
- w: write the current mesh to out.obj
- v: toggles video recording, this will write a mesh frame*.obj every few steps
- p: toggles the energy plot window
- l: one pass of Laplacian smoothing (tiny timestep)

To run some of our pre-generated examples, run the scripts stored in the directory runs by issuing:
./applications/main/main ../runs/nut.txt


The MATLAB dependency can be removed by altering the respective line in the
CMakeLists.txt from "ON" to "OFF", and changing the preprocessor define on the
top of applications/main/main.cpp from:
#define REQUIRE_MATLAB
to:
#undef REQUIRE_MATLAB

developabilityoftrianglemeshes's People

Contributors

odedstein avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.