Hi, I'm David! I love building cool tech stuff. This page contains
everything I've built or published, all in one place.
I'm mainly into AI, blockchain, maths, music, computing, physics,
chemistry, and theology, however I love learning and stay curious about
most things.
I've made AI automations, apps and software, music with Just Intonation tuning,
self-similar fractal art and generative NFT art, Dark Forest plugins to help you
explore a hostile universe and shoot your enemies more effectively. I completed
my doctorate in fluid dynamics, my masters was mathematics, and I have a
stack of computing and Salesforce certifications.
Hope you enjoy looking at some of the interesting stuff I've built!
Building
Apps & Websites
Cross and Wing Publishing
– I built this website and book reader from scratch. The initial ideas came from me and C&W founder Michael.
I used Claude for the code, Codex for the pictures, the design choices were mine.
I used many rounds of user testing and iteration to make C&W a wonderful place to read books old and new.
Rolling Shapes
– a spirograph-style app. Choose an inner and outer shape, and a pen position.
Drag the inner shape to produce beautiful patterns!
Supports shape modifications and multiple coloured pens.
Nopert Polyhedra Explorer
– a solid is Rupert if a copy of it can pass through a hole cut in it.
In 2025 Steininger and Yurkevich found and proved the first Nopert (non-Rupert) shape, the 90-vertex Noperthedron.
In 2026 the Nopert property has been proved for the 88-vertex Undecanope, the 60-vertex Rhombicosidodecahedron, and the 8-vertex Triakis Tetrahedron.
Explore these shapes and try to fit them through themselves!
Noble Polyhedra Explorer
– in 2026 Connor Hill classified all the Noble Polyhedra into 2 infinite families and 146 exceptional objects.
Use this explorer to view them all and customise how they look.
E8 Root System Explorer
– rotate all 240 roots through eight dimensions, grab a root to pull the complete projection,
and reveal its 6,720 edges, four Coxeter planes, local neighbourhoods, cycles and simple roots.
Leech Lattice Explorer
– a 24D sphere packing with 196,560 balls round one – John Leech, 1967.
Turn all of them through 24 dimensions, from E8 inside one octad to the exact 36-fold symmetry of a rotation.
Aperiodic Monotile Explorer – in 2022 David Smith discovered the Hat,
a shape that could tile the plane, but only in a seemingly random way. My interactive explorer
allows you to fine tune different colours and parameters on this tiling,
including different related shapes such as Spectre, Turtle, Chevron, and Comet.
See: paper
Modulo Krinkle Explorer – in 2025 Miki Imura found a family of
single tiles that fill the plane in wedges, spiralling round a centre. Three whole numbers set the shape
of each tile. My explorer lets you pan, zoom and recolour these spirals, and step through her presets.
See: Imura's paper
Aperiodic Pair Gallery
– six interactive aperiodic tilings, each built from two tiles, from Penrose's kites and darts to a two-shape Spectre tiling,
each drawn from its mathematical definition. Pan and zoom every patch.
Sieve of Eratosthenes
– an interactive educational app to demonstrate finding the prime numbers using a sieve technique discovered in ancient Greece.
You have the choice of choosing your primes wisely or foolishly!
Fractal Explorer
– place turned, flipped, scaled and stretched copies inside a square or triangle.
Link letters into one rule, then read its limit, dimension, convex hull and overlap.
dice-to-seed
– turns physical dice rolls into a 24-word BIP-39 seed phrase. One file, Python
standard library only, runs offline. It measures the entropy, balance and
repetition in your rolls, and asks for more until every check passes.
ReTuner
– a musical instrument with Just Intonation tuning, that retunes itself as you play.
Here is the code on GitHub.
GitHub
– my public repositories, code for what I'm building
With AI it is now possible to build simple games with a single prompt, and more complex games
by chatting through with the bot what you want to see in the game, and iterating on that.
Pentrys
– a falling-block game with all 21 shapes made from one to five squares.
Some squares count double or triple, so their rows clear with gaps.
Glass counts nothing, and a flood square fills the gaps around it.
Smash Screen
– destroy phones and laptops using hammer, fist, or even a fish.
Swat the flying glass and mind your own fingers, let battle commence!
Inspired by a picture of a smashed screen on the internet.
These next games were one-shotted from a single prompt each, as teaching demos:
Dino Dash
– a Pac-Man style game. I was teaching my children how to use Claude. I set up the prompt,
and included within it their suggestions such as dino, cat, eagle, player shouting Yay after 10 dots!
Here is the code on GitHub.
Sonic "The Asteroids"
– this was created as a demo to university students, showing that a single sentence can generate an entire game.
It has fun details such as Sonic spaceship, Mario asteroids, also Luigis, Warios, and a big bad Bowser boss!
Here is the code on GitHub.
Have a go at the games above by clicking through the game titles!
Moving Mondrian – a fully onchain generative NFT on Optimism Mainnet, built
for the Optimism Foundation's "We Love The Art" competition in Jan 2024. The
artwork and its traits are generated entirely inside the contract.
Mint ·
OpenSea collection ·
contract ·
code
Nifty Ink – generative fractal art, minted as NFTs.
To draw my fractal patterns, I helped develop Markichu's PythonAutoNifty
package, extending it to allow mathematical fractals to be
drawn on the Nifty Ink canvas in many different ways, under the control of the user.
View my artist page for niftymaestro.eth
Spend a crypto salary without selling it
– a guide to saving a salary as crypto and borrowing stablecoins against it on Aave, fully onchain.
It covers the steps, the loan-to-value arithmetic that decides whether you get liquidated, and the costs.
The Merge Fractal and Moving Mondrian NFTs are limited editions, and both are still
available. Mint one straight from the contract on its own page:
Merge Fractals or Moving Mondrian.
Dark Forest plugins
Highlight Buffs
– shows the user where the good planets are, 2x buffs, artifacts, etc
You Snooze, You Lose!
– works out when other players are asleep, so you can destroy them as they slumber
I've been using the latest AI models to audit smart contracts for common DeFi protocols.
This is both for my own curiosity, and to help the Ethereum community,
since there is great value in having multiple independent audits of high value protocols.
I hope you find it useful!
WETH
– Wrapped ETH is central and critical in Ethereum DeFi.
This contract was deployed in Dec 2017 and contains around 2,000,000 ETH.
I did this independent audit using Claude Opus 5 in Aug 2026.
Summary: no exploitable vulnerability,
two medium integration hazards, and a checklist for anyone building on top of it.
Uniswap V2
– the pair, factory and router contracts deployed by Uniswap in 2020.
With over 700 forks they control over $2 billion of assets.
Governance switched on the protocol fee in Dec 2025, after 5.6 years of dormant code.
Summary: no exploitable vulnerability, the live fee arithmetic proven overflow-free,
and three medium findings, the largest a fee that charges staking yield as trading revenue.
DAI
– the decentralised stablecoin deployed by MakerDAO (now Sky) in Nov 2019, with over $4 billion of DAI minted.
The main risk is the wrong person calling mint, so this audit traces it through 16.9 million blocks of chain history.
Summary: no exploitable vulnerability, the mint authority proven closed to a single address since 2019,
and two medium findings in a signed-approval function that predates EIP-2612.
Permit2
– the contract Uniswap deployed in Nov 2022 so that apps can take token allowances from a signature, with over 700,000 transactions on Ethereum mainnet.
Since 2025, EIP-7702 has let ordinary accounts carry code, which Permit2 was not designed for.
Summary: no exploitable vulnerability, deployed code identical to the verified source,
and four medium findings, one caused by EIP-7702, which moved about one in six signers onto the smart contract wallet signature check.
CryptoPunksMarket
– the immutable marketplace contract deployed in June 2017 for the 10,000 CryptoPunks.
At the review block it held 3,145 ETH for pending withdrawals and active bids.
Summary: no exploitable vulnerability, exact solvency to the wei,
one medium integration hazard, two low defects.
npm modules
ji-rcn
– Just Intonation interval conversion to Rational Comma Notation
is-bounded-number
– checks whether an input is numeric and within a given bound
log-count
– a wrapper for console.log with several log levels
Music
Links
Music on SoundCloud
– original compositions and classical pieces retuned, all in Just Intonation
Music sequencer
– the sequencer I built between 2015 and 2017 to write much of that music:
notes go in as Excel, MATLAB or Octave renders one .wav per channel, and
Audacity mixes them down
A two-parameter family of polygonal Spectres (2026, draft, PDF)
– Starting with the underlying polygon for the Spectre aperiodic monotile, put a triangle on each edge, then the 27-sided result can tile only chirally and aperiodically, for every triangle below a height bound.
It extends Adam Goucher's 2023 proof for a single such polygon.
Small clusters of the Hat and Spectre do not tile the plane (2026, working draft, PDF)
– Exact calculations show that no topological-disc cluster of two through five Hat-family tiles or Spectres tiles the plane, with reflected cluster copies allowed. The result awaits an independent implementation and compact rejection certificates.
Mathematical Harmony Analysis (2016, arXiv preprint)
– a way to measure how consonant a chord is. Write the chord in whole numbers, then divide their lowest common multiple by their greatest common divisor.
Lower is more consonant. Major and minor triads both score 60, and their positions among the divisors of 60 tell them apart as otonal and utonal.
The major scale scores 4320, and a seven-note scale with 7th harmonics beats it at 3360.
Transposition of Notations in Just Intonation (2015, arXiv preprint)
– transposing a melody multiplies every note by the same frequency, so this paper defines multiplication, division and inversion for Rational Comma Notation.
Each note splits into an octave, a scale note, its sharps or flats and a comma, and the parts multiply separately.
Up a fifth, C4 D4 E'4 times G4 gives G4 A4 B'4.
Unlike what the articles appear to imply, I don't actually think we should
destroy all of our existing musical instruments because they are obsolete!
12 tone equal temperament is clearly a very successful musical tuning system,
despite its audible limitations in terms of tuning accuracy. Nonetheless, I am
delighted to use Just Intonation to create new, unusual, and exciting music.
Perhaps some day we'll figure out how to encode the infinite possibilities of
these JI tunings to actual physical instruments... or perhaps AI is needed to
automate that for us 😉
Investigating dispersion and emulsification processes using a Sonolator liquid whistle
– 8th International Conference on Multiphase Flow, Jeju, Korea, 2013, with M. Simmons and M. Baker