ASCII 3D Renderer

An advanced software-based 3D text renderer pipeline written purely in C11.

By avoiding proprietary graphics stacks, this engine demonstrates foundational rendering principles—like Z-buffer processing, Phong illumination models, matrices integration, and anti-aliasing sweeps—executing cleanly inside standard POSIX terminal boundaries.

Architecture & Documentation

Review DOCUMENTATION.md for deeper knowledge of subsystems, technical boundaries, and lighting logic optimizations employed in the source code. Review CHANGELOG.md for version release tracking constraints.

Technical Feats

  • Real-time termios-driven TUI with non-blocking key capture for dynamic typing
  • Mathematically robust 3D normal computations leveraging 2D glyph extrusion passes
  • Configurable AA (multi-sampling) and shading density metrics per-pixel
  • Support for RGB Truecolor processing directly through terminal escape sequences
  • Strictly isolated C11 components minimizing external dependencies

Rapid Compilation via Makefile

# Deploys standard -O3 and -flto compiler optimizations
make release

# Run directly, observing standard parameters
./bin/ascii3d

Interactive TUI Controls

Upon executing, the renderer spins into an active TTY session:

  • Type Alphanumeric Characters Immediately replaces the internal 3D model with your input in real-time.
  • [w] and [s] Increase / decrease rotational velocity.
  • [Space] Toggle rotation engine pause constraints.
  • [m] Cycles between topology rendering (Wireframe -> Shaded Pipeline -> Solid Geometry -> Points).
  • [c] Switch between rendering spaces (Mono Base -> 16/256 ANSI -> Full Truecolor mapping).
  • [p] Change ASCII shading dictionaries on the fly.
  • [q] or ESC Safely detaches the IO hooks and shuts the process down cleanly.

Execution Options

Command-line invocations to bypass or configure TUI session states:

# Tumbling rotation utilizing Truecolor ANSI standards
./bin/ascii3d -a -c3 WORLD

# Quality override with heavy Anti-Aliasing pipeline 
./bin/ascii3d -A -q1.5 -c2 HQ

# Show full parameter dictionary
./bin/ascii3d -h

Contributing

The codebase attempts strict functional modularity. We accept modifications introducing new geometry patterns, deeper PBR emulation methods, or expanded rendering logic assuming complete dependency evasion.

Description
No description provided
Readme 76 KiB
Languages
C 96%
Makefile 4%