3D Engine

Description:

Built from scratch with Numpy and Pygame, this program displays simple .obj files. You can move the camera around with keyboard inputs. The framerate is displayed on the top bar.

The program uses the concept of linear transformations from Linear Algebra to project the object vectors into another 3D "camera-space", then finally onto the flat 2D "screen-space".

By applying linear transformations to the vectors of the camera, translations and rotations can be achieved, resulting in camera movement

Vectors are stored in groups as faces, allowing for a mesh to be drawn accross the object.

A more complex .obj file of a man.

Movement allows for different perspectives.

Simplier objects result in greater FPS.