artificial intelligence ⋅ mathematics ⋅ programming ⋅ quantitative design ⋅ civil liberties ⋅ humanism
Some serious acoustic wizardry went into this. Recreate the immersive sound of an upstairs neighbor blasting music through the ceiling, or through a neighboring wall, using over-the-ear headphones and a smartphone as a head-tracking gyroscope.
◆◆◆◆◆◆◆◆
If you're allowed to combine any number of pokémon types together—not just one or two—can you make a type combination that is 1/2x resistant or better to each attacking type? (For example, you're allowed combinations like [dark, ground, water, water, water].) And if you can, how many different all-resistant type combinations are there? I found them all— there are 5,057. Details follow.
Ten years: A progress report After fifteen years, I solved it
Does a black hole in Narnia pull all of earth into an upstairs wardrobe? Can you cheat gravity using a portal gun to teleport to great heights or fall forever? If an object can see itself in a portal, does it gravitationally attract itself? I answer questions about how gravity works in the presence of bridges between universes (Narnian portals) or different spots in the same universe (Gladosian portals).
Contains plain-language explanations and also the supporting proofs solving poisson's differential equation on exotic topologies.
Exotic algorithms that compute using scifi time travel and stable time loops. Working examples included.
I explain, from first principles, how the sun moves through the sky and how it looks from different vantage points. Seasons, extremely tilted planets, Martian zodiacs, how sundials work, and more. Just the geometric consequences of orbiting on a spinning planet with a tilted axis—no physics.
Update: A sundial theorem 2022 Oct
My doctoral dissertation, Computing moral hypotheticals. I built a computer system that understands moral hypotheticals such as self-defense or preventive harm, in much the same way we do. Here's a video recording of my thesis defense.
Drawing Celtic knots using platonic solids as the underlying shape.
See also: Tutte polynomials of the platonic solids
Parables about life and identity. Updates some Fridays.
Nomograms are too interesting to summarize in such a small space. Briefly put, nomograms are diagrams that help you compute the solution of an equation of three variables— even very complicated ones — by finding the place on a drawing where a line crosses three curves simultaneously. This converts the analytic problem of solving for one of the variables given the other two into a 2D geometric problem. The result is a two-dimensional representation of the equation where you can read off solutions using only a straightedge; all the complicated relations are implicitly encoded in the particular shape of the curves.
(improved result!)
I describe Kellogg's and Warmus's procedures for testing whether a function can be nomographed, and for constructing the nomogram if so.
This compound nomogram enables you to compute the concentration of a mixture of two solutions at different concentrations.
A computer program that identifies poetic features of Latin poetry (such as alliteration, syllable counts, and caesurae) to help identify the Anglo-Saxon poets who wrote them.
I propose an intro quantum mechanics course based on playing with smart, qualitative numerical simulations. You can ditch the nonphysical idealizations and instead focus on big messy physical problems—such as chemistry! The main advantage is compositionality: learning something new enables you to do combinatorially many new things.
I analyze the implicit pragmatic rules that constrain when it's appropriate to say that "X drove Y to Z". These rules hinge on concepts including "intended destination", "passenger sentience", and "transport beneficiary", showing just how surprisingly nuanced our language is.
I wrote a program to manipulate infinite series, solve recurrences, and convert infinite sequences into finite closed form. A finite computer can wrangle infinities.
Can you wrap rubber bands around a cube so that every face looks like the image shown here (or a rotation or reflection of it?). I write Clojure code to find out.

