← ClaudeAtlas

build-applisted

Use when creating or restructuring a PlayCanvas application with the direct Engine API, @playcanvas/react, or @playcanvas/web-components to choose the active authoring surface and apply its bootstrap, lifecycle, ownership, asset-loading, and Engine interop patterns.
playcanvas/skills · ★ 15 · Web & Frontend · score 80
Install: claude install-skill playcanvas/skills
# Build an Engine application Read `package.json` and the application entry point before changing its structure. Choose the authoring surface from the code being edited: - read [references/react.md](references/react.md) for `@playcanvas/react` imports and JSX; - read [references/web-components.md](references/web-components.md) for `pc-*` elements or `@playcanvas/web-components` imports; - read [references/direct-engine.md](references/direct-engine.md) for direct `playcanvas` bootstrap code without a wrapper-owned lifecycle. Installed dependencies alone are insufficient when a project contains more than one surface. Preserve the surface that owns the current entry point and lifecycle. ## Render at an intentional density PlayCanvas defaults `graphicsDevice.maxPixelRatio` to 1 for predictable fill-rate cost. In a quality-oriented browser app, set it deliberately after the application exists and before its initial automatic resize; `Math.min(window.devicePixelRatio, 2)` is a practical high-DPI starting point. Keep 1 only as a measured performance decision, and resize the canvas again after changing the value. Verify the real backbuffer in a browser: for automatic resolution, `canvas.width / canvas.clientWidth` and the height ratio should match the chosen pixel ratio. CSS dimensions and a screenshot filepath do not prove rendering density. For every surface: - verify version-sensitive APIs against installed declarations or source; - keep one owner for application creat