feat(effects): add entropy parameter to effect plugins

- Add entropy field to EffectConfig (0.0 = calm, 1.0 = chaotic)
- Provide compute_entropy() method in EffectContext for dynamic scoring
- Update Fade, Firehose, Glitch, Noise plugin defaults with entropy values
- Enables finer control: intensity (strength) vs entropy (randomness)

This separates deterministic effect strength from probabilistic chaos, allowing more expressive control in UI panel and presets.

Fixes #32
This commit is contained in:
2026-03-18 12:19:26 -07:00
parent cdcdb7b172
commit a95b24a246
5 changed files with 30 additions and 4 deletions

View File

@@ -5,7 +5,7 @@ from engine.effects.types import EffectConfig, EffectContext, EffectPlugin
class FadeEffect(EffectPlugin):
name = "fade"
config = EffectConfig(enabled=True, intensity=1.0)
config = EffectConfig(enabled=True, intensity=1.0, entropy=0.1)
def process(self, buf: list[str], ctx: EffectContext) -> list[str]:
if not ctx.ticker_height: