24 stable releases

new 2.7.0 May 17, 2024
2.6.0 Jan 14, 2024
2.5.1 Dec 28, 2023
2.4.0 Nov 19, 2023
0.2.1 Oct 11, 2016

#66 in Data structures

Download history 23593/week @ 2024-01-26 26169/week @ 2024-02-02 40087/week @ 2024-02-09 44990/week @ 2024-02-16 43676/week @ 2024-02-23 41418/week @ 2024-03-01 41254/week @ 2024-03-08 40425/week @ 2024-03-15 32257/week @ 2024-03-22 28423/week @ 2024-03-29 29917/week @ 2024-04-05 30290/week @ 2024-04-12 30393/week @ 2024-04-19 29277/week @ 2024-04-26 29378/week @ 2024-05-03 28300/week @ 2024-05-10

121,960 downloads per month
Used in 149 crates (19 directly)

MIT/Apache

540KB
10K SLoC

Docs Crates.io GitHub Workflow Status (branch)

spade

Delaunay triangulations for the rust ecosystem.

  • 2D Delaunay triangulation, optionally backed by a hierarchy structure for improved nearest neighbor and insertion performance.
  • Allows both incremental and bulk loading creation of triangulations
  • Support for vertex removal
  • 2D constrained Delaunay triangulation (CDT)
  • Delaunay refinement
  • Uses precise geometric predicates to prevent incorrect geometries due to rounding issues
  • Supports extracting the Voronoi diagram
  • Natural neighbor interpolation


Project goals

Project goals, in the order of their importance:

  1. Robustness - all data structures should behave correctly. An incorrect result, even if triggered only under rare circumstances, is not acceptable. This is why Spade uses a precise calculation kernel by default.
  2. Easy to use - favor an easy to use API over an API that exposes all bells and whistles.
  3. Performance - Delaunay triangulations are often a low level component of an application. Optimization in this area pays off greatly.
  4. Small footprint - Spade should be a sensible library to include in your project that doesn't require too many dependencies. Bigger dependencies will be feature gated when possible.

Roadmap

For Spade 3:

  • Possibly API simplification by un-supporting non-f64 outputs.

Performance and comparison to other crates

Refer to the delaunay_compare readme for some benchmarks and a comparison with other crates.

License

Licensed under either of

at your option.

Dependencies

~2.5MB
~33K SLoC