Projects

Shipped systems, research tools, experiments, etc.

Jan 2026 - Present

Chart-Invariant Few-Step Diffusion for Manifold Fields Research Pinned

with Yexiang Xue. We propose chart-based score diffusion, a framework that evolves stochastic dynamics in chart coordinates and maps trajectories to ambient space through constraint-preserving chart transforms. We also introduce atlas-based modeling, where an atlas (a set of overlapping local charts) is combined with hard assignment, soft weighting, or learned routing; the learned variant uses entropy and balance regularization to stabilize chart utilization.

In progress Python

Nov 2024 - May 2025

Physics-Constrained Robot Grasp Planning for Dynamic Tool Use Research Pinned

with Zixing Wang and Ahmed Qureshi. We introduce iTuP (inverse Tool-use Planning), a framework that outputs robot grasps explicitly tailored for tool use. iTuP integrates a physics-constrained grasp generator with a task-conditional scoring function to produce grasps that remain stable during dynamic tool interactions.

R3 @ RSS 2025 | Under review Python

Oct 2023 - Mar 2024

Parallel Conjugate Gradient Routines for Large Sparse Systems Research Pinned

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

Technical Report Fortran, OpenMP

Aug 2025 - Dec 2025

C Subset Compiler (LLVM) Pinned

A compiler for a subset of C with an LLVM backend, complete with single static assignment (SSA) generation, redundant phi node removal, and optimization passes for common subexpression elimination (CSE), constant branch folding, dead block removal, loop invariant code motion (LICM), and Chaitin-Briggs graph coloring allocation.

C++, LLVM

Jul 2024 - Jul 2024

Neural Networks from Scratch Pinned

A from-scratch tensor operation and automatic differentiation library in pure Python, featuring feed-forward mechanisms, backpropagation, loss functions (MSE, cross-entropy, etc.), extensible optimizers (SDG, Adam, etc.), extensible modules (linear, sequential, etc.), activations (ReLU, Tanh, etc.), functional formulations (like torch.nn.functional), persistent and temporary buffers, and saving state dicts.

Python

Oct 2025 - Dec 2025

Learning Flow Distributions via Projection-Constrained Diffusion on Manifolds Research

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.

Under review Python

Feb 2026 - Present

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.

Python

Feb 2026 - Present

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.

C++, LLVM, ALGOL

Feb 2025 - Mar 2025

Shell

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

C, C++, Lex, Yacc, Bash

Jan 2025 - Feb 2025

Arena Allocator

A custom arena allocator for use in systems projects.

C

Nov 2024 - Dec 2024

C Subset Compiler (x86-64)

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

C, Lex, Yacc, x86-64 Assembly

Aug 2024 - Dec 2024

Game Agents

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

Python

Aug 2024 - Dec 2024

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.

Java, SQL

Jul 2024 - Jul 2024

Instagram GC RAG Bot

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

Python

May 2024 - May 2024

Tiny Lambda Calculus

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

C

Jul 2023 - Aug 2023

Hexdump Utility

A simple, aesthetically pleasing hexdump utility.

C

Dec 2022 - May 2023

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.

JavaScript

Aug 2022 - Oct 2022

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.

Ruby, SQL, JavaScript

Jan 2022 - May 2022

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.

Mathematica

Nov 2021 - Nov 2021

Java Classfile Deserializer

A Java Classfile deserializer and debugging utility written in Rust.

Rust, Java

Nov 2020 - Nov 2020

Freelist Allocator

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

C

Sep 2019 - Oct 2020

Assembly Virtual Machine

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

C

Jan 2016 - Present

ntrupin.com

My personal full-stack website.

Python, JavaScript, SQL

Sep 2014 - Dec 2015

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.

Python, JavaScript, VBA