Notes Digital rain Add config Add valudation for config better CI/CD Slowly increasing amount of “worms” Add speed optimization for release version try color gradient better gradient (from shades of green) somehow need to slower rotation of worms characters different first character rotation for worms calculate average fps, print it after execution raname Matrix to DigitalRain rename charworm into raindrops remove ndarray from digital rain rain drop should return list of characters with colors even better gradient (2 steps from white to dark gray) move “map” (with position of worms with worm_id) into separate module, map completely removed builder pattern for rain drops store options as MatrixOptions keep fps stable and above some value - 20, 30, 60? inconsistency between buffer.rs coordinates and crossterm screen started from 1, 1 zbuffer for different worm positions general interface to run screen-savers make drops sometimes fade away match gradient calculation with body length update screen size (h/w) during execution (currently doesn’t track it) still something strange with coordinates, looks like there are no drops when y = 0 fix digital rain benchmarks derive_builder for DigitalRainOptions Convay’s Life basic implementation [X] data structure [X] rules [X] initial state https://en.wikipedia.org/wiki/Schelling%27s_model_of_segregation Optimizations fx in RainDrop could be u16 or usize clamp coordinates to make sure they fit the screen update crossterm SPEED_RANGE as interval type implement buffer to keep only differences need to minimize amount of clean cells commands on next frame not all cell should be cleaned