Rendered at 06:21:01 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
DennisL123 17 minutes ago [-]
Nice work. Getting DT edge cases right can be quite some work.
Shameless plug: My own DT for int32 coordinates in Rust, and compiled to wasm with a bit of visualization. Click to add and remove sites, hit animate for a bit of lava lamp like vibes.
> For large point sets, Delaunay32 is over 10× faster than delaunator-cpp and around 4× faster than Fade2D.
hingler36 7 hours ago [-]
Great project!
Are vertex insertion and deletion also supported/accelerated?
What compromises are keeping this constrained to 32-bit? It seems like you could cut back on quantization error by increasing bits, but if you're doing some manual SIMD magic to get this performance I can understand sticking with 32 bits.
marmakoide 4 hours ago [-]
Not the author, but I assume that to make it work with 32 bits integer coordinates, some operation (like multiplications) need extension to 64 bits. If we want full hardware support on 64 bits CPUs, that's the limit.
cmovq 2 hours ago [-]
64 bit cpus have 128 bit mul results if that’s what you mean
delusional 58 minutes ago [-]
Triangulation usually requires an incicrle operation at some point, and that requires doing multiplication on the result of multiplication, without loss of precision.
32-bit triangulation therefore requires 128-bit multiplication, in some rare degenerate cases.
Shameless plug: My own DT for int32 coordinates in Rust, and compiled to wasm with a bit of visualization. Click to add and remove sites, hit animate for a bit of lava lamp like vibes.
https://hermes.leytron.de/delauney/
> For large point sets, Delaunay32 is over 10× faster than delaunator-cpp and around 4× faster than Fade2D.
Are vertex insertion and deletion also supported/accelerated?
What compromises are keeping this constrained to 32-bit? It seems like you could cut back on quantization error by increasing bits, but if you're doing some manual SIMD magic to get this performance I can understand sticking with 32 bits.
32-bit triangulation therefore requires 128-bit multiplication, in some rare degenerate cases.
In this repo the incircle is here: https://github.com/morishuz/delaunay32/blob/141d979b18e296ac...