Open-source project
dreddnafious/thereisnospoon avatar
dreddnafious/thereisnospoon

There Is No Spoon: An ML Primer That Explains Neural Networks Through Physical Analogies

A machine learning primer built from first principles. For engineers who want to reason about ML systems the way they reason about software systems.

1,191 stars90 forksPythonMIT

At a glance

What is it?
This repository is a single-file markdown primer that teaches machine learning concepts to working software engineers using analogies like polarizing filters and paper folding. It is a reading document, not a library, and its value depends entirely on whether its specific analogies land for you.
Who is it for?
Adopt this primer if you are a working software engineer who learns through physical analogy and wants a conceptual map of ML before touching a framework. Do not adopt it if you need runnable code, benchmarked examples, or a reference you can cite in a design document.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 170 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Gap This Primer Targets: Engineers Without an ML Gut

The README opens with a specific claim about its audience. It addresses engineers who can draw a software system on a whiteboard from a mental model, who understand tradeoffs between maintenance and elegance, but who lack an equivalent instinct for machine learning. The stated problem is not ignorance of tools. It is the absence of a feel for when to reach for which one. That distinction matters, because it separates this project from the enormous category of introductory ML content that assumes you want to build a model by Friday. The primer positions itself as a mental model rather than a textbook or tutorial, and the README is explicit that the focus is on when to use a tool and why, not on what the tool does in isolation. The target reader is someone who already reasons well about systems and wants the same quality of reasoning applied to ML design decisions. If you are looking for a first model to train, this is not the entry point. If you are looking for the conceptual scaffolding that makes later framework documentation legible, that is the stated purpose.

Analogies as the Primary Explanation, Not Decoration

The most distinctive design decision in this repository is that analogies carry the explanatory load. The README lists them directly: neurons as polarizing filters, depth as paper folding, gradient flow as pipeline valves, the chain rule as a gear train, projections as shadows. It then states that these analogies are not decorative and that the math is the supporting detail rather than the other way around. This is an inversion of how most ML primers are structured, where notation comes first and intuition is offered as a supplement. The pedagogical bet is that an engineer who already understands a gear train will absorb the chain rule faster through that mapping than through a formal derivation. That bet will pay off for some readers and fail for others, and the repository offers no alternative track for the readers it fails. There is no second explanation style layered underneath. If the polarizing filter model of a neuron does not click, the primer does not provide a fallback derivation to carry you forward. That is a real constraint on who can use this material, and it is worth knowing before you start.

Three Parts, From the Neuron to Gate Primitives

The primer is organized into three parts, and the syllabus file referenced in the README shows the full topic map. Part 1 covers fundamentals: the neuron, composition with depth and width framed as paper folding, learning as optimization including derivatives, the chain rule, backpropagation and the loss landscape, generalization, and representation with features as directions and superposition. Part 2 covers architectures: the combination rule family spanning dense, convolution, recurrence, attention, graph operations and SSMs, then the transformer in depth with self-attention, the feed-forward network described as a volumetric lookup, and residual connections. It continues into encoding, learning rules beyond backpropagation, training frameworks including supervised, self-supervised, reinforcement learning, GANs and diffusion, and matching topology to problem. Part 3 is the unusual one. It treats gates as control systems, covering gate primitives at scalar, vector and matrix level, soft logic composition, branching and routing, recursion within a forward pass, and a geometric math toolbox of projection, masking, rotation and interpolation. That third part is the section least likely to appear in a conventional primer, and the README frames it as a practitioner's gating and control toolkit. Whether that framing holds up depends on the prose in ml-primer.md, which is not reproduced in the README beyond the topic list.

Getting Started: One Markdown File and Twelve Figure Scripts

There is no installation step, no package to add, and no environment to configure. The primer is a single markdown file with inline visualizations, and the README links directly to ml-primer.md. You read it in whatever markdown renderer you prefer. The repository also ships 12 figures covering neurons, activation functions, paper folding, derivatives, the chain rule, attention, feed-forward volumetric lookup, residual connections, dot products, loss landscapes, combination rules and gating operations. These are generated from Python scripts in the scripts/ directory. The README gives the regeneration pattern explicitly: python3 scripts/01_neuron_hyperplane.py followed by python3 scripts/02_activation_functions.py and so on for the remaining scripts. The stated dependencies are matplotlib and numpy. If you want to modify a figure or inspect how one was drawn, that is the path. If you only want to read, the scripts are irrelevant. Note that no release has been published, so there is no versioned artifact to pin. You are reading whatever state the main branch is in, and the last push recorded is 2026-03-29.

