Skip to content

Add bounded manifold mesh Boolean engine [Component 08 in progress] - #90

Merged
hdclark merged 598 commits into
agent/component07-runner-basefrom
agent/bounded-manifold-mesh-boolean-plan
Aug 10, 2026
Merged

hdclark merged 598 commits into
agent/component07-runner-basefrom
agent/bounded-manifold-mesh-boolean-plan

Conversation

@hdclark

@hdclark hdclark commented Jul 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

Component 07 of the bounded floating-point surface-mesh Boolean engine is tracker-complete. Component 08—the canonical lineage-keyed intersection-event registry—is being implemented in small, independently validated commits.

The current Component 08 branch includes the registry foundation, event/occurrence interning and coordinate ownership, complete incidence publication, source-edge arrangements, transverse carriers, coplanar/collinear arrangements, shared bounded carrier ordering, member-preserving crossing/contact aggregation, versioned cut/contact and source-topology descriptors, canonicalization/codec/private decode, independent verification/publication, the Step 16 qualification/stage-orchestration foundation, the non-empty Component 07 source-edge proposal adapter, and the first stage-integrated Component 07 facet/facet transverse carrier adapter checks.

tracker.md remains unchanged until every Component 08 requirement and qualification gate is complete.

Latest validated slice: Component 07 transverse carrier lineage adapter

  • Wired the Component 07 facet/facet transverse carrier adapter into build_canonical_intersection_complex instead of stopping at the previous generic membership_incomplete gate.
  • Validate the independently verified predecessor stage, canonical facet-pair request/witness lineage, detailed transverse support, authoritative bounded-carrier construction, residual acceptance, precision evidence, and candidate provenance before constructing any Component 08 carrier key.
  • Split the predecessor contract failures precisely: the current Component 07 carrier construction has geometric_lineage == 0, while the frozen Component 08 transverse carrier key requires a nonzero lineage. The stage therefore fails closed with transverse_carrier_invalid at checkpoint 14 before publishing any partial carrier proposal.
  • Preserve the next fail-closed boundary for the Plan 07 §15.5 bounded carrier membership parameters and source-facet-region ownership evidence once nonzero carrier lineage is available.
  • Do not invent a replacement lineage from coordinates, proximity, tolerance, hashes, insertion order, or dense-ID surrogates, and do not re-project retained point coordinates to manufacture the missing carrier parameter.
  • Added qualification coverage proving the missing predecessor lineage is rejected, no partial proposal escapes, and resource reservations are released.
  • Updated Component 08 qualification/status documentation to record the exact blocker. The Component 8 tracker entry remains unchecked.

Qualification

Local validation used the repository's strict self-contained C++17 Release configuration with optional Eigen/GSL integrations disabled:

  • git diff --check passed.
  • All sixteen registered Component 08 test executables were built.
  • All 21/21 mesh_boolean_bounded_component08_* CTests passed, including exact oracle, deterministic fuzz/shrink, resource boundaries, cancellation, execution-mode/worker-count determinism, structural performance, transverse carriers, coplanar arrangements, aggregation, codec, and independent verifier coverage.

Ubuntu 24.04 publication run 31282887094 independently verified the exact staged patch SHA-256 (cfd7bfacf32644e357944ceb928f2d6b49afe5ee001c4689bf1d2f46684184b6), clean patch application, and git diff --check; configured the same strict C++17 build; built the focused qualification and transverse-carrier targets; passed all 7/7 focused Component 08 tests; removed its temporary workflow/patch; and published:

4fc27854d37ccf147d7955d84474d41ba11ea67c — Advance Component 08 transverse lineage adapter (plan 08)

Predecessor contract blocker

Plan 07 §15.5 requires nonparallel facet pairs to retain the common bounded carrier parameter and expected membership for Component 08. The current verified Component 07 facet/facet carrier construction additionally publishes zero geometric lineage. Plan 08 requires lineage-only canonical identity and disallows coordinate/hash/proximity fallbacks, so Component 08 cannot faithfully complete the transverse membership/active-span adapter until those immutable predecessor records exist.

This slice intentionally does not alter Component 07 semantics because the component plans are being implemented by separate teams and Component 8 must consume, rather than recompute, frozen predecessor evidence.

Step 16 foundation already present

  • Out-of-line, explicitly instantiated build_canonical_intersection_complex<T,I> stage API for all four supported float/double by uint32_t/uint64_t combinations.
  • Transaction-safe orchestration for the currently representable no-intersection path with all 24 frozen cancellation checkpoints, checked count/resource preflight, reservation reconciliation, independent verification, and commit-only publication.
  • Exact-rational source-edge ordering, exact-equality clustering, endpoint-sentinel partition, known-answer differential qualification, semantic golden projection, deterministic dyadic fuzz/shrink, capability/manager resource boundaries, execution-mode identity, and sparse/dense structural gates.

Remaining Plan 08 work

  • Receive a nonzero immutable Component 07 facet/facet carrier geometric lineage, then the Plan 07 §15.5 carrier membership parameters and source-facet-region ownership evidence; complete transverse carrier memberships and relation-supported active spans.
  • Adapt Component 07 coplanar event/arc/component lineage into support, collinear overlap, dual-parameter, ownership, and region proposals.
  • Remove the remaining explicit fail-closed proposal-ingestion gates only after the resulting non-empty artifacts pass exact-oracle, mutation, cancellation-inside-loop, resource, metamorphic, fuzz/shrink, structural, and supported sanitizer qualification.
  • Integrate the fully verified Component 08 stage into the bounded Boolean pipeline as Plan 08 Step 17. Do not begin Component 09 in this slice.
  • Mark Component 08 complete in tracker.md only after every preceding gate passes.

Completed predecessor work

  • Canonical edge/edge, edge/facet, facet/facet, and coplanar Component 07 relations.
  • Complete frozen symbolic matrix and compute-once truth/construction/crossing/symbolic/event lineage.
  • Replay, diagnostics, deterministic cancellation, resource boundaries, and independent exact-rational qualification.
  • Allocation-free Component 08–10 handoff, with Component 10 remaining the sole final-selection authority.

Component 08 publication policy

  • Publish only independently validated slices.
  • Preserve conceptual-event identity separately from topology-occurrence identity.
  • Use predecessor lineage—not coordinates, proximity, hashes, tolerance, or insertion order—for equivalence and canonical IDs.
  • Remain dependency-free and strict portable C++17.
  • Keep tracker.md unchecked until every remaining non-empty adapter, qualification, and pipeline-integration gate passes.

hdclark commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Completed the independent review for plan step 12 (degeneracy-tolerant polygon triangulation).

Added normative specification and implementation-plan amendments that preserve the existing topology architecture while correcting the reviewed integration defects:

  • align all Component 12 predicates with Component 03's separate rounded_nominal, exact_relation, and uncertainty_enclosure layers;
  • prohibit treating exact stored-coordinate zero as symbolic authorization when uncertainty can change positive-area topology;
  • require dimensionally valid length-valued cleanup-handoff certificates rather than comparing area, determinants, squared lengths, angles, or quality scores directly with caller tolerance;
  • standardize the concrete Component 12 artifact/view contract as triangulated_output_complex<T,I>;
  • retain the existing Ygor monotone/Delaunay/public-mesh routines only as references or fixtures because they do not preserve the bounded occurrence/halfedge contract; and
  • extend failure, replay, mutation, scaling, Component 13 import, and independent-verifier requirements accordingly.

Marked Component 12 complete in tracker.md. This was a Markdown-only planning review; no build or runtime tests were run.

hdclark commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Completed the independent review for plan step 15 (verification, diagnostics, and replay).

Added normative specification and implementation-plan amendments that retain the fail-closed final-verification architecture while correcting the reviewed integration defects:

  • enforce the reviewed Component 12/13/14 handoff, concrete T,I compatibility, pending-only candidate status, and complete immutable evidence;
  • preserve rounded_nominal, exact_relation, and uncertainty_enclosure as separate truth layers;
  • require typed metrics, physical dimensions, derivations, and distinct cleanup-cost roles, prohibiting direct area/squared-length/determinant/angle/volume comparisons with length tolerance;
  • separate semantic canonical public content from presentation correspondence and verify exact automorphism classes through orbit/equivalence certificates rather than arbitrary map equality;
  • separate public-success semantic digests from source-bound replay digests;
  • strengthen bounded triangle, shell-side, probe, occupancy, forbidden-contact, cleanup, precision, report, and non-circular re-ingestion requirements;
  • improve/factor and reuse suitable exact-index portions of YgorMeshesVerification, while keeping nominal/proximity geometry routines non-authoritative; and
  • add matched mutation, dimensional, automorphism, digest-domain, contact/probe, re-ingestion, and scale-aware qualification requirements.

