Skip to content

acgetchell/delaunay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

delaunay

DOI Crates.io Downloads License Docs.rs CI rust-clippy analyze codecov Audit dependencies Codacy Badge

D-dimensional Delaunay triangulations in Rust, inspired by CGAL.

📐 Introduction

This library implements d-dimensional Delaunay triangulations in Rust. It is inspired by CGAL, which is a C++ library for computational geometry, and Spade, a Rust library that implements 2D Delaunay triangulations, Constrained Delaunay triangulations, and Voronoi diagrams. The goal of this library is to provide a lightweight alternative to CGAL for the Rust ecosystem.

✨ Features

  • Arbitrary data types associated with vertices and cells
  • d-dimensional Delaunay triangulations
  • d-dimensional Convex hulls
  • Serialization/Deserialization of all data structures to/from JSON
  • Tested for 3-, 4-, and 5-dimensional triangulations

See CHANGELOG.md for details.

🚧 Project History

This crate was originally maintained at https://github.com/oovm/shape-rs through version 0.1.0. The original implementation provided basic Delaunay triangulation functionality.

Starting with version 0.3.4, maintenance transferred to this repository, which hosts a completely rewritten d-dimensional implementation focused on computational geometry research applications.

🤝 How to Contribute

We welcome contributions! Here's a 30-second quickstart:

# Clone and setup
git clone https://github.com/acgetchell/delaunay.git
cd delaunay

# Build and test
cargo build
cargo test

# Format and lint
cargo fmt --all
cargo clippy --all-targets --all-features

# Run examples
./scripts/run_all_examples.sh

# Run a specific example
cargo run --example triangulation_3d_50_points
cargo run --example convex_hull_3d_50_points
cargo run --example into_from_conversions
cargo run --example point_comparison_and_hashing

📋 Examples

The examples/ directory contains several demonstrations:

  • triangulation_3d_50_points: Complete 3D Delaunay triangulation with 50 random points
  • convex_hull_3d_50_points: 3D convex hull extraction and analysis with performance benchmarks
  • into_from_conversions: Demonstrates Into/From trait conversions and utilities
  • point_comparison_and_hashing: Demonstrates point comparison and hashing behavior

For comprehensive guidelines on development environment setup, testing, benchmarking, performance analysis, and development workflow, please see CONTRIBUTING.md.

This includes information about:

  • Building and testing the library
  • Running benchmarks and performance analysis
  • Code style and standards
  • Submitting changes and pull requests
  • Project structure and development tools

📚 References

For a comprehensive list of academic references and bibliographic citations used throughout the library, see REFERENCES.md.

About

D-dimensional Delauany triangulations in Rust

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •