Commit Graph

904 Commits

Author SHA1 Message Date
github-actions[bot] 284863f4d0 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 19:11:52 +00:00
bherbruck b2d3adb428 Merge pull request #64 from bherbruck/p9-guards
surface.surface_p9: narrow FFI guards to what the C++ can't handle; extra fixtures
2026-10-14 15:11:36 -04:00
github-actions[bot] 569d816325 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 19:08:15 +00:00
bherbruck 1c86306ff7 Merge pull request #40 from bherbruck/unit/surface.plane_p2
port: surface.plane_p2
2026-10-14 15:07:50 -04:00
github-actions[bot] 21ceeb3985 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 19:04:51 +00:00
bherbruck 4e66c14326 Merge pull request #56 from bherbruck/unit/intersect.surface_intersector_p3
port: intersect.surface_intersector_p3
2026-10-14 15:02:57 -04:00
github-actions[bot] d0e0190ca2 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 19:02:51 +00:00
bherbruck 659d217b15 Merge pull request #58 from bherbruck/unit/surface.surface_point_solve_p1
port: surface.surface_point_solve_p1
2026-10-14 15:02:02 -04:00
github-actions[bot] bab16c57aa plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 19:01:42 +00:00
bherbruck e8462b32eb surface.surface_p9: narrow FFI guards to what the C++ can't handle; extra fixtures
Follow-up to #6. The FFI guard now only requires finite values for the
net scale, chord height, maximum side, line and CSI domain (disjoint,
touching-edge and sliver early exits are compared). It keeps the [0,1]
split/iso domain, the angle range, the revolution-CSI rejection and the
shim's all-degenerate max-side guard, and adds max|net|/max side <= 1e5
so the ULONG split count stays finite and under the Rust 1e6 limit.

