# Free Plugins

Most of the plugins on this page are included if you check out the latest free branch of OpenFlipper or download the Windows or Mac binaries.

Some of the plugins are marked as staging. These plugins are not finished yet or need more polishing. Nevertheless, they are already usable. If you want to get these plugins as well, take one of the staging daily builds.

There are different categories of Plugins:

General (14) Basic functionality

Mesh Processing (11) Algorithms to manipulate meshes

File Plugins (9) Importers and exporters

Skeletal Animation (3) Dealing with skeletons and animations

Surface Reconstruction (1) Reconstruction of surfaces from point clouds

Post Processors (11) Special post processing of the rendered images

Renderers (9) Plugins used for rendering in OpenFlipper

Type Plugins (9) Providing the basic datatypes

## Mesh Processing

### Decimater

This Plugin can be used to decimate triangular meshes.

The decimation process can be controlled by several error constraints:

- Distance to original mesh
- Normal deviation
- Edge length
- Roundness of the triangles
- Aspect ratio of the triangles

The decimation order can be based on the distance, normal deviation or edge length.

Next to the incremental decimation, where the decimation is done in a sequential order by using a heap, we also provide a faster multiple choise decimation algorithm which is based on random samples. This algorithm is faster but still guarantees a minimum adjustable quality.

A mixture of both algorithms providing a good balance between speed and quality for large meshes is also included.

### Hole Filling

This plugin is based on the dynamic programming approach by Peter Liepa, , 2003, Filling holes in meshes. However, the algorithm handles the filling step in seperate blocks to avoid the O(n³) complexity. After the initial triangulation of the hole is computed, an optimization step improves the quality of the new mesh segment. Furthermore, the smoother plugin of OpenFlipper is used internally to get a smooth boundary and interior of the new patch.

### Info MeshObject

The Info MeshObject plugin provides information about mesh objects.

The mesh objects can be either polygonal or triangular meshes. Next to simple information such as:

- #vertices, #edges, #faces
- #boundaries
- #components
- genus

This plugin provides also more detailed statistics:

- Vertex valence
- Edge length
- Aspect ratio
- Inner face angles
- Dihedral angles
- Object bounding box
- Center of gravity

### Isotropic Remesher

The Isotropic Remesher implements an incremental remeshing algorithm which remeshes a given triangular mesh so that all edges have approximately the same target edge length and the triangles are as regular as possible.

The algorithm used consists of 5 steps:

- Split all edges longer than the given target edge length.
- Collapse all edges shorter than the given target edge length.
- Flip edges to achieve an optimal average vertex valence.
- Move the vertices in their tangential plane to their center of gravity.
- Project vertices back onto original surface

The process can be iterated and it respects additional constraints such as features or boundaries. Vertices marked as features via the selection plugin will not be modified.

### Mesh Compare

The Mesh compare plugin can be used to compare meshes with respect to the following properties:

- Distance
- Normal deviation
- Mean curvature
- Gauss curvature

The plugin will visualize the difference as points and also provides a histogramm showing the result.

### Mesh Repair

The mesh repair plugin can be used to identify and fix some common defects of meshes. It can:

- Detect and remove flat triangles (with valence 3 vertices in the center)
- Detect and remove skinny triangles
- Detect and remove triangles with one inner angle greater than a given threshold
- Detect and remove foldovers
- Flip the orientation of selected faces

Next to these repair features, the mesh repair plugin can be used to recompute vertex, halfedge and face normals of meshes. It also provides functions to snap vertices based on a given distance threshold.

### Property Viz

The Property Visualization plugin can be used to visualize various properties of triangular or polygonal meshes. The properties can be either scalar or vector valued and may be stored at vertices, halfedges, edges, and faces.

A color coder is integrated to get an optimal visualization of scalar valued properties. Vector valued properties can be visualized as lines or for example as colors based on the vector lengths.

### Remesher

The Remesher plugin can be used to reduce the complexity of triangular meshes. In contrast to the Isotropic remesher, it tries to adapt the triangle size with respect to curvature of the mesh. Therefore the resulting triangles will be large in flat areas while in areas with high curvature they will get smaller achieving a high precision output mesh with a low triangle count.

The user can set the maximal and minimal edge length of the output mesh and a maximal distance to the original mesh.

### Smoother

The Smoother Plugin implements a laplacian smoother for triangular meshes.

The smoothing can be controlled by several constraints:

- normal/tangential direction or both
- C0 or C1 continuity
- Distance to original mesh
- Respect features (select them via the selection plugin first and convert them to features)

### Subdivider

The Subdivider Plugin implements several subdivision algorithms for triangular and polygonal meshes (depending on the used algorithm):

- C. T. Loop, "Smooth Subdivision Surfaces Based on Triangles", M.S. Thesis, Department of Mathematics, University of Utah, August 1987.
- L. Kobbelt, "Sqrt(3) subdivision", Proceedings of SIGGRAPH 2000.
- "Interpolating Labsik Greiner Subdivider" as described in "Interpolating sqrt(3) subdivision" Labsik & Greiner, 2000
- "Modified butterfly scheme" of Denis Zorin, Peter Schröder and Wim Sweldens,
- "Interpolating subdivision for meshes with arbitrary topology'' in Proceedings of SIGGRAPH 1996, ACM SIGGRAPH, 1996, pp. 189-192.
- "Catmull Clark" subdivision

### Topology

The Topology Plugin is a very simple one providing tools to change the topology of a mesh (triangular and polygonal). It can be used to split, collapse or flip single edges on a mesh. Furthermore it provides functions to add, delete and split faces. These operations are available via a simple mouse interface to allow the user to directly modify the topology.