Skip to content

Paul-Ollivier/OptimizedDelaunayTriangulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

Optimized Delaunay Triangulation Visualization

A high-performance, real-time Delaunay triangulation visualization tool built with Swift & Metal.

Screenshot 2024-10-29 at 23 33 48

Features

  • Real-time Delaunay triangulation computation ( CPU )
  • Hardware-accelerated rendering using Metal

Performance Optimizations

  • Preallocation of buffers and collections
  • SIMD operations for geometric calculations
  • Binary search for ordered insertions
  • Efficient memory reuse
  • Autoreleasepool usage for consistent performance
  • Performance monitoring and timing for each processing stage

Requirements

  • macOS 11.0 or later
  • Xcode 13.0 or later
  • Metal-capable Mac

Building and Running

  1. Clone the repository:
git clone https://github.com/yourusername/optimized-delaunay-triangulation.git
  1. Open the project in Xcode:
cd optimized-delaunay-triangulation
open OptimizedDelaunayTriangulation.xcodeproj
  1. Build and run the project (⌘R)

Project Structure

OptimizedDelaunayTriangulation/
├── OptimizedDelaunayTriangulationApp.swift  # Main app entry point and SwiftUI setup
├── OptimizedDelaunayTriangulation.swift     # Core triangulation algorithm
└── Shaders.metal                            # Metal shader code

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

License

MIT

Acknowledgments

  • The triangulation algorithm is based on the Bowyer-Watson algorithm
  • Special thanks to the Metal and Swift communities for their resources and documentation

Author

Paul Ollivier

Contact

For questions and feedback:

About

Optimized Delaunay triangulation on CPU with Metal visualization for macOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published