Marked Component 15 complete in tracker.md; Components 16–17 remain. This was a Markdown-only planning review, so no build or runtime tests were run.

hdclark commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Implemented Component 06 — broad-phase collision enumeration according to plan_06_broad_phase_collision_enumeration.md and the normative Component 06 specification.

Highlights:

  • immutable canonical edge/triangle primitive tables, including facet-internal diagonals;
  • dense endpoint-rank, X/Y/Z MSB-first rank-Morton ordering;
  • deterministic leaves-first flat triangle AABB hierarchies with capacity 8;
  • exact count/prefix/reserve/emit candidate materialization for both directed roles;
  • canonical owner-free candidate keys, witnesses, IDs, partitions, codec, replay, and queries;
  • independent primitive/rank/hierarchy reconstruction, breadth-first candidate verification, and bounded exhaustive all-pairs oracle;
  • transactional resource/cancellation handling and fail-closed mutation checks;
  • focused C++17 normative test suite and CTest integration.

Validation on Ubuntu 24.04 with GCC 13.3, Release configuration:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DMEMORY_CONSTRAINED_BUILD=ON
cmake --build build --target ygor_mesh_boolean_broad_phase_tests --parallel 2
ctest --test-dir build --output-on-failure -V -R mesh_boolean_bounded_component06_

Result: 16/16 Component 06 tests passed. This includes domain, rank-Morton, hierarchy, closed overlap, traversal reconciliation, known candidates, exhaustive all-pairs, provenance, canonicalization, codec/replay, alternative triangulation, mutation rejection, determinism properties, adversarial geometry, resource/cancellation, and structural-performance gates.

Final tracker commit: fbff8cb4538b0f3715baef7a15b1b9065311e443 (Complete component 06 broad-phase collision enumeration (plan 06)). tracker.md now marks Component 06 complete; Component 07 is next.

hdclark commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Implemented the next tracker item as a fail-closed Component 07 relation-graph foundation under plan_07_floating_relation_kernel_symbolic_perturbation.md.

Landed:

  • frozen Component 07 versions, IDs, checkpoints, typed errors, and resource domains;
  • owner-free canonical relation/event keys and operand remapping;
  • deterministic request DAG sorting, deduplication, dependency closure, reverse consumers, witness ranges, semantic codec/digest, and independent verifier;
  • exact-tie-only symbolic matrix lookup that publishes evidence without changing nominal geometry or making final Boolean selections;
  • immutable relation artifact schema, lineage event seeds, exactly-one candidate dispositions, canonical codec, verifier, transactional empty-stream publication, and explicit typed rejection of every non-empty candidate stream;
  • focused CTest registration and foundation tests for graph closure, owner exclusion, canonicalization, and symbolic eligibility.

Component 07 remains unchecked in tracker.md. The remaining numerical relation families and qualification obligations are enumerated in component_07_implementation_status.md.

Validation performed in this environment: every new .cc compiled as C++17 with -Wall -Wextra -Werror -pedantic against an interface-compatible local harness, and the rebuilt foundation test executable passed all, graph, owner, canonical, and symbolic. A complete repository build was not possible from the connector-only checkout, and the final head currently has no GitHub Actions workflow runs or status checks.

hdclark commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Implemented the next fail-closed Component 07 slice from plan_07_floating_relation_kernel_symbolic_perturbation.md.

Added

  • PrimitiveRelationKernel.h/.cc: Component 03-to-07 four-layer truth adapter preserving rounded nominal bits, bounded sign, exact stored-coordinate relation, and consumer disposition.
  • Public Component 03 valid_predicate_result evidence reconstruction/validation, including owner, schema, sign, disposition, width, margin, contributors, trace identity, and closed exact-status validation.
  • SourceFacetRegionKernel.h/.cc: complete-original-boundary point/source-facet classification with fixed lower-inclusive/upper-exclusive Y parity, canonical original edge/vertex ownership, frozen facet-orientation reconciliation, retained per-edge orientation evidence, and fail-closed uncertainty handling.
  • Component 07 contract versions, stable subcodes, strict-target CMake registration, and focused truth/region tests including mutation cases.

