Part of #845 · Design: docs/MESH_TRANSFORM_DESIGN.md §1.4 · Depends on Slice B (#847).
GUI + MCP surface for mesh variants.
- Inspector Object-mode section "AI: Variations" shown for a selected mesh entity: count spinner, strength slider (labeled zones: subtle / redesign / same-family), seed field, guidance toggle, Generate + progress + Cancel.
- Worker thread per the
MeshGenController pattern (UI stays responsive; mesh construction marshalled to the main thread). Per-variant progress ("variant 3/10 · step 12/30").
- Streaming results: each finished variant inserts into the scene immediately as a sibling node (
<name>_var01…), offset in a row, restored to source world scale — don't wait for the whole batch.
- MCP
generate_mesh_variants {entity_name?, count, strength, seed?, guidance?, output_path?} (heavy, ONNX-gated schema).
- Undo: one named undo group per batch ("AI: 10 variants of Goblin").
- Sentry
ai.assist.variants (GUI/MCP surfaces); gamification noteFeature cluster mapping in MCPServer::callTool.
- Tests headless-safe; QML section follows
PropertiesPanel.qml conventions (no new dialog window).
Part of #845 · Design:
docs/MESH_TRANSFORM_DESIGN.md§1.4 · Depends on Slice B (#847).GUI + MCP surface for mesh variants.
MeshGenControllerpattern (UI stays responsive; mesh construction marshalled to the main thread). Per-variant progress ("variant 3/10 · step 12/30").<name>_var01…), offset in a row, restored to source world scale — don't wait for the whole batch.generate_mesh_variants {entity_name?, count, strength, seed?, guidance?, output_path?}(heavy, ONNX-gated schema).ai.assist.variants(GUI/MCP surfaces); gamificationnoteFeaturecluster mapping inMCPServer::callTool.PropertiesPanel.qmlconventions (no new dialog window).