Skip to content

Arbitrary 3D light arrangements. #64

@danielkleinert

Description

@danielkleinert

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:

Current limitations I've noticed:

  1. Positions are quantized to integers and discarded after layout
  2. For sparse arrangements (e.g., 500 LEDs in a 100×100×100 space), effects iterate the entire grid rather than just the
    physical LEDs
  3. 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

No one assigned

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions