# Scenery Documentation > Build interactive spatial AR experiences with Scenery. ## Table of Contents ### Guide - [Guide](/docs/guide.md): Start here with Scenery: what it is, how to create your first experience, the core concepts, where it runs, and where to go next. ### Getting Started - [What Is Scenery?](/docs/guide/what-is-scenery.md): Scenery is an Apple-native, no-code spatial creation suite for building and sharing high-quality AR experiences for mobile and Apple Vision Pro. - [What Makes It Different](/docs/guide/what-makes-different.md): What sets Scenery apart: native-app AR fidelity shared instantly through a link with no app install, plus a deep visual editor and scripting. - [Create Your First Experience](/docs/guide/first-experience.md): Create your first AR experience in Scenery: from the Create button through picking a template and tracking context to landing in the editor. ### Discover & Manage - [Experience Library](/docs/guide/discover.md): The Experiences tab is your Scenery library: create, organize into folders, share, edit, duplicate, and start your experiences, plus Discover. - [Asset Library & Folders](/docs/guide/asset-library.md): The Scenery asset library holds everything you can place in an experience – 3D models, images, video, audio, and more – organized in folders. - [Settings & Account](/docs/guide/settings.md): Manage your Scenery account and preferences: profile, the two sign-in methods, opening experiences by link, feedback, and account actions. ### Reference & Help - [Best Practices](/docs/guide/best-practices.md): How to build Scenery experiences that track reliably, run smoothly, and travel well across devices – organization, anchoring, asset budgets, and cross-platform tips. - [Compatibility](/docs/guide/compatibility.md): Where Scenery features work: build once and deploy to iPhone, iPad, Mac, Apple Vision Pro, and the web, with per-feature compatibility notes. - [Publishing & Sharing](/docs/guide/publishing.md): Publish and share Scenery experiences: every experience gets a shareable link, delivered via App Clip, the web, or a QR code by platform and plan. - [Keyboard Shortcuts](/docs/guide/keyboard-shortcuts.md): Keyboard shortcuts for the Scenery editor on Mac and iPad: app, editing, objects and selection, the UI builder, and video controls. - [Changelog](/docs/guide/changelog.md) - [FAQ](/docs/guide/faq.md): Answers to common Scenery questions: supported file formats, sharing and links, branding, plans, and migrating from Adobe Aero. ### Editor Basics - [Editor Overview](/docs/editor/overview.md): A tour of the Scenery editor: the canvas, the hierarchy and selection, viewport tools, the bottom panel, and sending a preview to devices. ### Core Concepts - [Experiences, Scenes & Objects](/docs/editor/concepts.md): The core concepts in Scenery and how they nest: experiences, scenes, objects, containers, and the representations that hold their visual content. - [Tracking Contexts](/docs/editor/tracking-contexts.md): Tracking contexts decide how a Scenery experience anchors to the world: world tracking, geo-location, image tracking, and face tracking. ### Objects & Appearance - [Adding Content to a Scene](/docs/editor/adding-content.md): Add content to a Scenery scene: insert 3D models, media, primitives, user interface, and portals, then anchor and place each object. - [Anchors](/docs/editor/anchors.md): Anchors decide where and how Scenery content attaches to the real world: planes, images, faces, camera, hands, and per-device overrides. - [Asset Appearances](/docs/editor/asset-appearances.md): Control how an object looks in Scenery: transform and alignment, lighting and shadows, materials, reveal animations, and the hover effect. - [Asset Properties](/docs/editor/asset-properties.md): Set how an object behaves in Scenery: visibility, discovery guidance, audio and haptics, drag/rotate/resize gestures, and physics. - [Materials](/docs/editor/materials.md): Create custom materials in Scenery and apply them per object: unlit, video, occlusion, custom shaders, and MaterialX surfaces. - [Post-FX](/docs/editor/post-fx.md): Add post-processing effects to a Scenery scene: filters and custom shaders that change the look of the whole rendered camera view. ### Interactivity - [Events & Triggers](/docs/editor/triggers.md): Events and triggers make a Scenery experience interactive: choose when something happens with tap, proximity, schedule, load, and more. - [Actions](/docs/editor/actions.md): Actions are what happens when a Scenery event fires: add, order, and combine actions on an object or scene to build interactivity. #### Actions - [Scene Content](/editor/actions/scene-content.md): Scenery actions that bring objects into a scene, take them out, or show and hide them at runtime. - [Action Ordering](/editor/actions/action-ordering.md): Control how a Scenery event's actions run: sequence, group, delay, randomize, and branch with conditions to build complex interactivity. - [Animations & Appearance](/editor/actions/animations-appearance.md): Scenery actions that move, animate, and restyle objects: transforms, animations, opacity, and blend-shape weights. - [Audio & Haptics](/editor/actions/audio-haptics.md): Scenery actions for sound and touch: play spatial or ambient audio, control volume and playback, and trigger haptic feedback. - [Video](/editor/actions/video.md): Scenery actions for video playback on an object: toggle play and pause, and seek to a timestamp at runtime. - [Physics](/editor/actions/physics.md): Scenery actions that drive physics: apply impulses and angular impulses to push and spin objects, and reset physics transforms. - [Experience](/editor/actions/experience.md): Scenery actions that affect the whole experience: change scenes, set and modify variables, control playback, and open links. - [Dynamic Scene Adjustments](/editor/actions/dynamic-scene-adjustments.md): Scenery actions for reusable interactivity: trigger custom events and toggle an object's drag, rotate, and resize gestures. - [Developer](/editor/actions/developer.md): Developer actions in Scenery: run scripts and log to the console for debugging and custom logic. ### Scene & Experience - [Scene Settings](/docs/editor/scene-settings.md): Settings that apply to a whole Scenery scene: lighting and rendering, meshing and occlusion, physics, draw-order groups, and localization. - [Experience Settings](/docs/editor/experience-settings.md): Settings for a whole Scenery experience: availability, sharing and delivery, presentation mode, branding, and platform options. - [Environments & Lighting](/docs/editor/environments-lighting.md): Light your Scenery scene and set its background: lighting presets, image-based lighting, environment texturing, and immersion modes. ### Scripting - [Scripting](/docs/scripting.md) ### Guides - [Getting Started](/docs/scripting/guide/getting-started.md): Get started with Scenery scripting: attach JavaScript to events, find and modify objects, handle rotations in radians, and debug in the console. - [Events](/docs/scripting/guide/events.md): Scripting events in Scenery: triggers, event data, and the render loop – run JavaScript when taps, appearances, frames, and other events fire. - [Vectors & Transforms](/docs/scripting/guide/vectors-transforms.md): A beginner-friendly tour of the Vector3, Rotation, and Transform helpers – what dot and cross products, normalize, lerp, and world/local conversion are actually for in AR. - [Gestures & Interactions](/docs/scripting/guide/gestures.md) - [User Interface](/docs/scripting/guide/user-interface.md) - [Materials](/docs/scripting/guide/materials.md): Create and apply materials from Scenery scripts: build PBR, unlit, and other surfaces and assign them to entities at runtime in JavaScript. - [Mesh Instancing](/docs/scripting/guide/instancing.md) - [Paths & Splines](/docs/scripting/guide/paths.md) - [Location](/docs/scripting/guide/location.md) - [Tracking](/docs/scripting/guide/tracking.md) - [Compute Kernels](/docs/scripting/guide/compute.md): Run GPU compute kernels from Scenery scripts: Metal shading-language kernels with buffer and texture bindings for dynamic mesh and texture work. - [Feature detection](/docs/scripting/guide/feature-detection.md): Detect platform capabilities in Scenery scripts: check environment.features before using compute, networking, and other optional APIs. - [Examples](/docs/scripting/guide/examples.md): Ready-to-paste Scenery scripting examples: rotation, entity lookup and hierarchy, animation, HTTP requests, materials, and more. - [Changelog](/docs/scripting/guide/changelog.md) - [Migration Guide](/docs/scripting/guide/migration.md) ### API Reference - [API Reference](/docs/scripting/api.md) ### Math & Geometry - [Vector2](/docs/scripting/api/vector2.md): Vector2 – 2D vector for screen coordinates, UV mapping, and 2D math - [Vector3](/docs/scripting/api/vector3.md): Vector3 – 3D vector for positions, directions, and scales - [Vector4](/docs/scripting/api/vector4.md): Vector4 – 4D vector for quaternions, colors, and homogeneous coordinates - [Rotation](/docs/scripting/api/rotation.md): Rotation – Rotation represented as a quaternion - [Transform](/docs/scripting/api/transform.md): Transform – 4x4 transformation matrix representing position, rotation, and scale - [BoundingBox](/docs/scripting/api/boundingbox.md): BoundingBox – Axis-aligned bounding box for collision and visibility testing - [Ray](/docs/scripting/api/ray.md): Ray – A ray with origin and direction, useful for raycasting - [Color](/docs/scripting/api/color.md): Color – RGBA color with components in 0-1 range - [Path](/docs/scripting/api/path.md): Path – Runtime path handle returned by scene.createPath(...). Read-only spline queries; consumed by entity.followPath(...). Not persisted (v1). - [GeoCoordinate](/docs/scripting/api/geocoordinate.md): GeoCoordinate – A geographic coordinate. Construct one for a point of interest, or receive a live fix from environment.location.current() (which additio… ### Scene & Objects - [Scene](/docs/scripting/api/scene.md): Scene API reference for Scenery scripting: methods, properties, and examples. - [ObjectEntity](/docs/scripting/api/objectentity.md): ObjectEntity – Entity in the scene - [RepresentationEntity](/docs/scripting/api/representationentity.md): RepresentationEntity – Visual representation of an entity (model, shape, etc.) - [Entity](/docs/scripting/api/entity.md): Entity – Generic entity within a model hierarchy (bones, groups, nested models) - [Experience](/docs/scripting/api/experience.md): Experience API reference for Scenery scripting: methods, properties, and examples. - [Environment](/docs/scripting/api/environment.md): Environment API reference for Scenery scripting: methods, properties, and examples. - [EnvironmentFeatures](/docs/scripting/api/environmentfeatures.md): EnvironmentFeatures – Capability registry exposed at environment.features. - [Location](/docs/scripting/api/location.md): Location – The user's device location, exposed to scripting as environment.location. Coarse reads ride the base grant; precise accuracy is an explicit o… - [AnchorData](/docs/scripting/api/anchordata.md): AnchorData API reference for Scenery scripting: methods, properties, and examples. - [CollisionCastHit](/docs/scripting/api/collisioncasthit.md): CollisionCastHit – Result from scene.raycast() when ray intersects an entity or scene mesh - [ARRaycastResult](/docs/scripting/api/arraycastresult.md): ARRaycastResult – Result from scene.raycastAR() when ray intersects real-world surfaces - [Kernel](/docs/scripting/api/kernel.md): Kernel – Opaque handle to a compiled GPU compute kernel. Returned by Kernel.fromSource(...) / Kernel.fromAsset(...). Two dispatch entry points: kernel.r… - [Texture](/docs/scripting/api/texture.md): Texture – A GPU texture created and managed at runtime. Construct one from an image or video source (Texture.image(...), Texture.video(...)), the live c… - [TextureBinding](/docs/scripting/api/texturebinding.md): TextureBinding – Marker token returned by texture.read / texture.write. Carries the backing texture and the role so dispatch knows whether to bind the t… - [Buffer](/docs/scripting/api/buffer.md): Buffer – Raw GPU buffer wrapping a typed scratch region for compute kernels. Use for things meshes + textures don't model: atomic counters, lookup table… ### User Interface - [UIView](/docs/scripting/api/uiview.md): UIView – A view node inside a UI panel. ### Object Creation - [Anchor](/docs/scripting/api/anchor.md): Anchor – Anchor types for object placement - [ObjectTraits](/docs/scripting/api/objecttraits.md): ObjectTraits – Builder object passed to the compatibility-only .traits(t => …) callback. New code should skip this entirely and use the direct descripto… - [ObjectDescriptor](/docs/scripting/api/objectdescriptor.md): ObjectDescriptor – Descriptor for creating scene objects dynamically - [Material](/docs/scripting/api/material.md): Material – Chainable builder for an inline material. Six kinds: unlit, pbr, occlusion, customShader, materialX, video. Use the matching factory (Materia… - [Mesh](/docs/scripting/api/mesh.md): Mesh – Scriptable dynamic mesh with CPU-driven vertex and index updates. - [Instances](/docs/scripting/api/instances.md): Instances – Instance-data handles for rep.setInstances(...) / entity.setInstances(...) – GPU mesh instancing draws one copy of a mesh per transform, far… - [Global Functions](/docs/scripting/api/functions.md) ### Audio - [AudioStream](/docs/scripting/api/audiostream.md): AudioStream – Streaming audio player for real-time audio playback Used for continuous audio streams like OpenAI Realtime API - [Microphone](/docs/scripting/api/microphone.md): Microphone – Microphone audio streaming Access via scene.microphone ### Networking - [HTTPClient](/docs/scripting/api/httpclient.md): HTTPClient – HTTP client for making network requests Supports GET, POST, and custom requests with authentication - [WebSocket](/docs/scripting/api/websocket.md): WebSocket – WebSocket connection for real-time communication - [WebSocketManager](/docs/scripting/api/websocketmanager.md): WebSocketManager – WebSocket connection manager Access via websocket.connect() ### Animations - [EntityAnimation](/docs/scripting/api/entityanimation.md): EntityAnimation – Entity animation factory - create animation descriptors for use with entity.play() - [ValueAnimation](/docs/scripting/api/valueanimation.md): ValueAnimation – Value animations with spring and curve timing ### Multi-user - [SharedActivity](/docs/scripting/api/sharedactivity.md): SharedActivity – Shared activity state for multi-user sessions (SharePlay, WebSocket, etc.) ### WebXR - [Scenery on the Web (WebXR)](/docs/webxr.md): Scenery on the web with the WebXR Viewer: open experiences in the browser with no install, plus what works, platform support, and publishing.