v0.3.0 - UE<->X3D round-trip harness
UE ↔ X3D round-trip harness
A new, self-contained x3d_bridge/ package: a lossless UE↔X3D serialization harness whose single defended invariant is deserialize(serialize(level)) == level, with a validation boundary that rejects malformed edits on paper — before the live editor is ever touched.
What's in it
- Coordinate crux — one orthonormal basis
B(det −1) for UE (Z-up, LH, cm) ↔ X3D (Y-up, RH, m).B⁻¹ = Bᵀ, so the round trip is exact by construction; picking the rightBis calibration, not correctness. - Closed grammar — a fixed X3D node set + serialize/deserialize (flat, world-space, DEF/USE material dedup); UE specifics ride in
Metadata*. - Validate boundary — out-of-grammar nodes, dangling
USE, NaN/∞, wrong arity, non-X3D root all die here. - Apply seam — diffs two scenes into typed ops (spawn · transform · material · reparent) that emit
ue_execute_python. - Preview — the same X3D drops into a browser via X_ITE.
Honest status
- ✅ 55 tests — round-trip identity, the validation battery, apply-op sequences, and forward-pinned coordinate correctness. 635 total (was 580).
- ✅ Basis
Bindependently re-derived and confirmed three ways. - ⏳
Bis analytic — not yet calibrated against a live editor's glTF export (the round trip is basis-agnostic, so this is fidelity-only, never correctness). - ⏳ A library today — not yet exposed as MCP tools.
Full changelog: https://github.com/JosephOIbrahim/UnrealEngine_Bridge/blob/master/CHANGELOG.md