Projects

Selected

Archive

-

Learning Flow Distributions via Projection-Constrained Diffusion

with Rahul Ghosh and Aadi Jangid. We present projection-guided diffusion, a task-specialized approach for generating physically feasible flows that integrates a Helmholtz–Hodge projection into every step of the reverse diffusion process. Our method combines (i) geometry-conditioned score estimation, (ii) a divergence-aware training objective, and (iii) per-step incompressible projection that corrects intermediate states rather than only the final sample.

Research

-

Parallel Conjugate Gradient Routines for Large Sparse Systems

with Xiaotao Yang. We formulate and implement parallelized conjugate gradient routines for solving large sparse systems in the domain of seismic tomography.

Research

-

CatGPT

An experimental tiny language model that behaves like a cat with moods, sense of place, persistent memory, and lightweight test-time compute reasoning for multi-step plans and reactions. It samples multiple candidate "cat thoughts," scores them for consistency, and selects responses that match its current drives, room state, and plans.

-

Fantasy Baseball Draft Optimizer

Scarcity-aware live draft assistant for fantasy baseball, using point projection, position-specific replacement value (with Monte Carlo opponent simulation), position drop-off before next turn, and feasibility guardrails.

-

ALGOL for LLVM

An ALGOL 60 compiler with an LLVM backend. Supports most of the ALGOL 60 specification with a rudimentary C ABI and custom optimization passes for thunk- and procedure-level capture pruning.

-

Shell

A drop-in sh replacement supporting shell scripting, rich line editing, environment management, subshells, pipes, and various commands.

-

Arena Allocator

A custom arena allocator for use in systems projects.

-

C Subset Compiler (x86-64)

A compiler for a subset of C to x86-64 Assembly.

-

Game Agents

A collection of reinforcement learning and other heuristic agents for playing assorted games in Python.

-

Relational Database Management System

A from-scratch RDBMS in Java with a buffer manager, heap files and scans, query engine, SQL parser, and query optimizer.

-

Instagram GC RAG Bot

Simple RAG-enabled Llama 3-based chatbot that answers questions about Instagram group chats.

-

Tiny Lambda Calculus

A tiny untyped lambda calculus written on the plane from Indianapolis to Newark, with no WiFi and nothing else to do.

-

Hexdump Utility

A simple, aesthetically pleasing hexdump utility.

-

Interactive Physics Simulations

Custom physics engine and interactive physics demonstrations for displays in The Lawrenceville School's Kirby Math and Science Center. Includes orbital, raytracing, fluid, pendulum, cellular automata, and more simulations with tunable parameters and interactive features.

-

The Lawrence

The full-stack website for The Lawrenceville School's student-run newspaper, enabling complete web-based management of the online publication and mailing lists.

-

Optical Music Recognition Agent

Optical music recognition and playback agent in Mathematica. Given an image of piano sheet music, the agent extracts notes and other relevant metadata via a computer vision model and outputs MIDI or MP3 files.

-

Java Classfile Deserializer

A Java Classfile deserializer and debugging utility written in Rust.

-

Freelist Allocator

A simple K&R style freelist-based general-purpose allocator with Clang-specific optimization.

-

Assembly Virtual Machine

A parser and virtual machine for a simple x86-style instruction set with Intel syntax.

-

ntrupin.com

My personal full-stack website.

-

Home PC Automations

Scripts and automations in Python, JavaScript, and Visual Basic for Applications for Windows 7 and Microsoft Excel 2010 on a 2010 Acer Aspire PC.