# PlayCanvas Developer Documentation > PlayCanvas is an open-source WebGL/WebGPU 3D engine for building games, configurators, and interactive 3D experiences that run in any browser. It can be used via the browser-based PlayCanvas Editor, as a standalone engine from npm/CDN, through React components, or through Web Components. This file is a structured overview of the PlayCanvas developer documentation. Complete documentation content: https://developer.playcanvas.com/llms-full.txt Full API reference: https://api.playcanvas.com Base URL: https://developer.playcanvas.com Engine Version: 2.19.6 Total Documents: 452 Generated: 2026-06-12 ## Instructions for Large Language Models When generating PlayCanvas code, follow these guidelines: ### 1. Identify Which of the Four Workflows the User Is In PlayCanvas is used in four distinct ways. Do not mix patterns between them: 1. **PlayCanvas Editor** (browser-based editor at https://playcanvas.com): gameplay code is written as scripts attached to entities. See https://developer.playcanvas.com/user-manual/editor/ 2. **Engine only** (code-first): `npm install playcanvas` or load from a CDN, then build the scene programmatically. See https://developer.playcanvas.com/user-manual/engine/ 3. **React**: `npm install @playcanvas/react playcanvas` for declarative scenes in JSX. See https://developer.playcanvas.com/user-manual/react/ 4. **Web Components**: `npm install playcanvas @playcanvas/web-components` for declarative scenes in plain HTML. See https://developer.playcanvas.com/user-manual/web-components/ ### 2. Editor Scripting: ESM Scripts vs Classic Scripts There are two script formats. ESM scripts are the modern, recommended format. Never blend the two syntaxes in one file. WRONG - mixing classic and ESM patterns: ```javascript import { Script } from 'playcanvas'; export class Rotate extends Script { // WRONG: classic-style attribute declaration does not exist on ESM scripts static attributes = { speed: { type: 'number', default: 10 } }; initialize() { // WRONG: classic 'attr:' change events are NOT supported by ESM scripts this.on('attr:speed', () => {}); } } ``` CORRECT - ESM script (file extension MUST be `.mjs` for the Editor to recognize it): ```javascript import { Script } from 'playcanvas'; export class Rotate extends Script { static scriptName = 'rotate'; /** @attribute */ speed = 10; initialize() { // setup } update(dt) { this.entity.rotate(0, this.speed * dt, 0); } } ``` CORRECT - classic script (legacy but fully supported, plain `.js` files): ```javascript var Rotate = pc.createScript('rotate'); Rotate.attributes.add('speed', { type: 'number', default: 10 }); Rotate.prototype.initialize = function () { // setup }; Rotate.prototype.update = function (dt) { this.entity.rotate(0, this.speed * dt, 0); }; ``` Key rules: - ESM scripts require the `.mjs` file extension and a `static scriptName` property. - ESM script attributes are class fields tagged with a `/** @attribute */` JSDoc comment, not `attributes.add()`. - ESM scripts do not support classic `attr:[name]` change events. ### 3. Engine-Only Usage (npm or CDN) CORRECT - ES Modules with an import map (no build step): ```html ``` Or with a bundler: `npm install playcanvas` then `import * as pc from 'playcanvas'`. ### 4. React Usage ```jsx import { Application, Entity } from '@playcanvas/react'; import { Camera, Light, Render } from '@playcanvas/react/components'; const App = () => ( ); ``` Hooks (e.g. `useModel`, `useEnvAtlas`) are imported from `@playcanvas/react/hooks`. ### 5. Web Components Usage ```html ``` Custom scripts attach to an entity via a `` element wrapping one `` element per script. ### 6. Versions If the metadata at the top of this file includes an Engine Version line, generate code against that release. PlayCanvas Engine 2.x is the current major version; prefer current API names from https://api.playcanvas.com/engine/ over deprecated 1.x-era patterns. ## Recommended Entry Points - [Getting Started](https://developer.playcanvas.com/user-manual/getting-started/): Learn the platform, make a first project, and find your workflow. - [PlayCanvas Editor](https://developer.playcanvas.com/user-manual/editor/): The collaborative browser-based editor for building scenes, assets, and games. - [PlayCanvas Engine](https://developer.playcanvas.com/user-manual/engine/): Using the open-source engine standalone from npm or a CDN. - [PlayCanvas React](https://developer.playcanvas.com/user-manual/react/): Declarative 3D scenes with @playcanvas/react components and hooks. - [Web Components](https://developer.playcanvas.com/user-manual/web-components/): Declarative 3D scenes in plain HTML with @playcanvas/web-components. - [Scripting](https://developer.playcanvas.com/user-manual/scripting/): Script lifecycle, attributes, events, and the ESM vs classic script formats. - [Gaussian Splatting](https://developer.playcanvas.com/user-manual/gaussian-splatting/): Rendering 3D Gaussian splats, formats, and building splat applications. - [Graphics](https://developer.playcanvas.com/user-manual/graphics/): Cameras, lighting, materials, shaders, and post effects. - [Physics](https://developer.playcanvas.com/user-manual/physics/): Rigid bodies, collision, triggers, and forces with the ammo.js integration. - [XR (VR/AR)](https://developer.playcanvas.com/user-manual/xr/): WebXR-based virtual and augmented reality. ## Essential API The full API reference lives at https://api.playcanvas.com. Engine classes follow the pattern `https://api.playcanvas.com/engine/classes/.html`. ### Application & Scene - [AppBase](https://api.playcanvas.com/engine/classes/AppBase.html): Base application class - manages the update loop, component systems, and asset registry. - [Application](https://api.playcanvas.com/engine/classes/Application.html): Convenience application class for engine-only (standalone) projects. - [Entity](https://api.playcanvas.com/engine/classes/Entity.html): Scene-graph node that components attach to; provides transform methods. - [Scene](https://api.playcanvas.com/engine/classes/Scene.html): Scene-level rendering settings such as skybox, fog, and ambient light. ### Scripting - [Script](https://api.playcanvas.com/engine/classes/Script.html): Base class for ESM scripts with initialize/update lifecycle methods. - [ScriptComponent](https://api.playcanvas.com/engine/classes/ScriptComponent.html): Manages the scripts attached to an entity. ### Components - [CameraComponent](https://api.playcanvas.com/engine/classes/CameraComponent.html): Renders the scene from the entity's viewpoint. - [LightComponent](https://api.playcanvas.com/engine/classes/LightComponent.html): Directional, omni, or spot light source. - [RenderComponent](https://api.playcanvas.com/engine/classes/RenderComponent.html): Renders meshes, including primitive shapes and imported models. - [CollisionComponent](https://api.playcanvas.com/engine/classes/CollisionComponent.html): Collision volume for physics and trigger events. - [RigidBodyComponent](https://api.playcanvas.com/engine/classes/RigidBodyComponent.html): Static, dynamic, or kinematic physics body. - [AnimComponent](https://api.playcanvas.com/engine/classes/AnimComponent.html): Animation state graph playback and blending. - [ScreenComponent](https://api.playcanvas.com/engine/classes/ScreenComponent.html): Root of a 2D screen-space or world-space UI hierarchy. - [ElementComponent](https://api.playcanvas.com/engine/classes/ElementComponent.html): UI image, text, or group element. - [SoundComponent](https://api.playcanvas.com/engine/classes/SoundComponent.html): Positional and non-positional audio playback. - [GSplatComponent](https://api.playcanvas.com/engine/classes/GSplatComponent.html): Renders 3D Gaussian splats. ### Graphics & Assets - [StandardMaterial](https://api.playcanvas.com/engine/classes/StandardMaterial.html): The default PBR material with diffuse, metalness, gloss, and emissive channels. - [Texture](https://api.playcanvas.com/engine/classes/Texture.html): GPU texture resource. - [GraphicsDevice](https://api.playcanvas.com/engine/classes/GraphicsDevice.html): WebGL/WebGPU rendering interface. - [Asset](https://api.playcanvas.com/engine/classes/Asset.html): A reference to a loadable resource such as a model, texture, or audio file. - [AssetRegistry](https://api.playcanvas.com/engine/classes/AssetRegistry.html): Loads and looks up assets at runtime (available as app.assets). ### Math - [Vec3](https://api.playcanvas.com/engine/classes/Vec3.html): 3-dimensional vector. - [Quat](https://api.playcanvas.com/engine/classes/Quat.html): Quaternion rotation. - [Color](https://api.playcanvas.com/engine/classes/Color.html): RGBA color. ### Input - [Keyboard](https://api.playcanvas.com/engine/classes/Keyboard.html): Keyboard input (available as app.keyboard). - [Mouse](https://api.playcanvas.com/engine/classes/Mouse.html): Mouse input (available as app.mouse). ### Other API References - [Engine API](https://api.playcanvas.com/engine/): Full engine reference - rendering, physics, animation, sound, XR. - [Editor API](https://api.playcanvas.com/editor/): Scripting the PlayCanvas Editor itself. - [Web Components API](https://api.playcanvas.com/web-components/): Custom element reference. - [PCUI](https://api.playcanvas.com/pcui/) / [PCUI Graph](https://api.playcanvas.com/pcui-graph/): UI component library for tools and node-based editors. - [Observer](https://api.playcanvas.com/observer/): Reactive data observation and binding. - [SplatTransform](https://api.playcanvas.com/splat-transform/): Library and CLI for converting and editing Gaussian splats. ## User Manual - [Welcome](https://developer.playcanvas.com/user-manual/): PlayCanvas developer documentation covering the Editor, Engine API, scripting, graphics, physics, XR, and more. ### Getting Started - [Getting Started](https://developer.playcanvas.com/user-manual/getting-started/): Choose the right PlayCanvas product for you -- Engine, Editor, React, or Web Components -- and start building interactive 3D web apps. - [Join the PlayCanvas Community](https://developer.playcanvas.com/user-manual/getting-started/community/): Connect with PlayCanvas developers on Discord, the Forum, Reddit, X, and LinkedIn for help, news, and inspiration. - [Made with PlayCanvas](https://developer.playcanvas.com/user-manual/getting-started/made-with-playcanvas/): Showcase of games and interactive experiences built with PlayCanvas by developers around the world. - [Open Source Mission](https://developer.playcanvas.com/user-manual/getting-started/open-source/): Learn about PlayCanvas open source projects on GitHub and how to contribute code, report bugs, and support the community. ### Engine - [PlayCanvas Engine](https://developer.playcanvas.com/user-manual/engine/): Open source JavaScript/TypeScript 3D engine published on npm with full TypeScript declarations and comprehensive examples. - [Engine Migrations](https://developer.playcanvas.com/user-manual/engine/migrations/): Breaking changes and migration instructions for each major PlayCanvas Engine release. - [Running the Engine in Node.js](https://developer.playcanvas.com/user-manual/engine/running-in-node/): Use the PlayCanvas Engine server-side in Node.js for multiplayer servers, asset processing tools, and unit testing. - [Using the Engine Standalone](https://developer.playcanvas.com/user-manual/engine/standalone/): Build PlayCanvas applications without the Editor using npm, a CDN, or a direct script include. - [Supported Browsers](https://developer.playcanvas.com/user-manual/engine/supported-browsers/): Minimum browser versions required for PlayCanvas including Chrome, Safari, Firefox, Edge, and Opera with WebGL 2.0 and WebGPU support. ### Editor - [PlayCanvas Editor](https://developer.playcanvas.com/user-manual/editor/): PlayCanvas web Editor tour covering live testing, collaboration, version control, visual editing, scripting, asset workflow, and export to web or native. - [Assets](https://developer.playcanvas.com/user-manual/editor/assets/): Overview of PlayCanvas Editor asset management covering the Assets panel, uploads, import pipeline, inspectors, Asset Store, and dedicated viewers. - [Assets Panel](https://developer.playcanvas.com/user-manual/editor/assets/asset-panel/): Use the Assets Panel to organize folders, upload and create assets, open text assets in the Script Editor, and inspect properties. - [Asset Store](https://developer.playcanvas.com/user-manual/editor/assets/asset-store/): Browse the PlayCanvas Asset Store from the Editor, choose PlayCanvas Sketchfab or My Assets stores, search, filter, and import items into your project. - [Sketchfab](https://developer.playcanvas.com/user-manual/editor/assets/asset-store/sketchfab/): Connect your Sketchfab account to the Editor to authenticate and import models from the Sketchfab store without leaving PlayCanvas. - [Asset Import Pipeline](https://developer.playcanvas.com/user-manual/editor/assets/import-pipeline/): Configure the server-side asset import process that converts source files to runtime formats, including related asset search, preload defaults, and texture import options. - [Import Hierarchy](https://developer.playcanvas.com/user-manual/editor/assets/import-pipeline/import-hierarchy/): Enable Import Hierarchy so models import as editable entity trees with linked materials, textures, animations, and templates for scene composition. - [Uploading and Importing](https://developer.playcanvas.com/user-manual/editor/assets/importing/): Upload assets via drag and drop in the Editor, replace files by matching filename, and migrate older JSON model output to GLB in project settings. - [Asset Inspectors](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/): Reference for asset Inspector panels including shared header fields like preload and exclude plus links to each asset type inspector page. - [Animation](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/animation/): Preview animations on templates or models from the asset inspector, explore graph previews, and tune experimental animation import quality settings. - [Audio](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/audio/): Audio asset inspector for browser-supported sound formats with duration metadata and built-in playback controls to audition clips before use. - [CSS](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/css/): CSS assets store stylesheet code editable from the Editor; the inspector shows a read-only preview with no extra configurable fields. - [Cubemap](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/cubemap/): Build six-face cubemap assets for skyboxes and reflections by importing images, creating assets in the panel, and assigning faces in the Inspector. - [Font](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/font/): Font assets from TTF and similar formats convert to SDF atlases; configure intensity, character presets, ranges, and regenerate after edits. - [GSplat](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/gsplat/): GSplat asset inspector summarizes PLY or SOG splat data including format, splat count, spherical harmonics bands, and axis-aligned bounds metadata. - [HTML](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/html/): HTML assets hold page or partial markup editable from the Editor; the inspector provides a read-only formatted preview without extra properties. - [JSON](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/json/): JSON assets store structured configuration or game data; the inspector shows syntax-formatted previews without additional editable properties. - [Material](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/material/): Material inspector reference for PBR settings from texture transforms through lighting response maps and rendering parameters in collapsible sections. - [Render](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/render/): Render asset inspector documents read-only mesh statistics, vertex attributes, compression, and links back to the source container GLB asset. - [Shader](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/shader/): Shader assets hold GLSL from new asset or upload; edit in the Script Editor and view a read-only code preview in the Inspector. - [Sprite](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/sprite/): Sprite inspector configures pixels per unit, render modes for simple sliced or tiled 9-slice behavior, and the backing texture atlas reference. - [Template](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/template/): Template prefab inspector shows an interactive draggable 3D preview of the hierarchy without editable fields beyond standard asset metadata. - [Text](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/text/): Text assets store plain strings such as dialogue or config; the inspector displays a read-only content preview with no specialist properties. - [Texture Atlas](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/texture-atlas/): Texture Atlas assets define named frames with rectangles pivots and borders atop a texture plus shared texture settings for sprite workflows. - [Texture](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/texture/): Covers how images import into texture assets, format conversions and POT resizing, and Inspector fields for filtering, wrapping, mipmaps, and preview. - [WASM Module](https://developer.playcanvas.com/user-manual/editor/assets/inspectors/wasm/): Wasm Module assets wire Emscripten binaries to matching glue and optional asm fallback scripts with naming requirements shown in the Inspector. - [Asset Viewers](https://developer.playcanvas.com/user-manual/editor/assets/viewers/): Open models and textures in separate viewer tabs to inspect hierarchies, morphs, animations, and texture details with the Model Viewer and Texture Tool. - [Editor API](https://developer.playcanvas.com/user-manual/editor/editor-api/): Beta Editor API examples using DevTools or Violentmonkey scripts to automate entities and extend UI atop the evolving open-source editor-api repository. - [Engine Compatibility](https://developer.playcanvas.com/user-manual/editor/engine-compatibility/): Engine V1 versus V2 coverage, switching with checkpoints, launcher toggles, and gamma tonemap viewport plus sRGB texture migration notes for scripts. - [Common Questions](https://developer.playcanvas.com/user-manual/editor/faq/): FAQ-style steps for adding components scripts materials lights cubemaps entities primitives cameras shaders and everyday PlayCanvas Editor setup questions. - [Getting Started](https://developer.playcanvas.com/user-manual/editor/getting-started/): Introduces the editor getting-started docs for newcomers who need a fast path into the PlayCanvas Editor workflow. - [The Editor Workflow](https://developer.playcanvas.com/user-manual/editor/getting-started/workflow/): Summarizes the end-to-end PlayCanvas workflow from importing assets and scene building through scripting to publishing your app. - [Your First App](https://developer.playcanvas.com/user-manual/editor/getting-started/your-first-app/): Walks through building a simple 3D PlayCanvas Editor project from a new scene to materials, scripts, movement, and publishing. - [Editor Interface](https://developer.playcanvas.com/user-manual/editor/interface/): Quick labeled map of the toolbar, hierarchy, inspector, viewport, and assets panel with links to deeper docs for each main Editor workspace region. - [Assets Panel](https://developer.playcanvas.com/user-manual/editor/interface/assets/): Assets panel guide to folders search filters drag-and-drop cross-project copy and reference checks that keep imported media discoverable across large projects. - [Hierarchy Panel](https://developer.playcanvas.com/user-manual/editor/interface/hierarchy/): Hierarchy techniques for smart search entity lifecycle reparent transforms duplication and cross-scene paste with asset rematching when folder paths align. - [Inspector Panel](https://developer.playcanvas.com/user-manual/editor/interface/inspector/): Inspector tips for entity and asset attributes covering gizmos, live runtime tweaks, typed copy paste, multiselect batches, and undo integration. - [Controls and Keyboard Shortcuts](https://developer.playcanvas.com/user-manual/editor/interface/keyboard-shortcuts/): Editor mouse camera controls, viewport modifier keys, and common accelerators such as launch duplicate transform gizmos frame selection and deletion shortcuts. - [Launch Page](https://developer.playcanvas.com/user-manual/editor/interface/launch-page/): Launch Page basics with Editor live-link refreshes dual-tab testing tips and loading the same preview URL on phones after signing in or scanning a QR code. - [Using a Custom Engine](https://developer.playcanvas.com/user-manual/editor/interface/launch-page/custom-engine/): Custom engine URLs for dev stable historic or forked builds including module versus UMD picks when blending ESM scripts with classic createScript projects. - [Loading Screen](https://developer.playcanvas.com/user-manual/editor/interface/launch-page/loading-screen/): Loading screen customization via generated or selected scripts that render DOM UI through application start including how to hide overlays once boot completes. - [Project Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/): Project Settings map for engine import physics rendering lightmaps batches launch localization network layers plus private editor panels opened from the cog. - [Asset Import Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/asset-import/): Configure default overwrite behavior and texture size limits for assets imported into the PlayCanvas Editor. - [Batch Group Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/batch-groups/): Create and configure Batch Groups to combine meshes into fewer draw calls for better rendering performance. - [Editor Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/editor/): Personal editor preference panels for grid snap zoom grab passes preview clip gamma tonemap fog icons locale chat alerts duplicates and lightmapper auto rebake. - [Engine Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/engine/): Choose which PlayCanvas Engine version to use when launching, publishing, or downloading your Editor project. - [Input Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/input/): Enable or disable keyboard, mouse, touch, and gamepad input handling in your PlayCanvas application. - [Launch Page Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/launch-page/): Configure browser features like resolution, fill mode, and transparent canvas for the Editor Launch page. - [Layers Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/layers/): Manage rendering layers that control which objects are drawn together and in what order. - [Lightmapping Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/lightmapping/): Lightmapping panel settings for global lightmap resolution multipliers bake modes filtering ambient bakes and occlusion tweaks stored per active project branch. - [Localization Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/localization/): Localization panel usage for registering JSON translation assets creating starter files and how keys map to UI strings before runtime language swap logic. - [Network Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/network/): Configure asset loading retry behavior and network timeout settings for your PlayCanvas application. - [Physics Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/physics/): Physics settings for installing Ammo from the store controlling global gravity on rigid bodies and understanding why simulation stays off without the library. - [Rendering Settings](https://developer.playcanvas.com/user-manual/editor/interface/settings/rendering/): Rendering Project Settings controlling sky clustered lights shadows exposure fog mesh sketch overlays and resolution defaults shared with everyone on branch. - [Toolbar](https://developer.playcanvas.com/user-manual/editor/interface/toolbar/): Toolbar buttons from menus and gizmos through snap focus history lightmapper code editor publish downloads community links help overlays and settings access. - [Viewport](https://developer.playcanvas.com/user-manual/editor/interface/viewport/): Use viewport cameras gizmos and render modes from wireframe to material debug views like albedo normals or emission to validate lighting before shipping. - [Projects](https://developer.playcanvas.com/user-manual/editor/projects/): Maps project administration topics from creation through dashboard settings teamwork dev logs exports and ownership transfers. - [Backup and Export](https://developer.playcanvas.com/user-manual/editor/projects/backup-and-export/): Compares forks exports scheduled downloads REST backups storage caps and restores while noting what exports omit from projects. - [Creating Projects](https://developer.playcanvas.com/user-manual/editor/projects/creating/): Creates projects from starter kits or forks walks privacy rules and explains duplicating projects for templates or backups. - [Project Dashboard](https://developer.playcanvas.com/user-manual/editor/projects/dashboard/): Tour of the project dashboard actions for editor launch dev log watch settings access and team hooks from the overview UI. - [Dev Logs](https://developer.playcanvas.com/user-manual/editor/projects/dev-logs/): Posts project updates previews publishing gating and discoverability across dashboard feeds and the public PlayCanvas feed. - [Downloading Projects](https://developer.playcanvas.com/user-manual/editor/projects/downloading/): Explains PlayCanvas project download formats for self-hosted apps, including static and npm package layouts. - [Ownership and Transfers](https://developer.playcanvas.com/user-manual/editor/projects/ownership-transfers/): Walks ownership transfer requests between users organizations and outlines owner-only controls deletion and access impacts. - [Project Settings](https://developer.playcanvas.com/user-manual/editor/projects/settings/): Adjusts branding artwork visibility descriptions domains and other metadata controlling how a project appears and behaves. - [Team Management](https://developer.playcanvas.com/user-manual/editor/projects/team-management/): Invites collaborators sets read write admin permissions and manages membership rules for shared PlayCanvas editor projects. - [Publishing](https://developer.playcanvas.com/user-manual/editor/publishing/): Maps PlayCanvas publishing paths across web browsers, mobile wrappers, desktop packaging, and playable ad networks. - [Desktop](https://developer.playcanvas.com/user-manual/editor/publishing/desktop/): Points to NW.js packaging to produce Windows macOS and Linux desktop executables from your PlayCanvas web application. - [Mobile](https://developer.playcanvas.com/user-manual/editor/publishing/mobile/): Introduces wrapping PlayCanvas web games into native store apps using Cordova, GoNative, or a local fullscreen WebView. - [Apache Cordova](https://developer.playcanvas.com/user-manual/editor/publishing/mobile/cordova/): Sets up a Cordova project, copies a PlayCanvas build into www, and covers iOS audio limits and PlayCanvas tooling links. - [GoNative](https://developer.playcanvas.com/user-manual/editor/publishing/mobile/gonative/): Describes using GoNative to generate a native WebView app from your hosted PlayCanvas URL plus plugin integrations. - [Playable Ads](https://developer.playcanvas.com/user-manual/editor/publishing/playable-ads/): Lists supported networks and links for exporting PlayCanvas projects as Facebook and Snapchat playable ads. - [Facebook Playable Ad](https://developer.playcanvas.com/user-manual/editor/publishing/playable-ads/fb-playable-ads/): Documents the REST API tool export settings, size budgeting, and checklists for Facebook single-file or zip playable ads. - [Snapchat Playable Ad](https://developer.playcanvas.com/user-manual/editor/publishing/playable-ads/snapchat-playable-ads/): Explains MRAID-based Snapchat exports, external asset layout, zip testing modes, and snapchat CTA wiring requirements. - [Web](https://developer.playcanvas.com/user-manual/editor/publishing/web/): Compares web publishing options like PlayCanvas hosting, self-hosting, and heyVR distribution. - [Communication with web pages](https://developer.playcanvas.com/user-manual/editor/publishing/web/communicating-webpage/): Patterns for letting a parent page script talk to PlayCanvas whether the app runs in an iframe or first-party HTML shell. - [Hosting using a CDN](https://developer.playcanvas.com/user-manual/editor/publishing/web/hosting-cdn/): Configures downloaded builds for CDN delivery using ASSET_PREFIX, index paths, file splits, and required CORS headers. - [Hosting on heyVR.io](https://developer.playcanvas.com/user-manual/editor/publishing/web/hosting-heyvr/): Covers uploading a self-hosted web zip to heyVR, review, and optional SDK features for WebXR monetization and engagement. - [PlayCanvas Hosting](https://developer.playcanvas.com/user-manual/editor/publishing/web/playcanvas-hosting/): Explains publishing builds to playcanvas.com, choosing primary builds, and configuring build options like minification and maps. - [Self-hosting for beginners](https://developer.playcanvas.com/user-manual/editor/publishing/web/self-hosting-for-beginners/): High-level beginner primer on client, server, and static pieces of web apps so self-hosted PlayCanvas builds make sense. - [Self-hosting](https://developer.playcanvas.com/user-manual/editor/publishing/web/self-hosting/): Shows how to embed a hosted build with iframes or download a zip and deploy static files on your own web server. - [Real-time Collaboration](https://developer.playcanvas.com/user-manual/editor/realtime-collaboration/): Collaboration UX for presence avatars, project chat, teammate camera frustums, hierarchy selection markers, and highlighted models picked by other users. - [Working with Scenes](https://developer.playcanvas.com/user-manual/editor/scenes/): Scenes hub explaining entities, components, and scene-wide settings, with links for managing scene files, component types, and runtime scene loading. - [Components](https://developer.playcanvas.com/user-manual/editor/scenes/components/): Explore PlayCanvas entity components that add behavior such as rendering, physics, audio, UI, and scripting to your scene. - [Anim](https://developer.playcanvas.com/user-manual/editor/scenes/components/anim/): PlayCanvas Anim component connects an anim state graph and animation assets to drive skeletal animation on an entity hierarchy. - [Animation (Legacy)](https://developer.playcanvas.com/user-manual/editor/scenes/components/animation/): PlayCanvas legacy Animation component (deprecated) assigns animation assets to a model; use the Anim component for state graphs. - [Audio Listener](https://developer.playcanvas.com/user-manual/editor/scenes/components/audiolistener/): PlayCanvas Audio Listener component sets the 3D listener position so positional sound from Sound components is heard relative to it. - [Button](https://developer.playcanvas.com/user-manual/editor/scenes/components/button/): PlayCanvas Button component builds UI buttons under Screen and Element with tint or sprite-change transitions and input hit areas. - [Camera](https://developer.playcanvas.com/user-manual/editor/scenes/components/camera/): PlayCanvas Camera component renders the scene from the entity with projection, clipping, layers, tonemapping, viewport, and grab passes. - [Collision](https://developer.playcanvas.com/user-manual/editor/scenes/components/collision/): PlayCanvas Collision component assigns physics or trigger volumes such as box, sphere, capsule, cone, cylinder, mesh, or compound shapes. - [Element](https://developer.playcanvas.com/user-manual/editor/scenes/components/element/): PlayCanvas Element component defines 2D UI group, image, or text elements with anchors, pivot, and sizing under a Screen hierarchy. - [GSplat](https://developer.playcanvas.com/user-manual/editor/scenes/components/gsplat/): PlayCanvas GSplat component renders a 3D Gaussian splat asset from the entity and chooses which render layers the splat appears on. - [Layout Child](https://developer.playcanvas.com/user-manual/editor/scenes/components/layoutchild/): PlayCanvas Layout Child component overrides Layout Group rules for one UI element with min or max sizes, fit proportions, or exclusion. - [Layout Group](https://developer.playcanvas.com/user-manual/editor/scenes/components/layoutgroup/): PlayCanvas Layout Group component auto-arranges child Element entities in horizontal or vertical layouts with padding, spacing, and wrap. - [Light](https://developer.playcanvas.com/user-manual/editor/scenes/components/light/): PlayCanvas Light component adds directional, omni, or spot lights with color, intensity, range, falloff, area shapes, and lightmap options. - [Model (Legacy)](https://developer.playcanvas.com/user-manual/editor/scenes/components/model/): PlayCanvas legacy Model component (deprecated) renders primitives or a single model asset; prefer the Render component for new work. - [Particle System](https://developer.playcanvas.com/user-manual/editor/scenes/components/particlesystem/): PlayCanvas Particle System component emits 3D particles with rates, lifetimes, looping, lighting, rendering modes, trails, and collisions. - [Render](https://developer.playcanvas.com/user-manual/editor/scenes/components/render/): PlayCanvas Render component draws mesh primitives or a render asset with materials, shadows, lightmaps, batching, layers, and skinning. - [Rigid Body](https://developer.playcanvas.com/user-manual/editor/scenes/components/rigidbody/): PlayCanvas Rigid Body component adds static, dynamic, or kinematic physics simulation to an entity when combined with a Collision shape. - [Screen](https://developer.playcanvas.com/user-manual/editor/scenes/components/screen/): PlayCanvas Screen component defines screen-space or world-space UI regions, resolution scaling, priority, and the root for Element children. - [Script](https://developer.playcanvas.com/user-manual/editor/scenes/components/script/): PlayCanvas Script component attaches JavaScript or TypeScript scripts to run on an entity for load, update, and custom gameplay logic. - [Scrollbar](https://developer.playcanvas.com/user-manual/editor/scenes/components/scrollbar/): PlayCanvas Scrollbar component provides a draggable handle Element that drives scroll position for an associated Scroll View component. - [Scroll View](https://developer.playcanvas.com/user-manual/editor/scenes/components/scrollview/): PlayCanvas Scroll View component creates a masked, inertial scrolling viewport for UI content with optional horizontal and vertical bars. - [Sound](https://developer.playcanvas.com/user-manual/editor/scenes/components/sound/): PlayCanvas Sound component plays one or more audio slots with volume, pitch, looping, and optional 3D distance falloff to listeners. - [Sprite](https://developer.playcanvas.com/user-manual/editor/scenes/components/sprite/): PlayCanvas Sprite component renders simple or animated sprite atlas frames with tint, opacity, 9-slice, batching, layers, and draw order. - [Loading Scenes](https://developer.playcanvas.com/user-manual/editor/scenes/loading-scenes/): Learn to call SceneRegistry changeScene and additive load APIs, split hierarchy versus settings loads, and detect completion with callbacks or events. - [Managing Scenes](https://developer.playcanvas.com/user-manual/editor/scenes/managing-scenes/): Use the Scenes dialog from the menu or toolbar to filter lists, create, duplicate, open, and delete scene files across your PlayCanvas project. - [Scripting](https://developer.playcanvas.com/user-manual/editor/scripting/): Surveys editor scripting tools such as script assets, import maps, the code editor, VS Code extension, hot reload, and load order. - [Code Editor](https://developer.playcanvas.com/user-manual/editor/scripting/code-editor/): Describes opening Monaco-based collaborative editing, file tabs, autocomplete, JSHint linting, shortcuts, and version control hooks. - [Hot Reloading](https://developer.playcanvas.com/user-manual/editor/scripting/hot-reloading/): Explains implementing swap to reload scripts live without full refresh and how to migrate listeners and state safely. - [Import Maps](https://developer.playcanvas.com/user-manual/editor/scripting/import-maps/): Creates editor import maps to alias ESM module specifiers, use CDN packages, and understand limits like single active map. - [Script Loading Order](https://developer.playcanvas.com/user-manual/editor/scripting/loading-order/): Contrasts ESM imports with classic preload ordering, drag-reorder UI, dynamic loads, and publish-time concatenation behavior. - [Managing Your Scripts](https://developer.playcanvas.com/user-manual/editor/scripting/managing-scripts/): Creates organizes imports and assigns script assets to entities with practical editor Asset panel and Script component steps. - [VS Code Extension](https://developer.playcanvas.com/user-manual/editor/scripting/vscode-extension/): Installs and uses the PlayCanvas VS Code extension for synced local editing, collaboration cues, and TypeScript-aware scripts. - [Templates](https://developer.playcanvas.com/user-manual/editor/templates/): Covers template creation instances overrides applying changes and breaking instances for reusable entity prefabs in the Editor. - [Override Diff View](https://developer.playcanvas.com/user-manual/editor/templates/diff/): Uses Override Diff View to inspect template overrides individually apply them to parent templates or revert unwanted changes. - [Nested Templates](https://developer.playcanvas.com/user-manual/editor/templates/nested/): Explains composing templates inside templates and how overrides propagate when you apply changes at different hierarchy levels. - [Troubleshooting](https://developer.playcanvas.com/user-manual/editor/troubleshooting/): Fix Editor versus Launcher brightness gaps under Engine V1 or V2 by reconciling gamma tone mapping on scene viewport and cameras plus sRGB texture audits. - [Version Control](https://developer.playcanvas.com/user-manual/editor/version-control/): Relates PlayCanvas checkpoints branches merges storage usage to familiar Git concepts and built-in collaborative workflows. - [Branch Workflows](https://developer.playcanvas.com/user-manual/editor/version-control/branch-workflows/): Illustrates common patterns like feature branches release trains and staging to prod for teams using PlayCanvas version control. - [Branches](https://developer.playcanvas.com/user-manual/editor/version-control/branches/): Documents main branch current branch creation favorites search closing deletion and collaborator expectations for branch lines. - [View Changes](https://developer.playcanvas.com/user-manual/editor/version-control/changes/): Opens read-only diff views between your live branch state and checkpoints before merges checkpoints or idle review. - [Checkpoints](https://developer.playcanvas.com/user-manual/editor/version-control/checkpoints/): Creates restores and hard-resets permanent snapshots explaining graph implications and what cannot be undone after hard reset. - [Graph View](https://developer.playcanvas.com/user-manual/editor/version-control/graph-view/): Navigates the expandable checkpoint graph comparing nodes restoring hard resetting and copying metadata from version history. - [Item History](https://developer.playcanvas.com/user-manual/editor/version-control/item-history/): Shows per-entity asset scene and settings checkpoint timelines available for items edited after the Item History rollout date. - [Merging and resolving conflicts](https://developer.playcanvas.com/user-manual/editor/version-control/merging/): Starts merges between checkpoints resolves conflicts in PlayCanvas merge tooling and covers checkpoint-first options safely. ### React - [PlayCanvas React](https://developer.playcanvas.com/user-manual/react/): Introduction to @playcanvas/react: declarative 3D in React, ECS alignment, documentation map, and links to guides and GitHub. - [API](https://developer.playcanvas.com/user-manual/react/api/): API reference for PlayCanvas React components and hooks - [``](https://developer.playcanvas.com/user-manual/react/api/align/): Documentation for the Align component - [``](https://developer.playcanvas.com/user-manual/react/api/anim/): Documentation for the Anim component - [``](https://developer.playcanvas.com/user-manual/react/api/application/): The `Application` component is the root component for any PlayCanvas React application. It initializes and manages the canvas and PlayCanvas application instance. - [``](https://developer.playcanvas.com/user-manual/react/api/camera/): Documentation for the Camera component - [``](https://developer.playcanvas.com/user-manual/react/api/collision/): Documentation for the Collision component - [``](https://developer.playcanvas.com/user-manual/react/api/entity/): The `Entity` component is the fundamental building block in PlayCanvas React applications. - [``](https://developer.playcanvas.com/user-manual/react/api/environment/): Documentation for the Environment component - [``](https://developer.playcanvas.com/user-manual/react/api/gltf/): Documentation for the Gltf component - [``](https://developer.playcanvas.com/user-manual/react/api/gsplat/): Documentation for the GSplat component - [Hooks](https://developer.playcanvas.com/user-manual/react/api/hooks/): React hooks for PlayCanvas integration - [`useAppEvent`](https://developer.playcanvas.com/user-manual/react/api/hooks/use-app-event/): Subscribe to PlayCanvas application events - [`useApp`](https://developer.playcanvas.com/user-manual/react/api/hooks/use-app/): Access the PlayCanvas Application instance - [Asset Hooks](https://developer.playcanvas.com/user-manual/react/api/hooks/use-asset/): Documentation for the Assets hook - [`useMaterial`](https://developer.playcanvas.com/user-manual/react/api/hooks/use-material/): Create and manage PlayCanvas materials - [`useParent`](https://developer.playcanvas.com/user-manual/react/api/hooks/use-parent/): Access the parent Entity from React context - [`usePhysics`](https://developer.playcanvas.com/user-manual/react/api/hooks/use-physics/): Access physics context and state - [``](https://developer.playcanvas.com/user-manual/react/api/light/): Documentation for the Light component - [``](https://developer.playcanvas.com/user-manual/react/api/modify/): Documentation for the Modify helpers - [``](https://developer.playcanvas.com/user-manual/react/api/render/): Documentation for the Render component - [``](https://developer.playcanvas.com/user-manual/react/api/rigidbody/): Documentation for the Rigidbody component - [`