feat: ue_x3d_* MCP tools -- the harness on the wire (v0.4.0) - #21
Conversation
Adds ue_mcp/tools/x3d.py exposing the x3d_bridge harness as MCP tools. NOT yet wired: still needs tools/__init__.py TIERS + _ALL_REGISTER_FNS, exec-sim registry entries + stub extensions (get_actor_transform, static_mesh), the pinned counts in test_registry_tiers.py, and tests/test_x3d_async.py. Does not affect CI (unregistered). WIP toward v0.4.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mounts ue_mcp/tools/x3d.py (export / validate / apply / preview) as CORE-tier tools (default profile), so the v0.3.0 x3d_bridge harness is usable inside the editor. - tools/__init__.py: import register_x3d + _ALL_REGISTER_FNS + 4 CORE TIERS entries. - test_registry_tiers.py: pinned counts 56->60 total, 18->22 CORE. - exec_sim/registry.py: ToolEntry per tool (export/apply CODEGEN, validate/preview DIRECT). apply's sentinel DEF = SENTINEL_ACTOR_PATH (a seeded stub actor); transform coords pass through x3d_bridge.coordinates so they are not literal. - exec_sim/unreal_stub.py: add Quat (+ .rotator()), Transform, and _Actor.get_actor_transform() -- all real UE 5.x API -- so the export read and apply emit run honestly against the strict fake unreal. - tests/test_x3d_async.py: 14 tests (export serialize/filter/failure, validate accept/reject, apply emit/reject-invalid/guid-injection, preview embed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump ue_mcp/__version__.py to 0.4.0 + CHANGELOG entry. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 9 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ue_x3d_* -- the harness on the wire
The v0.3.0 UE<->X3D harness (
x3d_bridge) is now MCP tools: Claude can export alive level to X3D, validate it, apply transform edits back, and preview it --
inside the editor. All four are CORE-tier (mounted by default); Epic's MCP
has no X3D surface.
Added
ue_x3d_export-- serialize the current level to X3D (each actor'squaternion transform, static mesh, material, attach parent; UE Z-up-cm ->
X3D Y-up-m).
mesh_onlyby default.ue_x3d_validate-- the paper boundary as a tool: out-of-grammar nodes,dangling
USE, wrong arity, non-X3D roots, NaN/inf -- rejected withouttouching the editor.
ue_x3d_apply-- apply an X3D document's transforms back to the live level(validated, guids sanitized, emitted via
ue_execute_python). Transforms inv0.4.0; spawn/material/reparent apply are follow-ups.
ue_x3d_preview-- render X3D to a standalone X_ITE browser page.Quat/Transform/get_actor_transform). Tier table pinned at 60 tools / 22 CORE.Notes
scene is gated on
ue_preflightreading green (bAllowAnyRemoteFunctionCallapplied).
Bstays analytic (not glTF-calibrated) -- round trip isbasis-agnostic, so fidelity-only.