This is a primitive C++ rendering graphics engine.
It requires a running X11 server, and OpenCL.
The program is currently set up to read the .obj file in the root directory of the repository, and clone it, creating 100 copies of the object.
The current object is a cat, and it will be cloned into a small army.
This graphics engine relies on the algebraic concept of coordinate transformations.
The vertices of all objects displayed are kept in a matrix, a vector of vectors. Each point has an X, Y, Z, and homogeneous coordinate.
These coordinates are transformed by other matrices to perform simple operations like translation and rotation.
By transforming all objects in the coordinate space, the graphics engine mimicks movement of the camera, which is actually locked at the XYZ coordinate (0, 0, 0).

Source: https://courses.cs.washington.edu/courses/cse557/97wi/notes/xforms/projective.html
This is an intuitive visual which shows the "screen" at
This perspective projection is achieved through the "transformation matrix."

This transformation is applied to all vertices and results in their coordinates projected upon the "screen" at
Further information can be found at my blog: blog.cam-davis.com
$ make
$ ./a.out