skills/pixijs-coder/SKILL.md
Write, review, debug, or explain PixiJS v8 code: applications, scenes, rendering, assets, shaders, filters, particles, animations, and performance. Auto-triages Quick tasks like one object, feature, or API question, and Deep tasks like multi-system apps, custom renderers, shader pipelines, or performance audits. MUST use for any PixiJS request: app setup, textures, Graphics, sprites, filters, shaders, draw-call optimization, v7/v6 migration, WebGL/WebGPU issues, PixiJS, PIXI.Application, Container, Ticker, Assets.load, particle systems, RenderGroup, or help with a pixi app. Always use v8 APIs unless explicitly asked otherwise.
npx skillsauth add cuozg/oh-my-skills pixijs-coderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
PixiJS v8 specialist. Always use v8 APIs. Never use v6/v5/v7 patterns unless asked to explain migration.
Quick — Single-file: one component, one API question, one bug fix.
Deep — Multi-system: full scaffold, custom shader pipeline, performance audit, architecture design.
await app.init({...}) not new Application({...})'pixi.js', never from @pixi/app or subpackagesawait Assets.load(url) not Texture.from(url) for URLsTicker instance: app.ticker.add((ticker) => { ticker.deltaTime }).rect(0,0,w,h).fill(0xff0000) not beginFill/drawRect/endFillapp.canvas — not app.viewcontainer.label — not container.namecacheAsTexture(true) — not cacheAsBitmapnew BlurFilter({ blur: 8 }) not new BlurFilter(8, 4, 1, 5)DisplayObject — Container is the base classupdateTransform() — use this.onRender = () => {} insteadgetBounds().rectangle — getBounds() returns Bounds, access rect via .rectangleglobalpointermove — for move events outside bounds; pointermove only fires when over the objectSprite, Graphics, Mesh, Text cannot have children; only Container can| File | Load when... |
|------|-------------|
| references/app-and-scene.md | App setup, Container hierarchy, transforms |
| references/assets-and-textures.md | Assets.load, bundles, manifests, atlases |
| references/graphics.md | Graphics API, GraphicsContext, shapes, fills, strokes |
| references/events-and-interaction.md | eventMode, FederatedEvent, pointer/touch/keyboard |
| references/ticker-and-gameloop.md | Ticker, deltaTime, priorities, manual render |
| references/filters-and-effects.md | Built-in filters, custom GlFilter, pixi-filters |
| references/shaders-and-mesh.md | GlProgram, Mesh, MeshGeometry, uniforms |
| references/text.md | Text, BitmapText, HTMLText, TextStyle |
| references/particles.md | ParticleContainer, GPU particles |
| references/performance.md | Batching, RenderGroup, culling, object pooling |
| references/migration-v7-to-v8.md | Side-by-side v7→v8 API mapping |
| references/typescript.md | Typed Application, generic Container |
Quick: inline answer, one code block, 1–3 gotchas.
Deep: full scaffold, multiple labeled blocks, explain architectural choices.
// Minimal App Bootstrap
import { Application, Assets, Sprite } from 'pixi.js';
const app = new Application();
await app.init({ width: 800, height: 600, background: '#1a1a2e', preference: 'webgl' });
document.body.appendChild(app.canvas);
const texture = await Assets.load('/assets/hero.png');
const sprite = new Sprite(texture);
sprite.anchor.set(0.5);
sprite.position.set(app.screen.width / 2, app.screen.height / 2);
app.stage.addChild(sprite);
// Ticker Loop
app.ticker.add((ticker) => { sprite.rotation += 0.01 * ticker.deltaTime; });
// Graphics (v8 API)
import { Graphics } from 'pixi.js';
const g = new Graphics();
g.rect(0, 0, 100, 100).fill({ color: 0xff0000, alpha: 0.8 });
g.circle(50, 50, 30).stroke({ color: 0xffffff, width: 2 });
tools
Generate Unity raster image assets through Unity MCP: game sprites, item art, backgrounds, UI icons, portraits, concept images, transparent cutouts, image edits, upscales, background removal, and Unity scene or Game View screenshots. Use when a Unity project needs image files imported under Assets or screenshots captured from the editor. Do not use for meshes, audio, animation, materials, gameplay code, UI Toolkit layout, or generic non-Unity image generation.
tools
Create Unity technical solution documents from user requirements, feature ideas, bug goals, specs, or codebase problems. Use when the user asks for a technical approach, architecture, implementation strategy, solution options, feasibility analysis, system design, or "how should we build/fix this" for Unity runtime, Editor, tools, assets, data, UI, WebGL, SDKs, or production pipelines.
tools
Orchestrate Unity Editor via MCP (Model Context Protocol) tools and resources. Use when working with Unity projects through MCP for Unity - creating/modifying GameObjects, editing scripts, managing scenes, running tests, or any Unity Editor automation. Provides best practices, tool schemas, and workflow patterns for effective Unity-MCP integration.
development
Convert a spec document into an implementation TODO list in the same spec folder. U se when the user says goal-todo, todo from spec, generate tasks from spec, turn this spec into todos, create implementation checklist, extract tasks, or asks to read a Docs/Specs design doc and produce what must be implemented. Includes UI/UX review and codebase investigation before writing the checklist. Do not use for implementing the tasks, creating new goal files, writing test cases, or verifying completed work.