Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add playcanvas/create-playcanvas --skill assemble-scenegit clone --depth 1 https://github.com/playcanvas/create-playcanvasWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/playcanvas/create-playcanvas/assemble-scene)<a href="https://agentmods.dev/skills/playcanvas/create-playcanvas/assemble-scene"><img src="https://agentmods.dev/badge/skills/playcanvas/create-playcanvas/assemble-scene.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00045 | $0.00644 |
| Opus 5 | $0.00023 | $0.00322 |
| Sonnet 5 | $0.00009 | $0.00129 |
| Haiku 4.5 | $0.00005 | $0.00064 |
Grade A, and why
assemble-scene scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- assemble-scene — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scene assembly
Represent one gameplay object with one named semantic root. Put gameplay position, heading, rigid-body, collision, and behavior on that root. Put calibrated render transforms below it.
Consume the existing tuning record from calibrate-model exactly once. If it is missing, stop and
calibrate the model; do not calculate or adjust asset tuning during assembly.
Assembly rules
- Name roots by gameplay role and use predictable names for repeated instances.
- Apply model calibration once inside the visual child; never reapply scale, grounding, or authored yaw during placement.
- Space neighbouring roots by their scaled footprints and pivot offsets from
calibrate-model, not by pivot position. A non-90° authored yaw rotates a footprint, so reserve its larger horizontal extent as a conservative radius. - Put rigid-body and collision components on the same root. Size colliders from measured bounds.
- Use local transforms below a parent and world transforms only for semantic roots.
- Keep UI, effects, cameras, and lights outside gameplay model hierarchies.
- Remove the root through its authoring surface's lifecycle. Unregister external events it owns.
- Do not scale rigid-body roots or skinned bones.
Prove placement
Declare intentional support, attachment, or containment relationships between roots. After a rendered frame, measure each relationship at the supported object's actual position. Use a mount point, collision ray, or geometry sample; use a support root's AABB maximum only when its top is flat across the full footprint. Record the signed contact gap: positive means floating and negative means penetration. A relationship name does not exempt the pair from this check.
Union descendant world meshInstance.aabb values for each semantic root and compare unrelated peer
roots. Any intersection with positive depth on X, Y, and Z beyond a small tolerance is an unresolved
placement failure: move the root from its calibrated footprint, or prove the apparent AABB overlap
is empty geometry from at least two materially different views. Never accept one model inside
another from a single screenshot.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 54 lines · 45 tokens per session scan A f0b4c8bb770f
assemble-scene is a skill published in the GitHub repository playcanvas/create-playcanvas (53 stars, last pushed 3d ago), licensed MIT. It adds 45 tokens to every session and 644 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
gameobject-component-destroy
Destroy one or more Components from a target GameObject. Missing (null) components are skipped — they cannot be destroyed. Use 'gameobject-find' and 'gameobject-component-get' to identify the components first.
unity-version-split
Split a C# file into Unity 6.5+ and pre-Unity 6.5 variants. Use when a file needs different implementations for different Unity versions due to API changes (e.g., EntityId vs int, GetEntityId vs GetInstanceID).
unity-addressables
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based).
playtest-report
Generates a structured playtest report template or analyzes existing playtest notes into a structured format. Use this to standardize playtest feedback collection and analysis.
unity-manual-component
Manually add, configure, reorder, and copy components on GameObjects using Unity Editor UI. For one-off Inspector workflows that do not need REST automation.
motion
How an agent turns a character mesh into a usable animated FBX — and how to judge whether the result is shippable.