PolyFEM

PolyFEM

A C++ FEM library that supports tetrahedral, hexahedral, and hexahedral dominant meshes. It includes the reference implementation of Decoupling Simulation Accuracy from Mesh Quality.

Tetrahedral Meshing in the Wild

Tetrahedral Meshing in the Wild

Reference implementation of a novel tetrahedral meshing technique that is unconditionally robust, requires no user interaction, and can directly convert a triangle soup into an analysis-ready volumetric mesh. The approach is based on several core principles: (1) initial mesh construction based on a fully robust, yet efficient, filtered exact computation (2) explicit (automatic or user-defined) tolerancing of the mesh relative to the surface input (3) iterative mesh improvement with guarantees, at every step, of the output validity. The quality of the resulting mesh is a direct function of the target mesh size and allowed tolerance: increasing allowed deviation from the initial mesh and decreasing the target edge length both lead to higher mesh quality. This software enables “black-box” analysis, i.e. it allows to automatically solve partial differential equations on geometrical models available in the wild, offering a robustness and reliability comparable to, e.g., image processing algorithms, opening the door to automatic, large scale processing of real-world geometric data.

libigl - A C++ Geometry Processing Library

libigl - A C++ Geometry Processing Library

libigl is a simple c++ geometry processing library. We have a 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.

Kernel-Independent Parallel 3D Fast Multipole Method

Kernel-Independent Parallel 3D Fast Multipole Method

The Kernel-Independent Fast Multipole 3d Method (kifmm3d) is a new FMM implementation which does not require the explicit multipole expansions of the underlying kernel, and it is based on kernel evaluations. Instead of using analytic expansions to represent the potential generated by sources inside a box of the hierarchical FMM tree (quadtree or octree), we use a continuous distribution of an equivalent density on a surface enclosing the box. To find this equivalent density, we match its potential to the potential of the original sources at a asurface in the far field, by solving local Dirichlet-type boundary value problems. The far field evaluations are sparsified with SVDs in 2D and FFTs in 3D. This new method has been tested on a variety of single and double layer operators, including the Laplacian, modified Laplacian, Stokes, modified Stokes, Navier-Stokes and modified Navier-Stokes in two and three dimensions. The major advantages of the KIFMM3d method is the relative simplicity of its implementation and its immediate extension to more general kernels.

Dual-space silhouette detection software

Dual-space silhouette detection software

The software detects of mesh edge silhouettes. The algorithm uses a dual-space data structure that allows for very fast silhouette queries, even for very large meshes. However, the algorithm works only for static meshes. The algorithm described in the paper also handles smooth silhouettes (defined as the zero set of a dot product), but this is not implemented in this software.

Subdivide 2.0

Subdivide 2.0

This software demonstrates algorithms for piecewise smooth subdivision surfaces described in the paper "Piecewise Smooth Subdivision Surfaces with Normal Control" by H. Biermann, A. Levin and D. Zorin. Two subdivision schemes, based on Loop and Catmull-Clark subdivision, are implemented. We have extended the classical Loop and Catmull-Clark schemes by adding rules to handle correctly a number of surface features: (1) convex and concave corners on the boundary and on creases, (2) extraordinary vertices on the boundary and on creases, and (3) prescribed normals at vertices. We will refer to these schemes as extended Loop and Catmull-Clark schemes. The code includes a minimal user interface for viewing control meshes and subdivision surfaces and changing mesh tags.

SketchRetopo

SketchRetopo

SketchRetopo is an advanced tool for converting unstructured triangle meshes to high-quality quadrangulations.

Refooormat - Image Retargeting for iOS

Refooormat - Image Retargeting for iOS

This app gives you a new way to modify your photos. It allows you to change the aspect ratio of your images with minimal visual artifacts. Important content, like people or landmarks, can be preserved while parts of the background might get stretched or cropped. The app is available as a free download in the iOS App Store for the iPad, iPhone, iPod touch and iPad mini. The self-contained source code is available on github.