The main branch for this is now for shades v2 which is still a work in progress (finding and fixing bugs).
There's a bunch of bug fixing and optimisation to come, but I've overhauled the API now to:
- use lazy evaluation to allow some efficiencies
- shift a lot of the computation over into numpy for efficiency
- improve the api with some nicer functional patterns around the canvas object