๐Ÿ““ Luluka: Ebiten shader tool

May 15, 2026 ยท View on GitHub

Luluka lets you view and tweak shaders made with Kage for Ebiten.

luluka

Installation

Install luluka using the following command:

go install github.com/Tsukumogami-Software/luluka@v1.0.0

Usage

Launch a shader file by passing it as the first argument to luluka:

luluka sample/transition.kage

Pass textures using -i (max 4):

luluka sample/transition.kage -i image.png -i image2.png

Pass uniform variables using -u:

luluka sample/transition.kage -i image.png -i image2.png -u Steepness:80 -u Speed:0.08

Vectors, array and matrices are supported using their flattened index:

luluka sample/transition.kage -i image2.png -i image.png -u Steepness:80 -u Seed.0:15 -u Seed.1:100 -u Seed.2:5000 -u Seed.3:5000 -u Speed:0.08

The following uniforms are automatically given passed by Luluka:

  • Time: the number of seconds since the program start
  • Cursor: the relative cursor position
  • MouseButtons: the mouse buttons status encoded on an int

For convenience, you can use a YAML file instead of passing every uniform to the command line.

Steepness: 80
Seed: [15.0, 100.0, 5000.0]
Speed: 0.08
luluka sample/transition.kage -i image2.png -i image.png -v values.yaml

If you use both -v and -u, the values passed with -u will have priority and override values from the YAML file

Build from source

Clone and compile this repository:

git clone git@github.com:Tsukumogami-Software/luluka.git
cd luluka
go build -o luluka .

(Requires go 1.26)

Learn more about Kage

Check out the amazing Kage's desk.