Gizmos
Gizmos are things you place in Scape that do something. A Gizmo can be a switch, an instrument, a game piece, a light, or a tile that changes how players move.
The Scape SDK lets you define them in TypeScript. You describe state, actions and bounded presentation. Scape supplies permissions, persistence, rendering, sound output and authoritative movement.
A small definition, many possibilities
A project collects one or more defineObject definitions. Each placed instance has independent state. Actions update that state through a pure reducer; views and effects describe how the host presents the result.
| Capability | Start with |
|---|---|
| Shared state and buttons | Counter |
| Editor configuration and participants | Voting booth |
| State-driven light and a toggle | Lamp |
| Cosmetic arrival feedback | Pressure pad |
| Directional movement | Floor fan |
| Shared action feedback | Chime |
| Same-floor travel | Jump pad |
| World selection and navigation | World picking and navigation |
Start building
Use an exported development kit to work outside the Scape repository. Connect it to your private developer world, edit a definition, and see accepted changes in the world. Quickstart explains how to obtain and use the current kit.
The packages are experimental and unpublished. Local development updates do not publish a Gizmo to ordinary worlds or a marketplace.
The host boundary
Your code does not receive the DOM, raw Three.js scene, camera, shaders, audio context, network, credentials, or timers. Effects are declarative recipes, not unrestricted rendering callbacks. The uploaded-code host provides isolation; the SDK's local test runtime alone does not.
Gizmo actions do not run AI models. To connect an external model-driven participant, use the separate Agent API.
