Selected projects
What I build on the side.
A running set of independent projects — small enough to finish, ambitious enough to learn from. Computational physics, machine learning applied to quantum systems, and the systems and cryptography I am exploring next. All open source.
Inertial Confinement Fusion
Toy models of laser-driven fusion — from the ignition cliff to the Xcimer pipeline.
A growing set of small, self-contained Python models for building intuition about inertial confinement fusion — a few hundred lines each, runnable on a laptop, with every simplification written down. Each is quantitatively anchored (real DT fusion reactivity, the rocket equation, textbook ignition criteria) and cross-checked against known results.
They build up from a 0-D hot-spot ignition balance, through a "rocket" capsule implosion and a resolved 1-D Lagrangian hydro solve, to Rayleigh–Taylor instability growth in both planar and converging geometry, a view-factor model of where hohlraum drive symmetry comes from, the yield hit from low-mode drive asymmetry, an excimer-laser + SBS pulse-compression chain, and machine-learned surrogates for both the ignition threshold and hohlraum-geometry design.
Quantum Machine Learning
Can a neural network learn to emulate a quantum gate? The answer is about data, not architecture.
A small, instrumented Qiskit + PyTorch playground for one question: when you train a network to imitate a quantum gate, does the representation of its output decide whether the learned gate composes?
Training on Born-rule probabilities throws away phase, so the learned gate fails to compose — U² diverges from the truth. Training on full complex amplitudes keeps phase, and composition holds to ~0.998–0.9997 fidelity. Feed the probability model tomographically complete data and it recovers phase after all — so the barrier is the information in the target, not the network.
Machine Learning
Reinforcement-learning experiments on classic control.
Reinforcement-learning experiments built up on classic control environments — from a random-agent baseline to tabular methods to the harder swing-up task.
- Random-agent baseline for calibration.
- Tabular Q-learning on classic control.
- Q-learning on the cart-pole swing-up task.
Voices — publicly auditable ZK voting
In designA voting system where anyone can audit the election, nobody can see who you are, and you can still confirm your own vote counted.
Modern elections ask voters to trust a black box. Voices explores the opposite: a voting system that is publicly auditable end-to-end, on a blockchain, while keeping every ballot secret. Anyone can verify that each recorded vote came from an anonymous, authorized, unique voter — without ever learning who voted, or how any individual voted.
The hard part is a real cryptographic tension. A voter should be able to confirm their vote was counted, yet must not be able to prove to anyone else how they voted — a transferable receipt is exactly what enables coercion and vote-buying. Voices combines zero-knowledge set-membership with on-chain public auditability: a government ID establishes eligibility off-chain and never touches the chain, a nullifier prevents double-voting, and verification is end-to-end rather than receipt-based.
- Eligibility without exposure — the ID is verified off-chain; only a zero-knowledge proof of set membership ever goes on-chain.
- One person, one vote — a nullifier makes double-voting detectable without linking a vote to a voter.
- Public auditability — anyone can confirm every vote came from an anonymous, authorized, unique voter.
- Coercion-resistant verification — end-to-end verifiability, not a receipt someone could demand to see.
- Explicit trust boundaries — the eligibility issuer is named, not hidden inside a black box.
Prove eligibility
Verify your government ID once, off-chain, with the eligibility issuer.
Anonymous credential
Join the eligible-voter set as a commitment in a Merkle tree — no identity on-chain.
Cast your vote
Submit a zero-knowledge proof of eligibility plus a nullifier; the ballot is recorded on-chain.
Public tally
Anyone verifies every recorded vote came from an anonymous, authorized, unique voter.
Verify your own
Confirm your vote was counted — without producing a receipt anyone could coerce.