Add semi-random event scheduler #11

Closed
opened 2026-05-05 02:10:33 -04:00 by JackFrostbyte · 1 comment

Title:
Add semi-random aurora event scheduler

Description:
Replace purely sequential playback with a semi-random event scheduler that triggers zone effects at varied intervals.

Scope:

  • Thermaltake animation should be the main event and run most often.
  • Motherboard should pulse quietly and less often.
  • Top fans should glimmer occasionally.
  • GPU wave should trigger occasionally.
  • Sometimes effects should overlap.
  • Sometimes the system should stay mostly dark blue.
  • Use deterministic random seed option for repeatable debugging.

Acceptance criteria:

  • The loop no longer feels like a fixed repeating playlist.
  • The script supports a --seed option.
  • The script supports finite test duration.
  • The reserved ARGB zone remains untouched.
Title: Add semi-random aurora event scheduler Description: Replace purely sequential playback with a semi-random event scheduler that triggers zone effects at varied intervals. Scope: - Thermaltake animation should be the main event and run most often. - Motherboard should pulse quietly and less often. - Top fans should glimmer occasionally. - GPU wave should trigger occasionally. - Sometimes effects should overlap. - Sometimes the system should stay mostly dark blue. - Use deterministic random seed option for repeatable debugging. Acceptance criteria: - The loop no longer feels like a fixed repeating playlist. - The script supports a `--seed` option. - The script supports finite test duration. - The reserved ARGB zone remains untouched.
Author
Owner

Implemented semi-random event scheduler for the coordinated aurora loop.

Summary:

  • Added weighted semi-random zone event selection.
  • Thermaltake/front 140 mm zone is prioritized as the primary aurora animation.
  • Supporting zones now trigger occasionally instead of following a fixed playlist.
  • Added deterministic --seed support for repeatable testing.
  • Added configurable launch-time delay ranges:
    • --primary-delay-min
    • --primary-delay-max
    • --support-delay-min
    • --support-delay-max
  • Default scheduler timing:
    • Primary zone: 2–4 seconds
    • Supporting zones: 2–6 seconds
  • Preserved --duration, --cycles, and --leave-dark-blue behavior.
  • Reserved ARGB zone remains untouched.

Validated with:

  • ruff format src/rgb_aura
  • ruff check src/rgb_aura scripts tests
  • PYTHONPATH=src python scripts/validate_device_mapping.py
  • rgb-aura --duration 30 --leave-dark-blue --seed 12345 --primary-delay-min 2 --primary-delay-max 4 --support-delay-min 2 --support-delay-max 6
  • rgb-aura --duration 10 --primary-delay-min 5 --primary-delay-max 2

Issue #11 completed.

Implemented semi-random event scheduler for the coordinated aurora loop. Summary: - Added weighted semi-random zone event selection. - Thermaltake/front 140 mm zone is prioritized as the primary aurora animation. - Supporting zones now trigger occasionally instead of following a fixed playlist. - Added deterministic --seed support for repeatable testing. - Added configurable launch-time delay ranges: - --primary-delay-min - --primary-delay-max - --support-delay-min - --support-delay-max - Default scheduler timing: - Primary zone: 2–4 seconds - Supporting zones: 2–6 seconds - Preserved --duration, --cycles, and --leave-dark-blue behavior. - Reserved ARGB zone remains untouched. Validated with: - ruff format src/rgb_aura - ruff check src/rgb_aura scripts tests - PYTHONPATH=src python scripts/validate_device_mapping.py - rgb-aura --duration 30 --leave-dark-blue --seed 12345 --primary-delay-min 2 --primary-delay-max 4 --support-delay-min 2 --support-delay-max 6 - rgb-aura --duration 10 --primary-delay-min 5 --primary-delay-max 2 Issue #11 completed.
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JackFrostbyte/rgb-aura#11
No description provided.