The homepage of Dylan Holmes

Web Name: The homepage of Dylan Holmes






The homepage of Dylan Holmes


artificial intelligence ⋅ mathematics ⋅ programming ⋅ quantitative design ⋅ civil liberties ⋅ humanism

The homepage of DylanHolmes


artificial intelligence ⋅ mathematics ⋅ programming ⋅ quantitative design ⋅ civil liberties ⋅ humanism ⋅ short essays

Computing moral hypotheticals

My doctoral dissertation, Computing moral hypotheticals. Ibuilt a computer system that understands moral hypotheticals such asself-defense or preventive harm, in much the same way we do. Here's avideo recording ofmy thesisdefense.

Programs that manipulate infinities

I wrote a program to manipulate infinite series, solve recurrences,and convert infinite sequences into finite closedform. A finite computer can wrangle infinities.

Algorithm design for time travelers

Exotic algorithms that compute using scifi time travel and stable time loops. Working examples included. (Aug 2022)

Whatdo you compute in quantum mechanics class?

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. (July 2022)

Saying when

A question-answering program capable of holding a conversation aboutwhat happened when. (Class project based on Longuet-Higgins'sbook Mental Processes.)

Geometric astronomy

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.

Untangling knots

Can you wrap rubber bands around a cube so that every face looks likethe image shown here (or a rotation or reflection of it?). I writeClojure code to find out.

Gemstones and Light

I derive the ideal gemstone shape based on physical principles. Along the way, I uncover connections between gemstones, mirrors, lasers, and glass.

Social queues

My friends and I have developed a useful strategy for workingtogether. Social queues provide short one-way conversations thatenable 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.

How to cross the street

By optimizing my walk home, I've discovered some beautiful graphs andan unexpected conclusion.

The Internet commons

In this essay, I argue that online surveillance endangers our basicfreedoms; a direct solution should target exploitative organizations,not the people who built the free-of-charge, communal Internet.

The hybrid numbers of microwave ovens

Microwave ovens measure time in strange and wonderful ways: you cantype in three minutes as 3:00— but alsoas 2:60! In this article, I explore the properties of thisnumber system and its relationship to another numbering system, binarycoded decimal (BCD).

Dance Dance Resolution

A mini-theory of choreography. Three constraints to help you design elegant choreography for games like Stepmania.

Zelda Cartography Map with initials Map with unique initials Map with full names

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.

Colorless green mana sleeps furiously

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.

Nomographic tests

I describe Kellogg's and Warmus's procedures for testing whether a function can be nomographed, and for constructing the nomogram if so.


Game-playing strategies for card games with luck manipulation.

Fitting conics to data

Given some empirical data points, find the best-fit hyperbola/parabola/ellipse passing through them. Includes Python code.


A few unsorted, miscellaneous little ideas or results. Updated occasionally.

Circular Gallifreyan

Write in an alien language using Loren's circular alphabet. Pre-alpha proof of concept.

SI units and (pre)fixed points

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?

Cyclic poetry

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.

Weight-plate loader

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.)

Paint, moondust, and electrons

A visualization of how material and lighting can affect brightness. (A four-variable oriented nomogram with transparency.)

Klein bottle folding instructions

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.

Conversational code

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.

Empirical Pokémon typing

How would you experimentally determine the Pokémon type chart if you didn't already know the types and their interaction strengths?
pokémon, ai

Kirchoff's law for renters

Solving a subletting problem with an elegant payment protocol.

Polyhedra in knots

Drawing Celtic knots using platonic solids as the underlying shape.

See also: Tutte polynomials of the platonic solids

Crossing strategies

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 Plain English

This script explains medical terms by breaking apart their etymological roots. It translates Latin-based jargon into familiar words that anyone can understand.

Three of a kind

I use a variety of conceptual, programming, and mathematical tools toinvestigate a card game puzzle.

Parsing Latin poetry using constraint satisfaction

In Latin poetry, the length of each syllable is determined using rulesregarding nearby letters and accent marks on the vowels. This programallows you to input Latin poetry without accent marks; it thenintelligently guesses the accent marks by assuming that the poetryfollows a specific metrical form known as dactylic hexameter.latin, programming

Swift suffixes

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.
latin, programming

The Bright Fables

Parables about life and identity. Updates some Fridays.

Short essays on life and death

A collection of short essays outlining some moral issues concerning life and death and what we can do about them today.

Songs for life

A cultivated collection of songs that are variouslylife-affirming, immortality-positive, futurist, and/orsocially conscious.

A roadside refueling relay

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.

A six-variable nomogram for mixing solutions

This compound nomogram enables you to compute the concentration of a mixture of two solutions at different concentrations.

chemistry, nomography, programming
A Hasse diagram for complexity classes

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.)

Algebraic dietary laws and blood compatibility

The Jewish law prohibiting mixtures of meat and milk has the same algebraic structure as the rules for which blood types are compatible donors.

The Autosearch Engine

A search engine which searches itself. Reminiscent of Minsky's Ultimate Machine.

Quantum operators ascoordinate systems

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.

