Exploring the benefits and limitations of rendering geometry
defined by distance functions.
As an undergraduate researcher, I build the C++ application
and controls for a custom SDF rendering engine in OpenGL and
GLSL, working alongside another undergraduate researcher who
writes most of the shaders.
Wrote the quaternion math behind camera rotation, plus the
controls for ray travel distance and surface-hit tolerance.
Pass a scene ID from CPU to GPU to switch between SDF
functions, and added shader hot reload by comparing saved
files against a cached version.
Built in FPS and frame-time counters to help test changes as
we go.
The screenshots show different fractals or infinitely
repeating geometry created through trigonometric functions.
A dependency-free C renderer that draws 3D scenes as ASCII art
directly in the terminal.
Builds the terminal UI itself with termios for input and ANSI
escape codes for display and color, no third-party
dependencies.
Projects 3D points with x/z and y/z perspective and custom
transforms into terminal screen coordinates, then maps a
floating-point framebuffer to an ASCII gradient to draw them.
Wrote a small vector type in C instead of plain arrays, since
a fixed-size array meant passing width and height everywhere
and couldn't support resizing the terminal window intuitively.
When I am not at my computer learning about all things
programming and graphics, you will find me out on the golf
course or running around my hometown. From a young age I was out
on the golf course getting that little white ball in the hole.
Likewise, from a young age I also ran religiously. While in high
school I pursued those two sports heavily and was able to get to
state in running and regionals (missed state by one spot my
senior year) in golf.