MCPcopy Index your code
hub / github.com/Stoeoef/spade

github.com/Stoeoef/spade @v2.15.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.15.1 ↗ · + Follow
911 symbols 4,329 edges 52 files 190 documented · 21% updated 3mo ago★ 33212 open issues

Browse by type

Functions 805 Types & classes 106
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Docs Crates.io License GitHub Workflow Status (branch) dependency status

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

A Delaunay triangulation and the dual Voronoi Graph


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

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 444
Function 361
Class 70
Enum 24
Interface 12

Languages

Rust100%

Modules by API surface

src/cdt.rs111 symbols
src/delaunay_core/triangulation_ext.rs68 symbols
examples/svg_renderer/quicksketch/mod.rs60 symbols
src/delaunay_core/handles/handle_impls.rs59 symbols
src/triangulation.rs53 symbols
src/delaunay_core/dcel.rs48 symbols
src/delaunay_core/bulk_load.rs48 symbols
src/delaunay_core/dcel_operations.rs42 symbols
src/delaunay_core/refinement.rs38 symbols
src/delaunay_core/math.rs38 symbols
examples/svg_renderer/scenario_list.rs34 symbols
src/intersection_iterator.rs30 symbols

For agents

$ claude mcp add spade \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page