Objcurses – ncurses 3D object viewer using ASCII in console

1 admtrv 1 5/17/2025, 6:29:48 PM github.com ↗

Comments (1)

admtrv · 12m ago
If you find the project interesting, a star on repo would mean a lot for me! It took quite a bit of time and effort to bring it to life.

Hey everyone! This project started out as a personal experiment in low-level graphics, but turned into a bit of a long-term journey. I originally began working on it quite a while ago, but had to put it on hold due to the complexity of the math involved - and because I was studying full-time at the same time.

objcurses is a minimalistic 3D viewer for .obj models that runs entirely in terminal. It renders models in real time using a retro ASCII approach, supports basic material colors from .mtl files, and simulates simple directional lighting.

The project is written from scratch in modern C++20 using ncurses, with no external graphic engines or frameworks - just raw math, geometry and classic C library for terminal interaction.

Also happy to hear any feedback, especially on performance, rendering accuracy, or usability.

At some point, I might also organize the notes I took during development and publish them as an article on my website - if I can find the time and energy :)