These projects have been tested using the Google Chrome web-browser; no attempts were made to make them compatible with other browsers.
The Canvas Clocks project uses the HTML5 canvas element to render graphics using the primitive draw commands. This project is composed of two independent widgets which are included in the webpage using the iframe element.
The WebGL Model Viewer project uses the WebGL API exposed by the canvas element to render 3D models in the wavefront object file format. It provides very basic controls for manipulating a model within the viewport. The lighting is simply an effect that is calculated on the normals of each primitive section of the model.
The Simple Rasterizer project uses the 2D graphics API of the canvas element to render 3D triangle primitives. Although the perspective transform from the world space to screen space does not map triangular sections of a plane to a triangle in the screen space, the screen space object is reasonably approximated by a triangular region connecting the verticies from the perspective transform on the world space verticies. This approximation allows for reasonably fast mapping of textures to the planar surfaces which allows for real-time rendering within the browser.
The Lua Language Interpreter project uses the "earley" parser algorithm for the lexer/parser stages of interpreting a lua language program. Presently, it only uses priority rules to derive the most appropriate parse tree; other potential matches might result in undesirable behavior. Additionally, the interpreter does not provide any feedback as to syntax errors that might appear in the source code.
The "IST 110 Webpage" is a webpage built to satisfy the requirements of the "IST 110: Information, People, and Technology" taught by Dr. David P. Kitlan at the Pennsylvania State University, Harrisburg campus during the Fall 2018 semester.