ASCII Raytracer

ASCII Raytracer Used AI

5 devlogs
30h 42m
•  Ship certified
Created by Gooey321

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.

Timeline

Ship 1

1 payout of shell 453.0 shells

Gooey321

24 days ago

Gooey321 Covers 5 devlogs and 30h 42m

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.)

Update attachment

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.

Update attachment

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.

Update attachment

Added core functionality to the ray tracer and made it easier to add new objects.

Update attachment