forked from theelims/ESP32-sveltekit
-
-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
Description
Hey there,
Cool project! The UI is pretty fancy for an embedded project.
I'm exploring the layout options and noticed they're optimized for grid-based arrangements. I understand the current
approach is efficient for mapping panels and cubes to a rigid virtual grid, which allows reusing WLED patterns. However,
this doesn't work well for arbitrary 3D positions like:
- Christmas light strings mapped with https://github.com/TheMariday/marimapper
- LEDs on sculptures or architectural installations
- Non-uniform panels like https://www.evilgeniuslabs.org/fibonacci512-pixelblaze
- Panels placed at angles to each other
Current limitations I've noticed:
- Positions are quantized to integers and discarded after layout
- For sparse arrangements (e.g., 500 LEDs in a 100×100×100 space), effects iterate the entire grid rather than just the
physical LEDs - No way to access actual LED positions for distance-based effects
What would help:
Storing the actual world position (x, y, z as floats) for each LED, and changing the effect interface to something like
Pixelblaze does:
export function render(index) {
// pixelCount, x, y, z available as globals
h = distance(x, y, z, centerX, centerY, centerZ) * 0.1
hsv(h, 1, 1)
}
This would enable:
- Physically accurate rendering across angled/non-planar surfaces
- Efficient iteration (loop through 500 LEDs, not 1M grid cells)
- Position-dependent effects (ripples, waves based on actual distance)
Has this approach been considered, or is it outside the scope of the project? Curious to hear thoughts on this!
Metadata
Metadata
Assignees
Labels
Projects
Status
Backlog