Links to Projects - Personal projects for the web
Links to Archives - Old unused content

Links to Projects

These projects were tested with the Google Chrome web browser. No attempts were made to make them compatible with other browsers. This site is not actively maintained.

Canvas Clocks

This demo implements an analog clock widget by using the primitive draw commands of a canvas 2D context.

WebGL Model Viewer

This demo implements a basic 3D model viewer which is rendered using the WebGL API exposed by the canvas element. Currently, it only supports the wavefront object file format for 3D models. It also provides basic controls for manipulating the view of the model.

Software Rasterizer

This demo presents a software implementation of a simple 3D graphics renderer using the rasterization method. Internally, it uses the 2D graphics API exposed by the canvas element to render buffered bitmap data to the screen. The actual image generation is done by directly manipulating the pixel data within the bitmap.

Software Raytracer

This demo presents a software implementation of a simple 3D graphics renderer for static images using the ray tracing method. Unfortunately, the implementation isn't fast enough to provide an interactive experience. As a result, the actual work is off loaded onto a separate worker thread to prevent blocking the UI. The final render is presented to the screen once the worker terminates

Calculator

This demo implements a calculator program which evaluates simple arithmetic expressions. The expression parsing is provided by a custom "earley" parser implementation. The arithmetic grammar respects proper operator precedence.

Lua Language Interpreter

This demo presents a simple Lua language interpreter with reduced grammar. The lexer/parser stages of the interpreter are both implemented using the "earley" parser algorithm. Presently, it only uses priority rules to derive the most appropriate parse tree; other potential matches might lead to undesirable behavior. No syntax errors are reported! A variety of program snippets are included to try out.

WebGL Ray Tracer

This demo presents a simple hardware accelerated ray tracer implementation using the WebGL API of the canvas element. The scene is rendered onto a full-screen quad entirely inside of a fragment shader. It provides basic controls for navigating the schene interactively.

WebGL Ray Marcher

This demo presents a simple implementation of a 3D scene renderer using the ray marching method. The algorithm is written entirely inside of a fragment shader provided by the WegGL API. It provides basic controls for navigating the schene interactively.

Text Diff Viewer

This is a simple tool for highlighting the differences between two pieces of text.


Links to Archives

ART 101 Course Work

This webpage was built to satisfy the requirements of the "ART 101: Introduction to Web-design" course at Penn State University during the Spring 2018 semester.

IST 110 Course Work

This webpage was built to satisfy the requirements of the "IST 110: Information, People, and Technology" course taught by Dr. David P. Kitlan at the Pennsylvania State University, Harrisburg campus during the Fall 2018 semester.