diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md index 077c61b..35400e9 100644 --- a/.planning/PROJECT.md +++ b/.planning/PROJECT.md @@ -12,7 +12,14 @@ Being able to load a song, build a synchronized light show, and play it back liv ### Validated -(None yet — ship to validate) +**Communication (Phase 03)** +- [x] UDP packet sender — animation + params format — implemented via `lightsync/protocol/animation_cmd.py` + `UDPSender` +- [x] UDP frame sender — per-frame RGB pixel data — DRGB/DRGBW/DNRGB encoders in `lightsync/protocol/drgb.py` +- [x] Device registry uses SK6812 and WS2801 abstraction with `encode_animation_cmd` — validated in Phase 01/03 + +**Animations (Phase 03)** +- [x] 7 built-in animation types (solid, chase, pulse, rainbow, strobe, color-wipe, fire) as pure renderers — `lightsync/animations/` +- [x] Animation factory and registry — `create_animation()` by name, extensible for Phase 4+ ### Active @@ -94,4 +101,4 @@ This document evolves at phase transitions and milestone boundaries. 4. Update Context with current state --- -*Last updated: 2026-04-05 after initialization* +*Last updated: 2026-04-06 — Phase 03 complete: communication protocol layer, animation library, E2E UDP validation*