wojciech-graj/TermGL
wojciech-graj/TermGL has 408 GitHub stars and 13 forks. GitHot measured 0 stars in 24 hours and +2 in 7 days. Last checked 2026-11-09 07:29 UTC. Last push 2025-12-28.
2D & 3D graphics engine in the terminal [C/C++]
Measured star growth
- in 24h
- 0
- in 7 days
- +2
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalTermGL
A terminal-based graphics library for 2D and 3D graphics.
Features:
- Windows & *NIX support
- C99 compliant without external dependencies
- Custom vertex and pixel shaders
- Affine texture mapping
- 24 bit RGB mode
- Indexed color mode: 16 Background colors, 16 foreground colors, bold and underline
- Non-blocking input from terminal
- Mouse tracking
Gallery



Documentation
A tutorial can be found here. Additionally, please reference the demo, and read the function documentation in termgl.h for more details.
Build
You can compile termgl.c as you would any other C source file. You can also compile it as a shared library libtermgl.so by calling make shared. To install the shared library, sudo make install.
To enable 3D functionality, define TERMGL3D or use the -DTERMGL3D compiler flag.
To enable utility functions, define TERMGLUTIL or use the -DTERMGLUTIL compiler flag.
To disable helper functions for vector math and shaders, define TERMGL_MINIMAL or use the -DTERMGL_MINIMAL compiler flag.
To use TermGL in C++, compile it as a shared library and link against the libtermgl.so file. The termgl.h header can be included from C++ files.
To compile a demo program, run make demo, creating the termgl_demo binary.
Demo
A demo program can be found at termgl_demo.c.
Available demos and TermGL features used:
- Utah Teapot
Renders a rotating 3D Utah Teapot.- Backface culling
- Z buffering
- Double-width characters
- 3D rendering
- Custom shaders
- Color Palette
Renders a palette of various text colors and styles.- Colors & Modifiers
- Mandelbrot
Renders an infinitely zooming-in Mandelbrot set.- Point rendering
- Realtime Keyboard
Displays keyboard input in realtime.- Text rendering
- Realtime keyboard input
- Textured Cube
Renders a texture-mapped cube.- Backface culling
- Z buffering
- Double-width characters
- 3D rendering
- Shaders
- Texture mapping
- RGB
Renders overlapping red, green, and blue circles.- 24 bit RGB
- Text rendering
- Mouse
Displays mouse position and button state.- Mouse tracking
- Text rendering
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,500 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,396 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,840 starsmrdoob/three.js
JavaScript 3D Library.
117,983 stars