Skip to content

Add visual editor gizmo skill#28

Open
gonpombo8 wants to merge 13 commits intomainfrom
feat/editor
Open

Add visual editor gizmo skill#28
gonpombo8 wants to merge 13 commits intomainfrom
feat/editor

Conversation

@gonpombo8
Copy link
Contributor

Summary

  • Adds editor-gizmo skill with in-scene translate/rotate gizmos, auto-discovery of entities, and WebSocket auto-save to editor-scene.json
  • Adds dcl-editor-save extension with /save-editor command that converts gizmo changes into agent instructions to patch source code
  • Prompts on session start if pending editor changes are detected; warns on /deploy and /preview
  • Deletes old gizmo-prototype-v2/ directory (code moved into the skill)
  • Adds "never pass undefined in Transform" safety warning to cheat sheet and relevant skills

What could break

  • /deploy and /preview now import getPendingEditorChanges from dcl-editor-save — new cross-extension dependency
  • Editor gizmo only works with scenes using auth-server (WebSocket connection)
  • deliverAs: "nextTurn" means editor save messages queue until the next agent turn rather than interrupting

How to test

  • Enable editor in a scene per skills/editor-gizmo/SKILL.md instructions
  • Run /preview, click entities to select, drag arrows/discs to move/rotate
  • Run /save-editor and verify the agent patches Transform calls in source
  • Verify /deploy warns about pending editor changes

@gonpombo8 gonpombo8 force-pushed the feat/editor branch 4 times, most recently from 58e5ae3 to 352e0cd Compare March 10, 2026 13:28
Split monolithic 1005-line index.ts into 9 focused modules:
camera, discovery, drag, gizmo, indicator, input, math-utils,
persistence, and selection. Index.ts is now an 82-line orchestrator.
… support

UI:
- Creator Hub-style toolbar with icon buttons (move, rotate, undo/redo, camera, focus)
- Hierarchy panel with parent-child tree built from Transform.parent
- Properties panel showing position/rotation of selected entity
- Virtual size (1280x720) for consistent UI scaling
- For-loop row building (not .map()) to avoid DCL React-ECS reverse-order bug
- Entity ID keys for stable rendering order

Gizmo:
- Distance-based scaling (constant screen size like Unity/Blender)
- Entity size-aware scaling (arrows extend beyond large meshes)
- World position computation for child entities (accounts for parent scale chain)
- World-to-local displacement conversion for dragging child entities
- maxDistance bumped to 100 for editor camera usage

Selection:
- Semi-transparent highlight for primitives (alpha blend)
- GltfNodeModifiers with empty path for GLB model transparency
- Removed wireframe bounding box indicator (gizmo is sufficient)

Scene:
- Test scene with 4 model-based parent-child groups
- 12 GLB models from CC0 catalogs

Code cleanup:
- Deleted dead indicator.ts
- Extracted MAX_PARENT_DEPTH constant
- Simplified TreeRow interface (removed unused children field)
- Added history.ts for undo/redo support
Covers auth-server integration, lock mechanism, message protocol,
storage format, and implementation plan for editing deployed scenes
without redeploying.
…ty discovery

Remove bundled models and standalone scene files. Add admin wallet
gating, editor on/off toggle, plane drag handles, world-aligned
gizmos, per-frame entity discovery for GLTF children, and snapshot
management. Update system prompt to limit screenshot usage.
…ng-agent

- After /init, send message to trigger editor-gizmo skill for automatic editor setup
- Prompt on session start if scene exists but editor is not installed
- Remove dcl-setup-ollama extension and all Ollama references
- Update system prompt to init immediately in empty folders without asking first
- Upgrade pi-coding-agent from 0.55.4 to 0.62.0
- Fix skill count 19 → 20 in tests and CLAUDE.md
The message was queued for the next turn but the LLM had already
moved on. Without deliverAs it gets injected into the current
context so the agent sees it while processing the init result.
Avoids a redundant install — init scaffolds files only, then the
editor-gizmo skill installs @dcl/sdk@auth-server as the dependency.
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