atproto Thingiverse but good
README.md

PM-77 native LDraw compatibility harness #

This directory is the native-only process boundary. The reusable polymodel-ldraw-testkit crate has no filesystem, process, archive, parser, or native dependencies and is wasm-checkable.

Commands #

cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- validate
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- inventory
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- corpus
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- fuzz
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- differential

differential is deliberately fail-closed: it requires Nix, builds the pinned .#ldraw-oracle package, resolves that output with nix path-info, and runs the C++17 oracle over the complete evidenced inventory. It never invokes the Rust parser for the oracle result. The oracle emits ldraw-oracle-v3, and the harness compares the generated oracle projection against a fresh oracle run using the declared normalization rules.

Expected records are generated by the standalone oracle generator from exact fixture bytes and the pinned LDParse output. Their provenance and versioned projection rules are checked in, while the Rust adapter is exercised separately as the candidate under test. Geometry, instances, transforms, winding, TEXMAP, points, explicit edges, and H-owned conditional-line classification remain covered by their declared field-authority rules when the pinned LDParse wrapper does not expose those surfaces.