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.

Dynamic 2D lightingLighting
Nested transformsNested Transforms
Shader filtersFilters
Mesh effectsRope Mesh Effects

Feature Comparison

FeaturePixiJSWillow
LanguageJavaScript / TypeScriptGo
RuntimeBrowser (WebGL / WebGPU)Ebitengine: desktop, mobile, web, and more
Scene graphContainer / DisplayObject treeDisplay tree with typed nodes
Sprite batchingAutomaticAutomatic with atlas support
Camera / viewportManual or pixi-viewport pluginBuilt-in camera with follow and culling
Text renderingCanvas text, bitmap fonts, HTML textSDF + 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 / filtersGLSL filter systemKage shader filter chains
Input handlingEvent-based on display objectsHierarchical hit testing per node
Animationgsap or custom45+ built-in easing functions
UI componentsThird-party (pixi-ui)Willow UI (companion library)
Package size~150 KB min+gzipSingle binary; no runtime overhead
PlatformsAny modern browserWindows, macOS, Linux, WASM, mobile

Side by Side

Creating a Sprite

PixiJS
Willow

Nested Containers / Nodes

PixiJS
Willow

Handling Click / Tap Input

PixiJS
Willow

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