Early-out optimization for Rings shader
Faster 2D variant of the "Rings" example
README for C++ library
Promote long-term numerical stability. No more "time"

Instead of keeping track of one global time value, use multiple bounded low-frequency oscillators. This will keep working for an unlimited amount of time.
Unify 2D and 3D versions of "rings", add finer-grained early exit
Fix color contrast calculations
Move interesting effects into reusable headers
Dot: Filename to constructor arg
Rename effects for consistency
Fix brightness scaling in Rings when rendering pauses
EffectRunner: More modular argument parsing & main loop
EffectMixer example
CC license for rings.h
Shader API changes to support parallel execution
Cleanup: Split effect.h, rename opc_client
Disable exceptions & RTTI
Don't disable exceptions, nanoflann needs them
Add a 64-LED strip JSON layout
Shiny new EffectMixer, with parallel shader execution
Mention multi-core rendering in the README