Kinsey Arithmetic

Converting genders and orientations into numbers allows you to estimate relationship compatibility using arithmetic.

Also Kinsey Strings: Using pushpins and yarn to depict compatible attraction.

Polygraphs: Graph theory applied to relationship shapes among multiple participants.

Relational relationships

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.

Pronunciation dictionary

When you type an English word, the system explains how to pronounce itusing simple English words — rather than using more precise butarcane phonetic systems such as IPA. (Pronunciation data comesfrom CMU'spronouncing dictionary for American English.)programming

Guess that Pokémon

In this game, you think of a Pokémon and the program asks youquestions to determine which Pokémon it is; it wins in at most nine questions (Generation I) or ten questions(Generation I & II).Beyond the game itself, this project is interesting because I extractPokémon trait data directly from the Yellow/Gold ROMsrespectively, ensuring that my data is correct. With this trait data,I use a greedy algorithm to construct a short decision tree ofquestions to ask. Because I restrict the set of questions to commonknowledge (about types, evolutions, and so on), the guesser generallyrequires one more question than it would if it were playing optimally— but as a consequence the game is, presumably, more fun to play.pokémon, ai

Determine electron dot structures using logic programming

This short Clojure program solves a class of introductory chemistryproblem using logic programming instead of the usual tedious methodtaught in classrooms— namely, manual trial and error. The use ofa programming language — and constraint terminology inparticular — makes the description of the taskunambiguous. Programs like these demonstrate why computationalthinking belongs in all classrooms.clojure, chemistry, education, programming

A matrix formulation for Lewis structures

I show how molecules can be represented as a kind of adjacencymatrix. In particular, the properties of lewis structures (polarcharacter of bonds, formal charges, etc.) can be read off asproperties of the corresponding matrix.

The null space's insight into balancing chemical equations.

You can balance chemical equations automatically bycalculating a basis for the null space of a “chemicalcomposition” matrix. The method is useful because thecalculations are automatic, because the method is always applicable,and because the null space reveals a wealth of useful detail about thespace of possible answers.

A functional tree-drawing algorithm

I re-implemented the code from Andrew Kennedy'spaper Drawing Trees, in which the authoradduces four aesthetic criteria and designs an elegant, recursivetree-drawing algorithm to meet them.clojure, quantitative design, functional programming

Symbolic integration & Geometric analogies

Two groundbreaking AI programs— Jim Slagle's integration programand Tom Evans's geometric analogy program — showed thatcomputers could perform tasks that many believed only smart humanscould do. In particular, they exemplified the possibility and thepower of programs that make educated guesses. In order to makethese programs (and the ideas surrounding them) available to a wideraudience, I've implemented both of these programs in modernprogramming languages. (good old-fashioned) artificial intelligence

6.034: Introduction to Artificial Intelligence

Since 2012, I have been a teaching assistant for MIT'sintroductory AI course (6.034). During that time, I've produced somerunnable demonstrations of the different concepts we study; thesedemos, along with other miscellaneous school-related doings, areavailable at my MITpage: intelligence, MIT

The Mythos of Death

In this essay, I affirm the following view: All people are entitled tolive a healthy, flourishing life, to determine in what ways they willgrow old, and to decide how and when they will die. A just societyshould exert tremendous effort in promoting this entitlement to life,defending its citizens from aging or dying against their will, andrespecting the choices that they make in this matter as sacrosanct. Nosociety currently meets this standard. We will require new tools tobring about this human right, and undoubtably it will be costly— but the injustice of the alternative is clear and compelling,and emerging technology makes success an genuine possibility if westrive for it.

In my observation, our societal taboos contribute to muddled beliefs about death (e.g. beliefs about selfishness, “the natural order”, and preordained lifespans), and those muddled beliefs, in turn, present the biggest obstacle to securing a society which promotes this entitlement to life— or even one which notices the essay, mortality

Nomography: the lost art of diagrams that calculate
Nomograms with oriented transparency A six-variable nomogram for mixing Nomograms for relativity Weak acid/base dissociation Proof: Filling in constant coefficients Proof: Recovering curves from isopleths Function decomposition Nomograms with two or three straight scales

Nomograms are too interesting to summarize in such a smallspace. Briefly put, nomograms are diagrams that help you compute thesolution of an equation of three variables— even verycomplicated ones — by finding the place on a drawing where aline crosses three curves simultaneously. This converts the analyticproblem of solving for one of the variables given the other two intoa 2D geometric problem. The result is a two-dimensional representation of the equation whereyou can read off solutions using only a straightedge; all thecomplicated relations are implicitly encoded in the particular shapeof the curves. mathematics

Setting a poem to music

I wrote a tune to accompany one of my favorite poems, E.E. Cummings's anyone lived in a pretty how town.a song

The sound of blue skies

The sun emits light of various frequencies which scatters in Earth'satmosphere, producing a lovely characteristic blue color. I took atable 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 smallparticles in the air (Rayleigh scattering).rayleigh scattering

Notes of the hours

This clock maps the twelve divisions on a clock to the notes of atwelve-tone scale, allowing you to hear the current time as musical, clocks

Life, in short.

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.a sort-of art project, mortality

Pólya's Toggling-Locks Puzzle

This simple Javascript program lets you interact with a puzzledescribed by Pólya in one of his books. I find that anincreased ability to play with the problem can help you to spot thesolution.a puzzle

An alternate program for displaying your Calibrelibrary…

I use the indispensable Calibre software to manage my ebookcollection. I've written a script which extends Calibre by interactingwith its database; it uses PHP, Javascript, and CSS3 to render thecover images in your library as aesthetically pleasing 3D books. (Ifyou like the way this looks, you could for example extend it to enablesearching your library, editing your library, etc. You could even readyour books online; see next entry.)ebooks, server culture

… and a purely-Javascript EPUB reader

Load EPUB-format ebooks from your local computer or from any URL. I use this in conjunction with the previous program to access and read my books from any computer that has an Internet connection and a web browser.ebooks, server culture

Arithmetic with finite fields

This one-off Javascript script is for interacting with the arithmetic of finite fields; it helped me to understand more deeply some of the requirements and properties of (so-called) elliptic curves.mathematics, elliptic curves

Exterior algebras in pictures

Mathematicians are often rightfully accused of showing their resultsin elegant final form without showing the methods and dead ends bywhich they arrived at them. In this tutorial, I attempt to explainwhat an exterior algebra is in terms of our intuitive real-worldunderstanding of geometry and space. I've attempted to motivate eachdefinition this way, using pictures and eschewing jargon and formalismwherever possible.a tutorial, mathematics, algebra

Drawing simple-alternating-transit mazes

A fun program for drawing simple-alternating-transit mazes, which are nonbranching mazes of a particularly simple kind that exhibit particularly inscrutable patterns.recreational mathematics, mazes

Marvin Minsky's Society of Mind

This was a project I started after being a teaching assistant forMarvin Minsky's AI course Society of Mind. It's a simple onlineversion of the book Society of Mind which I converted from amultimedia CD edition of the book. The online version, like themultimedia CD, contains great video interviews of Marvin alongside theoriginal text, which is itself a rich source of, ai

Aaron Sloman's interview transcript

I wrote the first draft of a transcript for this interview by Aaron Sloman, a mathematician-turned-philosopher whose work in artificial intelligence attacks questions of impressively broad scope— he asks questions about how virtual machines evolved and in turn influenced the environment in which other virtual machines evolved, how the nature of chemical computations and other exotic architectures might help to explain how brains compute (and why von Neumann machines are a flawed paradigm), and how primal spatial reasoning skills and an eye for affordances eventually led to works like Euclid's Elements, the first explicit codification of that spatio-geometric

A category-theoretic view of inductivereasoning

In this short piece, I present a poset category in which the commutation law is just Bayes's Law. Enriched versions of the category provide a glimpse of the fundamental properties that plausibility values must satisfy (in particular, you can quantify plausibilities with values drawn from rather simple spaces — you don't need to use the entire idiosyncratic aparatus of the real numbers or even a σ-algebra.)mathematics, category theory, probability

