summer-engine 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +27 -5
- package/.codex-plugin/plugin.json +28 -6
- package/.cursor-plugin/plugin.json +27 -5
- package/.factory-plugin/plugin.json +27 -5
- package/.opencode/plugins/summer.js +1 -1
- package/CHANGELOG.md +102 -0
- package/README.md +18 -3
- package/assets/audit/scene_audit.gd +4136 -0
- package/assets/seeing/seeing_probe.gd +1873 -0
- package/dist/cli/commands/skills.js +20 -2
- package/dist/core/api-client.d.ts +9 -1
- package/dist/core/api-client.js +21 -4
- package/dist/core/capabilities/agent-playbook.js +46 -0
- package/dist/core/capabilities/audit/accept.d.ts +55 -0
- package/dist/core/capabilities/audit/accept.js +147 -0
- package/dist/core/capabilities/audit/args.d.ts +95 -0
- package/dist/core/capabilities/audit/args.js +89 -0
- package/dist/core/capabilities/audit/audit.d.ts +56 -0
- package/dist/core/capabilities/audit/audit.js +287 -0
- package/dist/core/capabilities/audit/frame.d.ts +14 -0
- package/dist/core/capabilities/audit/frame.js +35 -0
- package/dist/core/capabilities/audit/gaps.d.ts +96 -0
- package/dist/core/capabilities/audit/gaps.js +257 -0
- package/dist/core/capabilities/audit/judge.d.ts +162 -0
- package/dist/core/capabilities/audit/judge.js +1134 -0
- package/dist/core/capabilities/audit/math.d.ts +110 -0
- package/dist/core/capabilities/audit/math.js +263 -0
- package/dist/core/capabilities/audit/summary.d.ts +74 -0
- package/dist/core/capabilities/audit/summary.js +212 -0
- package/dist/core/capabilities/board.d.ts +31 -0
- package/dist/core/capabilities/board.js +43 -0
- package/dist/core/capabilities/camera-view.d.ts +4 -2
- package/dist/core/capabilities/camera-view.js +6 -3
- package/dist/core/capabilities/connect-signal.d.ts +85 -0
- package/dist/core/capabilities/connect-signal.js +285 -0
- package/dist/core/capabilities/engine-fallbacks.d.ts +5 -0
- package/dist/core/capabilities/engine-fallbacks.js +5 -0
- package/dist/core/capabilities/engine-ops.d.ts +5 -1
- package/dist/core/capabilities/engine-ops.js +0 -3
- package/dist/core/capabilities/engine-receipt.d.ts +12 -0
- package/dist/core/capabilities/engine-receipt.js +26 -0
- package/dist/core/capabilities/file-read.d.ts +64 -0
- package/dist/core/capabilities/file-read.js +325 -0
- package/dist/core/capabilities/game-task-plan.js +4 -2
- package/dist/core/capabilities/grep.d.ts +60 -0
- package/dist/core/capabilities/grep.js +190 -0
- package/dist/core/capabilities/inspect-node.d.ts +56 -0
- package/dist/core/capabilities/inspect-node.js +225 -0
- package/dist/core/capabilities/inspect-resource.d.ts +61 -0
- package/dist/core/capabilities/inspect-resource.js +376 -0
- package/dist/core/capabilities/math3d.d.ts +28 -0
- package/dist/core/capabilities/math3d.js +88 -0
- package/dist/core/capabilities/motion-generation.d.ts +62 -0
- package/dist/core/capabilities/motion-generation.js +138 -0
- package/dist/core/capabilities/placement-batch.d.ts +102 -0
- package/dist/core/capabilities/placement-batch.js +483 -0
- package/dist/core/capabilities/placement-math.d.ts +70 -0
- package/dist/core/capabilities/placement-math.js +209 -0
- package/dist/core/capabilities/placement-script.d.ts +42 -0
- package/dist/core/capabilities/placement-script.js +1096 -0
- package/dist/core/capabilities/placement.d.ts +485 -0
- package/dist/core/capabilities/placement.js +1731 -0
- package/dist/core/capabilities/project-context.d.ts +33 -2
- package/dist/core/capabilities/project-context.js +87 -4
- package/dist/core/capabilities/replace-node.d.ts +91 -0
- package/dist/core/capabilities/replace-node.js +423 -0
- package/dist/core/capabilities/runtime-control.d.ts +18 -2
- package/dist/core/capabilities/runtime-control.js +67 -2
- package/dist/core/capabilities/scene-batch.d.ts +63 -0
- package/dist/core/capabilities/scene-batch.js +394 -0
- package/dist/core/capabilities/scene-readback.d.ts +36 -0
- package/dist/core/capabilities/scene-readback.js +54 -0
- package/dist/core/capabilities/seeing/args.d.ts +348 -0
- package/dist/core/capabilities/seeing/args.js +178 -0
- package/dist/core/capabilities/seeing/candidates.d.ts +127 -0
- package/dist/core/capabilities/seeing/candidates.js +282 -0
- package/dist/core/capabilities/seeing/math.d.ts +134 -0
- package/dist/core/capabilities/seeing/math.js +269 -0
- package/dist/core/capabilities/seeing/probe.d.ts +62 -0
- package/dist/core/capabilities/seeing/probe.js +188 -0
- package/dist/core/capabilities/seeing/scoring.d.ts +235 -0
- package/dist/core/capabilities/seeing/scoring.js +639 -0
- package/dist/core/capabilities/seeing/seeing.d.ts +233 -0
- package/dist/core/capabilities/seeing/seeing.js +1341 -0
- package/dist/core/capabilities/seeing/shot-store.d.ts +52 -0
- package/dist/core/capabilities/seeing/shot-store.js +204 -0
- package/dist/core/capabilities/surface-snap-mesh.d.ts +88 -0
- package/dist/core/capabilities/surface-snap-mesh.js +425 -0
- package/dist/core/capabilities/surface-snap.d.ts +77 -0
- package/dist/core/capabilities/surface-snap.js +461 -0
- package/dist/core/capabilities/tool-dispatch.js +231 -72
- package/dist/core/capabilities/tscn.d.ts +85 -0
- package/dist/core/capabilities/tscn.js +391 -0
- package/dist/core/capabilities/world-snapshot.d.ts +58 -0
- package/dist/core/capabilities/world-snapshot.js +150 -0
- package/dist/core/capability-skew.d.ts +5 -5
- package/dist/core/capability-skew.js +14 -6
- package/dist/core/headless/worker-engine-client.d.ts +1 -1
- package/dist/core/headless/worker-engine-client.js +2 -2
- package/dist/core/library-read.d.ts +37 -5
- package/dist/core/library-read.js +264 -33
- package/dist/core/library-search.d.ts +2 -2
- package/dist/installer/agent-config.js +5 -3
- package/dist/installer/agent-table.d.ts +16 -0
- package/dist/installer/agent-table.js +52 -17
- package/dist/mcp/server.js +9 -3
- package/dist/mcp/tools/asset-tools.js +21 -3
- package/dist/mcp/tools/audit-tools.d.ts +23 -0
- package/dist/mcp/tools/audit-tools.js +60 -0
- package/dist/mcp/tools/debug-tools.js +3 -1
- package/dist/mcp/tools/file-tools.js +17 -4
- package/dist/mcp/tools/generate-tools.js +74 -66
- package/dist/mcp/tools/library-tools.js +2 -0
- package/dist/mcp/tools/perception-tools.js +6 -19
- package/dist/mcp/tools/placement-tools.d.ts +24 -0
- package/dist/mcp/tools/placement-tools.js +91 -0
- package/dist/mcp/tools/project-tools.js +18 -15
- package/dist/mcp/tools/scene-tools.js +71 -83
- package/dist/mcp/tools/seeing-tools.d.ts +24 -0
- package/dist/mcp/tools/seeing-tools.js +64 -0
- package/dist/mcp/tools/spatial-tools.js +17 -9
- package/dist/mcp/tools/visual-tools.js +59 -7
- package/gemini-extension.json +26 -4
- package/integrations/amp/README.md +1 -1
- package/integrations/crush/README.md +1 -1
- package/integrations/grok-build/README.md +1 -1
- package/integrations/hermes/README.md +1 -1
- package/integrations/kimi-code/README.md +1 -1
- package/integrations/mistral-vibe/README.md +1 -1
- package/integrations/opencode/README.md +1 -1
- package/integrations/rovo-dev/README.md +1 -1
- package/integrations/vscode-copilot/README.md +1 -1
- package/integrations/warp/README.md +1 -1
- package/integrations/windsurf/README.md +1 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +59 -15
- package/library/references/mcp-tools-reference/resource.yaml +1 -1
- package/library/references/summer-folder/resource.yaml +1 -1
- package/library/references/summer-folder/summer-folder.md +1 -1
- package/library/skills/3d-lighting/SKILL.md +1 -1
- package/library/skills/README.md +36 -14
- package/library/skills/adaptive-music/SKILL.md +1 -1
- package/library/skills/agent-playtesting/SKILL.md +1 -1
- package/library/skills/ai-characters-in-games/SKILL.md +220 -0
- package/library/skills/ai-characters-in-games/resource.yaml +30 -0
- package/library/skills/ambient-bed/SKILL.md +1 -1
- package/library/skills/animated-loop/SKILL.md +1 -1
- package/library/skills/animation-tree/SKILL.md +1 -1
- package/library/skills/art-direction/SKILL.md +1 -1
- package/library/skills/asset-strategy/SKILL.md +2 -1
- package/library/skills/asset-strategy/resource.yaml +2 -1
- package/library/skills/audio-direction/SKILL.md +1 -1
- package/library/skills/auto-fire-targeting/SKILL.md +1 -1
- package/library/skills/brainstorm-game/SKILL.md +1 -1
- package/library/skills/brainstorming/SKILL.md +1 -1
- package/library/skills/browse-templates/SKILL.md +3 -3
- package/library/skills/browse-templates/resource.yaml +1 -1
- package/library/skills/camera-rigs/SKILL.md +128 -0
- package/library/skills/camera-rigs/resource.yaml +29 -0
- package/library/skills/celeste-momentum-platforming/SKILL.md +1 -1
- package/library/skills/character-animation-wiring/SKILL.md +1 -1
- package/library/skills/character-model/SKILL.md +1 -1
- package/library/skills/character-movement/SKILL.md +326 -0
- package/library/skills/character-movement/references/default-third-person-controller.gd +201 -0
- package/library/skills/character-movement/references/default-third-person-verification-probe.gd +154 -0
- package/library/skills/character-movement/references/movement-3d.md +136 -0
- package/library/skills/character-movement/references/platformer-feel.md +83 -0
- package/library/skills/character-movement/resource.yaml +40 -0
- package/library/skills/character-portrait/SKILL.md +1 -1
- package/library/skills/cinematic-cutscene/SKILL.md +1 -1
- package/library/skills/combat-basics/SKILL.md +159 -0
- package/library/skills/combat-basics/references/projectiles-and-aoe.md +100 -0
- package/library/skills/combat-basics/resource.yaml +34 -0
- package/library/skills/concept-art/SKILL.md +1 -1
- package/library/skills/create-asset-sheet/SKILL.md +1 -1
- package/library/skills/debug/SKILL.md +1 -1
- package/library/skills/debugging-game-feel/SKILL.md +1 -1
- package/library/skills/design-level/SKILL.md +1 -1
- package/library/skills/design-mechanic/SKILL.md +1 -1
- package/library/skills/design-npc/SKILL.md +1 -1
- package/library/skills/diagnosing-perf-regressions/SKILL.md +1 -1
- package/library/skills/dispatching-parallel-agents/SKILL.md +1 -1
- package/library/skills/driving-the-editor-ui/SKILL.md +1 -1
- package/library/skills/environment-kit/SKILL.md +1 -1
- package/library/skills/export-and-ship/SKILL.md +1 -1
- package/library/skills/fabricating-assets/SKILL.md +1 -1
- package/library/skills/facial-and-lipsync/SKILL.md +1 -1
- package/library/skills/fps-controller/SKILL.md +9 -7
- package/library/skills/fps-controller/resource.yaml +4 -1
- package/library/skills/game-feel/SKILL.md +1 -1
- package/library/skills/gameskill/SKILL.md +1 -1
- package/library/skills/gdscript-patterns/SKILL.md +1 -1
- package/library/skills/generate-motion/SKILL.md +9 -9
- package/library/skills/generate-motion/resource.yaml +2 -1
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +1 -1
- package/library/skills/headless-scripting/SKILL.md +1 -1
- package/library/skills/in-game-purchases/SKILL.md +254 -0
- package/library/skills/in-game-purchases/resource.yaml +29 -0
- package/library/skills/instantiate-asset-pack/SKILL.md +1 -1
- package/library/skills/investigating-bugs/SKILL.md +1 -1
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +1 -1
- package/library/skills/make-game/SKILL.md +25 -3
- package/library/skills/make-game/references/2d-platformer-polish.md +93 -0
- package/library/skills/make-game/references/2d-platformer.md +117 -0
- package/library/skills/make-game/references/2d-rpg-content.md +234 -0
- package/library/skills/make-game/references/2d-rpg.md +241 -0
- package/library/skills/make-game/references/2d-survivors-progression.md +201 -0
- package/library/skills/make-game/references/2d-survivors.md +237 -0
- package/library/skills/make-game/references/3d-fps-systems.md +216 -0
- package/library/skills/make-game/references/3d-fps.md +177 -0
- package/library/skills/make-game/references/3d-horror-systems.md +186 -0
- package/library/skills/make-game/references/3d-horror.md +201 -0
- package/library/skills/make-game/references/3d-third-person-systems.md +220 -0
- package/library/skills/make-game/references/3d-third-person.md +215 -0
- package/library/skills/make-game/resource.yaml +6 -1
- package/library/skills/multiplayer/SKILL.md +150 -0
- package/library/skills/multiplayer/resource.yaml +33 -0
- package/library/skills/multiplayer-movement/SKILL.md +510 -0
- package/library/skills/multiplayer-movement/files.md +501 -0
- package/library/skills/multiplayer-movement/resource.yaml +30 -0
- package/library/skills/multiplayer-project/SKILL.md +521 -0
- package/library/skills/multiplayer-project/files.md +448 -0
- package/library/skills/multiplayer-project/resource.yaml +36 -0
- package/library/skills/multiplayer-publish/SKILL.md +229 -0
- package/library/skills/multiplayer-publish/export-errors.md +89 -0
- package/library/skills/multiplayer-publish/resource.yaml +28 -0
- package/library/skills/multiplayer-state/SKILL.md +438 -0
- package/library/skills/multiplayer-state/files.md +592 -0
- package/library/skills/multiplayer-state/resource.yaml +35 -0
- package/library/skills/multiplayer-testing/SKILL.md +236 -0
- package/library/skills/multiplayer-testing/resource.yaml +39 -0
- package/library/skills/music-track/SKILL.md +1 -1
- package/library/skills/navigate-summer/SKILL.md +1 -1
- package/library/skills/new-project/SKILL.md +1 -1
- package/library/skills/organic-model/SKILL.md +1 -1
- package/library/skills/pixel-art/SKILL.md +1 -1
- package/library/skills/play/SKILL.md +1 -1
- package/library/skills/playtesting-a-feature/SKILL.md +1 -1
- package/library/skills/procedural-animation/SKILL.md +2 -2
- package/library/skills/procedural-animation/resource.yaml +1 -1
- package/library/skills/prop-model/SKILL.md +1 -1
- package/library/skills/psx-retro-rendering/SKILL.md +1 -1
- package/library/skills/realtime-wet-surfaces/SKILL.md +2 -2
- package/library/skills/remote-deploy/SKILL.md +1 -1
- package/library/skills/retarget/SKILL.md +1 -1
- package/library/skills/running-in-the-cloud/SKILL.md +1 -1
- package/library/skills/save-load/SKILL.md +156 -0
- package/library/skills/save-load/resource.yaml +27 -0
- package/library/skills/scene-composition/SKILL.md +1 -1
- package/library/skills/scene-hierarchy-design/SKILL.md +1 -1
- package/library/skills/scene-scripting/SKILL.md +1 -1
- package/library/skills/scene-to-level/SKILL.md +1 -1
- package/library/skills/skill-create/SKILL.md +1 -1
- package/library/skills/skill-improve/SKILL.md +1 -1
- package/library/skills/skill-test/SKILL.md +1 -1
- package/library/skills/skintokens-auto-rigging/SKILL.md +1 -1
- package/library/skills/skybox-panorama/SKILL.md +1 -1
- package/library/skills/sound-effect/SKILL.md +1 -1
- package/library/skills/spatial-placement/SKILL.md +134 -3
- package/library/skills/spatial-placement/references/kit-placement-tools.md +364 -0
- package/library/skills/spatial-placement/resource.yaml +16 -2
- package/library/skills/sprite-sheet/SKILL.md +1 -1
- package/library/skills/summer-analytics/SKILL.md +147 -0
- package/library/skills/summer-analytics/resource.yaml +28 -0
- package/library/skills/summer-friends/SKILL.md +226 -0
- package/library/skills/summer-friends/resource.yaml +28 -0
- package/library/skills/summer-leaderboards/SKILL.md +231 -0
- package/library/skills/summer-leaderboards/resource.yaml +30 -0
- package/library/skills/summer-match-results/SKILL.md +286 -0
- package/library/skills/summer-match-results/resource.yaml +32 -0
- package/library/skills/summer-matchmaking/SKILL.md +301 -0
- package/library/skills/summer-matchmaking/resource.yaml +32 -0
- package/library/skills/summer-parties/SKILL.md +253 -0
- package/library/skills/summer-parties/resource.yaml +30 -0
- package/library/skills/summer-player-data/SKILL.md +322 -0
- package/library/skills/summer-player-data/resource.yaml +30 -0
- package/library/skills/summer-store/SKILL.md +271 -0
- package/library/skills/summer-store/resource.yaml +29 -0
- package/library/skills/summer-world-chat/SKILL.md +195 -0
- package/library/skills/summer-world-chat/resource.yaml +30 -0
- package/library/skills/summer-world-saves/SKILL.md +284 -0
- package/library/skills/summer-world-saves/resource.yaml +29 -0
- package/library/skills/text-to-motion/SKILL.md +99 -0
- package/library/skills/text-to-motion/prompts-and-controls.md +34 -0
- package/library/skills/text-to-motion/resource.yaml +41 -0
- package/library/skills/text-to-motion/rigging-for-text-motion.md +54 -0
- package/library/skills/tileable-texture/SKILL.md +1 -1
- package/library/skills/trailer-shot/SKILL.md +1 -1
- package/library/skills/tune-performance/SKILL.md +1 -1
- package/library/skills/ui-basics/SKILL.md +10 -1
- package/library/skills/ui-graphics/SKILL.md +1 -1
- package/library/skills/use-widget-asset/SKILL.md +1 -1
- package/library/skills/using-summer/SKILL.md +2 -2
- package/library/skills/using-summer/resource.yaml +2 -2
- package/library/skills/vehicle-model/SKILL.md +1 -1
- package/library/skills/verification-before-completion/SKILL.md +1 -1
- package/library/skills/verifying-scenes/SKILL.md +76 -2
- package/library/skills/verifying-scenes/resource.yaml +13 -2
- package/library/skills/vfx-dissolve/SKILL.md +1 -1
- package/library/skills/vfx-fire/SKILL.md +1 -1
- package/library/skills/vfx-hit-spark/SKILL.md +1 -1
- package/library/skills/vfx-lightning/SKILL.md +1 -1
- package/library/skills/vfx-magic-glow/SKILL.md +1 -1
- package/library/skills/vfx-muzzle-flash/SKILL.md +1 -1
- package/library/skills/vfx-smoke/SKILL.md +1 -1
- package/library/skills/vfx-water-ripple/SKILL.md +1 -1
- package/library/skills/voice-line/SKILL.md +1 -1
- package/library/skills/web-and-touch-input/SKILL.md +38 -0
- package/library/skills/web-and-touch-input/resource.yaml +28 -0
- package/library/skills/web-compatibility-look/SKILL.md +62 -0
- package/library/skills/web-compatibility-look/resource.yaml +30 -0
- package/library/skills/world-building-3d/SKILL.md +8 -1
- package/library/skills/world-building-3d/references/spatial-tools.md +1 -1
- package/library/skills/world-building-3d/resource.yaml +2 -1
- package/library/skills/writing-plans/SKILL.md +1 -1
- package/library/skills/writing-skills/SKILL.md +1 -1
- package/library/templates/3d-lan-multiplayer-starter/resource.yaml +2 -2
- package/library/tools/attach-to-surface/resource.yaml +142 -0
- package/library/tools/batch/resource.yaml +9 -3
- package/library/tools/connect-ports/resource.yaml +120 -0
- package/library/tools/connect-signal/resource.yaml +3 -2
- package/library/tools/debug-views/resource.yaml +94 -0
- package/library/tools/frame-nodes/resource.yaml +104 -0
- package/library/tools/frame-shot/resource.yaml +134 -0
- package/library/tools/generate-motion/resource.yaml +44 -9
- package/library/tools/get-board/resource.yaml +50 -0
- package/library/tools/get-project-context/resource.yaml +13 -2
- package/library/tools/grep/resource.yaml +77 -0
- package/library/tools/inspect-asset/resource.yaml +71 -0
- package/library/tools/inspect-node/resource.yaml +9 -2
- package/library/tools/inspect-resource/resource.yaml +16 -5
- package/library/tools/instantiate-scene/resource.yaml +27 -2
- package/library/tools/measure/resource.yaml +96 -0
- package/library/tools/place-adjacent/resource.yaml +113 -0
- package/library/tools/play/resource.yaml +15 -2
- package/library/tools/raycast/resource.yaml +101 -0
- package/library/tools/read-file/resource.yaml +36 -2
- package/library/tools/read-library/resource.yaml +2 -2
- package/library/tools/repeat-along/resource.yaml +129 -0
- package/library/tools/replace-node/resource.yaml +11 -5
- package/library/tools/scene-audit/resource.yaml +144 -0
- package/library/tools/screenshot/resource.yaml +13 -2
- package/library/tools/search-assets/resource.yaml +18 -0
- package/library/tools/shot-sheet/resource.yaml +110 -0
- package/library/tools/snap-to-surface/resource.yaml +4 -1
- package/library/tools/world-snapshot/resource.yaml +24 -3
- package/library/tools/zoom/resource.yaml +105 -0
- package/package.json +1 -1
- package/registry/generated/aliases.json +17 -3
- package/registry/generated/counts.json +3 -3
- package/registry/generated/gemini-extension.json +26 -4
- package/registry/generated/index.json +2154 -469
- package/registry/generated/marketplace.claude.json +2 -2
- package/registry/generated/plugin.claude.json +27 -5
- package/registry/generated/plugin.codex.json +28 -6
- package/registry/generated/plugin.cursor.json +27 -5
- package/registry/generated/plugin.factory.json +27 -5
- package/registry/generated/skills-index.md +36 -14
- package/registry/generated/skills-registry.json +421 -124
- package/registry/generated/templates-registry.json +2 -2
- package/library/skills/host-authoritative-state/SKILL.md +0 -332
- package/library/skills/host-authoritative-state/resource.yaml +0 -28
- package/library/skills/peer-to-peer-multiplayer/SKILL.md +0 -373
- package/library/skills/peer-to-peer-multiplayer/resource.yaml +0 -28
- package/library/skills/setup-multiplayer/SKILL.md +0 -336
- package/library/skills/setup-multiplayer/resource.yaml +0 -28
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
id: tool/raycast
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Cast one ray from any point in an open scene — hit node, point and normal; physics first, visual AABB fallback declared. Read-only.
|
|
5
|
+
use_when:
|
|
6
|
+
- finding the wall, floor or ceiling in front of a point and its normal before anything is placed there
|
|
7
|
+
- choosing where a lamp, pipe or sign mounts on a facade
|
|
8
|
+
- checking what a line of sight or a drop line hits
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- you want clearance around an existing node in every direction — summer_starcast
|
|
11
|
+
- you want to mount the piece in the same call — summer_attach_to_surface casts its own ray
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
domains:
|
|
16
|
+
- scenes
|
|
17
|
+
- 3d
|
|
18
|
+
- world-building
|
|
19
|
+
modalities:
|
|
20
|
+
- scenes
|
|
21
|
+
compatibility:
|
|
22
|
+
engine: ">=4.6"
|
|
23
|
+
related:
|
|
24
|
+
tools:
|
|
25
|
+
- tool/attach-to-surface
|
|
26
|
+
- tool/starcast
|
|
27
|
+
- tool/snap-to-surface
|
|
28
|
+
skills:
|
|
29
|
+
- skill/spatial-placement
|
|
30
|
+
source: official
|
|
31
|
+
license: MIT
|
|
32
|
+
status: preview
|
|
33
|
+
aliases:
|
|
34
|
+
- summer_raycast
|
|
35
|
+
implementation:
|
|
36
|
+
module: src/mcp/tools/placement-tools.ts
|
|
37
|
+
export: registerPlacementTools
|
|
38
|
+
surfaces:
|
|
39
|
+
mcp:
|
|
40
|
+
tool_name: summer_raycast
|
|
41
|
+
remote: false
|
|
42
|
+
input_schema:
|
|
43
|
+
type: object
|
|
44
|
+
properties:
|
|
45
|
+
scenePath:
|
|
46
|
+
type: string
|
|
47
|
+
minLength: 1
|
|
48
|
+
maxLength: 512
|
|
49
|
+
description: Exact scene, e.g. 'res://levels/street.tscn'. It must be open; physics needs it to be the active tab.
|
|
50
|
+
origin:
|
|
51
|
+
type: array
|
|
52
|
+
minItems: 3
|
|
53
|
+
maxItems: 3
|
|
54
|
+
items:
|
|
55
|
+
type: number
|
|
56
|
+
description: Ray start [x, y, z] in scene (world) space.
|
|
57
|
+
direction:
|
|
58
|
+
type: array
|
|
59
|
+
minItems: 3
|
|
60
|
+
maxItems: 3
|
|
61
|
+
items:
|
|
62
|
+
type: number
|
|
63
|
+
description: Ray direction [x, y, z], non-zero; normalized for you.
|
|
64
|
+
maxDistance:
|
|
65
|
+
type: number
|
|
66
|
+
exclusiveMinimum: 0
|
|
67
|
+
maximum: 10000
|
|
68
|
+
default: 100
|
|
69
|
+
description: Maximum ray length in scene units.
|
|
70
|
+
collisionMask:
|
|
71
|
+
type: integer
|
|
72
|
+
minimum: 0
|
|
73
|
+
maximum: 4294967295
|
|
74
|
+
default: 4294967295
|
|
75
|
+
description: Godot 3D physics layer mask for physics queries.
|
|
76
|
+
collideWithAreas:
|
|
77
|
+
type: boolean
|
|
78
|
+
default: false
|
|
79
|
+
description: Also hit Area3D volumes (physics only).
|
|
80
|
+
evidence:
|
|
81
|
+
type: string
|
|
82
|
+
enum: [auto, physics, visual_aabb]
|
|
83
|
+
default: auto
|
|
84
|
+
description: "auto: physics first, visual AABB fallback when physics finds nothing (declared). physics or visual_aabb: that channel only."
|
|
85
|
+
exclude:
|
|
86
|
+
type: array
|
|
87
|
+
maxItems: 16
|
|
88
|
+
items:
|
|
89
|
+
type: string
|
|
90
|
+
description: Nodes (with descendants) the ray ignores.
|
|
91
|
+
required:
|
|
92
|
+
- scenePath
|
|
93
|
+
- origin
|
|
94
|
+
- direction
|
|
95
|
+
additionalProperties: false
|
|
96
|
+
authority:
|
|
97
|
+
filesystem: false
|
|
98
|
+
editor_mutation: false
|
|
99
|
+
network: false
|
|
100
|
+
credentials: false
|
|
101
|
+
publish: false
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
id: tool/read-file
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0
|
|
4
|
-
summary: Read a text file
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
summary: Read a project text file, a line or byte window of it, or the entries of a .json picked by json_path/keys, with the full-file sha256 receipt.
|
|
5
5
|
use_when:
|
|
6
6
|
- reading project files through the engine
|
|
7
7
|
- getting the sha256 required before overwriting a file
|
|
8
|
+
- reading a file too big for one result in pages (offset/limit)
|
|
9
|
+
- '"read the wall_door_b entry of a kit manifest" — json_path / keys instead of the whole file'
|
|
8
10
|
facets:
|
|
9
11
|
lifecycle:
|
|
10
12
|
- build
|
|
@@ -18,6 +20,11 @@ license: MIT
|
|
|
18
20
|
status: stable
|
|
19
21
|
aliases:
|
|
20
22
|
- summer_read_file
|
|
23
|
+
related:
|
|
24
|
+
tools:
|
|
25
|
+
- tool/grep
|
|
26
|
+
- tool/write-file
|
|
27
|
+
- tool/replace-text
|
|
21
28
|
implementation:
|
|
22
29
|
module: src/mcp/tools/file-tools.ts
|
|
23
30
|
export: registerFileTools
|
|
@@ -36,6 +43,33 @@ input_schema:
|
|
|
36
43
|
exclusiveMinimum: 0
|
|
37
44
|
maximum: 1000000
|
|
38
45
|
default: 200000
|
|
46
|
+
description: Most bytes of content to return (UTF-8). Default 200000. A window or JSON selection is cut at this size too.
|
|
47
|
+
offset:
|
|
48
|
+
type: integer
|
|
49
|
+
minimum: 0
|
|
50
|
+
description: Skip this many units (lines by default, see unit) before returning content. 0 = from the start.
|
|
51
|
+
limit:
|
|
52
|
+
type: integer
|
|
53
|
+
exclusiveMinimum: 0
|
|
54
|
+
description: Return at most this many units (lines by default). The result's window.next_offset continues the read.
|
|
55
|
+
unit:
|
|
56
|
+
type: string
|
|
57
|
+
enum:
|
|
58
|
+
- lines
|
|
59
|
+
- bytes
|
|
60
|
+
description: "What offset/limit count: 'lines' (default) or 'bytes' (cut on UTF-8 character boundaries)."
|
|
61
|
+
json_path:
|
|
62
|
+
type: string
|
|
63
|
+
description: "For a JSON file: return only this value, e.g. 'pieces.wall_a', 'pieces[\"a b\"]', 'items[3].size_m'."
|
|
64
|
+
keys:
|
|
65
|
+
type: array
|
|
66
|
+
items:
|
|
67
|
+
type: string
|
|
68
|
+
maxItems: 64
|
|
69
|
+
description: "For a JSON object (the file root or the json_path value): keep only these keys; * and ? wildcards, e.g. ['wall_*']."
|
|
70
|
+
keys_only:
|
|
71
|
+
type: boolean
|
|
72
|
+
description: "For a JSON object: return only its key names (after the keys filter), not the values — a cheap table of contents."
|
|
39
73
|
required:
|
|
40
74
|
- path
|
|
41
75
|
additionalProperties: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: tool/read-library
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.
|
|
3
|
+
version: 1.1.0
|
|
4
4
|
summary: Load one library entry by id — a skill's body and metadata, a tool's call recipe, a template's pin, a reference's text — ending in the feedback footer.
|
|
5
5
|
use_when:
|
|
6
6
|
- summer_search_library returned an id and you need the entry itself before acting
|
|
@@ -48,7 +48,7 @@ input_schema:
|
|
|
48
48
|
type: string
|
|
49
49
|
minLength: 1
|
|
50
50
|
maxLength: 200
|
|
51
|
-
description: The entry id as returned by summer_search_library, <kind>/<slug>, e.g. skill/vfx-water-ripple or tool/screenshot.
|
|
51
|
+
description: The entry id as returned by summer_search_library, <kind>/<slug>, e.g. skill/vfx-water-ripple or tool/screenshot. A file an entry links loads by <entry id>/<link as written>, e.g. skill/spatial-placement/references/kit-placement-tools.md; the linked files list at the end of a body gives each id.
|
|
52
52
|
part:
|
|
53
53
|
type: string
|
|
54
54
|
enum:
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
id: tool/repeat-along
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Instance copies of one scene along a line in one call — clamps every 0.45 m, braces, fence posts, window rows — and get the created node paths back.
|
|
5
|
+
use_when:
|
|
6
|
+
- placing wall clamps, gutter braces or duct braces at a fixed spacing along a run
|
|
7
|
+
- a row of fence posts, bollards, lamps or window modules
|
|
8
|
+
- filling a line with as many copies as fit at a spacing
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- scattering copies over an area or a grid — summer_run_script with ctx.scatter / ctx.grid
|
|
11
|
+
- spacing nodes that already exist — summer_align_distribute_3d
|
|
12
|
+
facets:
|
|
13
|
+
lifecycle:
|
|
14
|
+
- build
|
|
15
|
+
domains:
|
|
16
|
+
- scenes
|
|
17
|
+
- 3d
|
|
18
|
+
- world-building
|
|
19
|
+
- level-design
|
|
20
|
+
modalities:
|
|
21
|
+
- scenes
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
tools:
|
|
26
|
+
- tool/instantiate-scene
|
|
27
|
+
- tool/batch
|
|
28
|
+
- tool/attach-to-surface
|
|
29
|
+
skills:
|
|
30
|
+
- skill/spatial-placement
|
|
31
|
+
source: official
|
|
32
|
+
license: MIT
|
|
33
|
+
status: preview
|
|
34
|
+
aliases:
|
|
35
|
+
- summer_repeat_along
|
|
36
|
+
implementation:
|
|
37
|
+
module: src/mcp/tools/placement-tools.ts
|
|
38
|
+
export: registerPlacementTools
|
|
39
|
+
surfaces:
|
|
40
|
+
mcp:
|
|
41
|
+
tool_name: summer_repeat_along
|
|
42
|
+
remote: false
|
|
43
|
+
input_schema:
|
|
44
|
+
type: object
|
|
45
|
+
properties:
|
|
46
|
+
scenePath:
|
|
47
|
+
type: string
|
|
48
|
+
minLength: 1
|
|
49
|
+
maxLength: 512
|
|
50
|
+
description: Exact scene, e.g. 'res://levels/street.tscn'.
|
|
51
|
+
template:
|
|
52
|
+
type: string
|
|
53
|
+
minLength: 1
|
|
54
|
+
maxLength: 512
|
|
55
|
+
description: Scene to instance for every copy (.tscn, .scn, .glb, .gltf).
|
|
56
|
+
parent:
|
|
57
|
+
type: string
|
|
58
|
+
minLength: 1
|
|
59
|
+
maxLength: 256
|
|
60
|
+
description: Parent for the copies; start/end/direction are in this parent's local space.
|
|
61
|
+
start:
|
|
62
|
+
type: array
|
|
63
|
+
minItems: 3
|
|
64
|
+
maxItems: 3
|
|
65
|
+
items:
|
|
66
|
+
type: number
|
|
67
|
+
description: First copy's position [x, y, z].
|
|
68
|
+
end:
|
|
69
|
+
type: array
|
|
70
|
+
minItems: 3
|
|
71
|
+
maxItems: 3
|
|
72
|
+
items:
|
|
73
|
+
type: number
|
|
74
|
+
description: Line end. With spacing as many copies as fit; with count, count copies from start to end.
|
|
75
|
+
direction:
|
|
76
|
+
type: array
|
|
77
|
+
minItems: 3
|
|
78
|
+
maxItems: 3
|
|
79
|
+
items:
|
|
80
|
+
type: number
|
|
81
|
+
description: Instead of end, the row direction; needs count and spacing.
|
|
82
|
+
count:
|
|
83
|
+
type: integer
|
|
84
|
+
minimum: 1
|
|
85
|
+
maximum: 64
|
|
86
|
+
description: Number of copies.
|
|
87
|
+
spacing:
|
|
88
|
+
type: number
|
|
89
|
+
exclusiveMinimum: 0
|
|
90
|
+
maximum: 1000
|
|
91
|
+
description: Distance between neighbouring copies' origins.
|
|
92
|
+
align:
|
|
93
|
+
type: string
|
|
94
|
+
enum: [start, center, end]
|
|
95
|
+
default: start
|
|
96
|
+
description: With end + spacing, where the leftover length goes.
|
|
97
|
+
rotationDegrees:
|
|
98
|
+
type: array
|
|
99
|
+
minItems: 3
|
|
100
|
+
maxItems: 3
|
|
101
|
+
items:
|
|
102
|
+
type: number
|
|
103
|
+
description: rotation_degrees for every copy.
|
|
104
|
+
scale:
|
|
105
|
+
type: array
|
|
106
|
+
minItems: 3
|
|
107
|
+
maxItems: 3
|
|
108
|
+
items:
|
|
109
|
+
type: number
|
|
110
|
+
description: scale for every copy.
|
|
111
|
+
namePrefix:
|
|
112
|
+
type: string
|
|
113
|
+
minLength: 1
|
|
114
|
+
maxLength: 64
|
|
115
|
+
description: Copies are named <namePrefix>_<n> (default the template file name).
|
|
116
|
+
required:
|
|
117
|
+
- scenePath
|
|
118
|
+
- template
|
|
119
|
+
- parent
|
|
120
|
+
- start
|
|
121
|
+
additionalProperties: false
|
|
122
|
+
authority:
|
|
123
|
+
filesystem: true
|
|
124
|
+
editor_mutation: true
|
|
125
|
+
network: false
|
|
126
|
+
credentials: false
|
|
127
|
+
publish: false
|
|
128
|
+
evidence_checks:
|
|
129
|
+
- scene-valid
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
id: tool/replace-node
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0
|
|
4
|
-
summary: Replace a node with
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
summary: Replace a node with another scene or type, keeping its parent, index, name, transform and children, and verify the saved scene holds it.
|
|
5
5
|
use_when:
|
|
6
6
|
- swapping a placeholder for a prefab or changing a body type
|
|
7
7
|
- '"turn this StaticBody3D into a RigidBody3D but keep its children"'
|
|
8
8
|
- swapping the placeholder cube for the real prefab in place
|
|
9
|
+
- swapping one kit piece for another (a wall host for a door host) without hand-copying its transform
|
|
9
10
|
do_not_use_when:
|
|
10
11
|
- adding alongside instead of replacing — summer_add_node / summer_instantiate_scene
|
|
11
12
|
facets:
|
|
@@ -21,6 +22,11 @@ license: MIT
|
|
|
21
22
|
status: stable
|
|
22
23
|
aliases:
|
|
23
24
|
- summer_replace_node
|
|
25
|
+
related:
|
|
26
|
+
tools:
|
|
27
|
+
- tool/remove-node
|
|
28
|
+
- tool/instantiate-scene
|
|
29
|
+
- tool/read-file
|
|
24
30
|
implementation:
|
|
25
31
|
module: src/mcp/tools/scene-tools.ts
|
|
26
32
|
export: registerSceneTools
|
|
@@ -36,13 +42,13 @@ input_schema:
|
|
|
36
42
|
description: Target scene path, e.g. 'res://main.tscn'
|
|
37
43
|
path:
|
|
38
44
|
type: string
|
|
39
|
-
description: Node path to replace
|
|
45
|
+
description: Node path to replace, e.g. './House3/Front/G_f2_door'
|
|
40
46
|
type:
|
|
41
47
|
type: string
|
|
42
|
-
description: New node type, e.g. 'RigidBody3D'
|
|
48
|
+
description: New node type, e.g. 'RigidBody3D'. Give exactly one of type or scene.
|
|
43
49
|
scene:
|
|
44
50
|
type: string
|
|
45
|
-
description: Scene to replace with, e.g. 'res://
|
|
51
|
+
description: Scene or model to replace with, e.g. 'res://kit/wall_door_02.tscn'. Give exactly one of type or scene.
|
|
46
52
|
required:
|
|
47
53
|
- scenePath
|
|
48
54
|
- path
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
id: tool/scene-audit
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.3.0
|
|
4
|
+
summary: 'Read-only pass over any 3D scene, from geometry and materials: see-through holes, exposed edges, open pipe ends, floor gaps, clipping props.'
|
|
5
|
+
use_when:
|
|
6
|
+
- 'after each build stage of a 3D level or kit-built street: "what is wrong with this scene and where exactly?"'
|
|
7
|
+
- 'before calling a scene done: find see-through walls (an insert narrower than its frame), floor tiles with holes, props floating, sunk or poking into walls'
|
|
8
|
+
- 'facade bands with an open end or a gap, seams between modules and modules out of line seen from the street; a duct or downpipe with a missing elbow, coupler or section'
|
|
9
|
+
- 'the same look items keep coming back: accept the ones you judged fine (accept:[{key, reason}]) so later audits count them but hide them until their evidence changes'
|
|
10
|
+
- 'finding props turned the wrong way against a wall (a bench standing perpendicular to it), stretched texture strips, duplicated pieces'
|
|
11
|
+
- 'flickering faces: coplanar overlaps anywhere (props, roofs, ledges, inserts against hosts, decals, two surfaces of one mesh), judged by the 24-bit depth precision at the view distance'
|
|
12
|
+
- 'bare ground at wall bases, an underlay plane covering drain channels, buried props: floor_gap and sunken say which surface a ray hits first'
|
|
13
|
+
- 'a lit city scene in the Compatibility renderer: meshes lit by more than the per-object light limit, hard spot rims'
|
|
14
|
+
do_not_use_when:
|
|
15
|
+
- 'you already know the spot: look at it with summer_frame_nodes or summer_zoom, measure it with summer_raycast or summer_measure'
|
|
16
|
+
- 'the question is gameplay or reachability: summer_navigation_probe, summer_play'
|
|
17
|
+
- 'the scene has unsaved edits you want audited: it reads the SAVED file, so save first'
|
|
18
|
+
- 'requires ScenePreview (any current Summer Engine); an engine without it answers engine_lacks_op'
|
|
19
|
+
facets:
|
|
20
|
+
lifecycle:
|
|
21
|
+
- build
|
|
22
|
+
domains:
|
|
23
|
+
- verification
|
|
24
|
+
- scenes
|
|
25
|
+
- 3d
|
|
26
|
+
- level-design
|
|
27
|
+
modalities:
|
|
28
|
+
- scenes
|
|
29
|
+
compatibility:
|
|
30
|
+
engine: ">=4.6"
|
|
31
|
+
related:
|
|
32
|
+
tools:
|
|
33
|
+
- tool/frame-nodes
|
|
34
|
+
- tool/zoom
|
|
35
|
+
- tool/shot-sheet
|
|
36
|
+
- tool/raycast
|
|
37
|
+
- tool/measure
|
|
38
|
+
- tool/inspect-asset
|
|
39
|
+
skills:
|
|
40
|
+
- skill/verifying-scenes
|
|
41
|
+
- skill/spatial-placement
|
|
42
|
+
source: official
|
|
43
|
+
license: MIT
|
|
44
|
+
status: preview
|
|
45
|
+
aliases:
|
|
46
|
+
- summer_scene_audit
|
|
47
|
+
implementation:
|
|
48
|
+
module: src/mcp/tools/audit-tools.ts
|
|
49
|
+
export: registerAuditTools
|
|
50
|
+
surfaces:
|
|
51
|
+
mcp:
|
|
52
|
+
tool_name: summer_scene_audit
|
|
53
|
+
remote: false
|
|
54
|
+
input_schema:
|
|
55
|
+
type: object
|
|
56
|
+
properties:
|
|
57
|
+
scenePath:
|
|
58
|
+
type: string
|
|
59
|
+
description: Scene to audit, e.g. "res://levels/town.tscn" (the SAVED file). Omit for the scene open in the editor.
|
|
60
|
+
checks:
|
|
61
|
+
type: array
|
|
62
|
+
items:
|
|
63
|
+
type: string
|
|
64
|
+
enum:
|
|
65
|
+
- through_hole
|
|
66
|
+
- floor_gap
|
|
67
|
+
- floating
|
|
68
|
+
- sunken
|
|
69
|
+
- interpenetration
|
|
70
|
+
- exposed_edge
|
|
71
|
+
- open_fixture_end
|
|
72
|
+
- orientation
|
|
73
|
+
- uv_stretch
|
|
74
|
+
- duplicate
|
|
75
|
+
- z_fight
|
|
76
|
+
- depth_step
|
|
77
|
+
- lights
|
|
78
|
+
- transform
|
|
79
|
+
- resource
|
|
80
|
+
minItems: 1
|
|
81
|
+
maxItems: 15
|
|
82
|
+
description: Only these checks (default all 15). Fewer checks run faster (duplicate, lights, transform and resource need no physics); rerun a check budget_ms left partial on its own.
|
|
83
|
+
root:
|
|
84
|
+
type: string
|
|
85
|
+
description: Report only issues under this node (subtree), e.g. "Block3". The whole scene is still loaded, so walls and floors outside it count as surroundings.
|
|
86
|
+
min_severity:
|
|
87
|
+
type: string
|
|
88
|
+
enum:
|
|
89
|
+
- error
|
|
90
|
+
- warn
|
|
91
|
+
- look
|
|
92
|
+
description: '"error" (only errors), "warn" (errors and warnings) or "look" (default: everything, including look items that only ask you to look).'
|
|
93
|
+
offset:
|
|
94
|
+
type: integer
|
|
95
|
+
minimum: 0
|
|
96
|
+
maximum: 100000
|
|
97
|
+
description: Skip this many issues of the sorted, filtered list (paging; the result names the next offset).
|
|
98
|
+
limit:
|
|
99
|
+
type: integer
|
|
100
|
+
minimum: 1
|
|
101
|
+
maximum: 50
|
|
102
|
+
description: Issues per page (default 15, max 50). The result is capped at 5 KB; a page that does not fit is cut and says so.
|
|
103
|
+
budget_ms:
|
|
104
|
+
type: integer
|
|
105
|
+
minimum: 250
|
|
106
|
+
maximum: 60000
|
|
107
|
+
description: 'Editor time for the whole audit (default 3000 ms). Each check gets a share weighted by its usual cost (unused time passes on); a check past its share stops and counts.<check>.partial gives the share it covered. Under load, rerun the partial checks with checks or a larger budget.'
|
|
108
|
+
accept:
|
|
109
|
+
type: array
|
|
110
|
+
maxItems: 50
|
|
111
|
+
items:
|
|
112
|
+
type: object
|
|
113
|
+
properties:
|
|
114
|
+
key:
|
|
115
|
+
type: string
|
|
116
|
+
minLength: 8
|
|
117
|
+
maxLength: 360
|
|
118
|
+
description: The issue's key from a previous result (issues[].key).
|
|
119
|
+
reason:
|
|
120
|
+
type: string
|
|
121
|
+
minLength: 3
|
|
122
|
+
maxLength: 200
|
|
123
|
+
description: Why it is fine, e.g. "coplanar faces hidden behind a sign".
|
|
124
|
+
required:
|
|
125
|
+
- key
|
|
126
|
+
- reason
|
|
127
|
+
additionalProperties: false
|
|
128
|
+
description: 'Accept look or warn items you judged fine (up to 50 per call): [{key, reason}] with keys from this scene''s issues. Written to res://.summer/audit-accept.json (the only file the audit writes), then counted (counts.<check>.accepted) but hidden on every later audit until their evidence changes materially (severity rises, or the measured size moves by over 25%): then they show again with accept_stale. Errors cannot be accepted.'
|
|
129
|
+
show_accepted:
|
|
130
|
+
type: boolean
|
|
131
|
+
description: 'List accepted items too (each with its accepted reason). Default false: hidden, only counted.'
|
|
132
|
+
render:
|
|
133
|
+
type: string
|
|
134
|
+
enum:
|
|
135
|
+
- sheet
|
|
136
|
+
- none
|
|
137
|
+
description: '"sheet": also return ONE inline image of the first 6 issues of this page framed up close from their open side, each tile labelled with its issue number. Default "none".'
|
|
138
|
+
additionalProperties: false
|
|
139
|
+
authority:
|
|
140
|
+
filesystem: true
|
|
141
|
+
editor_mutation: false
|
|
142
|
+
network: false
|
|
143
|
+
credentials: false
|
|
144
|
+
publish: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: tool/screenshot
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.
|
|
3
|
+
version: 1.2.0
|
|
4
4
|
summary: Capture a frame from the editor viewport, an offscreen scene render (fixed or bookmarked pose, numbered labels), or the running game, as an actual image.
|
|
5
5
|
use_when:
|
|
6
6
|
- visually verifying layout, scale, framing, or runtime state
|
|
@@ -8,11 +8,13 @@ use_when:
|
|
|
8
8
|
- '"did the model land where I put it?" / "does the UI overlap?"'
|
|
9
9
|
- '"take a screenshot of the game" / "screenshot the running game" — target "game" grabs the live frame'
|
|
10
10
|
- before/after frames from the SAME viewpoint (framing "bookmark" / "free"), or an annotated screenshot with numbered labels mapped to node paths (marks)
|
|
11
|
+
- '"what changed since the last render of this view?" — framing "bookmark" with compare_previous returns previous | now | difference map in one image'
|
|
11
12
|
do_not_use_when:
|
|
12
13
|
- verifying lighting, mood, or environment-dependent materials with a preset framing (iso/top/front/...) of the scene target - those replace the WorldEnvironment with a flat preview; use framing "camera" (the scene's own Camera3D + real environment), a fixed pose ("free" / "bookmark", real environment too), or the game target instead
|
|
13
14
|
- capturing motion or a sequence of frames (use a RunVerification probe's save_frame)
|
|
14
15
|
- 'treating a uniformly black or grey "viewport" frame as evidence about lights, cameras, or content - the editor had not redrawn its viewport texture yet; the tool recaptures once and says so in the caption, otherwise recapture yourself'
|
|
15
16
|
- saving or listing the viewpoints themselves — summer_camera_bookmark
|
|
17
|
+
- fitting a camera to nodes with the real environment, many views in one image, debug views, zooms or automatic framing — summer_frame_nodes, summer_shot_sheet, summer_debug_views, summer_zoom, summer_frame_shot
|
|
16
18
|
facets:
|
|
17
19
|
lifecycle:
|
|
18
20
|
- build
|
|
@@ -25,6 +27,9 @@ related:
|
|
|
25
27
|
tools:
|
|
26
28
|
- tool/camera-bookmark
|
|
27
29
|
- tool/world-snapshot
|
|
30
|
+
- tool/frame-nodes
|
|
31
|
+
- tool/shot-sheet
|
|
32
|
+
- tool/frame-shot
|
|
28
33
|
skills:
|
|
29
34
|
- skill/verifying-scenes
|
|
30
35
|
source: official
|
|
@@ -95,12 +100,18 @@ input_schema:
|
|
|
95
100
|
description: framing:"free" / "bookmark" only. Vertical field of view in degrees (1..179; default 60 for "free", the bookmark's own for "bookmark").
|
|
96
101
|
marks:
|
|
97
102
|
type: boolean
|
|
98
|
-
description: target:"scene" only, 3D scenes. Draw a Set-of-Mark overlay - numbered tags + box outlines over the largest visible VisualInstance3D nodes (lights excluded), ranked by projected screen area. The caption lists label -> node path (scene-root-relative) so you can name what you see. Works with every framing. 2D scenes return marks_unsupported. Default false.
|
|
103
|
+
description: 'target:"scene" only, 3D scenes. Draw a Set-of-Mark overlay - numbered tags + box outlines over the largest visible VisualInstance3D nodes (lights excluded), ranked by projected screen area. The caption lists label -> node path (scene-root-relative) so you can name what you see, and an occlusion test (centre + 4 bounds points from the rendered camera) notes "(hidden behind <path>)" on labels whose node is hidden - ignore those. Works with every framing. 2D scenes return marks_unsupported. Default false.'
|
|
99
104
|
max_marks:
|
|
100
105
|
type: integer
|
|
101
106
|
minimum: 1
|
|
102
107
|
maximum: 128
|
|
103
108
|
description: marks:true only. Cap on numbered labels (engine default 32, at most 128). The caption says when the cap truncated the list.
|
|
109
|
+
compare_previous:
|
|
110
|
+
type: boolean
|
|
111
|
+
description: 'framing:"bookmark" only. Return ONE image of [previous render | now | difference map] for the bookmark, with the share of changed pixels (summer_shot_sheet compare_previous with this one bookmark); this render then replaces the bookmark''s previous image in res://.summer/shots/<bookmark>.jpg. A plain bookmark render (no marks, at most 1024 px) only creates that image when it is missing and never overwrites the compare baseline.'
|
|
112
|
+
update_previous:
|
|
113
|
+
type: boolean
|
|
114
|
+
description: 'framing:"bookmark" only. Replace the bookmark''s previous image (its compare baseline) with this clean render. Default false: an existing baseline is kept.'
|
|
104
115
|
additionalProperties: false
|
|
105
116
|
authority:
|
|
106
117
|
filesystem: true
|
|
@@ -56,6 +56,24 @@ input_schema:
|
|
|
56
56
|
- all
|
|
57
57
|
default: library
|
|
58
58
|
description: "Where to search: library (public 25k+), my_assets (your generated assets), all"
|
|
59
|
+
style:
|
|
60
|
+
type: string
|
|
61
|
+
enum:
|
|
62
|
+
- realistic
|
|
63
|
+
- stylized-lowpoly
|
|
64
|
+
- toon
|
|
65
|
+
- pixel
|
|
66
|
+
- hand-painted
|
|
67
|
+
- voxel
|
|
68
|
+
description: "The game's one art direction: clashing styles are left out, matches come first"
|
|
69
|
+
preview:
|
|
70
|
+
type: boolean
|
|
71
|
+
default: false
|
|
72
|
+
description: Also return one picture of the first 9 results, numbered in order, to see them before importing
|
|
73
|
+
includeCommunity:
|
|
74
|
+
type: boolean
|
|
75
|
+
default: false
|
|
76
|
+
description: Also include people's own public AI generations
|
|
59
77
|
required:
|
|
60
78
|
- query
|
|
61
79
|
additionalProperties: false
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
id: tool/shot-sheet
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: 'Render N bookmarks and/or poses into one labelled grid image with real lighting; compare each bookmark with its previous render (difference map).'
|
|
5
|
+
use_when:
|
|
6
|
+
- 'seeing every hero view of an environment at once after a change, in one image'
|
|
7
|
+
- '"did this change make it better?" — compare_previous puts previous, now and a difference map side by side per bookmark; plain sheets in between never reset that baseline'
|
|
8
|
+
- 'rendering several poses in one debug view (lighting, unshaded, normals, overdraw, wireframe) for a quick sweep'
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- 'one pose in all debug views — summer_debug_views'
|
|
11
|
+
- 'motion or a frame sequence — a RunVerification probe''s save_frame'
|
|
12
|
+
- 'requires ScenePreview (any current Summer Engine); bookmarks require the camera bookmark ops (0.5.66 or newer)'
|
|
13
|
+
facets:
|
|
14
|
+
lifecycle:
|
|
15
|
+
- build
|
|
16
|
+
domains:
|
|
17
|
+
- verification
|
|
18
|
+
- scenes
|
|
19
|
+
- 3d
|
|
20
|
+
modalities:
|
|
21
|
+
- scenes
|
|
22
|
+
compatibility:
|
|
23
|
+
engine: ">=4.6"
|
|
24
|
+
related:
|
|
25
|
+
tools:
|
|
26
|
+
- tool/camera-bookmark
|
|
27
|
+
- tool/frame-shot
|
|
28
|
+
- tool/debug-views
|
|
29
|
+
- tool/zoom
|
|
30
|
+
- tool/screenshot
|
|
31
|
+
skills:
|
|
32
|
+
- skill/verifying-scenes
|
|
33
|
+
source: official
|
|
34
|
+
license: MIT
|
|
35
|
+
status: preview
|
|
36
|
+
aliases:
|
|
37
|
+
- summer_shot_sheet
|
|
38
|
+
implementation:
|
|
39
|
+
module: src/mcp/tools/seeing-tools.ts
|
|
40
|
+
export: registerSeeingTools
|
|
41
|
+
surfaces:
|
|
42
|
+
mcp:
|
|
43
|
+
tool_name: summer_shot_sheet
|
|
44
|
+
remote: false
|
|
45
|
+
input_schema:
|
|
46
|
+
type: object
|
|
47
|
+
properties:
|
|
48
|
+
scenePath:
|
|
49
|
+
type: string
|
|
50
|
+
description: Scene to look at, e.g. "res://levels/town.tscn" (the SAVED file). Omit for the scene open in the editor.
|
|
51
|
+
shots:
|
|
52
|
+
type: array
|
|
53
|
+
items:
|
|
54
|
+
type: object
|
|
55
|
+
properties:
|
|
56
|
+
bookmark_name:
|
|
57
|
+
type: string
|
|
58
|
+
description: Pose from a camera bookmark (summer_camera_bookmark). Use INSTEAD of camera_position/camera_look_at.
|
|
59
|
+
camera_position:
|
|
60
|
+
type: string
|
|
61
|
+
description: 'Explicit pose: camera position, "Vector3(x, y, z)". Goes with camera_look_at.'
|
|
62
|
+
camera_look_at:
|
|
63
|
+
type: string
|
|
64
|
+
description: 'Explicit pose: point the camera looks at, "Vector3(x, y, z)".'
|
|
65
|
+
fov:
|
|
66
|
+
type: number
|
|
67
|
+
description: "Vertical field of view in degrees (1..179). Default: the bookmark's own, or 60."
|
|
68
|
+
label:
|
|
69
|
+
type: string
|
|
70
|
+
description: "Tile label (1-64 printable characters, no quotes, backslashes or $). Default: the bookmark name or 'shot N'."
|
|
71
|
+
additionalProperties: false
|
|
72
|
+
minItems: 1
|
|
73
|
+
maxItems: 12
|
|
74
|
+
description: 1-12 shots, each a bookmark_name OR camera_position + camera_look_at (+ fov), with an optional label. Rendered in this order, left to right, top to bottom.
|
|
75
|
+
view:
|
|
76
|
+
type: string
|
|
77
|
+
enum:
|
|
78
|
+
- beauty
|
|
79
|
+
- lighting
|
|
80
|
+
- unshaded
|
|
81
|
+
- normals
|
|
82
|
+
- overdraw
|
|
83
|
+
- wireframe
|
|
84
|
+
description: '"beauty" (default: real environment, lights, fog, tonemap), "lighting" (light only), "unshaded" (albedo/texture only), "normals" (world normals, x red y green z blue), "overdraw", "wireframe".'
|
|
85
|
+
compare_previous:
|
|
86
|
+
type: boolean
|
|
87
|
+
description: 'For bookmark shots: one row per bookmark of [previous render | now | difference map], with the share of changed pixels in the caption. The previous render is the bookmark''s slot in res://.summer/shots/; this render replaces it (it is the next baseline).'
|
|
88
|
+
update_previous:
|
|
89
|
+
type: boolean
|
|
90
|
+
description: 'Replace each bookmark''s previous image (its compare baseline) with this render without comparing. Default false: a sheet without compare_previous only creates a missing slot and never overwrites an existing baseline.'
|
|
91
|
+
max_size:
|
|
92
|
+
type: integer
|
|
93
|
+
minimum: 64
|
|
94
|
+
maximum: 4096
|
|
95
|
+
description: Longest edge of the returned JPEG in pixels (default 1536). Bigger costs more context; up to 4096 for detail work on a PC.
|
|
96
|
+
aspect:
|
|
97
|
+
type: number
|
|
98
|
+
description: Frame width/height (default 1.7778 = 16:9). Every tile uses it.
|
|
99
|
+
save_to:
|
|
100
|
+
type: string
|
|
101
|
+
description: Also write the returned image to res://.summer/shots/saved/<name>.jpg (1-64 of A-Z a-z 0-9 _ -; needs max_size <= 1024). Nothing is written without it, except one previous-image slot per rendered bookmark (created when missing; replaced only by compare_previous or update_previous).
|
|
102
|
+
required:
|
|
103
|
+
- shots
|
|
104
|
+
additionalProperties: false
|
|
105
|
+
authority:
|
|
106
|
+
filesystem: true
|
|
107
|
+
editor_mutation: false
|
|
108
|
+
network: false
|
|
109
|
+
credentials: false
|
|
110
|
+
publish: false
|