Skip to content

v0.3.0 - UE<->X3D round-trip harness

Choose a tag to compare

@JosephOIbrahim JosephOIbrahim released this 07 Jul 23:16
· 2 commits to master since this release
b4f0e56

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 right B is 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 B independently re-derived and confirmed three ways.
  • B is 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