power_settings_new
landing
layout
shader
Connect

Suno Kule

Welcome to Suno Kule

Get firmware

If you like this, please consider donating, so I can dedicate more time to it, or contribute to the github project

Become a patron

About

Suno Kule means "colored lights"

I created Suno Kule to solve two problems I encountered while working with addressable light strips and existing firmware:

  • There is no way to create custom effects
  • There is no way to create custom layouts

I wanted to define effects much like shaders as found in modern 3D software. To be able to build effects out of a set of primitives and easily adjust parameters.

This is done with "Layouts" and "Shaders". Read more about these to the right

To get started, get the firmware for an esp32 board, adjust your network credentials and flash the firmware. After that, note the ip address from the serial monitor and connect to it using "connect" in the top left corner

Layout

A layout is a mapping of led index to x, y and z coordinates, but also to an additional set of coordinates called u, v and w.

The u, v and w coordinates behave much like a texture mapping in 3D software. They can be anything you want, but it makes sense to use them in a meaningful way to allow effects to do some more interesting stuff. Some examples are:

  • For disks, u and v can be polar coordinates
  • For a strip that is bent around, u can be just the length along the strip
  • For symmetric layouts, u, v and w can also be symmetric

Layouts can be created and adjusted in the Layout tab.

Shader

Shaders are little programs that create an effect. The input to shaders are time, led index, the normalized x,y,z coordinates and the normalized u,v,w coordinates.

You can use predefined primitives to build up shaders. There are some pretty useful primitives available already.

A shader is compiled to a binary program that can be uploaded to the firmware running on an esp32 board.

Shaders can be created and edited in the Shader tab.