Remembering Marvin Minsky

A few web resources collected to commemorate the brilliant, kind,redoubtable Marvin Minsky.

Designing cryptographic protocols

I sketch an idea I had for a program that builds and debugs bespoke cryptographic protocols by drawing upon a library of techniques and common bugs. (This idea is heavily inspired by Sussman's HACKER thesis.) As a benchmark test, it would re-derive familiar protocols such as asymmetric-key cryptography, oblivious transfer, and so on, merely from the specification of the problems.programming, ai, cryptography

♡2014-2022 Dylan Holmes. Feel free to use, modify, and share my work. Except where otherwise noted, I license all content on this website,, under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. (This means that you are free to use, modify, and re-distribute such work noncommercially as long as you attribute the original to me and share your modified versions in the same way.)

TAGS:homepage The of Holmes

<<< Thank you for your visit >>>

Websites to related :
The Sunday Paper

  Skip to content Become a Sunday Paper PLUS Member

the magnetic electric

electric notes visuals tools not here for a good time or a long time ~~~~~~~~~~~~~~~~~~~~~

Home - Simon Frey, Software Engi

  homeDo not forget to checkout my blog and find random awesomeness on the link list I'm Simon Frey, Software Engineer and podcaster.My work focuses on

The Software Scrutiny Journal

  The Software Scrutiny Journal Hi, my name is Jake. In my software scrutiny journal, I put the spotlight on what makes code bet

codename /// web software foundr



  Skip to content themediatimes

What can we get you? - The Manha

  Skip to content The Manhattans ProjectClassic cocktails done rightShopAboutBlogCartABV Calculator

The Art & Design of Sci-Fi - Sci

  ContactPrivacy PolicyAboutArtStar Wars TIE Advanced X1 BBQ GrillMarch 28, 2021The Alex Ross Marvel Comics Poster BookMarch 21, 2021Doctor Who Tardis C

AI Software for Decision Intelli


Michael Theodore



Hot Websites