Hy everyone,
I’ve run into a strange issue with the native Curve-Curve Intersection (CCX) component in Rhino 8. When intersecting a list of 14 curves with another list of 14 curves, out of the 14 expected points three are not located at the intersection of the corresponding curves, but rather floating in empty space.
Here is why I believe this is a bug (or some sort of algorithmic blind splot) in the component and not a user data tree/tolerance issue:
-
Input Asymmetry: If I simply swap the inputs (List A into Input B, and List B into Input A), the component suddenly calculates the correct points.
-
RhinoCommon works: If I bypass the native CCX component and use a Python script calling
Rhino.Geometry.Intersect.Intersection.CurveCurve(crvA, crvB, tol, tol)on the exact same lists, it returns the correct points perfectly, regardless of input order.
I’ve attached a minimal internalized .gh file showing the exact curves that fail, alongside the Python script that works.
System details are pasted below.
Rhino 8 SR28 2026-2-10 (Rhino 8, 8.28.26041.11002, Git hash:master @ b7874a05a6982d0419fcc4f6009b510b48a09cb3)
License type: Commercial, build 2026-02-10
License details: Cloud ZooApple macOS Version 26.1 (Build 25B78) (Physical RAM: 36GB)
Mac Model Identifier: Mac15,6
Language: en
.NET 8.0.14Metal GPU Family Apple 7
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
Apple M3 Pro
Color LCD (1512 x 982 @ 120.00Hz)
PA279CRV (1920 x 1080 @ 60.00Hz)
GPU Vendor: Apple
ccx_bug.gh (134.0 KB)