summaryrefslogtreecommitdiffstats
path: root/_log
diff options
context:
space:
mode:
Diffstat (limited to '_log')
-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.