Validation

  • Focused production kernels and tests compile under a strict synthetic C++17 harness with -Wall -Wextra -Werror -pedantic.
  • Truth-layer, enum/formula binding, predicate mutation, convex/concave/reversed polygon, edge/vertex ownership, orientation mutation/mismatch, and uncertainty cases pass in that harness.
  • GitHub currently reports no Actions workflow runs or commit-status contexts for the branch head, so a full repository build/CTest result is not available from the connected environment.

Component 07 remains intentionally unchecked in tracker.md. component_07_implementation_status.md records the exact outstanding numerical relation families, segment partitioning, graph integration, construction/multiplicity work, and qualification required before completion. Non-empty relation builds remain fail-closed rather than publishing partial artifacts.

hdclark commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Implemented the next Component 07 slice from plan_07_floating_relation_kernel_symbolic_perturbation.md: the canonical source-edge/source-edge numerical relation kernel.

Highlights:

  • exact stored-coordinate direction-parallel, collinearity, and coplanarity bindings;
  • fail-closed nonparallel/skew/coplanar and parallel/collinear support classification;
  • deterministic fixed-minor and dominant-axis selection;
  • bounded parameter evidence with exact endpoint relations and no nominal boundary fallback;
  • proper/endpoint/point/overlap/containment/equality categories, including same/opposite collinear orientation;
  • authoritative point/overlap endpoint constructions with two-carrier residual validation;
  • canonical semantic encoding, digest, and independent record invariants;
  • strict-FP C++17 float/double qualification target with category, mutation, owner, internal-diagonal, exact-binding, and unresolved-direction cases.

tracker.md remains unchecked for Component 07. component_07_implementation_status.md now records the completed numerical slice and the remaining request-graph integration, edge/facet and facet/facet families, construction/multiplicity, symbolic/event/codec work, and full qualification. The existing non-empty RelationBuild path remains deliberately fail closed until those pieces are integrated.

Validation performed locally against an isolated contract harness with C++17 -Wall -Wextra -Werror; all source-edge relation cases passed. A full repository CMake/CTest run was not available in this environment, and GitHub currently reports no workflow run for head fec8ad9deab86c1a0bec5b3250a90b3683d15037.

hdclark commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

Implemented the next Component 07 slice from plan_07_floating_relation_kernel_symbolic_perturbation.md.

This update adds candidate-derived canonical source-edge/source-edge request discovery, request-graph deduplication with compute-once numerical producers, deterministic candidate-to-relation coverage ranges, owner-free semantic encoding, and an independent reconstruction/re-evaluation verifier. RelationBuild now executes this stage transaction-locally for non-empty candidate streams, then still fails closed at the unavailable source-edge/source-facet family so no partial signed_feature_relations artifact can escape.

Added a focused C++17 qualification target covering overlapping/separated fixtures, producer sharing, mutation rejection, owner exclusion, independent reconstruction, and the non-empty publication gate. The target could not be executed in the current implementation environment because no repository checkout or usable PR/Actions runner was available; this limitation and all remaining Component 07 work are recorded in component_07_implementation_status.md. tracker.md remains unchecked for Component 07.

Final branch head for this slice: af2d79b81d54c629da323feafabc13d48a9730a0.

@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan Add bounded manifold mesh Boolean architecture plan [Component 07 implementation] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 implementation] Add bounded manifold mesh Boolean architecture plan [Component 07 patch retry] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 patch retry] Add bounded manifold mesh Boolean architecture plan [Component 07 transport diagnosis] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 transport diagnosis] Add bounded manifold mesh Boolean architecture plan [Component 07 diagnostics export] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 diagnostics export] Add bounded manifold mesh Boolean architecture plan [Component 07 source-edge/source-facet] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 source-edge/source-facet] Add bounded manifold mesh Boolean architecture plan [Component 07 validation] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 validation] Add bounded manifold mesh Boolean architecture plan [Component 07 facet-facet publish] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 facet-facet publish] Add bounded manifold mesh Boolean architecture plan [Component 07 facet-facet diagnosis] Jul 24, 2026
@hdclark hdclark changed the title Add bounded manifold mesh Boolean architecture plan [Component 07 facet-facet diagnosis] Add bounded manifold mesh Boolean architecture plan [Component 07 facet-facet apply] Jul 24, 2026
@hdclark hdclark closed this Jul 25, 2026
@hdclark hdclark reopened this Jul 25, 2026

