GET GOING
npm create pixi.js@latestor add it to an app: npm install pixi.js
TAKE THE TOUR
Each tab runs live beside the code that draws it.






import { Assets, Sprite } from 'pixi.js';
const texture = await Assets.load('bunny.png');
// one texture, so every bunny shares a batch
const bunnies = Array.from({ length: 300 }, () =>
app.stage.addChild(new Sprite(texture)),
);
app.ticker.add(({ lastTime }) => {
bunnies.forEach((bunny, i) => {
const hop = Math.sin(lastTime / 300 + i);
bunny.x = (i * 37) % app.screen.width;
bunny.y = 400 - Math.abs(hop) * 300;
});
});
Click to add 200 bunnies.Tap to add 200 bunnies.Move the pointer to pull the blob.Drag to pull the blob.Click a letter.Tap a letter.Click to shift the focus.Tap to shift the focus.
FEATURES


MeshRope, MeshPlane, PerspectiveMesh or geometry of your own, with shaders in GLSL and WGSL.
Sprite, AnimatedSprite for frame animation, TilingSprite for repeating patterns and NineSliceSprite for panels that scale.
Shapes, curves, holes, gradients and texture fills on the GPU. Import and export SVG.


Blur, colour matrix, displacement and noise are built in, with nearly 40 more in pixi-filters. Blend modes include screen, overlay and luminosity.
Text for rich styles, BitmapText for speed, HTMLText for markup and SplitText to animate each letter.
Mask with a sprite, a shape or a colour channel. Render any container into a texture, or cache it as one.
Pointer events that bubble like the DOM, with hit areas and cursors. Screen reader support is built in.
Assets loads textures, spritesheets, fonts, SVG, video and compressed textures, one by one or in bundles.
Ask for WebGPU and PixiJS falls back to WebGL where it isn't there. An experimental Canvas renderer covers the rest.
PERFORMANCE


ParticleContainerContainerEXAMPLES
Mesh
A full-screen quad running a ShaderToy-style shader.
Render texture
Brush strokes drawn into a texture reveal what's underneath.
Text
A custom filter gives a Text its outline, shadow and gradient.
Graphics
A shape redrawn every frame masks the scene.
Sprites
A thousand sprites, projected from 3D to 2D.
Rendering
Each fish's name tag draws on a layer above the pond's ripple filter.
Scaffold a project, load a texture and add it to the stage.