research software and source code

We strive to make the source code resulting from our research publicly available. This page lists software and code developed for our publications, as well as general framework code we write and use, notably the libigl library.

Please note that unless otherwise specified, the software and code are provided for academic research purposes only and without any warranty. If you are interested in commercial usage, please contact us.


libigl

libigl - A C++ Geometry Processing Library

A simple C++ geometry processing library with wide functionality, including construction of sparse discrete differential geometry operators and finite-elements matrices such as the contangent Laplacian and diagonalized mass matrix, simple facet and edge-based topology data structures, mesh-viewing utilities for OpenGL and GLSL, and many core functions for matrix manipulation which make Eigen feel a lot more like MATLAB.

libigl is the winner of the Software Award at the Eurographics Symposium on Geometry Processing 2015!

Sketch based retopology

Sketch based retopology

Source code for Sketch based retopology.

Accurate and Efficient Lighting for Skinned Models

Accurate and Efficient Lighting for Skinned Models

Code and demo software for efficient computation of accurate shading of skinned meshes.

Mobile Image
    Retargeting

Mobile Image Retargeting

Content-aware image resizing for iOS devices, available as source code and free iPhone and iPad apps.

Make it stand

Make It Stand: Balancing Shapes for 3D Fabrication

Balance a given 3D shape such that it stably stands in a given pose; the resulting object can be fabricated by 3D printing.

Robust Inside-Outside Segmentation using Generalized Winding Numbers

Robust Inside-Outside Segmentation using Generalized Winding Numbers

Demo for the SIGGRAPH 2013 paper (volumetric meshing).

Weighted averages on
    surfaces

Weighted Averages on Surfaces

Source code for the SIGGRAPH 2013 paper (weighted averages on surfaces).

Locally Injective Mappings

Locally Injective Mappings

Minimization of arbitrary quadratic deformation energies on a 2D or 3D mesh while ensuring that no elements become inverted.

Smooth Shape-Aware Functions with Controlled Extrema

Smooth Shape-Aware Functions with Controlled Extrema

A 2D demo of our SGP 2012 paper that shows how to compute smooth scalar functions that have exactly prescribed extrema.

Robust Image Retargeting via Axis-Aligned Deformation

Robust Image Retargeting via Axis-Aligned Deformation

Very fast content-aware image resizing software; implementation of our EUROGRAPHICS 2012 paper.

Bounded Biharmonic Weights for Real-Time Deformation

Bounded Biharmonic Weights for Real-Time Deformation

A 2D demo for our SIGGRAPH 2011 paper on automatic skinning weight computation.

GeoBrush: Interactive Mesh Geometry Cloning

GeoBrush: Interactive Mesh Geometry Cloning

A system for surface geometry cloning, akin to continuous copy-paste on meshes. Implementation of our EUROGRAPHICS 2011 paper.

Volumetric Modeling with Diffusion Surfaces

Volumetric Modeling with Diffusion Surfaces

Implementation of our SIGGRAPH ASIA 2010 paper on sketch-based modeling of objects with intricate volumetric appearance.

Mixed Finite Elements for Variational Surface Modeling

Mixed Finite Elements for Variational Surface Modeling

MATLAB implementation of our SGP 2010 paper on mixed finite elements for polyharmonic PDEs.

Topology-based Smoothing of 2D Scalar Fields with C1-Continuity

Topology-based Smoothing of 2D Scalar Fields with C¹-Continuity

Implementation of our EuroVis 2010 paper on topology-aware smoothing of 2D scalar functions.

Laplacian Surface Editing

Laplacian Surface Editing

A 2D MATLAB demo for our SGP 2004 paper on Laplacian Mesh Editing.