hdclark commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

Implemented and published the next Plan 08 slice: the independent intersection-complex verifier and verified private-decode gate.

Key changes:

  • provider-independent verification/publication API with bounded work and pair-check accounting;
  • reconstruction/auditing of event, incidence, arrangement, overlap, aggregate, descriptor, source-topology, replay, statistics, codec, and digest state;
  • transactional/idempotent verification evidence publication;
  • mutation/corruption/forged-evidence rejection tests;
  • fixed source-edge sentinel-boundary decoding so sentinels do not consume cluster payloads.

Validation:

  • Ubuntu 24.04 run 30716518784: checksum and git apply --check passed; strict target built; mesh_boolean_bounded_component08_verifier passed 1/1.
  • Local focused Component 08 matrix: 15/15 CTests passed.

Implementation commit: 1df3d4b79d1c996f1059b73c9786106cecd46aff.
Final cleanup head: 690a1e57ea595af79c8734a20e25590441ccd11d.

tracker.md remains unchecked for Component 08 because Plan 08's remaining resource/cancellation/concurrency/fuzz/oracle/performance and pipeline-integration gates are not yet complete.

hdclark commented Aug 2, 2026

Copy link
Copy Markdown
Owner Author

Implemented and validated the next Plan 08 slice: Step 16 qualification foundation and transaction-safe stage orchestration.

Landed in 5b42fc75cadb2742b0e2350d6f69d7bce457c87f:

  • out-of-line build_canonical_intersection_complex<T,I> for all four supported scalar/index combinations;
  • all 24 cancellation checkpoints, checked resource-category preflight/reservation/reconciliation, and commit-only publication for the currently representable no-intersection stage path;
  • exact-rational source-edge order/cluster/partition differential qualification;
  • committed semantic golden, deterministic 192-case dyadic fuzz campaign with permutation checks and minimizing shrinker;
  • resource-boundary, complete cancellation, execution-mode/worker-count identity, and sparse/dense structural gates;
  • correction of source-edge interval-key validation so predecessor lineage is not misused as parameter order;
  • explicit implementation-status and qualification documentation.

Ubuntu 24.04 run 30735927242 verified the compressed and reconstructed patch digests, strict patch application, configured the self-contained strict C++17 Release build, built all sixteen Component 08 test executables, and passed 21/21 Component 08 CTests. A concurrent runner's final push was rejected as non-fast-forward only because the identical implementation commit was already published.

Cleanup head: 216573c2fff4c851ca7f2f808e54081382bd5ca3.

tracker.md remains unchecked. The next exact work is the non-empty Component 07→08 proposal adapters for source-edge parameter/membership lineage, followed by transverse and coplanar lineage, their full qualification, and Plan 08 Step 17 pipeline integration.

@github-actions
github-actions Bot force-pushed the agent/bounded-manifold-mesh-boolean-plan branch from 36f4486 to e822c49 Compare August 6, 2026 05:17

hdclark commented Aug 6, 2026

Copy link
Copy Markdown
Owner Author

Implemented and published the next Plan 08 slice: Component 07 source-edge lineage adaptation.

Commit: e822c495c6e7bc8d45a811fe85f0bab8507cd61b (Adapt Component 07 source-edge lineage for Component 08)

Key results:

  • source-edge parameter evidence is now restricted to the seed's authoritative construction range;
  • valid zero-trace evidence uses canonical interval-evidence identity as immutable lineage;
  • direct canonical contribution and incident-facet-use ranges are published;
  • the real overlapping-box fixture advances through source-edge arrangement construction and now fails only at the retained transverse-carrier gate (checkpoint 14);
  • missing, ambiguous, and out-of-range authority mutations fail closed without partial publication or resource leaks.

Ubuntu 24.04 run 31073113970 passed all 21 registered Component 08 tests and strict -Werror -fsyntax-only rechecks. Code-only publication run 31073648932 reverified the exact patch digest and removed all temporary staging files while restoring the original workspace workflow.

tracker.md remains unchecked. The next prescribed work is the non-empty transverse carrier adapter, followed by coplanar adaptation and Step 17 pipeline integration.

@hdclark
hdclark marked this pull request as ready for review August 10, 2026 21:34
@hdclark
hdclark merged commit cd04850 into agent/component07-runner-base Aug 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants