Frequently asked questions about Willow.
Willow is a 2D rendering framework for Go that sits on top of Ebitengine. It gives you a scene graph (display tree), sprite batching, cameras, text rendering, particles, shaders, input handling, and more. Think PixiJS or Starling, but for Go.
No. Willow is a rendering framework. It handles the visual layer: scene composition, draw ordering, batching, cameras, and input. It does not include physics, networking, asset pipelines, or audio. Those are either handled by Ebitengine directly or by other libraries. Willow focuses on doing one thing well. Read more about this design decision at Why Willow?
No. Willow wraps Ebitengine, it does not replace it. It uses Ebitengine's image types, game loop, and platform backend directly. You can mix Willow scene graph rendering with raw Ebitengine draw calls in the same project. If you already know Ebitengine, Willow adds structure on top of what you already have.
Ebitengine gives you a game loop and a draw surface. You handle everything else: transform hierarchies, draw ordering, batching, cameras, hit testing, text layout. Willow handles all of that for you through a scene graph. You add sprites and containers to a tree, set positions and properties, and Willow renders everything in the right order with automatic batching. Less boilerplate, same performance. See the full side-by-side comparison at Willow vs Ebitengine.
Yes. Willow's display tree is directly inspired by PixiJS and Starling. Containers, sprites, blend modes, filters, and parent-child transforms work the same way conceptually. The API is adapted for Go's type system and conventions, but the mental model carries over. See Willow vs PixiJS for a detailed concept mapping.
Everywhere Ebitengine runs: Windows, macOS, Linux, iOS, Android, and WebAssembly. One codebase, every platform.
Zero heap allocations per frame on the hot path. 10,000 sprites at 120+ FPS on desktop, 60+ FPS on mobile and WebAssembly. Static subtree caching delivers up to 125x speedups for content that does not change every frame. Rendering is automatically batched.
Yes. Willow works well for any 2D rendering: data visualization, creative coding, generative art, level editors, debug tools, desktop utilities. Anything that needs structured 2D graphics with good performance.
Yes. Willow is free and open source. Use it in personal and commercial projects. The core framework is and always will be free.
Run "go get github.com/devthicket/willow@latest" and follow the getting started guide in the documentation. You will have a window with a sprite on screen in under 10 lines of code.