The Interactive Reading Mode and What It Assumes

The README describes two ways to use the primer and states plainly that the interactive approach is the more powerful one and closer to how the material was actually built. The solo mode is front-to-back reading with an explicit warning not to skip ahead, because later sections assume internalized earlier ones rather than merely read ones. The interactive mode involves feeding the primer or a section of it to an AI coding assistant and exploring conversationally. The README supplies a prompt template that begins by instructing the agent to read ml-primer.md, states the reader is an engineer learning ML fundamentals, asks for a walkthrough of a named topic, and requests that the agent push back on wrong answers. The stated rationale is that the primer gives both the reader and the agent a shared vocabulary and a correct conceptual framework, and the conversation fills in what a static document cannot. This is an honest description of what is happening: the repository supplies the framing, and a separate system supplies the dialogue. That means the quality of your experience in this mode depends on the assistant you use, not on the repository. It also means the primer is functioning as a context document, and its structure matters as much as its prose.

Where This Primer Is the Wrong Tool

The limitations follow directly from what the repository is. It contains no runnable ML code. The only Python in the repository, based on the README, is in scripts/ and exists to generate figures with matplotlib and numpy. There is no training loop, no dataset, no model definition you can execute and inspect. If your goal is to build intuition by breaking something and watching it fail, this repository does not give you something to break. If you need a reference with citations to papers, the README does not describe one, and no bibliography is mentioned. The origin section states the primer was built through an extended conversational exploration between a software engineer and Claude, with analogies iterated until they landed and misconceptions corrected in real time. That is a legitimate way to produce clear explanation, but it is not a peer-reviewed source, and the README does not claim otherwise. There is also no release history, so there is no changelog to tell you what changed between versions or whether a section you relied on was rewritten. If your organization requires traceable provenance for technical claims, this primer will not satisfy that requirement, and it does not pretend to.

How This Differs From a Framework Tutorial or a Textbook

The obvious comparison is to the official tutorials shipped by deep learning frameworks, which walk you through defining a model, running a training loop, and evaluating output on a real dataset. Those tutorials answer how to make something work. This primer, by its own description, answers when to reach for which combination rule and why, with the transformer treated at the level of self-attention, feed-forward behavior and residual connections rather than at the level of an API call. The difference in approach is that a framework tutorial gives you executable ground truth and no conceptual map, while this primer gives you a conceptual map and no executable ground truth. A second comparison is to a conventional ML textbook, which typically leads with notation and derivation and treats intuition as a supplement. This primer inverts that order deliberately. The tradeoff is real in both directions. The tutorial reader can run code but may not know why attention was the right choice over recurrence for a given problem. The primer reader may understand the choice but has never watched a loss curve behave badly. The diagnostics appendix mentioned in the README, covering loss curve symptoms, sanity checks and learning rate tuning, appears to be the closest the material comes to bridging that gap, and it is described as an appendix rather than a core section.

Maintenance, Contribution and the MIT Licence

The repository is MIT licensed, which permits commercial and private use, modification and redistribution provided the copyright notice and permission notice are included. That is the standard permissive arrangement and imposes no copyleft obligation on derivative work. This is a description of the licence text, not legal advice, and if you plan to incorporate the material into internal training documentation you should confirm the notice requirements with whoever handles that at your organization. On maintenance, the README states that pull requests are welcome and describes the bar: explain a concept more clearly, fix an error, or add a section that fills a gap. It also states the tone to keep, which is direct and concrete, analogies over notation, and when-to-use over how-it-works. That tone constraint is effectively a contribution guideline, and it means a PR that adds formal derivations is likely to be rejected on style grounds even if the math is correct. For a reader, the practical consequence is that the primer will stay in its analogy-first register. If a section is unclear to you, the contribution path is to rewrite that section in the same register rather than to request a different explanation style. There are no releases, so there is no upgrade cost in the usual sense. You re-read the file or you do not.

Editorial conclusion

Adopt this primer if you are a working software engineer who learns through physical analogy and wants a conceptual map of ML before touching a framework. Do not adopt it if you need runnable code, benchmarked examples, or a reference you can cite in a design document. Before committing time, open ml-primer.md and read the section on the neuron and the section on composition. If the paper-folding model of depth gives you a usable mental handle, the rest of the primer will build on it. If it does not, no later section will rescue the approach, because the repository states that each section assumes you have internalized the previous one.

Official sources

  1. dreddnafious/thereisnospoon on GitHub
  2. Issues
  3. License: MIT
  4. README
Community notes

Community notes