clean up PPM wrapping RGB strings
add lighting, draws a real sphere!

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
aee98fff — Nolan Prescott 10 months ago
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.