๐ Luluka: Ebiten shader tool
May 15, 2026 ยท View on GitHub
Luluka lets you view and tweak shaders made with Kage for Ebiten.
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.