I build software where the hard part is the algorithm: game AI, machine vision, GPU computing, and large Python systems. Python has been my main language for over 25 years, since version 1.5, alongside C++ and CUDA.
My research is neural networks for board games, and how to build a game's structure into the network instead of hoping it learns it.
Ginny
Ginny is the engine behind Game of Y at Y Knot Labs. It is a recurrent graph-attention network: it sees a position as a graph for each player rather than as a picture of the board, and every point reasons from its own perspective. Because the board reaches Ginny only as a graph, one set of weights plays every board size, and even Mudcrack Y, where every game is played on a new, irregular board it has never seen.
It learns by self-play, generation after generation, from positions labelled by a search a few moves deeper than the network itself, and it runs entirely in your browser.
Highlights
- Game AI, from the start. The Go program for the Internet Gaming Zone (over two million members), a chess rules engine and client for the Internet Chess Club, and work for Zillions of Games.
- GPU computing. Real-time stereo-to-3D reconstruction in CUDA for teleimmersion at UC Berkeley's CITRIS lab, and massively parallel re-planning of aircraft trajectories for NextGen AeroSciences.
- Large Python systems. Upgraded nearly a million lines from Python 2 to 3 at Facebook; hardware-verification and data tools at Samsung, Micron and Microsoft; machine vision for robot automation at Essai.
- Neural networks before they were fashionable. Musical OCR with neural nets at SightReader, and a published study of network architectures for Othello.
Publications
- Airspace Phase Transitions and the Traffic Physics of Interacting 4D Trajectories. Ninth USA/Europe Air Traffic Management R&D Seminar (ATM2011).
- A Study of Artificial Neural Network Architectures for Othello Evaluation Functions. Information and Media Technologies 2(4), 2007. Notes
- Python Cookbook (O'Reilly, 2002): three recipes, as Ken Seehof.
Earlier notes
From the first architecture, before Ginny (2023-2024).
- Symmetry and discrete equivarianceAn ANN architecture for the Game of Y
- POVNet position protocolHow positions are seen from the player to move
- Symmetry notesWorking notes on permutations and board symmetry
- Training strategiesDynamic training sets and iterative training sessions
- Training statusSymmetric models and shared weights in practice
- Othello paper: ideasFrom A Study of Artificial Neural Network Architectures for Othello Evaluation Functions
- Contention induced mitosisGrowing a network where its gradients disagree
- CombatA short note
- Symmetry, PyTorch, and the Game of YA conference talk proposal
Education
- B.A., Computer and Information Sciences, UC Santa Cruz.
- Artificial Intelligence certification, Carnegie Mellon / Emeritus, 2023.
Off the keyboard: chess, shogi, Go, music and aikido.