Export Scene

No screenshot

Share Scene

Rename Scene

💬 Chat
Claude
Default prompt 0 / 40,000
The instructions the AI gets with every Scene chat message (and community scene merges). Edit and Save to use your own. It's kept in this browser only.
Always added to a custom prompt (not editable)
GS adds this short technical section to a custom prompt so scene code keeps running however the prompt is edited. Updates to the default prompt don't reach a custom one; use Reset to default to get them.

				
Auto-fix prompt (read-only)

				
Theme chat prompt (read-only)

				
Ask for editor chrome restyles (colors, fonts, panels). The AI returns a theme JSON that applies live — then upload it from Community → Themes. Remember theme is off by default, so the editor starts from the default theme each visit.
Equirectangular image for lighting and optional background (.hdr, .exr, .jpg, .png).
W/A/S/D move · Q/E up/down · on Quest: left stick moves, right stick turns/up-down · right grip cycles modes (incl. off) · a stick over a window scrolls it.
Pick a camera mode (Orbit, Map, Trackball, Fly, First person or Off) in the Controls tab. Reset returns to the start view (4 m back at eye height; Orbit circles the scene origin).
Turns the whole scene around its origin so it lines up with the view you want. Drag the ball to tilt and turn, drag the ring to roll, click an axis end to face it. In VR: point at it, hold grip and turn the controller. Hold Shift or tick Snap for 15° steps.
Not rotated

Upload images or text files here to reuse as prompt context. In Chat, tap 📄 to pick from this library.

Generated VR program (active scene + chat blocks). Apply (or Live) hot reloads only the blocks you changed and keeps positions, scores and other state; Full reset rebuilds everything from scratch.

Loading a scene replaces the current one, chat history included.

Restyle the editor in Chat → Theme, then upload the current theme here to share it.
OrbitControls, around the scene origin. Left-drag rotate · right-drag or Shift/Ctrl/⌘ + left-drag pan · wheel or middle-drag zoom · ←↑→↓ pan · Shift/Ctrl/⌘ + arrows rotate. Touch: one finger rotates, two fingers zoom and pan.
Keys work unless you are typing in a text field. Reset Camera View (Env tab) returns to the default view.
Xbox Series X|S, Xbox One, PlayStation and other USB or Bluetooth pads. The sticks drive the selected control: Orbit and Map: right stick orbits, left stick pans (Orbit: up/down zooms), LT/RT zoom out/in · First person: left stick walks, right stick looks · Fly: left stick moves, right stick looks, LB/RB down/up · Trackball: sticks not used · Y switches Orbit/First person · View resets the view. Press any button after connecting so the browser picks it up. Headset controllers in VR are separate and keep their own mapping.
Fixed keeps the windows where they open. Follow headset lets them catch up gently when you turn or walk away, staying upright in front of you. Also on the Environment panel in VR (Windows: Fixed / Follow head).
Desktop and phone only. In a headset, the thumbsticks still move you (see Environment → Navigation).
Shows advanced setup (permissions outside normal browser operation, developer tools), outlined in green. Saved in this browser.
These steps go outside normal browser use; only follow them if you know you need them.

Side-by-side VR180-style capture from the current view. Each eye is an equirectangular image covering the field of view you set (default 180°), composed left | right, with an IPD of 6.4 cm. Menus, controllers and other system objects are hidden.

00:00

Screenshots download as PNG (JPEG if very large). Recordings use WebM (VP9 or VP8) or MP4, at about 12 fps, so the live scene — and an active VR session — stay smooth. Recording in VR uses a separate renderer and does not end the headset session. On a phone, the file goes to the usual download or share sheet.

App version and headset options, moved here to keep the top of the window clear.

On a phone that doesn't support WebXR, Cardboard VR appears here.

Libraries this page loads for generated scenes. The AI is told which ones are on, and scene code can load any of them on demand with await gsRequire('name').
Open in editor