/ proof-of-concept / qhull-wasm-demo
Sign in
proof-of-concept / qhull-wasm-demo
qhull-wasm-demo
Go to fileHistoryFork
.githubqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
publicqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
scriptsqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
srcFix stale-index crash on shrinking point count; add desktop reference timings
.gitignoreqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
eslint.config.jsqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
index.htmlqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
package-lock.jsonqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
package.jsonqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
README.mdFix stale-index crash on shrinking point count; add desktop reference timings
tsconfig.app.jsonqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
tsconfig.jsonqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
tsconfig.node.jsonqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks
vite.config.tsqhull-wasm demo: 2D/3D triangulation, convex hull, and Delaunay benchmarks

qhull-wasm-demo#

Interactive demos and benchmarks for qhull-wasm — Qhull compiled to WebAssembly for computing convex hulls and Delaunay triangulations in the browser.

Live: https://concept-collection.github.io/qhull-wasm-demo/

  • 2D Triangulation — Delaunay triangulation + convex hull of a point set; click to add points, switch distributions, toggle circumcircles.

  • 3D Convex Hull — triangulated hull of a 3D point cloud, rendered with three.js (drag to rotate).

  • Benchmarks — times Delaunay triangulation in the browser, alongside a .m script that runs identically in MATLAB, Octave, and numbl (all triangulate via Qhull) for an apples-to-apples desktop-vs-browser comparison. See scripts/qhull_benchmark.m:

    matlab -batch qhull_benchmark      # MATLAB
    octave qhull_benchmark.m           # Octave
    numbl run qhull_benchmark.m        # numbl
    

    Reference desktop timings, Delaunay in ms (one Linux laptop — hardware-dependent):

    N numbl 2D numbl 3D MATLAB 2D MATLAB 3D
    1,000 4.1 16.5 21.1 21.3
    5,000 18.6 54.3 28.6 185.5
    20,000 65.5 287.3 179.9 624.2
    50,000 154.7 757.0 373.8 1703.9

Develop#

npm install
npm run dev      # local dev server
npm run build    # production build -> dist/

Deployed to GitHub Pages by .github/workflows/deploy.yml on push to main.

↑↓ move↵openescclose