prototype gradient, with some vector functionality
next up: make kernel faster, build drawable gradient