playcanvas/skills

assemble-scene

Use when composing PlayCanvas entity hierarchies from models, colliders, rigid bodies, and scripts, so each object has one semantic root and clear lifecycle.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/playcanvas/skills --skill assemble-scene

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Scene assembly

Each scene object has one named root. Put position, heading, rigidbody, collision, and scripts on the root, and the calibrated visual from calibrate-model below it. Apply calibration once; if the tuning record is missing, calibrate first.

  • Name roots by role, with predictable names for repeated instances.
  • Size colliders from measured bounds and keep them aligned with render bounds.
  • Space roots by the scaled footprint in the tuning record, not by pivot position. A non-90° yaw

rotates the footprint, so reserve its larger horizontal extent.

  • Keep UI, effects, cameras, and lights outside model hierarchies.
  • Remove the root through its surface's lifecycle and unregister events it owns.
  • Rigid bodies need Ammo loaded first (build-app).

Check placement

After a rendered frame, measure each support or attachment at the object's actual position, using a mount point, raycast, or geometry sample read through inspect-runtime. A positive gap floats; a negative gap penetrates. Overlapping world AABBs between unrelated roots are a failure unless two different views prove the overlap is empty space.

Read only the reference matching the code: direct Engine, React, or Web Components.

Related by task

from this repository

More skills

All skills