Skip to content
cccskills
FreePublished on GitHub

apply-conventions

Use when writing PlayCanvas Engine code touching transforms, cameras, lights, materials, meshes, bounds, or imports, to apply Engine conventions and avoid legacy APIs.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Engine conventions

Check version-sensitive APIs against installed playcanvas declarations.

Coordinates

  • Right-handed, +Y up, metres. entity.forward, cameras, and lookAt use -Z.
  • Directional and spot lights shine along local -Y, straight down by default. Aim them with setEulerAngles, not lookAt.
  • glTF models usually face +Z; record per-model yaw with calibrate-model.
  • Angle APIs take degrees in XYZ order. Keep pitch, yaw, and roll as app state; never feed getEulerAngles() back into setEulerAngles(). Interpolate with math.lerpAngle or Quat.slerp.
  • Use world setters on semantic roots and setLocal* below a parent. Never scale rigid-body roots or skinned bones.

Current APIs

  • render and anim components, not model and animation.
  • ESM class X extends Script with static scriptName, not createScript.
  • Mesh.fromGeometry(device, new BoxGeometry()), not createBox and the other create* helpers.
  • Named imports from playcanvas; shipped scripts only from playcanvas/scripts/esm/**.

Cameras

  • FOV is vertical, 45° by default. Check shipped camera scripts before writing controls (reuse-scripts).

Materials and bounds

  • StandardMaterial.useMetalness defaults to false; enable it before using metalness.
  • Call material.update() after property edits. Per-mesh values use meshInstance.setParameter() with no update or clone.
  • Clone shared materials, including imported ones, before editing them for some meshes.
  • setParameter uploads raw values; convert sRGB colours with Color#linear().
  • Back faces cull by default; counter-clockwise winding is the front face.
  • Entities have no aabb; union descendant meshInstance.aabb. If mesh.update() skips bounds, set mesh.aabb yourself, and expand it by any vertex-shader displacement.

Verify in the running app

Offline values cannot prove facing, poses, or placement. Read values from the running app with inspect-runtime, and judge visuals only from screenshots you have inspected. A saved file path is not evidence.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when adding visual effects to a PlayCanvas app, to choose between particle systems, shader chunks, runtime meshes, and post-processing.

The English summary is being prepared. Showing the original description.

playcanvas/skills28Updated Oct 13, 2026

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

The English summary is being prepared. Showing the original description.

playcanvas/skills28Updated Oct 13, 2026

Use when static PlayCanvas lighting, shadows, or ambient occlusion cost too much per frame and should be baked into lightmaps.

The English summary is being prepared. Showing the original description.

playcanvas/skills28Updated Oct 13, 2026

Use when creating or restructuring a PlayCanvas app with the Engine API, @playcanvas/react, or @playcanvas/web-components, covering bootstrap, input, resize, physics, update loop, UI, and lifecycle.

The English summary is being prepared. Showing the original description.

playcanvas/skills28Updated Oct 13, 2026

Use before repeatedly placing GLB models in PlayCanvas to record each asset's uniform scale, grounding offset, pivot compensation, and yaw once.

The English summary is being prepared. Showing the original description.

playcanvas/skills28Updated Oct 13, 2026

Use before playing, blending, or retargeting GLB animation clips in PlayCanvas, or when diagnosing T-pose, frozen playback, or binding failures.

The English summary is being prepared. Showing the original description.

playcanvas/skills28Updated Oct 13, 2026

See all skills by playcanvas

Report a problem with this skill