clean up PPM wrapping RGB strings
add lighting, draws a real sphere!
add REAL RAY CASTING I mean, it is only an ugly red circle, but IT ACTUALLY WORKS
move code around (into packages) I'm not sure this is how packages _really_ work, but it's a start
move the code around
add shearing transformations include "clock face" example
make points and vectors differentiable add rotational transformations (x, y, and z)
rename `transpose-matrix` to just `transpose` because I like it better this way
a few more matrix inverse tests
more matrix operations mostly inverse and supporting operations
add a few basic matrix operations
fix canvas pixel writing add bounds checks prior to writing, might be sub-optimal for performance, but there are relatively few writes currently include exercises of "projectiles" tracking via vector math
use struct for canvas - add test for trailing newline in PPM output - add function to write PPM to file
rudimentary vector operations and PPM output not sure about the "test code", I've switched from the PCL style harness to a shorter (2 macros!) version using `assert` very similar to 1am. The output is bad but I don't have a better idea yet.