Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for allowing defining non trivial fixture behavior like MultiLED and Macro behavior #127

Open
wants to merge 7 commits into
base: next
Choose a base branch
from

Conversation

moritzstaffel
Copy link
Contributor

No description provided.

@moritzstaffel moritzstaffel self-assigned this Jun 14, 2022
@moritzstaffel moritzstaffel changed the title Add Multi LED Proposal Proposal for allowing defining non trivial fixture behavior like MultiLED and Macro behavior Jun 17, 2024
@moritzstaffel moritzstaffel changed the base branch from main to next June 17, 2024 08:46
@moritzstaffel
Copy link
Contributor Author

Feedback from todays meeting:

We need Pattern Control Attributes to define the Units for Cycle times and so on.

@realRobotix
Copy link
Contributor

Stumbled upon this while trying to create a GDTF-File for a 5x5 LED matrix which has a channel to override per pixel dimming and display numbers or letters so here are my two cents:

  • The WASM poposal is the best imo

    • Allows for interfaces specifically tailored to lighting needs.
    • Low performance overhead.
    • Offers almost limitless flexibility for manufacturers.
    • Drawback: high complexity for LDs making their own GDTF-Files
      -> Possible Solution: A simple 3rd-party scripting language that can be compiled to WASM for basic tasks like my 5x5 matrix. For instance:
      if 10 < DMX_IN[23] < 17:
          LED1.Dimmer = 255
          LED3.Dimmer = 0
          LED2.Dimmer = 127
          ...
  • Shaders

    • Not originally designed for lighting, leading to unnecessary limitations.
    • Every visualizer would need to handle shader compilation.
    • Could introduce significant overhead, especially with complex implementations (e.g., 3000 seperate shaders processed per frame).
  • Network (IP)

    • Could introduce overhead and requires more effort than WASM to perform well.

Additional thought regarding performance: Do we need to calculate values for every fixture every frame? Caching could reduce overhead even with large numbers of fixtures.

@petrvanekrobe
Copy link
Contributor

As for technological solution, the shader idea was not to draw into a canvas, but to have a similarly unifying programming environment, partially comparable to Wasm.

The reaction to DMX is clear. One of the issues is that the code must be execute each time a frame is drawn (for example 60Hz/s) as some of the animations are dynamic and happen even when DMX has not changed.

@realRobotix are you looking at implementing this somewhere? This would be quite interesting.

@realRobotix
Copy link
Contributor

No, my UE5 visualizer is barely able to do 8-bit dimmers. It's going to be a while before this is the next thing to even think about but I'm interested in creating my own "shader language" which compiles to the Wasm interface.

@nrgsille76
Copy link

nrgsille76 commented Nov 28, 2024

I have another proposal to control the influence of a channel's physical value to the attribute by adding another multiplication factor or vector wich controls the infuence. A negative factor could be used to invert the value and it offers a lot of other possibilities like value ramping and mirroring. Also it should be possible to use any attribute for physical movement for example to use the beamshaper attribute for moving, rotating or scaling other parts of the model.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants