What problem does it solve?
It removes the guesswork involved in setting up a PixiJS v8 Application correctly so your canvas, renderer, plugins, resizing, render loop, and teardown behave reliably.
Core Features & Use Cases
- Async setup with correct initialization order: Use
new Application() plus await app.init(options) so app.canvas, app.renderer, and app.screen are ready when you use them.
- Full configuration coverage: Configure renderer preference, resolution/DPI behavior (
autoDensity, resolution), background/clear settings, resize behavior (resizeTo), render loop control (autoStart, sharedTicker), and lifecycle.
- Plugin and extension support: Use built-in
ResizePlugin, TickerPlugin, optional CullerPlugin for performance culling, and author custom ApplicationPlugin extensions via ExtensionType.Application.
- Safe teardown and resource release: Cleanly stop and destroy via
app.stop() / app.destroy(...) including releaseGlobalResources to avoid stale textures and re-init flicker.
- Practical use case: Build a responsive PixiJS scene that scales to the browser/container, renders on a deterministic ticker, optionally culls off-screen display objects, and can be fully re-created (for example, when switching routes or themes) without memory/resource leaks.
Quick Start
Create a PixiJS v8 application by running: import { Application } from "pixi.js"; const app = new Application(); await app.init({ resizeTo: window, background: "#1099bb", antialias: true, preference: "webgl", autoDensity: true, resolution: window.devicePixelRatio }); document.body.appendChild(app.canvas);