Projects

A collection of some major projects over the years.

Featured Projects

PennCloud

PennCloud is a fully distributed webmail and cloud storage system built from scratch. The core technology of the system is a fault-tolerant key value store based off of google's BigTable system. The cloud storage system allows for files up to 10MB and the webmail system is a fully functional email client. For a full list of features and design considerations see below.

C++ Distributed System Networking

Features and design considerations →

IMG2GPS

IMG2GPS is a an ensembled, pipelined artificial intelligence mode based on a Convolutional Neural Network (CNN). Over 500 images were collected from the block around the Penn engineering quad and included the GPS location from those images. This model starts by classifying the images into "regions" and then uses an ensemble of region specified models to hone in location. See the project report below for more details.

Python Machine Learning Data Science

Project report →
HuggingFace repo →
HuggingFace dataset →
pennos-running

PennOS

PennOS is a fully functional Operating system including kernel level API, file system, and user-space terminal. This project was a group effort for the CIS 5480 course at Penn and required deep collaboration in the 4 person team. I primarily worked on kernel level device I/O and user-space to kernel-space communication, namely the shell (but I worked on many parts of the code as well). For a full feature description and the direct Doxygen documentation for the project, see below.

C Linux Operating Systems

PennOS feature description →
PennOS Doxygen documentation →
cpu-gtkwave

ICPU-v0

The ICPU-v0 (Ian CPU) is a superscalar, multistage pipelined processor for the RISC-V RV32I (core integer) and RV32M (multiplication/division extension) instruction sets. The processor runs at 5 MHz with a ~80ns worst case negative slack. This processor has been fully implemented on a field programmable gate array. This processor was developed over a semester in the Penn CIS 4710 course, check out the full incremental design as well as the final product below.

Processor Design SystemVerilog Hardware

Full incremental repository →
Final processor code →

MiniMinecraft

MiniMinecraft is a scaled down clone of the video game Minecraft. This project won the MiniMinecraft Hall of Fame award for the semester. Core systems include: optimized physics engine, multithreaded terrain generation, compressed game save data format, and complex shader pipeline. The game uses QT for windowing and the GUI and rendering uses the OpenGL pipeline. For a full list of features see the video above.

C++ OpenGL Game

Stirling Generator

This is a Stirling engine which turns heat from the rounded area at the back of the engine into rotation through the heating and cooling of air in the chamber. The rotating flywheel has magnets on its perimeter which when placed inside the stator and coils creates alternating current electricity. This generator outputs 3 phases of 0.2Vpp, 40hz sine waves which when rectified achieve 1.5V direct current. This project is a work in progress and I hope to increase the power generation soon. This engine and generator were entirely designed and manufactured by me.

Mechanical Engineering Electrical Engineering Machining

More Projects

Ocean Biodiversity & Climate Change Explorer

A dataset combining the World Ocean Database (WOD) and Ocean Biodiversity Information System (OBIS) datasets for use by researches to study the effect of climate change on biodiversity.

SQL MySQL WebDev

Project report →

IDK: Mechatronics competition robot

IDK is an autonomous or directly controllable robot for the mechatronics final competition. It uses a an ESP32 microcontroller and does most of its sensing through time of flight sensors. See the report below for full details.

Mechatronics Electrical Engineering Embedded Systems

Project report →
triton-firstslide

An Analysis of Triton VS CUDA

A report comparing the machine instructions generated by CUDA and Triton, a novel GPU programming language with surprising speed and efficiency.

CUDA GPU PTX

Slides →
micromaya-pic

MicroMaya

MicroMaya is a basic mesh editor that allows for simple operations and OBJ file viewing.

C++ OpenGL Mesh Editing
pennsat-dpll

PennSat

PennSat is a basic SAT solver implemented using the DPLL algorithm. (NOTE: graph above is runtime on random 3 CNF formulas with n=75 variables and m=324 clauses)

Python SAT Solving

Source code →

SV to Net

SV to Net is a partial SystemVerilog compiler. It converts abstract circuit representations in SystemVerilog into physical SPICE netlists, optimized by a constraint programming system. This is a work in progress.

Python SAT Solving SystemVerilog

Repository →
website-flow

imlamont.com

imlamont.com is my personal website that you're on now! It's a static website hosting my projects and artwork. It is deploy on Amazon Web Services stored on S3 (updated through github actions) and hosted though Route 53 with HTTPS and distributed through the CloudFront CDN.

WebDev AWS

Repository →