Skip to content

feat(shipyard): add exact fixed-point polygon geometry prototype - #2717

Draft
Tristan-Stoltz-ERC wants to merge 20 commits into
research/shipyard-space-time-oracle-v0from
research/shipyard-polygon-geometry-v0
Draft

Tristan-Stoltz-ERC wants to merge 20 commits into
research/shipyard-space-time-oracle-v0from
research/shipyard-polygon-geometry-v0

Conversation

@Tristan-Stoltz-ERC

@Tristan-Stoltz-ERC Tristan-Stoltz-ERC commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Implements an isolated fixed-point polygon geometry prototype for Issue #2712. It is not yet integrated with the current finite-yard verifier or planner.

Included

  • Signed integer-tick points and checked i128 orientation / shoelace arithmetic; overflow returns a typed error and never falls back to AABB feasibility.
  • Simple-polygon construction checks, exact segment relation classification, point-in-polygon, canonical vertex cycles and polygon relation classification: disjoint, boundary contact or positive-area overlap.
  • Conservative footprint conflict semantics: boundary contact counts as a conflict.
  • Half-open time windows and a small space-time reservation-conflict helper.
  • A raster cell-set oracle comparing all 10,000 ordered pairs from a frozen rectangle family.
  • A separate 150-placement concave orthogonal corpus comparing 22,500 ordered pairs against an independent cell-set + inclusive-boundary reference.
  • Explicit non-axis-aligned triangle controls for proper-crossing overlap with no contained vertices, overlapping AABBs with disjoint polygon interiors, and diagonal boundary contact.
  • Rust 1.96 format, offline test and Clippy-with-warnings-denied workflows.

Frozen corpus target

The locally independently enumerated expectations for the concave corpus are 12,980 positive-area overlaps, 6,216 boundary contacts and 3,304 disjoint pairs. The conservative AABB baseline marks 20,180 pairs as conflicts, including 984 cases where the exact polygon relation is disjoint and zero false negatives. These are deterministic authored-synthetic targets, not industrial measurements. The Rust exact-head test must confirm each count before they are treated as verified results.

Limits

This is only a static planar footprint predicate layer. It does not establish swept-path clearance, transfer routes, rotation during movement, load support, stacking, floor bearing, vertical clearance, crane envelopes, lift physics or operational authorization. The declared fixed-point domain may reject a predicate if checked i128 arithmetic overflows. Boundary contact is conservatively a conflict.

The 2026 published shipyard paper separately reports shape-representation area inflation (not yard-utilization improvement); the source-authorized profile set is needed for a fair comparison. See the shape-inflation and source-availability notes in the benchmark contract.

Verification status

No local Rust toolchain was available during authoring. The code and fixtures are committed, but compilation/tests/Clippy are not claimed as passing. Keep draft until exact-head checks confirm the tests.

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.

1 participant