Implement remaining necessary primitives
And it's working!

TODO:
 - Materials
 - Error case handling
 - Rotate and scale as appropriate