Banner image for the Booklist project, showing screenshops of various app pages

Booklist

Created using the Dart programming language and Flutter app developement framework, Booklist is an app I built to keep track of the books I've read, my progress in the books I'm currently reading, and the list of books I want to read. Implemented features include: Booklist can be sideloaded on Android from itch.io, and an unsigned iOS app package and Windows desktop application are also available for download though these platforms are not recommended. The source code can be viewed on GitHub.

Software Rasterizer

A CPU-based 3D renderer written from scratch in C using SDL3 for window management, events, and writing pixels. Most algorithms are based on the work done by Sebastian Lague in this video, but all code was adapted to running in C without access to Unity Engine rendering, classes, or objects by me. Implemented features include:

  • file parsing and importing 3D models from .obj files,
  • manual projection of models to screen space,
  • manual rasterization of screenspace triangles,
  • UV-based texture mapping and interpolation,
  • support for rotation, translation, and scaling of models,
  • basic global lighting,
  • simple first-person camera movement,
  • and near-plane clipping of triangles.
A functional executable for Windows, all source code, and a script allowing the project to be built from source can be found on GitHub.

FBTNTools

A simplified wrapper for several APIs, to be used by collaborators on a generative AI research project who were newer to Python. It provides two simplified wrappers:

  • GalleryScrape, for downloading images from online galleries, converting them to base-64 encodings, and saving those encodings, and
  • ChatUtils, for interacting with the then-current ChatGPT-4o via API.

The resource project, which had been on documenting possible biases along the lines of gender, 'gendered' interests like fashion, and race in ChatGPT's image generation, was discontinued when the supervising professor left for another position, but the source code can be viewed on GitHub.

The GitHub repository also includes detailed installation and usage information in its README.md.