Giter Club home page Giter Club logo

asimplediscretizationofthevectordirichletenergy's Introduction

A Smoothness Energy without Boundary Distortion for Curved Surfaces

This is the code accompanying the paper "A Simple Discretization of the Vector Dirichlet Energy". Acknowledgement for the meshes used in the examples can be found in the "Acknowledgements" section of the paper.

The following software is needed to run the code:

  • CMake with a C++14 compiler
  • gptoolbox version as of March 30th, 2020 (make sure to add it to your MATLAB path)
  • MATLAB
  • OpenGL

The code is intended to be run on macOS X 10.15.4 with clang 11.0.3 and MATLAB_R2020a. This code relies heavily on the libigl library as of March 30th, 2020. It might run on other configurations too, but it has not been tested on any of them.

In order to install and compile the code, you have to

  • Recursively clone this repository (git clone --recursive).
  • Go to into the main directory of the cloned repository.
  • cd cpp
  • mkdir build; cd build; cmake ..
  • Use ccmake to choose between Release and Debug compilation modes.
  • make

The result of this compilation is a MEX file which can be used in MATLAB to build the curved Hessian matrix in cpp_interface/build/applications/Mex . The examples from the paper are separate MATLAB scripts in the directory MATLAB.

Known issues and troubleshooting

CMake is unable to find my MATLAB version

The included CMake script is unable to find newer MATLAB versions. Look at its documentation to see how to include newer MATLAB versions, specifically MATLAB_ADDITONAL_VERSIONS

# .. variable:: MATLAB_ADDITIONAL_VERSIONS
#
#   If set, specifies additional versions of Matlab that may be looked for.
#   The variable should be a list of strings, organised by pairs of release
#   name and versions, such as follows::
#
#     set(MATLAB_ADDITIONAL_VERSIONS
#         "release_name1=corresponding_version1"
#         "release_name2=corresponding_version2"
#         ...
#         )
#
#   Example::
#
#     set(MATLAB_ADDITIONAL_VERSIONS
#         "R2013b=8.2"
#         "R2013a=8.1"
#         "R2012b=8.0")

Copyright / license

This code is not released under any open source license beyond what is required for basic github hosting and potential licenses of included code. All reservable rights are reserved by the respective authors. This is because the codebase contains code snippets by other authors (the vector field plotting functions).

asimplediscretizationofthevectordirichletenergy'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.