Skip to content
Back to skills

Assemble Scene

ASecurity

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

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
ai-agentsreact

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add playcanvas/skills --skill assemble-scene --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Assemble Scene?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Assemble Scene
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/playcanvas-assemble-scene/badge)](https://www.skillsdirectory.com/skills/playcanvas-assemble-scene)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: assemble-scene
description: Use when composing PlayCanvas entity hierarchies from models, colliders, rigid bodies, and scripts, so each object has one semantic root and clear lifecycle.
---

# 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](references/direct-engine.md),
[React](references/react.md), or [Web Components](references/web-components.md).

Files in this skill

  • SKILL.md3.2 KB
  • references/direct-engine.md439 B
  • references/react.md1017 B
  • references/web-components.md892 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.