Molecular Dynamics & Computational Chemistry

Molecular Representations
Two paired slope charts showing retrieval falling from synthetic to real depictions

Molecular Depiction Alignment: Contrastive vs Predictive

Two ways of aligning molecular depictions into a frozen chemistry model’s embedding space, contrastive and predictive, compared on one data and evaluation stack with a pre-registered prediction.

Scientific Computing
Grid of complex molecular structures rendered from SELFIES and SMILES strings

Molecular String Renderer: Chemical Visualization Library

An RDKit wrapper treating molecular visualization as a software engineering problem, implementing strategy pattern for SVG generation with automatic raster fallback, native SELFIES support for generative AI workflows, and strict type safety for batch processing in molecular ML training pipelines.

Molecular Simulation
Müller-Brown Potential Energy Surface showing the three minima and two saddle points

Müller-Brown Potential: A PyTorch ML Testbed

A PyTorch testbed for the Muller-Brown potential: analytical and autograd force kernels, and a BAOAB Langevin sampler validated against the canonical distribution.

Molecular Simulation
Velocity Autocorrelation Function showing the signature negative region characteristic of liquid dynamics and the cage effect discovered by Rahman

Modernizing Rahman's 1964 Argon Simulation

A modern replication of Rahman’s 1964 argon molecular dynamics paper in LAMMPS, with a cached, vectorized Python analysis pipeline and an agreement table.

Molecular Generation
3D ball-and-stick model of butane molecule representing the structural isomer generation process

Synthetic Isomer Data Generation Pipeline

An end-to-end data factory for molecular machine learning that transforms raw chemical formulas (e.g., C6H14) into labeled 3D conformer datasets, using MAYGEN for structural isomer enumeration, RDKit for 3D embedding, and physics-based featurization to address data scarcity in computational drug discovery.

Molecular Simulation
Energy conservation plot showing kinetic, potential, and total energy oscillations for a copper adatom diffusion simulation

Automated Adatom Diffusion Workflow

A LAMMPS and EAM workflow simulating adatom diffusion on copper and platinum FCC surfaces, with a Python layer for energy and trajectory diagnostics.

Molecular Simulation
Molecular visualization of a methionine dipeptide structure from MD simulation

Mini-Protein Trajectory Generation

An automated GROMACS pipeline generating ML-ready molecular dynamics datasets: capped dipeptides across nine residues, with atomic forces at 0.1 ps resolution.

Scientific Computing

Scientific Computing
Before and after visualization of point-set alignment using the Kabsch algorithm

Kabsch-Horn Cookbook: Differentiable Alignment

A differentiable point-set alignment library implementing N-dimensional Kabsch, Horn quaternion, and Umeyama scaling algorithms with per-point weights, batch dimensions, and custom autograd across NumPy, PyTorch, JAX, TensorFlow, and MLX.

Scientific Computing
Comparison of IQCRNN (Our Method) vs standard Policy Gradient showing training curves, phase portraits, and state trajectories for control tasks

IQCRNN: Certified Stability for Neural Networks

A PyTorch implementation enforcing Lyapunov stability on RNN controllers, solving a semidefinite program inside the training loop to certify safety.

NLP & Computational Social Science

Natural Language Processing
Huffman Tree visualization for the input 'beep boop beer!' showing internal nodes with frequency counts and leaf nodes with characters

Vectorized Word2Vec in Pure PyTorch

A ground-up PyTorch Word2Vec. Tensorizing the Huffman tree turns pointer-chasing Hierarchical Softmax into dense GPU ops compatible with torch.compile.

Computational Social Science
Top features for Social Welfare policy classification showing social, poverty, benefits keywords

Congressional Knowledge Graph & Policy Classification

A 47,000-bill dataset from Congress.gov with a co-sponsorship graph and TF-IDF baselines for 33-class policy-area classification, at 0.88 weighted F1. On Hugging Face.

Creative

Creative Work
Elemental Brawl logo featuring stylized text with elemental imagery

Elemental Brawl

A 2014 fighting game with 37 playable periodic table elements. Led a team of artists and a composer, ran a Kickstarter, and shipped a playable demo.

Early Work

Scientific Computing
Cartesian Genetic Programming graph showing input nodes, function nodes, and output nodes with active and inactive connections

Cartesian Genetic Programming in Julia

A fork of Dennis Wilson’s CGP.jl adding the Atari reinforcement-learning experiment layer: experiment variants, fitness functions, and hyperparameter tuning.

Scientific Computing
Radix-2 DIT butterfly diagram showing the fundamental FFT operation with twiddle factor multiplication

FFTW Compiler in Haskell

A Haskell reimplementation of FFTW’s genfft metaprogram, generating straight-line optimized C kernels for FFTs via a symbolic DAG and algebraic simplification.

Scientific Computing
Flowchart diagram showing the recursive backtracking algorithm for constraint satisfaction in schedule generation

Term Schedule Optimizer

A scraper and recursive backtracking search over Drexel’s Term Master Schedule, enumerating every course schedule that satisfies a set of hard and soft constraints.

Creative Work
Rubik's Cube sonification hackathon project showing a Raspberry Pi setup with webcam reading cube colors and Python code on screen

Rubik's Cube Sonification

A 24-hour hackathon build that scans a Rubik’s cube by webcam and sonifies it, synthesizing PCM audio byte-by-byte with equal-temperament intervals.