Skip to content

[feat] material map slots and look animation in GLB (roadmap 72 LK1, LK4) - #517

Closed
AlexZ005 wants to merge 2 commits into
feat/72from
feat/72-materials
Closed

AlexZ005 wants to merge 2 commits into
feat/72from
feat/72-materials

Conversation

@AlexZ005

@AlexZ005 AlexZ005 commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

Roadmap 72, lane 72-materials: LK1 and LK4, one commit each.

LK1: texture map slots

  • Inspector > Material > Maps: normal, roughness, metalness, emission, AO, plus tiling, offset and rotation per material and normal and AO strength.
  • "Load a set of maps..." sorts files into slots by name (wood_normal.png). setObjectsMapSet is the seam a generated set (PBRnxt, roadmap 58) fills; PBRnxt itself is not in core yet.
  • Replicated, one undo step, saved in GLB, scene and presets. Agent materialParams accept the slots.

LK4: look animation in GLB

  • KHR_animation_pointer for material and light channels, KHR_node_visibility for visibility, and a new Field of view channel. Camera markers export as glTF cameras.
  • The Quest / web preset leaves look animation out and says so in a toast.
  • Fix: exporting several objects lost all authored movement, because GLTFExporter wants animations per root.

Proof

  • e2e, local slot: material-map-slots 86 checks (two peers, phone 390x896 and 770x850), look-animation-export 69 checks. Neighbours green: animation-bake, animation-look-channels, material-presets, material-types, uv-texture-params, texture-leak, uv-materials, save-as-formats.
  • Khronos glTF validator on the exported file: 0 errors, 0 warnings, 10 infos (it does not validate KHR_node_visibility and only partly supports pointers).
  • svelte-check 279/39 = baseline; npm run build passes on the final code.
  • vitest 3570 of 3570 on two final runs. An earlier run on the same code had 1 failure, and I did not capture which test; it did not come back.

Known red and limits

  • material-sharing is red on v1.53.1 too (7.1 and 7.2, late joiner). The lane's last rerun stopped earlier in the same section, at a 90 s boot timeout for the third page, so section 7 has no clean lane result.
  • Removing a KTX2 map cannot be undone (no drawable image to restore).
  • After a reload, a saved preset cannot name maps it has no URL for.
  • Look animation does not read back into the app on re-import (GLTFLoader ignores pointers).
  • curveCore is not in v1.53.1, so sampling uses evaluateClip; the pure half can take other samples later.
  • The battery time for material-map-slots (640 s) is an estimate from a loaded run; look-animation-export (208 s) is measured.
  • Not run on real devices or in VR; owner device rows are in the lane STATUS.

🤖 Generated with Claude Code

AlexZ005 and others added 2 commits November 1, 2026 22:44
- normal, roughness, metalness, emissive and AO maps on Inspector > Material, plus tiling, offset and rotation per material, normal and AO strength
- "Load a set of maps..." sorts files into slots by name; setObjectsMapSet is the seam a generated set fills
- replicated, one undo step, saved in GLB, scene and presets; agent materialParams accept the slots
- e2e material-map-slots (two peers, phone folded and unfolded), unit materialParamRules

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- KHR_animation_pointer tracks for material and light channels, KHR_node_visibility for visibility, via a GLTFExporter plugin on the shared keyframe model
- new Field of view channel in the animation editor; camera markers export as glTF cameras
- the Quest preset leaves look animation out and says so
- fix: exporting several objects lost all authored movement (the exporter wants animations per root)
- e2e look-animation-export, unit gltfLookPointers; output passes the Khronos validator with 0 errors

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AlexZ005

AlexZ005 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

In main via 72-int: released as v1.59.0 (91b074e).

@AlexZ005 AlexZ005 closed this Nov 4, 2026
@AlexZ005
AlexZ005 deleted the feat/72-materials branch November 4, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant