Instead of storing 3 channels on 1 byte of memory, which only uses 3/4 of the byte, it makes more sense to use a byte per channel which can hold up to 4 steps.
[ ] bring back the grid class
[ ] store 4 time steps (2-bit weight) in 1 memory byte
[ ] write function for extracting a weight from a byte
Instead of storing 3 channels on 1 byte of memory, which only uses 3/4 of the byte, it makes more sense to use a byte per channel which can hold up to 4 steps.