43 new fixtures (CSI domain disjoint/touching/sliver, 1e6-scale nets,
chord heights 1e-4/1e-5, max side 1e3/1e6) pass bit-identically or
defer on surface.surface_p6. The max-side iso degeneracy test now uses
the typed iso curve (SmEllipse/SmLine IsDegenerate), as upstream's
virtual call does. Notes: CsiGlobalSolver field CO-PORTED record in
surface.surface_p1; duplicate review sentences removed from
surface_cache_p2/p3.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:53:59 -04:00
bherbruck dd078a5909 Merge origin/main into unit/surface.plane_p2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:48:29 -04:00
bherbruck 123c7bb7d1 Merge origin/main into unit/intersect.curve_class_p1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:35:30 -04:00
github-actions[bot] fd1adb4506 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 18:34:40 +00:00
bherbruck 9931d56386 Merge pull request #6 from 0xlillith/unit/surface.surface_p9
port: surface.surface_p9
2026-10-14 14:34:23 -04:00
bherbruck d764141ad7 Merge origin/main into unit/intersect.curve_class_p1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:27:45 -04:00
bherbruck 2475483f01 Merge origin/main into unit/intersect.curve_class_p1
Resolve conflicts in geom/tol.rs (keep surface.surface_p1's CO-PORTED note and
this unit's classification mappings) and plan/findings.md (keep both).
Handle the new SurfaceKind::SurfOfRevolution (SmBSplineSurface base flag) and
Step variants in out_of_bounds. Wire SmTol::GetZoneTol3d(SmSurface),
smsurf_GetSurfaceCache and SmSurface::ApproximateSize to surface.surface_p1:
2088 cases, 1908 pass, 0 fail, 180 deferred (52 moved to surface.surface_p6).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:27:16 -04:00
bherbruck 9a0f51c281 Merge origin/main into unit/surface.plane_p2
Run the SmAdvSurfaceIntersector from intersect.adv_surface_intersector (#41)
in base_global_surface_intersect, keeping the SmPlane override dispatch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:24:24 -04:00
lillith 7842bfa043 Merge the volume port and verify the integrated workspace
All local gates pass against the updated main. Full differential validation
evaluates 134 units: 87 green, 47 partial and zero failed. The three part-9/cache
reports remain byte-identical to their focused and committed reports.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-10-14 20:21:09 +02:00
bherbruck 8bc48a4271 Merge origin/main into unit/surface.plane_p2
Keep both sides' SurfaceKind arms (Plane overrides from this unit; the
SurfOfRevolution and Step kinds from main). Add the SmPlane::GlobalSurfaceIntersect
SurfOfRevolution case (orders and UV curves swapped, as upstream), which needs
&Kernel on Surface::global_surface_intersect / intersect_with_plane. Wire the
plane box zone tolerance to Surface::face (surface.surface_p1 is partial):
a plane with a face now defers on SmFace::GetTolerance (topology.face_p2).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 14:16:03 -04:00
github-actions[bot] 08e046cad1 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 18:15:58 +00:00
bherbruck ee38fe980b Merge pull request #41 from bherbruck/unit/intersect.adv_surface_intersector
port: intersect.adv_surface_intersector
2026-10-14 14:15:42 -04:00
github-actions[bot] aa0026cc79 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 18:11:19 +00:00
lillith 6838bb1f76 Merge latest main and validate revolution surface dispatch
Use the newly ported revolution surface's virtual iso constructor and B-spline
base. Add 18 direct canonical-cylinder comparisons against the real C++ class.
Refresh cache reports after the upstream dispatch changes and retain explicit
CSI and classification deferrals.

All required local gates pass; full differential validation covers 133 units
with 85 green, 48 partial and zero failed. Part 9 compares 727/778 cases exactly.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-10-14 20:10:40 +02:00
github-actions[bot] 89daf4f497 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 18:09:05 +00:00
github-actions[bot] 340eb367ad plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 18:06:55 +00:00
bherbruck 8a70226cdd Merge pull request #26 from bherbruck/unit/surface.volume_p2
port: surface.volume_p2
2026-10-14 14:06:37 -04:00
github-actions[bot] ea906ffe99 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 18:02:09 +00:00
lillith 94172ba691 Merge main and share the curve/surface solver with surface part 1
Remove the duplicate CSI state, preserve the existing part-1 constructor and
wire its surface/node/point validity helpers. Add 16 real-plane fixtures without
diagonals and refresh differential reports after the main integration.

Part 9 compares 709/760 cases, cache part 2 808/905 and cache part 3 450/600;
all compared values are identical and all remaining deferrals name their owner.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-10-14 19:56:28 +02:00
bherbruck 8d2ac236ab Merge origin/main into unit/surface.volume_p2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:53:17 -04:00
github-actions[bot] cb21869083 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 17:48:27 +00:00
bherbruck db294c4230 Merge origin/main into unit/intersect.adv_surface_intersector
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:48:27 -04:00
bherbruck 4b27d8afa3 Merge origin/main into unit/intersect.adv_surface_intersector
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:48:20 -04:00
bherbruck 1fabda8d5f Merge pull request #29 from bherbruck/unit/surface.surf_of_revolution_p3
port: surface.surf_of_revolution_p3
2026-10-14 13:48:10 -04:00
github-actions[bot] fe1822c700 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 17:42:28 +00:00
github-actions[bot] bacabd5c0f plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 17:38:34 +00:00
bherbruck 51b4ce600d Merge origin/main into unit/surface.volume_p2
main's issue-id fix took UB-85..88 and WR-63/64; this unit's SmVolume
entries become UB-89, UB-90 and WR-65.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:35:27 -04:00
bherbruck 4b14938246 Merge origin/main into unit/surface.surf_of_revolution_p3
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:31:56 -04:00
github-actions[bot] 598790d02a plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 17:28:27 +00:00
bherbruck dff931f0ab surface.volume_p2: renumber SmVolume simple-sampler issue to WR-63 (cone took WR-62)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:25:33 -04:00
bherbruck 5aa981f689 Merge pull request #61 from bherbruck/fix-issue-ids
plan/upstream-issues.md: fix duplicate entry IDs
2026-10-14 13:25:30 -04:00
bherbruck a972c8978a Merge origin/main into unit/surface.volume_p2
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:25:11 -04:00
github-actions[bot] 292de8864b plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 17:25:05 +00:00
bherbruck 904057fa59 Merge origin/main into unit/surface.surf_of_revolution_p3
Resolve against surface.surface_p1 (#43) and surface.cone_p1 (#31): keep both
SurfaceKind variants (SurfOfRevolution, Step) in every match, give the
surface of revolution its SmSurface dispatch in surface::surface::p1
(EvaluateSTEP override, inherited SmBSplineSurface bodies), share one
ConvertDomainFromNURBSToSTEP body, and wire the cone's SmSurfOfRevolution
Transform/ReadFromDB back-edges. surface.torus becomes green.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:20:02 -04:00
bherbruck 2afdcdb1fe intersect.curve_class_p1: review fixes (clippy with cpp, adversarial fixtures)
Fix the 11 clippy errors in the runner that the CI "Clippy with the C++
feature" step reports (identical match arms, needless range loop, unchecked
indexing, range_plus_one, default_trait_access) without changing the RNG
call order, so the generated cases are unchanged. Add the reviewer's 75
adversarial cases as fixtures (UV trim curves, huge/tiny scale, analytic
source curves, containers past MIN_ARRAY_SIZE). Tidy a comment rustfmt
had misindented in get_cci_surface_gaps.

PARTIAL cases=2088 passed=1908 failed=0 deferred=180; --perturb 1908/1908.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:19:38 -04:00
bherbruck 0dabb6cb14 Merge remote-tracking branch 'origin/main' into unit/intersect.surface_intersector_p3 2026-10-14 13:16:39 -04:00
bherbruck b6f63658bc intersect.surface_intersector_p3: fetch caches with smsurf_GetSurfaceCache, report, status partial
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:16:29 -04:00
bherbruck fc5e69fbd7 Merge origin/main into unit/surface.surface_point_solve_p1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm

# Conflicts:
#	plan/upstream-issues.md
2026-10-14 13:11:12 -04:00
github-actions[bot] 311f306b18 plan/PROGRESS.md: regenerate [skip ci] 2026-10-14 17:10:56 +00:00
bherbruck c627a56c1d plan: surface.surface_point_solve_p1 partial
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:10:20 -04:00
bherbruck 8ed3e012c2 Merge origin/main; renumber surface.cone_p1 issue IDs
PR #31 (surface.cone_p1) merged with UB-80, UB-81, WR-61 and WR-62, which
were already taken on main or by this PR's topology_solver renumbering. The
cone entries become UB-87, UB-88, WR-63 and WR-64 (HANG-11 unchanged), with
references in plan/findings.md and plan/modules.toml updated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 13:09:50 -04:00