A ray tracer that renders directly in the terminal using either ASCII or Unicode block characters. Written in Rust and WGSL. Features camera controls and the ability to easily make new scenes using a JSON format.
Draedon
Check their projects out: Ocean Simulation, Double Pendulum, Path Tracer
Laeth English
Check their projects out: 3DRenderer, Universe Simulator
Rishi Sadu
Check their projects out: Some fun rust tests, NCLcracker, BhavinUnderTheDesk
Luka Trojan
Check their projects out: Operating System development, Ferrum Engine
sugo14
Check their projects out: Terminal Velocity, Tutoring Club Suite, Terminal-Style Portfolio
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
After working around a bunch of terminal quirks to display text at such a fast rate, I managed to implement camera movement. I also added more primitives (planes and triangles). I also reworked the path tracing logic to be more accurate.
Ported all major components of the renderer to the WebGPU shading language, resulting in a massive 91× speed increase! Also revamped the lighting and rendering model, which dramatically boosted image realism.
(Just if you are skeptical, all of this is rendered directly to terminal — not an image display trick.)
Added the ability to make objects reflective and also a light source. Majorly revamped the way the shadows are created to now they are softer and more realistic, however this introduced noise which i've mostly combated through the implementation of antialiasing, increasing the quality of the output.
Added ability to print the ASCII text as color, making it easier to see shapes. Also added new emission property, which will make it easier to add new light sources as well as new launch args to print as more solid characters, making it look more like a traditional raytracer.