Ray tracing project

specular textures
A ray tracer in F#, expanded on from a previous group project.

  • Simplified rendering pipeline.
  • Added procedural generation of stone textures (using fractal noise).
  • Added soft shadows and specular highlights (using Monte Carlo integration).
 ZIP (requires Visual Studio)

  • Explanation of theory with a number of original diagrams.
    • Coherency of the line of argument (so to speak) might need work, but I think I explained some things in ways I haven't seen in other sources.
  • Comparison of sampling techniques.
  • Overview of module structure and important functions.

Tierlist aggregator


Web app. React, Express, Node, SQLite. Scraping with cheerio (jQuery). Hosting with AWS and nginx. See here.

Tumblr music info scraper and mp3 renamer

Given tumblr blog info (JSON),
  • creates text files with all youtube/soundcloud urls embedded in posts in that blog.
  • tags and retitles any existing mp3s whose names correspond to those in tumblr posts.

Viramate addition

item grouping
Added functionality for grouping watched items to the Chrome extension Viramate.
  • Storing and changing items' groups.
  • Intuitive GUI. (Or so I like to think!)
  • Compatibility with other layout options.
 Sidebar.js diff
 Build.js diff

Fanfiction.net wordcounter

Chrome extension which sums the wordcounts of all written and/or favorited fics for a Fanfiction.net user and injects the information into their bio. Settings can be changed to choose between having wordcounts above a million display in thousands or millions.
 .crx installation file

Procedural dungeon generation algorithm concept

The class (Procedural Content Generation for Games)'s project prompt was to come up with an original algorithm. I decided to use Christopher Alexander's fundamental properties of wholeness as inspiration.
Powerpoint (PDF)

Transparency tool

Install -> right-click image in file explorer -> add slight transparency to a corner pixel.
 Installation files