My optimized design for a weight-plate loading app. No typing of any kind. Unified interface for assembling a target weight, visually looking up an arrangement of plates, and converting between pounds and kilograms. (Designed for smartphones.)
A map of all the shrines in Breath of the Wild. Using the elegant grid-based index, you can easily look up the location of any shrine by name. Find shrines you've missed.
Map with initials Map with unique initials Map with full names
I derive the ideal gemstone shape based on physical principles. Along the way, I uncover connections between gemstones, mirrors, lasers, and glass.
The Magic: The Gathering card game has evolved its own English dialect, complete with new grammar. Here, I describe and codify some of the (implicit) rules.
A mini-theory of choreography. Three constraints to help you design elegant choreography for games like Stepmania.
A few unsorted, miscellaneous little ideas or results. Updated occasionally.
Given some empirical data points, find the best-fit hyperbola/parabola/ellipse passing through them. Includes Python code.
Write in an alien language using Loren's circular alphabet. Pre-alpha proof of concept.
A cubic meter is larger than a liter, but a cubic millimeter is smaller than a milliliter. Changing the prefix changes which is larger— can you find the prefix that makes them equal?
Game-playing strategies for card games with luck manipulation.
How would you experimentally determine the Pokémon type chart if you didn't already know the types and their interaction strengths?
Solving a subletting problem with an elegant payment protocol.
A well-known puzzle asks for a least-time strategy for a group of people to cross a bridge in pairs with a flashlight. With a combination of search and some astonishing computer-automated algebra, we can get insight into the general case.
Edit: I found a closed-form solution. Regardless of who's crossing the river, an optimal solution is to send the two slowest people across the river, either escorted by the fastest person, or in a "one-two ratchet" (the two fastest people cross, then the fastest returns, then the two slowest people cross, then the second-fastest person returns), whichever strategy is faster. This is always optimal. [writeup]
In this essay, I argue that online surveillance endangers our basic freedoms; a direct solution should target exploitative organizations, not the people who built the free-of-charge, communal Internet.
A lightning-fast tool for looking up Latin verb endings. You can type any combination of English (“we will/should have been -ed”) or grammatical terms (“3i subjunctive passive”) to get a tailor-made table of relevant verb endings.
My friends and I have developed a useful strategy for working together. Social queues provide short one-way conversations that enable you to tell someone else that you'd like to talk to them, without interrupting their focus if they're working hard on a problem.
This fixed-verse poetic form, invented in the 12th century, has beautiful hidden symmetry. I depict the symmetry several ways and generalize it, defining a family of new poetic forms.
To solve a puzzle about a conversation, I converted the conversation into an interpretable program. When you describe a problem in this new puzzle-language, the resulting code looks like a natural language conversation and, when run, will find the solution.
Ambiguous drawings like this Escher staircase or this elephant employ surfaces and lines that you interpret differently depending on where you're looking.
I found a way to depict a four-dimensional Klein bottle using a similar ambiguous technique. Here, you can see the neck of the bottle bypass the inner surface without piercing it — an impossible feat in three dimensions.
A visualization of how material and lighting can affect brightness. (A four-variable oriented nomogram with transparency.)
We nearly ran out of gas while driving between states! This usually means walking to the nearest gas station and back. In this article, I devise the optimal cooperative solution.
This script explains medical terms by breaking apart their etymological roots. It translates Latin-based jargon into familiar words that anyone can understand.
I use a variety of conceptual, programming, and mathematical tools to investigate a card game puzzle.
A picture of the relations between complexity classes. As shown in the key, containment goes in the upward direction. Solid lines indicate equality; the axes are time/space, difficulty, and complementation; and the hardest problems for each class are written in blue.
(See also: Hasse diagrams on Wikipedia.)
Microwave ovens measure time in strange and wonderful ways: you can type in three minutes as 3:00— but also as 2:60! In this article, I explore the properties of this number system and its relationship to another numbering system, binary coded decimal (BCD).
Graph theory applied to relationship shapes among multiple participants.
Using pushpins and yarn to depict compatible attraction.
By expressing human relationships in terms of relational algebra, I discover that monogamy is like unitarity, stepchildren and children-in-law are dual concepts, and your spouse could reasonably be called your self-in-law.
Converting genders and orientations into numbers allows you to estimate relationship compatibility using arithmetic.
A cultivated collection of songs that are variously life-affirming, immortality-positive, futurist, and/or socially conscious.
A collection of short essays outlining some moral issues concerning life and death and what we can do about them today.
A few web resources collected to commemorate the brilliant, kind, redoubtable Marvin Minsky.
The Jewish law prohibiting mixtures of meat and milk has the same algebraic structure as the rules for which blood types are compatible donors.
A question-answering program capable of holding a conversation about what happened when. (Class project based on Longuet-Higgins's book Mental Processes.)
Quantum measurement becomes easier to explain when you think of each measureable quantity as a coordinate system — which, in a precise way, is what an eigenbasis is.
By optimizing my walk home, I've discovered some beautiful graphs and an unexpected conclusion.
A search engine which searches itself. Reminiscent of Minsky's Ultimate Machine.
In Latin poetry, the length of each syllable is determined using rules regarding nearby letters and accent marks on the vowels. This program allows you to input Latin poetry without accent marks; it then intelligently guesses the accent marks by assuming that the poetry follows a specific metrical form known as dactylic hexameter.
You can balance chemical equations automatically by calculating a basis for the null space of a “chemical composition” matrix. The method is useful because the calculations are automatic, because the method is always applicable, and because the null space reveals a wealth of useful detail about the space of possible answers.
I show how molecules can be represented as a kind of adjacency matrix. In particular, the properties of lewis structures (polar character of bonds, formal charges, etc.) can be read off as properties of the corresponding matrix.
When you type an English word, the system explains how to pronounce it using simple English words — rather than using more precise but arcane phonetic systems such as IPA. (Pronunciation data comes from CMU's pronouncing dictionary for American English.)
The sun emits light of various frequencies which scatters in Earth's atmosphere, producing a lovely characteristic blue color. I took a table of blue sky spectral data and resized the visible frequencies (400-700 THz) into audible frequencies (around 400-700 Hz). This is the result — a chorus of blue.
Note: The blue color of the sky results when the radiation of the sun (effectively a 5600K blackbody) becomes scattered by small particles in the air (Rayleigh scattering).
This clock maps the twelve divisions on a clock to the notes of a twelve-tone scale, allowing you to hear the current time as musical intervals.
I depict a generic human lifespan as a 12×90 grid of provocatively tiny squares, each representing a month. It enables you to project your own life onto the smallish grid, noting the spatial location of different milestones, measuring the amount of life you've accumulated so far, guessing where in the grid future events may happen, and ultimately to contemplate how short life is, even when it's as long as our best modern technology allows. After all, it's a rare person indeed who won't fit in this grid.
The Pinkwater Podcast Setting a poem to music A functional tree-drawing algorithm Guess that Pokémon Determine electron dot structures using logic programming Symbolic integration & Geometric analogies 6.034: Introduction to Artificial Intelligence The Mythos of Death Pólya's Toggling-Locks Puzzle An alternate program for displaying your Calibre library… … and a purely-Javascript EPUB reader Arithmetic with finite fields Exterior algebras in pictures Drawing simple-alternating-transit mazes Marvin Minsky's Society of Mind Aaron Sloman's interview transcript A category-theoretic view of inductive reasoning Designing cryptographic protocols