Skip to main content

Module determinism

Module determinism 

Source
Expand description

Mesh-output determinism manifest - the pipeline-level companion to the kernel’s predicate sign manifest (ifc_lite_geometry::kernel::manifest).

Runs the full process_geometry pipeline over a small synthetic fixture and FNV-1a-hashes the emitted wire bytes: per-mesh, in emit order, as three separate hashes - positions_hash (position f32 bits), normals_hash (normal f32 bits), and indices_origin_hash (express id, geometry class, indices, origin f64 bits) - so the cross-target guard can assert positions and topology byte-identical on every target while exempting only the curved mesh’s normals for the libm trig gap. Plus the sorted flat_voids, flat_material_colors and flat_styles_rgba8 wire arrays. The resulting MeshManifest is pinned in rust/processing/tests/manifests/mesh_determinism.json (asserted on x86_64 AND arm64) and in its wasm32 pair (identical except the documented libm-trig gap). The native test and the wasm-bindings wasm-bindgen-test leg both call compute_mesh_manifest, so the fixture and hashing cannot drift between targets. Contract: docs/architecture/mesh-determinism.md.

Shared library code (not a test util feature) for the same reason the kernel manifest is: the wasm leg lives in a different crate and must run the exact same battery.

Structs§

MeshManifest
The pinned mesh-output determinism fingerprint.
MeshManifestEntry
Per-mesh manifest entry: enough to identify WHICH mesh diverged and how big it was, without committing the raw vertex data.

Constants§

FIXTURE_IFC
Synthetic determinism fixture (house rule: no client data). Exercises the wire surfaces the manifest pins:

Functions§

compute_mesh_manifest
Compute the mesh-output determinism manifest over FIXTURE_IFC at TessellationQuality::Medium (the byte-identity density).
diff_report
None if the manifests match; otherwise a human-readable report that identifies WHICH mesh diverged (index, express id, per-mesh hash), not just the top-level mismatch.