Skip to content

docs: resolve D-2 - multi-material merge stays out of wave.js - #210

Closed
timurbazhirov wants to merge 1 commit into
refactor/split-interactive-editor-mixinsfrom
docs/resolve-d2-multi-material-decision
Closed

docs: resolve D-2 - multi-material merge stays out of wave.js#210
timurbazhirov wants to merge 1 commit into
refactor/split-interactive-editor-mixinsfrom
docs/resolve-d2-multi-material-decision

Conversation

@timurbazhirov

Copy link
Copy Markdown
Member

Summary

  • Resolves spec decision D-2 (multi-material replacement, §9): rather than a materials[] prop on ThreeDEditor or a new merge-workflow component in this repo, the merge workflow belongs in materials-designer — built on wave.js's existing single-material ThreeDEditor plus this session's group-transform primitives (select/drag/rotate a rigid group of atoms as one unit).
  • Updates every place the spec/plan docs referenced D-2 as open or as a wave.js roadmap item: the decision table (§9), the material prop's notes (§6.2), the roadmap table (§11), and the plan doc's outstanding-decisions table + shipped-so-far summary.
  • Notes two integration shapes for materials-designer to choose between, neither requiring wave.js changes today: pre-merge materials into one before handing ThreeDEditor a single material as usual, or build a custom viewer against lower-level primitives (Wave, createAtomsGroup, getUnitCellObject) — which would need those exported from src/exports.js, deliberately deferred until MD actually needs that path rather than growing the public API speculatively.
  • Docs-only change. Fifth PR in the post-review chained-PR stack (stacked on #209).

Test plan

  • Docs-only diff — no source files touched, npm test/tsc/lint/build unaffected.
  • Grepped both docs for every remaining D-2 reference after editing to confirm nothing still reads it as open.

🤖 Generated with Claude Code

Rather than (a) a materials[] prop on ThreeDEditor or (b) a new
merge-workflow component in this repo, the multi-material merge
workflow belongs in materials-designer, built on wave.js's existing
single-material ThreeDEditor plus this session's group-transform
primitives (select/drag/rotate a rigid group of atoms). Updates the
spec's decision table (§9), props table (§6.2), and roadmap (§11),
plus the plan doc's outstanding-decisions table, so nothing still
reads D-2 as open or as a wave.js roadmap item.

Notes two integration shapes for materials-designer, neither needing
wave.js changes today: pre-merging materials into one before handing
ThreeDEditor a single material as usual, or building a custom viewer
against lower-level primitives (Wave, createAtomsGroup,
getUnitCellObject) - which would need those exported from
src/exports.js, deferred until actually needed rather than grown
speculatively.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Copy link
Copy Markdown
Member Author

Closing — consolidated into #216 (then #214 on top).

Verified contained: this PR's head 1eefe20d is a direct ancestor of claude/uiux-p2-figure-export.

D-2's reasoning got reused, incidentally: the same "where does wave.js stop and the host app begin" question was the one holding U-12 and U-13, and each answered it in its own §0.1 entry — figure export needs renderer internals a host cannot reach, so it stays here; the file handoff stays with the host.

The branch docs/resolve-d2-multi-material-decision stays on the remote.


Generated by Claude Code

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