Performance Comparison

Benchmark project is here.

All tests were run on a machine with the following specifications:
3 GHz 6-Core Intel Core i5, 40GB 2667 MHz DDR4

All results are presented in seconds.

Solvers:

  • iTriangle(Unchecked-Raw) v0.31.0 – only raw triangulation, no validation check
  • iTriangle(Unchecked-Delaunay) v0.31.0 – raw triangulation and refinement Delaunay
  • iTriangle(Raw) v0.31.0 – validation and raw triangulation
  • iTriangle(Delaunay) v0.31.0 – validation, raw triangulation and refinement Delaunay
  • earcutr(MapBox) v0.4.3 – Rust port– only raw triangulation, no validation check
  • earcut(MapBox) v2.2.4 – C++ official– only raw triangulation, no validation check
  • triangle v1.6 – C official– constraint Delaunay triangulation, no validation check

Simple Star Test

This test generates and triangulate 10,000 unique star-shaped polygons, one at a time. Each shape is defined by:

  • A unique radius scale (100 variations)
  • A unique rotation (100 steps across a full circle)
  • A given number of corners (count), each with 10 points

All shapes are clean (non-intersecting), and no mesh is reused — each one is processed independently.

CountUn-RawUn-DelaunayRawDelaunayEarcutr(Rust)Earcut(C++)Triangle(C)
40.0478440.1157770.0742980.1396430.0572680.0250660.460071
80.0987850.2284470.1650020.2848680.1278770.06689910.884584
160.2102140.4484890.3696250.5918760.2901490.2194851.52763
320.4553520.8823770.8752001.2560990.6930530.4942153.07119
640.9871391.7601422.2410442.8738661.6992061.28376.14373
1282.1078673.4931235.8677577.0735284.2535213.1552611.7701
2564.4813606.98370516.65263918.89459311.4608288.5850123.1163
5129.37272113.96005546.58555950.47805340.62317232.905245.0489

Star with Hole Test

This test generates and triangulates 10,000 unique star-shaped polygons with a central hole, one at a time. Each shape is defined by:

  • A unique radius scale (100 variations)
  • A unique rotation (100 steps across a full circle)
  • A central hole generated as a smaller star
  • A given number of corners (count), each with 10 points

All shapes are clean (non-intersecting), and no mesh is reused — each one is processed independently.

CountUn-RawUn-DelaunayRawDelaunayEarcutr(Rust)Earcut(C++)Triangle(C)
40.1103700.2127850.2684330.3696400.1870540.1361610.801385
80.2295840.4230340.5939940.7817890.4921140.4546291.59074
160.4805770.8304131.3443041.6895661.5378971.526633.12989
321.0315681.7540293.2946833.9764636.1086765.161886.21763
642.2238703.2892628.5470629.68993429.41532725.120712.29
1284.7085706.56707424.22509226.156747201.363290161.92324.6715
2569.89121313.81856764.14080071.023947------50.5745

Rect with Star Holes Test

This test generates and triangulates 25 unique rectangles filled with many 5 corners star-shaped holes.

Each shape is defined by:

  • A large outer rectangle
  • A grid of count × count small stars as holes, each with:
  • A varying radius scale (5 variations)
  • A unique rotation (5 variations)
  • 5 corners per star, with 10 points per corner.

All shapes are clean (non-intersecting), and no mesh is reused — each one is processed independently.

CountUn-RawUn-DelaunayRawDelaunayEarcutr(Rust)Earcut(C++)Triangle(C)
40.0034350.0090570.0090290.0377940.0378970.005311920.0281862
80.0136620.0304810.0350410.1125660.0764050.04310320.094576
160.0627490.1307460.1529360.3136310.6059790.5712620.329305
320.2686700.5869560.5346180.9277477.4967540.548361.34492
641.3437023.5207282.5427414.774121210.383871201.285.86257
1285.68036119.39514010.13111023.526240------28.4693
25625.201445182.09967545.647115196.863314------175.662