Willow vs PixiJS
PixiJS is the go-to 2D renderer for the web. Willow is a 2D rendering framework for Go and Ebitengine. Different ecosystems, similar problems. Here's how they compare.
Lighting
Nested Transforms
Filters
Rope Mesh EffectsFeature Comparison
| Feature | PixiJS | Willow |
|---|---|---|
| Language | JavaScript / TypeScript | Go |
| Runtime | Browser (WebGL / WebGPU) | Ebitengine: desktop, mobile, web, and more |
| Scene graph | Container / DisplayObject tree | Display tree with typed nodes |
| Sprite batching | Automatic | Automatic with atlas support |
| Camera / viewport | Manual or pixi-viewport plugin | Built-in camera with follow and culling |
| Text rendering | Canvas text, bitmap fonts, HTML text | SDF + bitmap with FontFamily API |
| Particles | @pixi/particle-emitter (plugin) | Built-in CPU particle emitters |
| Tile maps | @pixi/tilemap (plugin) | Built-in optimized tile map renderer |
| Shaders / filters | GLSL filter system | Kage shader filter chains |
| Input handling | Event-based on display objects | Hierarchical hit testing per node |
| Animation | gsap or custom | 45+ built-in easing functions |
| UI components | Third-party (pixi-ui) | Willow UI (companion library) |
| Package size | ~150 KB min+gzip | Single binary; no runtime overhead |
| Platforms | Any modern browser | Windows, macOS, Linux, WASM, mobile |
Side by Side
Creating a Sprite
Nested Containers / Nodes
Handling Click / Tap Input
Key Differences
PixiJS strengths
- Massive ecosystem; thousands of plugins, tutorials, and examples
- Runs in any browser with no install
- WebGPU and WebGL backends with automatic fallback
- Mature text rendering with HTML-like rich text
- Well-suited for web-first projects, ads, and interactive media
Willow strengths
- Native performance; compiles to a single binary with no runtime
- Go's type system catches bugs at compile time
- Built-in sprite batching, cameras, particles, and tile maps
- No garbage collection pressure from the rendering layer
- Designed for games first; not adapted from a general-purpose renderer
When to Choose What
Choose PixiJS when
- Building interactive web content, ads, or visualizations
- You need the JS/TS ecosystem and npm
- Your team already knows JavaScript
- You need DOM integration or HTML overlays
Choose Willow when
- You're building a game and want one codebase for desktop, mobile, and web (via WASM)
- You want native performance with a web export option
- You need predictable frame times without GC pauses
- You want rendering, UI, and game logic in one language with Go's type safety