Projects

kMC Crystal Simulator
Rust, WebAssembly, 2026
demo / config editor / code / post

A kinetic Monte Carlo simulator for 2D crystal growth, written in Rust and compiled to WebAssembly. It can grow almost any design that can be specified in terms of local particle interactions, including non-periodic and off-lattice crystals, and crystals implementing programmatic rules such as an infinite Serpinski triangle.

Sparse variant cache
Python, PyTorch, 2026
code

Train protein variant-effect models by reusing reference states and recomputing only the mutated positions. A bidirectional sparse variant cache for ESM Cambrian, with stability models evaluated directly against the Mutate Everything and ArcStability benchmarks.

MTile
C#, MonoGame, WebRTC, 2026
play / code

A 2D platformer in a voxel environment, with free, parkour-style movement. Deterministic 60 fps simulation with GGPO-style rollback netcode. Playable in the browser, solo against a bot or peer-to-peer over a direct WebRTC data channel.

Gut biofilm agent-based model
Python, Taichi, 2023–2025
code / npj Biofilms and Microbiomes / mSystems

An agent-based model of biofilm growth in the gut mucosal layer. Bacteria are implemented as shoving particles, which may feed and grow based on metabolites implemented as reaction-diffusion fields. Host effects such as mucus secretion and antibacterials are implemented as simulated parameters. GPU-accelerated physics and reaction-diffusion dynamics in Taichi.

Function-conditioned protein language models
Python, PyTorch, 2024–2026
code

Semi-supervised identification of functionally important residues using GO-term-conditioned masked language modeling. FuncCondESMC extends ESM Cambrian with a learned embedding for each GO term, added to the token embeddings so every attention layer is conditioned on the protein's annotated function. Evaluated on eight site-annotation datasets covering catalytic residues, binding sites, linear motifs, and InterPro domains.

Calibrated Response
Python, 2026
code

A maximum entropy model for turning sets of approximate predictions into calibrated joint probability distributions. Answers from arbitrary sources become soft constraints on a maximum-entropy joint distribution fit by a flow or EBM based sampler, scalable to >1,000 variables. Calibration is evaluated against resolved Metaculus questions.

GO Bench
Python, Flask, 2021–2022
gobench.org / dataset package / server / paper

Shared hub for universal benchmarking of machine-learning protein function annotation. The go_bench package generates Gene Ontology training, validation, and test sets from SwissProt and GOA with fixed splits, and the Flask server behind gobench.org lets users upload model predictions to a public leaderboard.

STARP Primer
Python, Flask, BLAST, 2023
code / BLAST interface

A web application for designing and validating STARP PCR primers for genotyping individual single nucleotide polymorphisms, built for the USDA. A Flask API and HTML/JavaScript frontend over the Nested Loop and STARP primer programs, with a BLAST backend to filter primers that bind at multiple sites and a Redis/Celery queue for computationally intensive requests.

All repositories

Public repositories on github.com/amdson, newest first. One sentence each.