Projects

Listed below is a small sample of some of the projects that I am currently working on / have worked on. If you are interested in more, all of my repositories can be found on my Github profile.

⚖️ Kilogram

Kilogram is a functional programming language written in Rust. Inspired by OCaml and Lua, it aims to be purely functional while also being comfortable to write in. It supports features like strict compile-time typechecking, pattern matching, and closures.

🚪 DormDesign

DormDesign is a web application for real-time dorm room design & management. The platform allows roommates to collaboratively design and plan their dorm room using a user-friendly interface. Using DormDesign, roommates can synchronously visualize what their room will look like before move-in and can decide who is going to bring what items to the room.

💾 Nice, Static Site Generator

Lightweight static site generator that compiles Markdown & HTML into compact static sites. It was written in the Haxe Programming Language and used the yaml, markdown, and hx-mustache libraries. It is distributed using the haxelib package manager.

🐕 Mox Programming Language

Mox is my first attempt at implementing a transpiled programming language. The language attempts to combine the readable syntax of Lua with the power and flexibility of C. It achieves this by transpiling .mox files into a single .c file that can be compiled using gcc or any other C compiler. It has support for variables, functions, classes, conditional branching (if, else if, else), loops, and templating.

🐕‍🦺 Mace Game Engine

Mace is a game engine that I developed as a hobby project to experiment with procedural terrain generation. The goal was originally to develop a fast tilemap implementation that supports infinite terrain generation with a low memory usage. Under the hood it uses OpenSimplexNoise as a noise algorithm, SFML for rendering and input, Lua & Sol2 for scripting, and EnTT as a entity-component system.

📝 resume.json

Small utility that I developed for easily generating my resume. Using a modification of resume.md, it will take a .json file and generate an HTML file using EJS. This will be converted to a PDF using relaxedjs.