summaryrefslogtreecommitdiffstats
path: root/_log/2d-geometry-kernel.md
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2026-05-09 12:29:34 +0800
committerSadeep Madurange <sadeep@asciimx.com>2026-05-09 12:29:46 +0800
commit21abcccf6fc7444483ca60bb1c4af97924d88d8f (patch)
treefeb3d455c296291ff51def978fa6b3125f4de5cc /_log/2d-geometry-kernel.md
parentd3097426c9d97fa3c219d1a10c428431f4783635 (diff)
downloadwww-21abcccf6fc7444483ca60bb1c4af97924d88d8f.tar.gz
Improve accuracy of phrasing in geometry kernel.minimalist
Diffstat (limited to '_log/2d-geometry-kernel.md')
-rw-r--r--_log/2d-geometry-kernel.md11
1 files changed, 6 insertions, 5 deletions
diff --git a/_log/2d-geometry-kernel.md b/_log/2d-geometry-kernel.md
index 0c47554..9370d06 100644
--- a/_log/2d-geometry-kernel.md
+++ b/_log/2d-geometry-kernel.md
@@ -11,13 +11,13 @@ design system lacked a geometry kernel; project had stalled.
Small geometries (hundreds of points)—mostly 2D. No frame budget or low-latency
requirements. Architects and structural engineers supplied the test cases.
-Numerical parity with Rhino 3D was mandatory.
+Numerical parity with Rhino was mandatory.
Implemented polygon clipping with Sutherland–Hodgman. No drama.
Polygon offsets had always been problematic. Architects flagged two Z and
H-shaped floor plans where offsets produced self-intersections that tripped
-Rhino 3D. Instead of straight skeletons, implemented a custom solver that fixed
+Rhino. Instead of straight skeletons, implemented a custom solver that fixed
invalid loops by backtracking.
Fortune's algorithm for Voronoi diagrams was a missed opportunity. Implemented
@@ -29,9 +29,10 @@ convex and concave polygons. Found a paper on the convex case but couldn't
bridge the gap from theory to implementation. Fell back to a brute-force grid
search: 12% gain over the existing approach, but not the true optimum.
-Rhino 3D's geometry model was numerically incompatible with Apache Commons'
-Binary Space Partitioning—intersections didn't match. Replaced BSP trees with
-point-based structures. JBLAS stabilized intersection results between systems.
+Rhino uses points, vectors, planes, and linear algebra (via BLAS). Java system
+used Binary Space Partitioning. The two were numerically incompatible. Replaced
+BSP trees with vector-based structures. JBLAS aligned the linear algebra with
+Rhino's.
Migration resumed. No regressions in the building layouts.