Skip to content

TSJR/RenderingEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RenderingEngine

Overview

This project is a Python-based software rendering engine built from scratch.
It implements the foundations of a 3D graphics pipeline, including vector math, perspective projection, transformations, and rendering of .obj models.

Unlike hardware-accelerated engines (OpenGL, Vulkan), this renderer runs entirely in Python, which makes it easier to understand and experiment with the inner workings of a graphics pipeline.

Features

  • Load and render .obj 3D models (examples included: house.obj, tinker.obj)
  • Basic math library for vectors and triangles
  • Rotation utilities and perspective projection
  • Modular design:
    • maths/ → vector and triangle math
    • rendering/ → rendering pipeline and transformations
  • Written entirely in Python for clarity and learning purposes

Requirements

  • Python 3.11+
  • Dependencies: (if you use any external packages, list them here; otherwise just Python standard library)

Usage

Run the engine

python app.py

Load a model

By default, example .obj models are located in the obj/ folder.
You can replace or add your own .obj files for rendering.

Example

python app.py obj/house.obj

Project Structure

RenderingEngine/
│
├── app.py                 # Entry point
├── maths/                 # Math utilities
│   ├── Vector.py
│   ├── Triangle.py
│
├── rendering/             # Rendering engine core
│   ├── Render.py
│   ├── Perspective.py
│   ├── RotationUtils.py
│
├── obj/                   # Example 3D models
│   ├── house.obj
│   ├── tinker.obj

Roadmap

  • Add lighting (Phong, Gouraud, flat shading)
  • Implement z-buffer for depth handling
  • Texture mapping
  • Interactive camera controls
  • Export rendered frames to images or video

Why?

This project is built for learning and experimenting with the fundamentals of computer graphics.
It is not designed to be fast, but to clearly show how rendering works under the hood.

Author

Made by Gerald Negvesky

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages