This is a very basic analog clock widget implemented using the browser 2D canvas API.
This is a basic 3D model viewer which is rendered using the browser WebGL API exposed by the HTML canvas element. It only has basic support for the Wavefront object file format (i.e. .obj files) for 3D models.
This is a very basic CPU-based implementation of 3D graphics renderer using a rasterization based algorithm. 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.
This is a very basic CPU-based implementation of a 3D graphics renderer using a ray tracing based algorithm. 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, and the final render is presented to the screen once the worker terminates.
This is a simple calculator program which evaluates arithmetic expressions. The expression parsing is provided by a custom "earley" parser implementation. The parser respects proper arithmetic operator precedence directly in the grammar.
This is a very 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.
This is a simple GPU-accelerated ray tracer implementation using the WebGL API exposed by the HTML canvas element. The scene is rendered onto a full-screen quad entirely inside of a fragment shader. It provides basic controls for navigating the scene interactively.
This is a simple GPU-accelerated implementation of a 3D scene renderer using a ray marching based algorithm. The algorithm is written entirely inside of a fragment shader. It provides basic controls for navigating the scene interactively.
This is a simple tool for highlighting the differences between two pieces of text.
This webpage was built to satisfy the requirements of the "" course at Penn State University during the Spring 2018 semester.
This webpage was built to satisfy the requirements of the "IST 110: Information, People, and Technology" course taught by at the Pennsylvania State University, Harrisburg campus during the Fall 2018 semester.