I build tools for peering inside neural networks, tinker with reinforcement learning, and simulate physical systems.
![]() π¬ nansense See inside your net as it trains |
![]() π stable-entropy Thermodynamics-inspired RL |
![]() π‘οΈ PhaseTransition Real-time particle physics, in your browser |
π¬ nansense β a PyTorch debugger you can actually see inside
Pause your training loop, step batch-by-batch, and time-travel between epochs while watching every layer's activations, gradients, weights and optimizer state β live, with nothing written to disk. Run deep dream or Grad-CAM on the paused model to ask what a neuron has really learned.

The live debugger UI, training on CIFAR.

MNIST digits deep-dreamed straight out of the output neurons.
π stable-entropy β thermodynamics-inspired reinforcement learning
A reinforcement-learning algorithm (Policy Annealing) that nudges high-reward action sequences toward high total probability, much like particles settling into low-energy states. It maps surprisingly cleanly onto ideas such as MaxEnt RL and Path Consistency Learning.

A trained agent landing in LunarLander (see the repo for CartPole and more).
π‘οΈ PhaseTransition β real-time particle simulation (C++ / WebAssembly)
A multithreaded particle simulator that reproduces gas β liquid phase transitions. Create, spray, push and heat particles with the mouse and watch them condense or boil. Builds natively with SDL, or compiles to WebAssembly so it runs right in the browser.
π₯ fire-hpp β a C++ command-line interface from a function signature
A single-header library that turns a function's parameters into a full CLI. Declare your arguments as fire::arg defaults, wrap the function in FIRE(...), and the parsing, type conversion, --help text and error messages are handled for you.
int fired_main(int x = fire::arg("-x"), int y = fire::arg("-y")) {
std::cout << x + y << std::endl;
return 0;
}
FIRE(fired_main)




