Geom Software - C++ Programming and Geometry Libraries
Fade2D Documentation pages v1.24
Delaunay Triangulation Library for C++ - Download

Introduction to Fade2D

  • Fade is among the fastest Delaunay triangulation libraries for C++
  • Free for scientific research. Commercial licenses and support are available
  • Easy to use and well documented
  • Numerically robust
  • Conforming and Constrained Delaunay triangulation
  • Delaunay mesh generator
  • Classic 2D version and extended 2.5D version for height fields

Delaunay triangulation with Fade2D

Delaunay triangulation 2D

Constrained Delaunay triangulation

Constrained Delaunay triangulation

Zones in a triangulation

Zones in a triangulation

2D mesh generation

2D Mesh generation

Getting started

Download. Unzip. Start to play with the included examples. It works without installation for Windows and Linux developers.

Fade2D and Fade2.5D have a common code base and thus the the look and feel is similar. Most functions exist in Fade2D and Fade2.5D where the difference is only the namespace (GEOM_FADE2D or GEOM_FADE25D) and the z-coordinate. But some components are exclusive to Fade2.5D, thus there are two separate documentations:

Documentation Download
Fade 2D HTML (this document) PDF Download Fade2D and Fade2.5D v1.24
Fade 2.5D HTML PDF

Directory Contents

  • include_fade2d and include_fade25d
    Header files of the two libraries.
  • Win32 and x64
    This directory contains the *.dll and *.lib files for Windows 32-bit and 64-bit and it will contain the executables when you compile the example source code with Visual Studio.
  • linux_i686 and linux_x86_64
    The 32-bit (64-bit) shared library (*.so) for Linux developers.
  • example[0-7]
    Source code of the examples.
  • vs20xx_exampleProjects
    Contains the example *.sln files for Visual Studio 2008, 2010, 2012 and 2013.

For Windows users:

  1. Open one of the example projects (Visual Studio solution files in the vs2008, vs2010, vs2012 or vs2013 folder)
  2. Compile the example source code. Find the *.exe in the Win32 or x64 folder.

For Linux users:

  1. You need GMP:
    $ sudo apt-get install libgmp10 (works on Ubuntu/Debian/Mint, on other systems search for gmp)
  2. Enter the example[0-7] directory, open the Makefile, choose your Linux distribution, save and type make to compile the source code.

Work through the provided examples. They are small, well documented and they visualize the results.


  • Mixing multiple Visual Studio versions is not recommended.
  • Make sure that the right *.dll is used in your project.
  • Compare your settings with the ones from the example projects in the VS2008, VS2010, VS2012 or VS2013 folder.

If your problem persists, don't hesitate to send a minimal example that reproduces it.

Release notes / History

Version 1.24, July 22nd, 2015:
Public release of version 1.23's improvements. And I'm sorry but we had a bug in Fade_2D::getVertexPointers(..). The method may have missed to return a few pointers after a call to refine() or remove(). This bug is fixed now.

Version 1.23, July 9th, 2015:
Internal test release with the new refineExtended() method for the specific needs of a certain client software.

Version 1.22, May 25th, 2015:
Code refactored, build system refactored and as a result improved Linux support: CentOS 6.4, Ubuntu 14.04, Ubuntu 15.04 and similar systems. Removement of points has been implemented, Delaunay meshing has been reworked, sqDistance() has been replaced by sqDistance2D() and sqDistance25D() because both versions are useful in 2.5D. OpenMP has been removed, it was only used under Linux and currently I work on a better way to provide multithreading.

Version 1.21, May 17th, 2015:
Unofficial intermediate release. Testing new features.

Version 1.20, April 5th, 2015:
3D scene Visualization for (up to date) web browsers added. Misleading enumeration values CIS_KEEP_DELAUNAY and CIS_IGNORE_DELAUNAY have been replaced by CIS_CONFORMING_DELAUNAY and CIS_CONSTRAINED_DELAUNAY (the two deprecated names are kept for backward compatibility). Bug in the free function center(Point2&,Point2&) solved. Major revision of the documentation pages. The source codes of the examples have been reengineered and are included in the present documentation pages.

Version 1.19, October 26th, 2014:
Support for Visual Studio 2013 (VC12) has been added. Only minor code changes.

Version 1.18.3, June 9th, 2014:
Delaunay Mesh Generation has been improved: Better quality, better performance. API improved. Small bug fixes.

Version 1.16.1, February 10th, 2014:
Small update: In rare cases it was possible that subdivided ConstraintSegments caused problems in combination with zone growing. This is fixed now.

Version 1.16, February 3rd, 2014:
Constrained Delaunay triangulation improved, Delaunay meshing improved, aspect ratio meshing (experimental) added. Minor bug fixes. Added support for Visual Studio 2012.

Version 1.14, November 2013 and version 1.15, December 2013:
Non-public intermediate releases (test versions with experimental features).

Version 1.13, August 4th, 2013:
Mesh generation (Delaunay Meshing) has been improved and two bugfixes have been made in the new IsoContours class: A message can be suppressed now and a numeric problem has been fixed.

Version 1.12, June 30th, 2013:
Starting with version v1.12 the download consists of two separate libraries: The familiar full version of the 2D flavor as well as a 2.5D evaluation version. Two very fast new methods have been added to the 2.5D version: One computes iso-contours, the other computes the height of a point with arbitrary (x,y) coordinates. Delaunay mesh generation has been improved. Support for VS2008, 32-bit and 64-bit, has been added. The performance has been improved.

Version 1.11, June 14th, 2013:
Non-public intermediate release with VS2008 support and a first version of the iso-contour feature.

Version 1.10, March 30th, 2013:
Delaunay Refinement (already included as preview in the previous release) has been improved and is officially released now. Parts of the algorithm can use up to 8 CPUs under Linux if explicitly switched on using Fade2D::enableMultithreading(). There is a new insert method in the API which uses arrays.

Version 1.03, Nov. 4th, 2012:
A critical bug has been fixed, please switch to the current version. Performance upgrade: A first step towards multithreading has been made in the Linux version. In order to facilitate the installation for users without administrator privileges the installers have been replaced by a simple zipped directory that contains everything. Meshing through Delaunay Refinement is scheduled for the next release but it is pre-released as an experimental feature in the current version 1.03.

Version 1.02, 9/2012:
An additional debug library version for Windows has been added and the directory structure has been reorganized.

Version 1.01, 9/2012:
This is a stable public release. Since version 0.9 we have introduced insertion of constraint edges and the zone concept. Moreover the API is under a namespace now. Boost types have been removed from the API to avoid this additional dependency. New demo software has been written and the library is now also available for 64-bit Windows.