<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en_GB"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://canmom.art/feed.xml" rel="self" type="application/atom+xml" /><link href="https://canmom.art/" rel="alternate" type="text/html" hreflang="en_GB" /><updated>2026-06-08T12:18:25+00:00</updated><id>https://canmom.art/feed.xml</id><title type="html">bryn::writing</title><subtitle>a record of existence // Bryn&apos;s writing and art archive</subtitle><entry><title type="html">programming grimoire [0]::overture</title><link href="https://canmom.art/programming/magic/0-preamble" rel="alternate" type="text/html" title="programming grimoire [0]::overture" /><published>2026-06-07T00:00:00+00:00</published><updated>2026-06-07T00:00:00+00:00</updated><id>https://canmom.art/programming/magic/0-preamble</id><content type="html" xml:base="https://canmom.art/programming/magic/0-preamble"><![CDATA[<p>This is a story we are going to tell about magic. We should perhaps start with that rather dreaded question: <em>is magic real?</em></p>

<ol id="markdown-toc">
  <li><a href="#a-magic-trick" id="markdown-toc-a-magic-trick">a magic trick</a></li>
  <li><a href="#where-it-came-from" id="markdown-toc-where-it-came-from">where it came from</a>    <ol>
      <li><a href="#interacting-with-entities" id="markdown-toc-interacting-with-entities">interacting with entities</a></li>
    </ol>
  </li>
  <li><a href="#what-is-a-computer" id="markdown-toc-what-is-a-computer">what is a computer</a>    <ol>
      <li><a href="#a-little-history-tangent" id="markdown-toc-a-little-history-tangent">a little history tangent</a></li>
      <li><a href="#whats-in-a-word" id="markdown-toc-whats-in-a-word">what’s in a word</a></li>
    </ol>
  </li>
</ol>

<p>You might have a variety of answers to this question. It rather depends on what, exactly, we mean by “magic”, and also by “real”, right? (Maybe we can add “is” while we’re at it.)</p>

<details>
  <summary>magic in fiction</summary>

  <p>In fiction, ‘magic’ can be all sorts of shit. In older works, which draw more directly on mythology: some <a href="https://en.wiktionary.org/wiki/numinous">numinous</a>, inexplicable force intervenes to structure a narrative. It’s not without restrictions; magic might be imbued in physical artefacts (the seven-league boots, the magic sword), it may be an ability (transforming into an animal) that only some people have, it might involve forming relationships with powerful nonhuman creatures such as gods; you just have to take on faith that these things can happen.</p>

  <p>For the sake of dramatic tension, it is usually available to the protagonists of a story only in limited ways. Taking after figures such as Merlin, the magician (disguised angel, talking lion) is a weirdo, who is sought out or else shows up sometimes for inscrutable reasons; they may help at a cost, or in recognition of the hero’s virtues. In ‘sword and sorcery’ works, magicians tend to be an antagonist (a sorcerer that Conan must kill, the sneering wizard who teleports Cugel at the outset of his journey) or at least an antihero (Elric).</p>

  <p>In more modern works in what has become known as the ‘fantasy’ genre, coming in the wake of transitional works like <cite>A Wizard of Earthsea</cite>, you are more likely to encounter a ‘magic system’ with more explicit rules, which typically grants certain characters in the narrative special abilities. (This is not always <em>called</em> magic; it might instead be deemed ‘superpowers’ or ‘psychic powers’ or ‘mutations’.) The convention is that the rules will be laid out and have some central theme or logical structure, and the protagonists should stay within them, cleverly exploiting their structure to advantage.</p>

  <p>Meanwhile, in supernatural ‘horror’, elements of ‘magic’ (demons, ghosts, cenobites…) tend to intrude violently on everday life; elsewhere again, in the ‘magical realism’ genre, things we call ‘magic’ are simply present and have some role to play in the modern world (a family member becomes a jiangshi, someone can teleport), typically serving a more metaphorical purpose—to fulfil its role in the story, such ‘magic’ tends to be weird and disorienting.</p>

  <p>In all these cases, in analysing fiction, we label a thing ‘magic’ because (we believe) it doesn’t happen in the ‘real world’, and it fills certain recognised narrative roles.</p>

</details>

<p>In our world, there are many practices which fall under this nebulous label of ‘magic’, ‘esotericism’, ‘occultism’ and the like, blending continuously with the wider world of religion. Some people pursue membership in orders, study tables of correspondences, or draw sigils. They may speak of making contact and forming relationships with an impressive array of “entities”, and observe certain rituals in respect to them, or warn each other of the great dangers of reckless magic workings. Other people may say they can detect auras, discern hidden information, or bring subtle benefits or harm. People may use various powerful tools to get their minds into a shape more amenable to interaction with gods, spirits, and other entities: psychedelic drugs, group worship, extreme endurance, sexuality, hypnosis…</p>

<p>Others, describing themselves as skeptics, disparage these practices or at least their claimed effects, talking about cognitive biases, superstitions, and so forth; in response, there are plenty of people (all the way up to national intelligence agencies) who pursue rigorous experiments to detect or rule out such ‘supernatural’ effects, a research programme which generally speaking has not proven especially fruitful.</p>

<p>And then, of course, there are further groups of people who study ‘magic’ and ‘religion’ in an academic way, in terms of texts, traditions and practices, the construction of meaning, how stories evolve, and so on. <a href="https://www.youtube.com/@TheEsotericaChannel">Esoterica</a> is for us the iconic example. They may overlap with one or both of the previous categories; they may come at it from a place of skepticism or a place of asking fiddly theological questions in the tradition they were raised in. Maybe it’s just a Special Interest, for which no explanation is needed.</p>

<p>This hopefully suffices as a quick survey. We are not <em>exactly</em> going to be talking about that.</p>

<h3 id="a-magic-trick">a magic trick</h3>

<p>We can give you some information about a faraway place right now. In a certain place in Glasgow, on a warm, cloudy night of June 6 2026, there was a desk with a MIDI keyboard, VR headset controllers, roleplaying dice, a drawing tablet, a floppy disc which generates oscilloscope music, and a bookmark from Treadwell’s. Here, we took a picture:</p>

<figure>
	<img src="https://canmom.art/img/embed/wizardguide/desk.webp" alt="A photo of the items listed above." loading="lazy" />
    
	<figcaption>
		<p>Magical tools.</p>

		
	</figcaption>
    
</figure>

<p>Assuming you believe us, you didn’t receive the info by standing here in the room and looking with your eyes, did you? You remotely viewed a room, perhaps in another city or another continent. Whooooahhhhh spooky…</p>

<aside>if you <em>did</em> receive it by standing here in the room with me... aaahhh!!! hello!!! don't hurt me plx</aside>

<p>…you’re not very impressed by that, are you? This isn’t ‘magic’. It’s ‘technology’; ‘engineering’; ‘science’. That belongs to an entirely different category of thing. Doesn’t it?</p>

<p>Without really saying whether all of those other magical traditions ‘work’ or ‘don’t’ (to whatever end)… I want to teach you about a form of magic that definitely works. It is a form of magic that requires quite an alien way of thinking, like all good things—and yet we call it magic for this reason: it all really does come back to the fundamental magical act of <em>giving names to things that you cannot see</em>.</p>

<h2 id="where-it-came-from">where it came from</h2>

<p>Magic is a very tradition-bound thing. Even the radical (post)modernist traditions, such as Chaos Magic, are <em>traditions</em>. They are elaborations on something that came before.</p>

<p>The magic I want to teach you about today does not usually call itself magic. It calls itself a science. What exactly is a science?</p>

<p>The word ‘science’ traditionally just <a href="https://en.wiktionary.org/wiki/science#Usage_notes">meant</a> ‘scholarly’ study of something. In the mid-20th century, its sense narrowed to the ‘natural sciences’, ‘social sciences’ and perhaps the ‘formal sciences’, <small>though I’ll admit the first time I heard that last phrase was on Wiktionary just now</small>. These are quite wildly different disciplines, and the ‘demarcation problem’ of figuring out what is a ‘science’ and what isn’t has consumed a great deal of philosophical energy in the late 20th century. What are the typical characteristics of a ‘science’, though? A typical answer would probably cover features like formal rigour, statistical methods, skepticism and empiricism; you might get a bit of Popperian falsificationism and so on.</p>

<p>But this distinction is pretty modern. In the 16th and 17th centuries in Europe, the weirdos who pursued what we now call ‘science’ pursued all sorts of weird stuff with equal vigour.</p>

<p><a href="https://en.wikipedia.org/wiki/Isaac_Newton">Isaac Newton</a>, for example: his occupations included “mathematician, physicist, astronomer, alchemist, theologian, author and inventor”, a fellow who spent as much time writing about theology and alchemy as all the contributions to calculus, mechanics and optics that made him famous. (Dude also <a href="https://en.wikipedia.org/wiki/South_Sea_Company">invested in the slave trade</a>, which tends to get left out.) <a href="https://en.wikipedia.org/wiki/John_Dee">John Dee</a>: “mathematician, astronomer, teacher, astrologer, occultist, and alchemist”. He’s most famous for talking to angels through his buddy Edward Kelley and other such sorcerous things, but in his time he was also known as a navigation expert and pretty good at maths too. (Mathematicians never exactly <em>stopped</em> getting a bit funky with it, though the social significance of ‘thinking you can talk to angels’ changed by the time of <a href="https://en.wikipedia.org/wiki/John_Forbes_Nash_Jr.">John Nash</a>.)</p>

<p>Of course, over the ensuing centuries, the tradition of ‘natural philosophy’ diverged from these prior traditions. For example, some of these people <a href="https://en.wikipedia.org/wiki/Magnetism#History">took an interest</a> in some <a href="https://en.wikipedia.org/wiki/Lodestone#History">weird rocks</a> which like to point in certain directions and pull metals towards them, and similar effects that occur when you rub something sticky like amber, which led to this phenomenon being called ‘electricity’, which glosses to ‘amber-y-ness’.</p>

<p>Others stumbled on the strange fact that <a href="https://en.wikipedia.org/wiki/Luigi_Galvani#Animal_electricity">if you soak certain metals in salt water</a> in a special circular arrangement it can make a dead frog’s leg twitch. Before long <a href="https://en.wikipedia.org/wiki/Voltaic_pile">they figured out</a> special arrangements of metal bits in salt water which would do this weird frog/amber thing, whatever it is, more reliably and powerfully.</p>

<p>The alchemists <a href="https://en.wikipedia.org/wiki/Alchemy#Renaissance_and_early_modern_Europe">were hard at work through all this</a>, gradually sifting through all the different possibilities of mixing up bottles of <em>stuff</em> and heating, straining and filtering, trying to figure out what was made up of what, in a huge and very convoluted game—taking a very intricate occult tradition which had once concerned itself with the production of gold and finding instead all sorts of uses in medicine, mining and opportunities to defraud the rich.</p>

<p>To try to organise their understanding of all this weird shit, they had to come up with some theories. Maybe it would make sense to think the world is made up of a bunch of little things, let’s call them <a href="https://en.wikipedia.org/wiki/The_Sceptical_Chymist">corpuscules</a> of different types, and that these are better called ‘elements’ than, for example, Aristotle’s air, water, fire and earth? Maybe there is a substance, we could call it <a href="https://en.wikipedia.org/wiki/Caloric_theory">‘caloric’</a> in hot things, which likes to spread out? Maybe, in the voltaic pile, the ‘voltaic amber-y-ness’ produced by the stack of metal and salt water was the same thing as the ‘magnetic amber-y-ness’ produced by moving the aforementioned weird rock? Maybe there are two types of electrical thing, all mixed up with each other?</p>

<h3 id="interacting-with-entities">interacting with entities</h3>

<p>These days we cannot really view these as anything other than the steps towards modern science, but these ideas are all traditionally <em>magical</em> questions. ‘What is everything made of’, balances of ‘elements’, how can the sick be healed, and so on.</p>

<p>You cannot see the corpuscles, the caloric, and so on. You have to imagine that there are such things, work out a theory of what they would do if they were real, and if your theory is anywhere close, it will tell you how to fiddle with these invisible things and get a desired result. If it isn’t… think of something else. But you do have to go out on a limb of speculating about a ‘thing’ that is not <em>directly</em> accessible to the senses.</p>

<p>In fact, we now consider both theories to be obsolete, though they were along the right track. Boyle’s divisible ‘corpuscules’ <a href="https://en.wikipedia.org/wiki/Atomism#Atomism_and_corpuscularianism">anticipated</a> the modern theory of atoms, which turned out to be a bad name for things that can actually be divided after all… but chemistry does <em>act as if</em> there are corpuscules pretty well. The random jiggly motions of these atoms can be collectively described as representing something called ‘heat energy’, which in many circumstances <em>acts as if</em> it is a fluid.</p>

<p>Now, let’s draw some funny little symbols.</p>

\[\begin{aligned}\nabla \cdot \mathbf {E} \,\,\,&amp;={\frac {\rho }{\varepsilon _{0}}}\\\nabla \cdot \mathbf {B} \,\,\,&amp;=0\\\nabla \times \mathbf {E} &amp;=-{\frac {\partial \mathbf {B} }{\partial t}}\\\nabla \times \mathbf {B} &amp;=\mu _{0}\left(\mathbf {J} +\varepsilon _{0}{\frac {\partial \mathbf {E} }{\partial t}}\right)\end{aligned}\]

<p>There are two possibilities here: you have studied electromagnetism up to around undergraduate level, in which case you know that these are Maxwell’s laws in differential form, and what they mean… or, you haven’t, and if I said these shapes encode a description of ‘an energy field… (which) surrounds us and penetrates us. it binds the galaxy together’ (ok, that’s cheeky, I’d more likely say a pair of vector fields that exist at every point in space) you could only really be like ‘ok, sure…’, same as if I told you that you could summon a demon called Gaap by drawing this seal:</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep4/089-new-seal.png" alt="A Solomonic seal as depicted in Umineko." loading="lazy" />
    
	<figcaption>
		<p>The Goetic seal corresponding to Gaap in the <cite>Lesser Key of Solomon</cite>, as seen in <a href="/livereads/umineko/ep4/chapter-11"><cite>Umineko</cite></a>.</p>

		
	</figcaption>
    
</figure>

<p>If you know what to do with those equations—using an additional set of conceptual tools such as ‘vector calculus’, and a knowledge of the practices which can be used to identify and measure things like ‘electric charge’—you can use them to, for example, build an electric circuit. You don’t actually <em>need</em> to use them. You can build a radio, for example, perfectly well without ever doing vector calculus, just by building up a set of rules about which components go where. If you’re a radio engineer, you likely wouldn’t directly use these equations—doing a first-principles calculation from Maxwell’s laws would be fiddly and unhelpful.</p>

<p>Some day, however, you might want to ask <em>why</em> your radio works. Where do all these rules about transistors and capacitors and ‘electric currents’ come from? Why does “electricity” do any of that shit? And then you could work through the derivations of, for example, the <a href="https://en.wikipedia.org/wiki/Telegrapher%27s_equations">transmission line equations</a>. You could read up on the experiments that established electromagnetism, and maybe perform them yourself if you want to. You could learn about how weird it is that the resulting list of laws is ‘reference frame independent’, and how that led to thought experiments at the beginning of the 20th century which showed something is <em>very wrong</em> with the prior understanding of physics.</p>

<p>And, if you’re feeling especially daring, you could take it further: you could learn there is a ‘covariant form’ of Maxwell’s laws, for use in special relativity:</p>

\[\partial _{\alpha }F^{\alpha \beta }=\mu _{0}J^{\beta }\]

<p>If the last set of weird symbols was vexing, this one probably feels like it’s taking the piss. Why are some of the Greek letters up and others down? What does \(\partial_\alpha\) mean? (This is a nice efficient notation for doing relativity calculations. It is hopelessly esoteric for anyone but physicists and mathematicians, and even the mathematicians prefer other notations.)</p>

<p>You might go into learning about classical field theory, and Noether’s theorem. You might understand how this is really the <em>only</em> sort of vector field that would occur in a universe with Minkowski symmetry: this strange, seemingly arbitrary feature of our universe has a weird mathematical inevitability to it when we look at it from the right perspective… oh, we haven’t even touched on quantisation yet.</p>

<p>Which I think would be rather a delight to the Newtons of this world. It turns out, if you go looking for a mystical, abstract structure behind everything, with the right lens, with enough effort… well, maybe you actually find one. We call it <a href="https://en.wikipedia.org/wiki/Gauge_theory">‘gauge field theory’</a> and only people with postgraduate degrees, or commensurate effort without any institutional support, get to build up enough structures in their heads to understand it. Once you do, it’s really elegant though! …pretty fucked up, yeah.</p>

<p>Nevertheless, by pursuing this quest as an nth-degree recursive elaboration on that thing with the frog legs, we have found ways to create immense light and sound, travel at great speeds, speak to faraway people, move heavy objects, wash our clothes, warm and cool spaces, keep our food from spoiling, kill each other, and even occasionally revive the very recently dead. And we also figured out it’s a great way to build a “computer”, which is what the rest of this story is about.</p>

<p>But it’s not magic, right? If we found out “magic” was real it would be like… something else. Electromagnetism doesn’t have the right vibes, somehow.</p>

<p>What’s missing?</p>

<p>In many ways, the ‘magic’ we’ve described so far falls far short of what motivated the search. We can predict the celestial bodies, but it’s not actually much help in predicting the future on the scale of humans. It certainly doesn’t tell us how to live. Here in the middle, things are so damn complicated, and only get more so.</p>

<p>Why is that? A short answer: it’s because things like electromagnetism and chemistry form a substrate on which abstractions can live.</p>

<h2 id="what-is-a-computer">what is a computer</h2>

<p>OK so: surprise. This is actually an article about computers. We want to introduce you to <em>the magic that absolutely, unambiguously works</em>, and we want to do the unusual thing of presenting it <em>as</em> magic.</p>

<p>Imagine we lived in another universe with different physics. No Minkowski spacetime, no electromagnetism, none of the familiar chemicals. Perhaps it’s something like the world of <a href="https://unicornjelly.com/">Tryslmaistan</a>.</p>

<p>In such a universe, computers could at least potentially still exist. All sorts of things can be computers. A computer is not (necessarily) an electronic device; it is something altogether more abstract.</p>

<p>So what is a computer?</p>

<p>When we are first introduced to the concept of computers as children, we probably form an idea like this: a computer is a box with buttons and lights. It has a screen which shows you things, it makes sounds, and there are various things called ‘programs’ inside it. It can do an absolutely bewildering array of things and it also sometimes makes adults very annoyed when it doesn’t work.</p>

<p>A Victorian would say: a computer is someone, usually a woman, who works to draw up big tables of numbers for performing mathematical calculations. (For example, tables of logarithms can be used to quickly do multiplication.) By the beginning of the next century, a computer would become a <em>machine</em> which can be used to make calculations: for example, a ballistics computer on a ship could rapidly calculate integrals, derivatives and multiplications by <a href="https://en.wikipedia.org/wiki/Differential_analyser">rolling a ball on a specially shaped metal drum</a>.</p>

<p>We’re about to mention a bunch of concepts in quick succession. If they are of interest, we can elaborate later.</p>

<h3 id="a-little-history-tangent">a little history tangent</h3>

<p>If you’ve had much exposure to computer science in a traditional way, you might come up with a different story: there is this thing, a thought experiment rather than a real thing, which is called a <a href="https://en.wikipedia.org/wiki/Turing_machine">Turing machine</a>. It can perform ‘algorithms’ according to certain rules, which tell it to go up and down an arbitrarily long tape, reading and writing symbols at each point; by doing this, it is able to determine what other, simpler machines would do. A computer is a mechanical system which is, in a certain mathematical sense, ‘equivalent to’ a Turing machine: you can simulate a Turing Machine on it, and vice versa.</p>

<p>(Turing was a mathematician who created the machines which broke Nazi codes for the British government, and also thought <em>very</em> hard about things pretending to be other things until the government drove him to suicide with involuntary hormone therapy. You probably know that part.)</p>

<p>Turing did not invent computers, but alongside Alonzo Church and Kurt Gödel, who respectively invented the <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> and <a href="https://en.wikipedia.org/wiki/General_recursive_function">general recursive functions</a> at almost exactly the same time, he came up with the theory which founds the discipline of magic we’re about to get stuck into. Church and Gödel were coming at it from a different angle, trying to understand the foundations of mathematics in terms of strings of symbols and procedures for manipulating them. Remarkably, it turned out that all three of their ideas were equivalent: a Turing machine can run the lambda calculus, and the lambda calculus can model a Turing machine.</p>

<p>This led to what we now call the <a href="https://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis">Church-Turing thesis</a> (sorry Gödel), which is that this is basically as good as it gets: roughly, if a Turing machine can’t do it, then nothing can. Since then, this is effectively the <em>definition</em> of a computer: if a system can be shown to be ‘Turing complete’, i.e. do whatever a Turing machine can, then it’s a computer.</p>

<p>You can at least in principle make a computer with e.g. <a href="https://en.wikipedia.org/wiki/Fluidics">water</a>, <a href="https://en.wikipedia.org/wiki/Domino_computer">dominos</a>, <a href="https://en.wikipedia.org/wiki/Optical_computing">laser beams</a> or billiard balls: generally the recipe is to find a way to make the system follow the logical rules we call a NOR gate (or NAND gate) and find a means to chain them together in succession. All these things are, however, generally slow as shit compared to electronic computers. (Optical computing might have a chance but that’s still electromagnetism.)</p>

<p>So, if not Turing, who <em>did</em> invent computers? Arguably someone in ancient Greece who made the <a href="https://en.wikipedia.org/wiki/Antikythera_mechanism">Antikythera mechanism</a>, a complex geared mechanical orrery. Tho, astonishing as it is, though, the Antikythera mechanism doesn’t meet Turing’s standard: it can’t do whatever a Turing machine can. The first person to conceptualise a machine which can do <em>that</em> might be Charles Babbage, who dreamed up (but never actually built) the <a href="https://en.wikipedia.org/wiki/Analytical_engine">Analytical Engine</a>.</p>

<p>But even Babbage didn’t quite know what he’d stumbled upon; his buddy the countess <a href="https://en.wikipedia.org/wiki/Ada_Lovelace">Ada Lovelace</a> went further in imagining some programs which the Analytical Engine might one day run. Lovelace is a fascinating figure, a self-described ‘analyst &amp; metaphysician’ who, as she worked to translate articles about it, speculated on how things like music might be encoded in the machine. (Perhaps if her Bernoulli number algorithm is the first computer program, these speculations could make her something like the first digital music producer?)</p>

<p>These four—Turing, Church, Babbage, and Lovelace—are some of the venerated figures of our strange practice, people who happened to be in the right time and place to come up with a really far-reaching idea or ten. Perhaps one day they will fade as deep into mythology as Paracelsus or Hermes Trismegistus. There are plenty of others more recent, we’ll learn about them in time.</p>

<p>All of it is a fascinating history… but it’s not actually very helpful to talk about Turing machines, right now. Without a lot of time trying stuff and intuition, it’s very hard to get a sense for what this thing with the tape can do.</p>

<p>It might as well be… magic.</p>

<p>We’d be better off starting with the computers we have in everyday life.</p>

<h3 id="whats-in-a-word">what’s in a word</h3>

<p>Programmers use the word ‘magic’ fairly often, in fact.</p>

<p>For example: the 1984 textbook <a href="https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs"><cite>Structure and Interpretation of Computer Programs</cite></a> depicts Hermes Trismegistus bestowing knowledge of the Lambda Calculus to Ramon Llull, adapted from <a href="https://archive.org/details/lemoyengeetlar02jaco/page/n53/mode/2up">a panel of alchemists</a> in the 1849 French history book <cite>Le Moyen Age et la Renaissance</cite>. Accordingly, it enjoyed a reputation as the ‘wizard book’ in hacker culture; if you understand its contents, people might joke that you belong to an esoteric order called the <a href="https://en.wikipedia.org/wiki/Knights_of_the_Lambda_Calculus">Knights of the Lambda Calculus</a>.</p>

<p>But in everyday hacker language, ‘magic’ is generally used in computing for things the speaker doesn’t want to explain in detail, perhaps because they are too complicated to understand. For example: ‘then the compiler does some magic to optimise this away’. A particularly inscrutable algorithm might be described as ‘black magic’, or even <a href="https://en.wikipedia.org/wiki/Fast_inverse_square_root">‘evil’</a>. This use is largely unchanged <a href="https://www.dourish.com/goodies/jargon.html">from 1988’s jargon file</a>:</p>

<blockquote>
  <p>MAGIC adj. 1. As yet unexplained, or too complicated to explain. (Arthur C. Clarke once said that magic was as-yet-not-understood science.) “TTY echoing is controlled by a large number of magic bits.” “This routine magically computes the parity of an eight-bit byte in three instructions.” 2. (Stanford) A feature not generally publicized which allows something otherwise impossible, or a feature formerly in that category but now unveiled. Example: The keyboard commands which override the screen-hiding features.</p>
</blockquote>

<p>Under this sense, things stop being magic once you understand them. Understanding the inner workings of a system <a href="https://www.youtube.com/watch?v=3V-6TXwm2XI">might be compared</a> to understanding the trick behind a piece of stage magic.</p>

<p>This is somewhat contrary to depictions of magic as something that you <em>study</em>. It’s also a bit different from the account of magic we’re using here. To understand magic, for us, is to build up a structure in your head which can hold it.</p>

<p>In short, we want to help you understand and wield the magic. Whether that means it stops being magic depends on what you call magic.</p>]]></content><author><name></name></author><category term="programming" /><category term="magic" /><category term="programming grimoire" /><summary type="html"><![CDATA[Before we talk about computers, we must talk about the world that contains computers.]]></summary></entry><entry><title type="html">programming grimoire [1]::are programs real?</title><link href="https://canmom.art/programming/magic/1-programs" rel="alternate" type="text/html" title="programming grimoire [1]::are programs real?" /><published>2026-06-07T00:00:00+00:00</published><updated>2026-06-07T00:00:00+00:00</updated><id>https://canmom.art/programming/magic/1-programs</id><content type="html" xml:base="https://canmom.art/programming/magic/1-programs"><![CDATA[<p>In the previous article we have set the scene with a little dash around the history of ‘magic’ and ‘science’, talking about how the latter emerged out of the former. We learned a little about how electromagnetism was divined to be this universe’s magic, and then we said it gets rather complicated on the scale of us humans, because it is a ‘substrate for abstractions’. Then we gave some obeisances to the founders of our order.</p>

<p>All of that is ‘just’ context.</p>

<p>It’s time to get to it. We would like you to understand <em>what programs are</em>, and what it means to write them.</p>

<ol id="markdown-toc">
  <li><a href="#what-is-a-program" id="markdown-toc-what-is-a-program">what is a program?</a>    <ol>
      <li><a href="#instructions" id="markdown-toc-instructions">instructions</a></li>
      <li><a href="#the-wider-world" id="markdown-toc-the-wider-world">the wider world</a></li>
      <li><a href="#a-home-for-programs" id="markdown-toc-a-home-for-programs">a home for programs</a></li>
      <li><a href="#programs-in-boxes" id="markdown-toc-programs-in-boxes">programs in boxes</a></li>
      <li><a href="#so-do-programs-exist" id="markdown-toc-so-do-programs-exist">so do programs exist?</a></li>
    </ol>
  </li>
  <li><a href="#first-orb-to-ponder" id="markdown-toc-first-orb-to-ponder">first orb to ponder</a></li>
</ol>

<h2 id="what-is-a-program">what is a program?</h2>

<p>A modern computer is generally speaking doing a lot of ‘things’ at once. We tend to call these ‘things’ processes or programs. You can find out what your computer is doing in a few ways.</p>
<ul>
  <li>on Linux, you’ve got lots of options. I suggest running <code class="language-plaintext highlighter-rouge">btop</code> (you may need to install it; <code class="language-plaintext highlighter-rouge">htop</code> or <code class="language-plaintext highlighter-rouge">top</code> are older, slightly less fancy-looking alternatives). Or, see if your desktop environment has program called something like ‘System Monitor’.</li>
  <li>on Windows, open the Task Manager.</li>
  <li>on macOS, open the Activity Monitor.</li>
  <li>on an Android device, it’s annoyingly fiddly to get this information. You have to do a <a href="https://developer.android.com/studio/debug/dev-options">weird ritual</a> to turn on developer options by tapping seven times on the build number (no seriously), then you can open ‘Running services’ in the developer options</li>
  <li>on a FreeBSD computer, an Amiga, or one of the many other operating systems… if you’re using one of these, you probably know already.</li>
</ul>

<p>Once you’re in there, there will be a long list of mysterious things that are being done by your computer. So what are they?</p>

<p>Well, let’s start by saying programs kinda don’t actually exist… at least, ‘below certain levels of abstraction’.</p>

<h3 id="instructions">instructions</h3>

<p>Every modern computer processes things we call ‘instructions’. There is a long list of things that a particular computer knows how to do, each of which has a number.</p>

<p>We’re starting somewhere in the middle of the great chain of abstractions that makes up a computer. We could start lower, with logic gates; we are going to build higher. But starting with instructions is a nice place to get a sense for how things really work.</p>

<p>None of this is stuff you need to memorise: we will deal with this indirectly, through programs.</p>

<p>“Inside” the computer somewhere there “is” a long list of instructions we want it to carry out, not unlike a recipe. We can represent it like this, in “machine code”. For example, here is some code for an x86-64 processor that reads two numbers and adds them together:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>89 7c 24 0c
89 74 24 10
01 fe
</code></pre></div></div>
<p>You can read this as saying ‘run instruction 0x89 with the values 0x7c, 0x24, and 0x0c, then run instruction 0x89 with the values 0x74, 0x24 and 0x10, then run instruction 0x01 with the value 0xfe’. (The prefix 0x… means the values are all written in <a href="https://en.wikipedia.org/wiki/Hexadecimal">hexadecimal</a>.)</p>

<p>Nobody in their right mind would try to make sense of a program this way (nobody was in their right mind in the 40s, least of all the people who invented computers), so in 1947 Kathleen and Andrew Donald Booth invented the first <a href="https://en.wikipedia.org/wiki/Assembly_language">assembly language</a> and gave all these numbers special names to make it more readable. With x86-64 assembly, the above reads:</p>

<pre><code class="language-asm">mov    DWORD PTR [rsp+0xc],edi
mov    DWORD PTR [rsp+0x10],esi
add    esi,edi
</code></pre>
<p>which can be read as: ‘move the thirty-two-bit value from the memory address at (stack pointer + 0x0c) into the edi register, then move the thirty-two bit value from the memory address at (stack pointer + 0x10) to the esi register, then add the esi and edi registers together, storing the result in the esi register’. A program called an assembler can turn this special language into the numbers above.</p>

<p>That’s still very complicated, nearly every word in that sentence is jargon! However, this is what computers are actually <em>doing</em>. All the electronics that exists in a computer, all the logic gates and transistors, have been very carefully put together in order to make it possible to decode and run these instructions. Everything <em>else</em> we are going to do will ultimately be boiled down into instructions like this.</p>

<p>Different types of computers have different <em>instruction sets</em>. A modern PC will almost certainly be running x86-64; an android phone or Apple computer will almost certainly be running some variant of ARM. A small, embedded device might be running RISC-V. Older computers ran lots of other architectures. In theory, it is actually possible to make <a href="https://en.wikipedia.org/wiki/One-instruction_set_computer">a computer with just one instruction</a>, such as subleq.</p>

<p>In no case do the instructions have any notion of what program they are associated with. So where do programs come into it?</p>

<h3 id="the-wider-world">the wider world</h3>

<p>Single instructions on their own are not good for very much. We added two numbers together, so what? We need some other instructions to come together and read that number we just calculated, and do something with the result. By feeding the results of one instruction into another instruction, we get complicated behaviour. A modern computer might run a few billion instructions in a second.</p>

<p>By arranging a whole bunch of instructions just so, we can describe a process to achieving some desired result. For example, a very basic program could ask you for two numbers on the screen, and then add them together, and then put the result on the screen. This analogises pretty well to a ‘magic working’. You have some intent, and you arrange a bunch of symbolic elements to create a process that will fulfill that intent.</p>

<p>Hold on a minute, where did this screen come from? This is a new character in our story, isn’t it?</p>

<p>So far we’ve talked about the inside of a CPU in isolation. But a CPU on its own is just an unbelievably expensive paperweight. A modern computer has a whole bunch of parts. At absolute minimum, to be useful we need: motherboard, CPU, memory, and some kind of connection to the ‘outside world’. This could be a screen (for a desktop PC or phone), but it could just be a network connection (for a server), or a motor (for an embedded microcontroller), or some other weird thing.</p>

<p>So, using various protocols, the CPU that is carrying out our program has some way ‘talk to’ the other parts.</p>

<p>The memory may be the most important. Inside the CPU there is only a very, very small amount of space to store information. Anything that needs to stick around needs to go into memory. Many different types of physical electric circuit can qualify as memory, but the important thing is that it is ‘random access’, meaning the CPU can look up or store a value anywhere, given just a number which we call an <dfn>address</dfn>. The CPU activates wires (circuit board traces) called the ‘address lines’ to send a signal to the memory controller, which looks up that address, and sends back the contents.</p>

<p>What about the connection to the outside world? Well, the motherboard’s job is to take signals from the CPU and decide what to do with them. There are various ways this can be accomplished. It may simply be accomplished with the same ‘write to memory’ instruction, but for certain addresses, the motherboard jumps in and says ‘actually <em>that</em> address means we need to pass this data <em>here</em>’. Or there might be special lines and special instructions just for talking to hardware.</p>

<p>In the old days, you would have a manual that comes with your computer and tells you what you need to do to interact with the other components. In those days, a computer would just run <em>one</em> program.</p>

<p>Nowadays, there are millions of different configurations of computer your display might want to run on. You don’t want to know about all the details. You probably also want to run multiple programs at once. This is where the operating system comes in.</p>

<h3 id="a-home-for-programs">a home for programs</h3>

<p>The <dfn>operating system</dfn> is, roughly, the program which runs all the other programs. It provides a context in which programs can ‘talk to’ each other in standardised ways.</p>

<p>Some of those programs control ‘talking to the hardware’, and it will have specialist programs for all the different types of hardware that it might run on, which we tend to call ‘drivers’. This is nice because <em>you</em> can just write a program to target a specific operating system, which has just one standard way of doing things. For example, if you want to play a sound, a program can ask the operating system to translate your ‘please play a sound for me’ command into device-specific instructions for the <em>particular</em> sound hardware of <em>this</em> computer.</p>

<p>How do you have all these programs running at once? You sorta don’t. On a single-core CPU, it’s like this: you run a little bit of one program, then you put the state of that program into memory and jump to where you left off on another program, and then again for the next program… This is called <a href="https://en.wikipedia.org/wiki/Computer_multitasking">multitasking</a>. The process of putting one program away, and loading another to execute for a little while, is called a ‘context switch’.</p>

<p>So the distinction between different programs lives in the operating system. The operating system becomes the ‘environment’ in which other programs frolic. But to the CPU, the operating system and the programs inside it are all combined into one huge, non-stop stream of instructions.</p>

<h3 id="programs-in-boxes">programs in boxes</h3>

<p>Within an operating system you have the idea of a thing called a ‘file’, which is really at the most fundamental level just a name which the programs can interact with. Usually, that name refers to a chunk of data. And usually, it will have some extra information which will help the operating system figure out what program might understand this file, called ‘metadata’. But other ‘things’ can be ‘files’ too. On Linux (and other Unix-derived systems), all sorts of things can be spoken to as files, including hardware devices, running programs, random number generators…</p>

<p>Still, sticking with the familiar: if a file is ‘just a bunch of data’, one type of file is an ‘executable file’. This is a file containing instructions, like we’ve discussed above. Different operating systems have different ways to format this file. On Linux, files are elves… sorry, they are <a href="https://en.wikipedia.org/wiki/Executable_and_Linkable_Format">ELF binaries</a>. On Windows, they are some version of <a href="https://en.wikipedia.org/wiki/.exe">exe</a>. On Android, it’s an <a href="https://en.wikipedia.org/wiki/Apk_(file_format)">APK</a>, and so on.</p>

<p>Whatever they are, they store the recipe of instructions that ‘belong to’ one particular program. Besides conforming to the format, there is nothing special going on here. It’s pile of data, the same as an image or video or anything else. Without knowing how to read it, most of the contents would look like random noise. But the operating system knows how to decode it: it copies the program’s instructions into memory, makes a note of this program amidst the list of running programs, and jumps the CPU to the beginning to start doing whatever the program tells it to do.</p>

<h3 id="so-do-programs-exist">so do programs exist?</h3>

<p>What we’ve described so far is <em>how an abstraction becomes real</em>.</p>

<p>We want to imagine there are lots of little things, which we call programs, running inside the computer. If that were the case, we can conclude that they ought to behave in certain ways. So we wrote a program that follows those rules.</p>

<p>If we did our job right, if we cover all the little details, then we get a situation <em>as if</em> the world inside the computer is segmented into little things, which can be passed around as files, and each one is running on its own and passing little signals to the others.</p>

<p>This is how we perform magic. We work out what we want to happen, and make something on the ‘level below’ conform to the rules. In computers, there is only ever <em>as if</em>. We build <em>as if</em> on top of <em>as if</em> on top of <em>as if</em> until the stack of abstractions is so tall we can hardly see the bottom anymore. We can build entire notional computers on ‘as if’, which we call ‘virtual machines’; in theory it should be impossible for a program to know that it is running on a virtual machine as opposed to ‘directly on the hardware’. (In practice there are subtle ways to tell.)</p>

<p>Sometimes the abstraction fails. For example, one ‘as if’ that we want to enforce is that programs have different levels of security privilege. The ‘kernel’ is allowed to do things that ‘user space’ programs cannot. The ‘user space’ programs must ask nicely for the kernel to do something, like give it some memory, and before it does, the kernel will check to make sure all the relevant rules are being followed. For example, I can’t just snoop around for sensitive information that other programs might be processing.</p>

<p>But if there is a mistake in how the kernel is written, I might be able to trick it into doing something it wasn’t designed to do, take control, and do whatever I want: steal information, impersonate people, etc. Computers are really horny to compute. Computational power can sneak through all sorts of weird ways. Later on we might learn about things like ‘ROP gadgets’ and ‘weird machines’, where fully Turing-complete computers form inside programs more or less by accident.</p>

<p>This is known as the abstraction <a href="https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/">‘leaking’</a>. It is not enough to know what ‘as if’ rules a program is following. A complete story describes both the intent of the program and where the reality differs from the intent.</p>

<h2 id="first-orb-to-ponder">first orb to ponder</h2>

<p>Later in this series we might pose multiple-choice questions. However, I don’t think this stage needs it. Instead, some things to think about.</p>

<p><code class="language-plaintext highlighter-rouge">ffmpeg</code> is a program which does things with video and audio. You can run <code class="language-plaintext highlighter-rouge">ffmpeg</code> on many different platforms: Windows, Linux, etc., and many different architectures, and there are many different versions.</p>

<p>Conventionally, we tend to think of some portion of these as mostly being ‘the same program’. But what makes that the case? Perhaps we can think of…</p>

<ul>
  <li>two running instances of <code class="language-plaintext highlighter-rouge">ffmpeg</code> were loaded from the same file on disk</li>
  <li>two files of <code class="language-plaintext highlighter-rouge">ffmpeg</code> have the exact same bits, but they’re ‘different files’</li>
  <li>as a library, two versions of <code class="language-plaintext highlighter-rouge">ffmpeg</code> can be shown to give the same output for (nearly) all inputs, but they have different symbols for linking to other programs</li>
  <li>two files of <code class="language-plaintext highlighter-rouge">ffmpeg</code> were compiled from the same source code</li>
  <li>two different files are launched with the same <code class="language-plaintext highlighter-rouge">ffmpeg</code> console command (they have the same name in the operating system), e.g. before and after an update</li>
</ul>

<p>Now imagine changing these things. Maybe you rename it to <code class="language-plaintext highlighter-rouge">ffmpreg</code>. Maybe you modify the source and recompile it, maybe you rewrite it from scratch but somehow do such a good job it does the exact same thing.</p>

<p>Which ones are still ‘the same as’ ffmpeg? There isn’t a right answer.</p>]]></content><author><name></name></author><category term="programming" /><category term="magic" /><category term="programming grimoire" /><summary type="html"><![CDATA[When we say a program is running on a computer, what are we even talking about?]]></summary></entry><entry><title type="html">programming grimoire [2]::naming things into existence</title><link href="https://canmom.art/programming/magic/2-naming" rel="alternate" type="text/html" title="programming grimoire [2]::naming things into existence" /><published>2026-06-07T00:00:00+00:00</published><updated>2026-06-07T00:00:00+00:00</updated><id>https://canmom.art/programming/magic/2-naming</id><content type="html" xml:base="https://canmom.art/programming/magic/2-naming"><![CDATA[<p>Having learned what a program is, it’s time we made one.</p>

<ol id="markdown-toc">
  <li><a href="#getting-set-up-introducing-rust" id="markdown-toc-getting-set-up-introducing-rust">getting set up (introducing Rust)</a>    <ol>
      <li><a href="#the-console" id="markdown-toc-the-console">the console</a></li>
      <li><a href="#setup-and-compilation" id="markdown-toc-setup-and-compilation">setup and compilation</a></li>
    </ol>
  </li>
  <li><a href="#naming-things" id="markdown-toc-naming-things">naming things</a></li>
  <li><a href="#semantics-vs-instructions" id="markdown-toc-semantics-vs-instructions">semantics vs instructions</a>    <ol>
      <li><a href="#shadowing" id="markdown-toc-shadowing">shadowing</a></li>
      <li><a href="#mutable-variables" id="markdown-toc-mutable-variables">mutable variables</a></li>
    </ol>
  </li>
  <li><a href="#what-is-a-language-for" id="markdown-toc-what-is-a-language-for">what is a language for?</a></li>
  <li><a href="#a-dungeon-game" id="markdown-toc-a-dungeon-game">a dungeon game</a></li>
  <li><a href="#second-orb-to-ponder" id="markdown-toc-second-orb-to-ponder">second orb to ponder</a></li>
</ol>

<h2 id="getting-set-up-introducing-rust">getting set up (introducing Rust)</h2>

<p>That’s probably enough preamble. Why don’t we actually do a little programming?</p>

<p>For this series, we will be using the Rust programming language. Instructions for installing it are <a href="https://rust-lang.org/learn/get-started/">here</a>.</p>

<p>Although Rust has a very helpful and informative compiler, we also recommend having a good IDE with <em>language server</em> support. Like all programmers we have <em>opinions</em>. We currently use <a href="https://zed.dev/">Zed</a>, but for the love of Lain, please turn off AI in the settings. A traditional console-based option is <a href="https://www.vim.org/">Vim</a>, or more recently <a href="https://neovim.io/">Neovim</a>; alternatively <a href="https://www.gnu.org/software/emacs/">emacs</a>. (In times past, the choice of vim or emacs was so fervently argued it was often called ‘religious debate’.) If you dislike Zed, <a href="https://www.sublimetext.com/">Sublime</a> is still pretty good and importantly very fast, but its language server support is less good. We won’t recommend anything that is built in Electron (VSCode etc.) even though most people use them. You might feel less strongly about it.</p>

<p>Speaking of religious debate, why Rust? We (canmoms) like Rust. It’s a language that, in our view, strikes a good balance. It is a compiled language, so you will make the actual sort of programs that run on your computer. It doesn’t have as many fiddly annoying aspects as older languages like C, but it will still give you a firm foundation to understand what both ‘high-‘ and ‘low-level’ languages are doing. For the sake of teaching, it is a very explicit language, and accords nicely with the ways that we like to think about programming. In particular, it has a very nice type system. It is also very fast to run (but relatively slow to compile).</p>

<p>Not everyone would agree. People get quite fervent about this. The main complaint people make about Rust is that it is overcomplicated; it also has a very strict model for handling memory which people sometimes find overly restrictive. This is one reason why suggesting starting with Rust, which is infamously quite difficult, is maybe a bit spicy. Later in this series, we’ll talk about some of the design tradeoffs that Rust makes, and compare other languages.</p>

<p>A great deal of this series will be conceptual enough that it will apply to any programming language. If we start talking about a specific Rust feature we will make sure to be clear about it.</p>

<p>This is not a complete guide to the syntax of Rust. For that, there is the <a href="https://doc.rust-lang.org/book/title-page.html">Rust book</a>. This is an excellent and well-written resource if you already know a little about programming, but it is quite heavy going.</p>

<h3 id="the-console">the console</h3>

<p>In the olden days, computers just gave you text-based ‘terminals’. You would type commands, and the results would be printed as text.</p>

<p>In modern times we still tend to use ‘terminal emulators’, also known as ‘consoles’, for programmy activities. The idea is the same: you type the name of a program, and some settings for it, and it will run.</p>

<p>On Linux, there are lots of options depending on your distro, desktop environment etc. but you can probably find yours just by searching for ‘console’ or ‘terminal’. On MacOS, it’s just called Terminal.</p>

<p>On Windows, you have the ‘command prompt’ which is old, and ‘PowerShell’ which is newer. Out of the box, powershell is a rather unfetching shade of blue. We recommend using <a href="https://scoop.sh/">scoop</a> to install <a href="https://github.com/lukesampson/concfg">concfg</a> to make it less painful to look at. With scoop you can get things feeling a little more comfortable.</p>

<p>On the layer just inside the window, there are lots of different “shells” which work in slightly different ways (bash, fish, powershell etc.) which determine what actual text you’ll see and what commands are available. The most important piece of information is that your shell is ‘somewhere’: it has a ‘working directory’ inside the operating system’s ‘file system’. Whenever you run a command it will take this ‘location’ into account. On most consoles, you can change to other locations with the <code class="language-plaintext highlighter-rouge">cd</code> command, and see what is present where you are with <code class="language-plaintext highlighter-rouge">ls</code>. <code class="language-plaintext highlighter-rouge">.</code> is a shortcut for where you are right now, and <code class="language-plaintext highlighter-rouge">..</code> is a shortcut for the layer containing where you are, so <code class="language-plaintext highlighter-rouge">cd ..</code> will take you out of your current folder.</p>

<p>There’s a lot of other stuff but that’s all you need to get started.</p>

<h3 id="setup-and-compilation">setup and compilation</h3>

<p>Create a new folder. In the console navigate to this folder and type the incantation <code class="language-plaintext highlighter-rouge">cargo init</code>. This will run a program called Cargo, which is the Rust package manager, and tell it to set up a new project for us. Cargo will create some files: a <code class="language-plaintext highlighter-rouge">Cargo.toml</code> file which contains some general settings for the project, a <code class="language-plaintext highlighter-rouge">src</code> folder, and inside there a <code class="language-plaintext highlighter-rouge">main.rs</code> file to contain our program.</p>

<p>Together, these files define what sort of program is to be built. The program that turns them into an actual executable file of the sort we discussed above is called the <em>compiler</em>. Compilers are one of the greatest things humans have ever invented, maybe. They’re certainly one of the richest, most intricate segments of computer science.</p>

<p>To turn our program into an executable file, we should type <code class="language-plaintext highlighter-rouge">cargo build</code> into the console. This compiles the program without optimisations under <code class="language-plaintext highlighter-rouge">target/debug</code>; alternatively, casting <code class="language-plaintext highlighter-rouge">cargo build --release</code> will create a faster, optmised version under <code class="language-plaintext highlighter-rouge">target/release</code>. You can also build and immediately run a program with <code class="language-plaintext highlighter-rouge">cargo run</code>. <code class="language-plaintext highlighter-rouge">cargo</code> will not bother rebuilding if nothing has changed.</p>

<p>If there is a compilation error in your program, the compiler will not create a new executable file, and will give you information about the error, and hopefully some advice on how to fix it, in the console when you type <code class="language-plaintext highlighter-rouge">cargo build</code> or <code class="language-plaintext highlighter-rouge">cargo run</code>.</p>

<p>OK, that’s the basic set of incantations. Let’s see what we can do with them.</p>

<h2 id="naming-things">naming things</h2>

<p>There’s an old computer science joke which goes like this:</p>

<blockquote>
  <p>The two hard problems of computer science are naming things, cache invalidation, and off-by-one errors.</p>
</blockquote>

<p>It apparently goes back to <a href="https://www.karlton.org/2017/12/naming-things-hard/">Phil Karlton</a>, according to his son. At some point the meta joke of adding ‘off-by-one errors’ was added. Who knows who came up with that one.</p>

<p>Cache invalidation is an interesting and genuinely fiddly engineering problem which we will not explain just yet; the other two are funny jokes, right? Like, yeah, it’s kinda important to come up with good names for things, but at the end of the day it doesn’t matter <em>that</em> much. They’re easy to replace with modern tools. And off-by-one errors are just a common type of accidental slipup.</p>

<p>But actually…</p>

<p>The very first thing you will probably be taught to do in any programming tutorial is “assign a variable”. Let’s go ahead and do that right now.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">some_number</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Ignore for now the <code class="language-plaintext highlighter-rouge">fn main() {...}</code> wrapper, we’ll talk about that later, it just tells our program where to start.</p>

<p>The line breaks down…</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">let</code> says we are about to name something</li>
  <li><code class="language-plaintext highlighter-rouge">some_number</code> is the name we are bestowing</li>
  <li><code class="language-plaintext highlighter-rouge">=</code> says we are assigning a value to this name</li>
  <li><code class="language-plaintext highlighter-rouge">1337</code> is the value we are assigning</li>
  <li><code class="language-plaintext highlighter-rouge">;</code> ends the expression/statement (in Rust, everything is an expression)</li>
</ul>

<p>If we compile and run this program it won’t do anything. (You will get a warning about an unused variable too.) But we have nevertheless expressed a desire in the language’s syntax: we have said we wish for something to exist, and we have given that ‘thing’ a name. That name is <code class="language-plaintext highlighter-rouge">some_number</code>. We have also stored a <dfn>value</dfn> behind this name. This is the integer 1337.</p>

<p>What has actually happened, though? According to the language’s <em>semantics</em>, all that we have declared is that we want the name <code class="language-plaintext highlighter-rouge">some_number</code> to exist, and that it should contain the value 1337. This means, if, later in the program, we write <code class="language-plaintext highlighter-rouge">some_number</code> in a place where a name is expected, it can be replaced by the number 1337.</p>

<p>Where in the computer is the number 1337 <em>actually</em> stored? Logically, it is a place called the ‘stack’, but the compiler has some freedom here: maybe it will store this in a CPU register, maybe it will put it in memory.</p>

<p>Alternatively, as in this case, it will actually determine that we never look for the contents of the name <code class="language-plaintext highlighter-rouge">some_number</code>, so it can safely be deleted from the program. After the compiler’s done its work, the value 1337 won’t even appear anywhere.</p>

<p>We can add some special magic to the program to tell it to contact the operating system and write to the console.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">some_number</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"some_number = {}"</span><span class="p">,</span> <span class="n">some_number</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>What does <code class="language-plaintext highlighter-rouge">println!</code> mean? This is a Rust standard library “macro” which is actually doing quite a lot under the hood. It is saying: ‘format’ a string, then ask the operating system to write it out to the console. ‘Formatting’ a string involves filling in the gaps where we’ve written <code class="language-plaintext highlighter-rouge">{}</code> with values from our program. There are lots of different ways to format things, but that would be a distraction.</p>

<p>For now, I will just say this: this is a piece of prebuilt machinery, a spell which Rust provides us. Later, we will certainly find out what’s going on under the hood; for now, we really need to see something come out of our program so we will have to leave it unexplained. This is the simplest way to build up some other ideas.</p>

<p>All you need to know then: you can write <code class="language-plaintext highlighter-rouge">println!</code> followed by something in parantheses. The first line must always be a template, wrapped in quotes, <code class="language-plaintext highlighter-rouge">"like so"</code>. Any place you put <code class="language-plaintext highlighter-rouge">{}</code> in the template, you can then put a value from the list that comes after. The first value goes in the first <code class="language-plaintext highlighter-rouge">{}</code>, the second value in the second <code class="language-plaintext highlighter-rouge">{}</code>, and so on. (You can actually put additional information inside the <code class="language-plaintext highlighter-rouge">{}</code> to make it print it in certain ways, such as <code class="language-plaintext highlighter-rouge">{:09}</code> to print a 9-digit long number padded with zeroes; I won’t explain that right now but if you are dying to know about it there is information <a href="https://doc.rust-lang.org/std/fmt/">here</a>.) Try playing around a bit with <code class="language-plaintext highlighter-rouge">println!</code> templates.</p>

<h2 id="semantics-vs-instructions">semantics vs instructions</h2>

<p>What we are observing here is that, unlike the assembly language we saw earlier, a Rust program doesn’t correspond to machine code in a simple way at all. The compiler takes our program and spits out some machine code which ‘matches up with’ what we wanted the program to do.</p>

<p><a href="https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:rust,selection:(endColumn:1,endLineNumber:5,positionColumn:1,positionLineNumber:5,selectionStartColumn:1,selectionStartLineNumber:5,startColumn:1,startLineNumber:5),source:'pub+fn+main()+%7B%0A++++let+some_number+%3D+1337%3B%0A++++println!!(%22some_number+%3D+%7B%7D%22,+some_number)%3B%0A%7D%0A'),l:'5',n:'0',o:'Rust+source+%231',t:'0')),k:47.45547073791349,l:'4',n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:r1950,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:1,lang:rust,libs:!(),options:'-C+opt_level%3D2',overrides:!((name:edition,value:'2024')),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+rustc+1.95.0+(Editor+%231)',t:'0')),k:52.54452926208651,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4">Using Compiler Explorer</a>, we can actually see exactly what comes out of the compiler. With some knowledge and effort, it’s possible to line things up, but actually most of this code is just setting up to run <code class="language-plaintext highlighter-rouge">println!</code> for us.</p>

<p>So what’s going on? How should we understand this?</p>

<p>A Rust program does not describe machine code, exactly. It describes what an ‘abstract machine’ should do. The code generated by the compiler ‘matches up’ in the following way: for a given input, the program is obliged to result in certain things where it touches the ‘outside world’. In this case, there are no inputs (or are there…), so the compiler <em>must</em> have the program print the number 1337 to the console. How it actually goes about doing that is its business.</p>

<aside>There actually is an input: the program has to be told <em>where</em> it can write things, such as the number 1337, by the operating system. However, that is hidden away, and we don't deal with that directly.</aside>

<p>If you write <code class="language-plaintext highlighter-rouge">let some_number</code> you’re saying that the compiler should know about this name, which we call <dfn>declaring</dfn> an <dfn>identifier</dfn>. Then the <code class="language-plaintext highlighter-rouge">= 1337</code> is performing <dfn>assignment</dfn>: we are associating that name with a value.</p>

<p><small>Note that this is not the same as asserting there is a mathematical equality, it’s not like an algebraic equation, despite using the same ‘equals’ sign. Assignment in this type of language is an <em>action</em>: the thing on the right is <em>put inside</em> the thing on the left. There is a before, where the equality might not be true, and an after, where it is. Some languages might use a different syntax like <code class="language-plaintext highlighter-rouge">some_number &lt;- 1337</code>. But Rust follows the tradition of C-like languages in which a single <code class="language-plaintext highlighter-rouge">=</code> always means assignment.)</small></p>

<p>A Rust program describes a series of statements about how we want things in the abstract machine to change. For example, let’s add some numbers…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">leet</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>
    <span class="k">let</span> <span class="n">acab</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
    <span class="k">let</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">leet</span> <span class="o">+</span> <span class="n">acab</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"{} + {} = {}"</span><span class="p">,</span> <span class="n">leet</span><span class="p">,</span> <span class="n">acab</span><span class="p">,</span> <span class="n">sum</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>We are assigning ‘the result of adding 1337 and 1312’ to the identifier ‘sum’. At the end we’ve got a line which prints out all that stuff we declared, slotting it into the designated boxes in a sentence template.</p>

<p>One intresting wrinkle of this is that the state of things is different on each line of the program. Let’s try printing out the value of <code class="language-plaintext highlighter-rouge">sum</code> before we’ve declared it…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">leet</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>
    <span class="k">let</span> <span class="n">acab</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"sum: {}"</span><span class="p">,</span> <span class="n">sum</span><span class="p">);</span>
    <span class="k">let</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">leet</span> <span class="o">+</span> <span class="n">acab</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"{} + {} = {}"</span><span class="p">,</span> <span class="n">leet</span><span class="p">,</span> <span class="n">acab</span><span class="p">,</span> <span class="n">sum</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>In your IDE, or if you try to compile, you should get a red squiggly line under ‘sum’, and it will say:</p>

<blockquote>
  <p>error[E0425]: cannot find value <code class="language-plaintext highlighter-rouge">sum</code> in this scope</p>
</blockquote>

<p>On this line of the program, <code class="language-plaintext highlighter-rouge">sum</code> does not exist. It only exists after we declare it. But what’s all this about scope?</p>

<p>In Rust, curly braces do something quite special. They create a kind of mini world in which the names we give are allowed to live. Let’s give it a try. (We have added comments, lines of code which do nothing, by writing <code class="language-plaintext highlighter-rouge">//</code> at the start of each one.)</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">leet</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>
    
    <span class="c1">//scope begins here</span>
    <span class="p">{</span>
        <span class="k">let</span> <span class="n">acab</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
        
        <span class="c1">//this will not give an error</span>
        <span class="k">let</span> <span class="n">foo</span> <span class="o">=</span> <span class="n">acab</span><span class="p">;</span>

        <span class="c1">//this is fine too</span>
        <span class="k">let</span> <span class="n">bar</span> <span class="o">=</span> <span class="n">leet</span><span class="p">;</span>

        <span class="c1">//scope ends here</span>
    <span class="p">}</span> 
    
    <span class="c1">//this will give an error</span>
    <span class="k">let</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">leet</span> <span class="o">+</span> <span class="n">acab</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"{} + {} = {}"</span><span class="p">,</span> <span class="n">leet</span><span class="p">,</span> <span class="n">acab</span><span class="p">,</span> <span class="n">sum</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Inside the inner pair of braces, we define the names <code class="language-plaintext highlighter-rouge">acab</code>, <code class="language-plaintext highlighter-rouge">foo</code> and <code class="language-plaintext highlighter-rouge">bar</code>. We can refer to the name <code class="language-plaintext highlighter-rouge">acab</code> inside the braces, since it has been defined. We can also refer to the name <code class="language-plaintext highlighter-rouge">leet</code>, which came from the ‘world outside’.</p>

<p>However, at the end of the scope, the closing brace <code class="language-plaintext highlighter-rouge">}</code>, everything that was declared inside the scope is destroyed! If we try to refer to <code class="language-plaintext highlighter-rouge">acab</code> again, it fails. Names do not last forever. We are constantly ‘stacking’ scopes on top of each other (e.g. by calling functions, we’ll get to that in a moment). When we leave a layer of the stack, it disappears, and all the names it knew about are forgotten…</p>

<p>It might not be obvious why this is useful yet, besides avoiding accidents when the same names are used in multiple places… but it all relates to some of Rust’s other useful features to do with memory management and lifetimes. We’ll get there.</p>

<p>There is no concept of scope or names on the level of assembly. There are just registers and memory addresses. Scopes are part of the abstract machine, also known as the <dfn>semantics</dfn> of the language.</p>

<h3 id="shadowing">shadowing</h3>

<p>This is honestly a bit niche, but worth mentioning: you can replace a name with another name. This declaration lasts until the end of its scope, after which it falls away and reveals the old name again.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">foo</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
    <span class="p">{</span>
        <span class="c1">//the previous foo becomes 'shadowed'</span>
        <span class="k">let</span> <span class="n">foo</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>

        <span class="c1">//prints 1337</span>
        <span class="nd">println!</span><span class="p">(</span><span class="s">"Inner foo: {}"</span><span class="p">,</span> <span class="n">foo</span><span class="p">);</span>
        <span class="c1">//inner foo is dropped</span>
    <span class="p">}</span>
    <span class="c1">//prints 1312</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"Outer foo: {}"</span><span class="p">,</span> <span class="n">foo</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>This is called ‘shadowing’, and many languages do not have it. It is useful to know about, though.</p>

<h3 id="mutable-variables">mutable variables</h3>

<p>So far, we have never <em>changed</em> the value we’ve stored behind a name. This is called ‘mutation’. Traditionally, the things behind names could always be mutated, which is why they tend to be called ‘variables’.</p>

<p>Rust also allows mutation, but we have to explicitly say we want to allow it when we name something. Here’s a simple example:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="k">mut</span> <span class="n">tobias_form</span> <span class="o">=</span> <span class="s">"human"</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"tobias is currently a {}"</span><span class="p">,</span> <span class="n">tobias_form</span><span class="p">);</span>
    <span class="n">tobias_form</span> <span class="o">=</span> <span class="s">"hawk"</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"tobias is currently a {}"</span><span class="p">,</span> <span class="n">tobias_form</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>If we hadn’t included the <code class="language-plaintext highlighter-rouge">mut</code> when declaring <code class="language-plaintext highlighter-rouge">tobias_form</code>, we’d get a compilation error when we try to assign a new value to it.</p>

<p>Note that with mutable variables, you can ‘reach outside’ the self-contained world of a scope.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="k">mut</span> <span class="n">tobias_form</span> <span class="o">=</span> <span class="s">"human"</span><span class="p">;</span>
    <span class="k">let</span> <span class="n">cassie_form</span> <span class="o">=</span> <span class="s">"human"</span><span class="p">;</span>
    <span class="nd">print!</span><span class="p">(</span><span class="s">"tobias is currently a {}"</span><span class="p">,</span> <span class="n">tobias_form</span><span class="p">);</span>
    <span class="nd">print!</span><span class="p">(</span><span class="s">"cassie is currently a {}"</span><span class="p">,</span> <span class="n">cassie_form</span><span class="p">);</span>
    <span class="p">{</span>
        <span class="c1">//time to battle some yeerks!</span>
        <span class="n">tobias_form</span> <span class="o">=</span> <span class="s">"hawk"</span><span class="p">;</span>
        <span class="k">let</span> <span class="n">cassie_form</span> <span class="o">=</span> <span class="s">"horse"</span><span class="p">;</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"tobias is currently a {}"</span><span class="p">,</span> <span class="n">tobias_form</span><span class="p">);</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"cassie is currently a {}"</span><span class="p">,</span> <span class="n">cassie_form</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="nd">print!</span><span class="p">(</span><span class="s">"tobias is currently a {}"</span><span class="p">,</span> <span class="n">tobias_form</span><span class="p">);</span>
    <span class="nd">print!</span><span class="p">(</span><span class="s">"cassie is currently a {}"</span><span class="p">,</span> <span class="n">cassie_form</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Oh no! Tobias got stuck as a hawk!</p>

<p>Mutable variables are generally more complicated than immutable ones because they might be mutated in all sorts of different places. They make it easier to create bugs if you assume a name refers to one thing but it’s actually a different thing. So it’s a good idea to only make things mutable when they <em>need</em> to be mutable.</p>

<h2 id="what-is-a-language-for">what is a language for?</h2>

<p>The function of a programming language is to let you express, as clearly and precisely as possible, the intent you wish to perform. In practice, this means describing a number of abstract entities you wish to bestow an ‘as if’ existence. The compiler will then do the hard work of arranging the world in order to fulfil your wish. You need to meet it halfway, though: understand how things work enough to speak a language it understands and follow the rules.</p>

<p>So far we have just given names to some numbers. Soon we’ll be making other things: data structures, functions, types, and all sorts. Then, we can describe how these abstract things should interact with each other.</p>

<p>Could you have a programming language which does not involve bestowing names? Yes, certainly: you could, for example, directly push and pop things onto a stack with suitable commands. It would be a headache and you would not be using <em>your</em> superpower as a language-using creature, which is to invent new concepts and attach them to words.</p>

<p>Ah, but all this adding numbers together is pretty boring, isn’t it. Let’s work through a more complex example: a simple dungeon game to be played in the console.</p>

<h2 id="a-dungeon-game">a dungeon game</h2>

<p>You may have played a game like this before. You have a bunch of ascii characters expressing walls and creatures. Like this…</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>############
#..........#
#..@.......#
#.......g..#
#..........#
############
</code></pre></div></div>
<p>In this world, creatures live on a grid. (Grids are easy to represent.) The position of the player is represented by an <code class="language-plaintext highlighter-rouge">@</code> sign. There is another creature, represented by the letter <code class="language-plaintext highlighter-rouge">g</code>, in the room.</p>

<p>What does our program need to do? On a high level…</p>

<ul>
  <li>it needs to communicate the state of the game to the player.</li>
  <li>it needs to receive input, representing the player’s next action.</li>
  <li>it needs to update the simulation in response to the player’s action.</li>
  <li>it needs to update the displayed game state</li>
</ul>

<p>How can we go about doing this? We need to describe the actions that should be taken with the abstract entities we’re naming. There are multiple ways to do this, but we’re angling towards writing functions.</p>

<h2 id="second-orb-to-ponder">second orb to ponder</h2>

<p>Here’s a slightly annoyingly written Rust program to fuck about with names and scopes:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">spell</span> <span class="o">=</span> <span class="s">"Y"</span><span class="p">;</span>
    <span class="p">{</span>
        <span class="k">let</span> <span class="n">spell</span> <span class="o">=</span> <span class="s">"X"</span><span class="p">;</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span> <span class="n">spell</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span> <span class="n">spell</span><span class="p">);</span>
        <span class="k">let</span> <span class="n">spell</span> <span class="o">=</span> <span class="s">"Z"</span><span class="p">;</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"{}{}"</span><span class="p">,</span> <span class="n">spell</span><span class="p">,</span> <span class="n">spell</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="nd">print!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span> <span class="n">spell</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Can you work out what it prints? (<code class="language-plaintext highlighter-rouge">print</code> is the same as <code class="language-plaintext highlighter-rouge">println</code> mostly, it just does not put a newline at the end so you can keep writing on the same line.) Write down a guess, then run it and see if you’re right.</p>

<p>Most of the time you will not be directly putting pointless scopes and constantly shadowing variables in the middle of a function like this! But functions, loops, conditionals and the like all depend on scopes to work.</p>]]></content><author><name></name></author><category term="programming" /><category term="magic" /><category term="programming grimoire" /><summary type="html"><![CDATA[We introduce the most fundamental magical act.]]></summary></entry><entry><title type="html">programming grimoire [3]::creating spells</title><link href="https://canmom.art/programming/magic/3-functions" rel="alternate" type="text/html" title="programming grimoire [3]::creating spells" /><published>2026-06-07T00:00:00+00:00</published><updated>2026-06-07T00:00:00+00:00</updated><id>https://canmom.art/programming/magic/3-functions</id><content type="html" xml:base="https://canmom.art/programming/magic/3-functions"><![CDATA[<p>Last time we saw that programming consists of defining names and putting things behind them. We got a little sense for the ‘geography’ of a program: the names only exist in some places.</p>

<p>This is one big part of the puzzle. The next powerful spell is functions.</p>

<ol id="markdown-toc">
  <li><a href="#functions" id="markdown-toc-functions">functions</a>    <ol>
      <li><a href="#functions-abstracted" id="markdown-toc-functions-abstracted">functions abstracted</a></li>
      <li><a href="#side-effects" id="markdown-toc-side-effects">side effects</a></li>
    </ol>
  </li>
  <li><a href="#types" id="markdown-toc-types">types</a>    <ol>
      <li><a href="#types-are-enforced-at-compile-time" id="markdown-toc-types-are-enforced-at-compile-time">types are enforced at compile time</a></li>
    </ol>
  </li>
  <li><a href="#a-function-to-display-the-dungeon" id="markdown-toc-a-function-to-display-the-dungeon">A function to display the dungeon</a>    <ol>
      <li><a href="#loops" id="markdown-toc-loops">loops</a></li>
    </ol>
  </li>
  <li><a href="#buffering-with-arrays" id="markdown-toc-buffering-with-arrays">buffering with arrays</a></li>
  <li><a href="#a-third-orb-to-ponder" id="markdown-toc-a-third-orb-to-ponder">a third orb to ponder</a></li>
</ol>

<h2 id="functions">functions</h2>

<p>Much like the programs inside the operating system, we can think of the inside of a program as being made of smaller pieces called functions. We’ve already seen a function: <code class="language-plaintext highlighter-rouge">fn main()</code> is Rust’s way of declaring that there is a function called <code class="language-plaintext highlighter-rouge">main</code>. By default, Rust programs always do a little setup stuff and then start in the function called <code class="language-plaintext highlighter-rouge">main</code>.</p>

<p>There are several ways to look at functions. One is that you run the function, it does some calculation, and then it <em>returns</em> a value to the place that called it. In Rust, this is defined like so…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">give_me_four</span><span class="p">()</span> <span class="k">-&gt;</span> <span class="nb">i32</span> <span class="p">{</span>
    <span class="mi">4</span>
<span class="p">}</span>
</code></pre></div></div>
<p>This is a function which always returns the integer value <code class="language-plaintext highlighter-rouge">4</code>. The beginning part is the most important. It breaks down like this:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">fn</code> says that we are declaring a function</li>
  <li><code class="language-plaintext highlighter-rouge">give_me_four</code> is the name we are assigning to the function</li>
  <li><code class="language-plaintext highlighter-rouge">()</code> is where the function’s arguments would go. this function has no arguments</li>
  <li><code class="language-plaintext highlighter-rouge">-&gt;</code> is used to indicate the <dfn>return type</dfn> of the function, more on that in a sec</li>
  <li><code class="language-plaintext highlighter-rouge">i32</code> is the type of a 32-bit integer, more on that in a sec as well</li>
  <li><code class="language-plaintext highlighter-rouge">{</code> begins a scope, the ‘function body’, which is what the function actually does</li>
  <li><code class="language-plaintext highlighter-rouge">4</code> is an expression (a single calculation), in this case just the value 4. it does not have a semicolon so it gets returned</li>
  <li><code class="language-plaintext highlighter-rouge">}</code> ends the function scope</li>
</ul>

<p>Note that in Rust, unlike a lot of other languages, we don’t usually need to use a keyword such as <code class="language-plaintext highlighter-rouge">return</code> to leave a function. If the last line of the function is an expression without a semicolon, that is what gets returned.</p>

<p>You can <dfn>call</dfn> this function like so, by putting some parentheses right after it:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">hopefully_four</span> <span class="o">=</span> <span class="nf">give_me_four</span><span class="p">();</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"given {}"</span><span class="p">,</span> <span class="n">hopefully_four</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Calling a function means you jump into the function, run its code, and then come back to where you left off. It’s sort of like you dropped the function body right there as a scope, like this:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">hopefully_four</span> <span class="o">=</span> <span class="p">{</span>
        <span class="mi">4</span>
    <span class="p">};</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"given {}"</span><span class="p">,</span> <span class="n">hopefully_four</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>

<p>To be useful, functions usually need to have <dfn>arguments</dfn> which are filled in when the function is run. Here’s a really boring example:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">add_four</span><span class="p">(</span><span class="n">num</span><span class="p">:</span> <span class="nb">i32</span><span class="p">)</span> <span class="k">-&gt;</span> <span class="nb">i32</span> <span class="p">{</span>
    <span class="n">num</span> <span class="o">+</span> <span class="mi">4</span>
<span class="p">}</span>
</code></pre></div></div>
<p>This function takes a 32-bit integer, adds 4 to it, and then returns the result of this calculation. We can <dfn>call</dfn> it by putting a value into the parentheses after the name of the function.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="c1">//we can put a number in</span>
    <span class="k">let</span> <span class="n">four_more_than_twelve</span> <span class="o">=</span> <span class="nf">add_four</span><span class="p">(</span><span class="mi">12</span><span class="p">);</span> <span class="c1">//16</span>

    <span class="c1">//we can put a named identifier in</span>
    <span class="k">let</span> <span class="n">leet</span> <span class="o">=</span> <span class="mi">1337</span><span class="p">;</span>
    <span class="k">let</span> <span class="n">four_more_than_leet</span> <span class="o">=</span> <span class="nf">add_four</span><span class="p">(</span><span class="n">leet</span><span class="p">);</span> <span class="c1">//1341</span>

    <span class="c1">//we can put an expression in.</span>
    <span class="c1">//this means we'll evaluate the expression and then put the result into the function.</span>
    <span class="k">let</span> <span class="n">four_more_than_an_expression</span> <span class="o">=</span> <span class="nf">add_four</span><span class="p">(</span><span class="n">leet</span> <span class="o">+</span> <span class="mi">12</span><span class="p">);</span> <span class="c1">//1353</span>

    <span class="c1">//rust won't let us call the function with the wrong number of arguments</span>
    <span class="k">let</span> <span class="n">error_too_few</span> <span class="o">=</span> <span class="nf">add_four</span><span class="p">();</span> <span class="c1">//error: no argument</span>
    <span class="k">let</span> <span class="n">error_too_many</span> <span class="o">=</span> <span class="nf">add_four</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">)</span> <span class="c1">//error: too many arguments</span>
<span class="p">}</span>
</code></pre></div></div>

<p>Just like before, it’s as if the function was inserted where we called it, but assigning names to hold each input.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="c1">//this...</span>
    <span class="k">let</span> <span class="n">four_more_than_twelve</span> <span class="o">=</span> <span class="nf">add_four</span><span class="p">(</span><span class="mi">12</span><span class="p">);</span>

    <span class="c1">//is essentially the same as...</span>
    <span class="k">let</span> <span class="n">four_more_than_twelve</span> <span class="o">=</span> <span class="p">{</span>
        <span class="k">let</span> <span class="n">num</span> <span class="p">:</span> <span class="nb">i32</span> <span class="o">=</span> <span class="mi">12</span><span class="p">;</span>
        <span class="n">num</span> <span class="o">+</span> <span class="mi">4</span>
    <span class="p">};</span>
<span class="p">}</span>
</code></pre></div></div>
<p>The compiler might do exactly that, instead of jumping. This is called ‘inlining’.</p>

<h3 id="functions-abstracted">functions abstracted</h3>

<p>Although I’ve described a function as a series of instructions to perform, this is not how a mathematician views a function. A mathematician thinks of a function as a ‘mapping between sets’, like a bunch of tiny little arrows from each input to each output. For our <code class="language-plaintext highlighter-rouge">add_four</code> function, 0 is mapped to 4, 1 is mapped to 5, 2 is mapped to 6, and so on.</p>

<p>The actual instructions used to perform this mapping do not matter so much. Many different sets of instructions can be used to represent the same function, as long as they give the same output for every possible input. The compiler can take advantage of this, by finding a faster set of instructions to ‘do the same thing’.</p>

<p>Thinking about functions as just a mapping only really works if we have what are known as ‘pure functions’: functions which don’t touch anything ‘outside’ the function, just quietly do their calculation and pass back the result. But there are other types of function…</p>

<h3 id="side-effects">side effects</h3>

<p><code class="language-plaintext highlighter-rouge">println!</code> is also a function. (Technically, a macro that generates a function call. Don’t worry about that for now.) However, this type of function doesn’t simply make a calculation and then politely return it: it goes away and <em>does something</em>, in this case, tell the operating system that we would like to print out some text please.</p>

<p>This is known as a ‘side effect’. In Rust, functions can have side effects. In order to do so, they need to ‘know about’ something outside their own scope. This is called ‘capturing’.</p>

<p>For now, the only side effect we will concern ourselves with is printing things to the console. Pure functions are easier to reason about and usually allow the compiler to make things a lot faster to boot.</p>

<h2 id="types">types</h2>

<p>Let’s talk about data types! What’s all this <code class="language-plaintext highlighter-rouge">i32</code> stuff? What’s a ‘32 bit integer` when it’s at home?</p>

<p>Well, an <em>integer</em> is a whole number. 32 bits means that it uses 32 <dfn>bits</dfn> (binary values, that can be 0 or 1) to store the number. This is the same as four <dfn>bytes</dfn>, since a byte is 8 bits. <code class="language-plaintext highlighter-rouge">i32</code> is a signed integer data type which can store about four billion different whole numbers between \(-2^{31}=-2\,147\,483\,648\) and \(2^{31}-1=2\,147\,483\,647\). (You can get these numbers easily with <code class="language-plaintext highlighter-rouge">i32::MIN</code> and <code class="language-plaintext highlighter-rouge">i32::MAX</code>).</p>

<p>Once again, this is an ‘as if’ rule that belongs to the abstract machine. As far as the hardware is concerned, bytes are just bytes. Let’s say you have a register containing the 32-bit binary value <code class="language-plaintext highlighter-rouge">0000 0000 0000 0000 0000 0101 0011 1001</code>. What is that? Maybe it’s an integer with the value 1337 arranged in big-endian order. Maybe it’s a string of Unicode characters. Maybe it’s part of an image. The computer does not give a shit: it will do whatever its next instruction says. If the next instruction is 32-bit integer addition then it will treat those bits as a 32-bit integer.</p>

<p>The <em>compiler</em> cares a lot, though. Rust is a strongly typed language, which means that as far as the language semantics are concerned, every name you assign also has a <em>data type</em> which defines what you’re able to do with it.</p>

<p>We’ve not been explicitly assigning types so far, because the compiler is pretty clever: it can assume that if you are putting an integer in something, it’s intended to have integer type. And by default, numbers without a decimal point have the type <code class="language-plaintext highlighter-rouge">i32</code>, so we can skip writing that.</p>

<p>We can be explicit if we want to, though. Let’s check out a few animals in the type zoo…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">//this line introduces some names from elsewhere</span>
<span class="k">use</span> <span class="nn">std</span><span class="p">::</span><span class="nn">sync</span><span class="p">::{</span><span class="nb">Arc</span><span class="p">,</span> <span class="n">Mutex</span><span class="p">};</span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
   <span class="k">let</span> <span class="n">unsigned_acab</span> <span class="p">:</span> <span class="nb">u32</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
   <span class="k">let</span> <span class="n">bigger_acab</span> <span class="p">:</span> <span class="nb">i64</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
   <span class="k">let</span> <span class="n">float_acab</span> <span class="p">:</span> <span class="nb">f32</span> <span class="o">=</span> <span class="mf">1312.0</span><span class="p">;</span>
   
   <span class="k">let</span> <span class="n">acab_array</span> <span class="p">:</span> <span class="p">[</span><span class="nb">i32</span><span class="p">;</span> <span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1312</span><span class="p">,</span> <span class="mi">1312</span><span class="p">,</span> <span class="mi">1312</span><span class="p">,</span> <span class="mi">1312</span><span class="p">,</span> <span class="mi">1312</span><span class="p">];</span>
   <span class="k">let</span> <span class="n">acab_str_slice</span> <span class="p">:</span> <span class="o">&amp;</span><span class="nb">str</span> <span class="o">=</span> <span class="s">"1312"</span><span class="p">;</span>
   <span class="k">let</span> <span class="n">silly_nonsense</span> <span class="p">:</span> <span class="nb">Arc</span><span class="o">&lt;</span><span class="n">Mutex</span><span class="o">&lt;</span><span class="nb">i32</span><span class="o">&gt;&gt;</span> <span class="o">=</span> <span class="nn">Arc</span><span class="p">::</span><span class="nf">new</span><span class="p">(</span><span class="nn">Mutex</span><span class="p">::</span><span class="nf">new</span><span class="p">(</span><span class="mi">1312</span><span class="p">));</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Here we have declared an unsigned 32-bit integer, a signed 64-bit integer, a 32-bit float, an array of integers, a string slice, and a slightly more complicated thing that I’m mostly including as foreshadowing ;p</p>

<p>The <code class="language-plaintext highlighter-rouge">u32</code> uses the same space as an <code class="language-plaintext highlighter-rouge">i32</code>, but it only allows positive numbers. So it can store numbers from 0 up to 4294967295.</p>

<p>The <code class="language-plaintext highlighter-rouge">i64</code> type uses twice as much space as an <code class="language-plaintext highlighter-rouge">i32</code>, allowing it to store numbers from \(-9\,223\,372\,036\,854\,775\,808\) to \(9\,223\,372\,036\,854\,775\,807\).</p>

<p>The <code class="language-plaintext highlighter-rouge">f32</code> type is a floating point type. Floating point types are a special representation of numbers which allows fractions and large numbers to be stored in the same 32 bits. Just like <code class="language-plaintext highlighter-rouge">i32</code> and <code class="language-plaintext highlighter-rouge">u32</code>, you have about four billion possible floats, but they are not spaced evenly on the number line: increasingly, more and more numbers are ‘missing’ the further away you get from zero. You <em>also</em> have special values like ‘infinity’ and ‘not a number’. Floats are quite weird and there are a lot of nuances to them; they are a leaky abstraction designed to approximately represent our intuitive idea of how real numbers work.</p>

<p>The last three are some examples of slightly more complex types that you will one day be able to express in Rust. They are respectively an array, a string slice, and an “automatically reference counted smart pointer containing a mutex containing a 32 bit integer”, which is the sort of thing you might sometimes need if you’re writing multithreaded programs.</p>

<p>But what’s the point of all this? Types exist so the compiler can help us. They let us express what something is supposed to be, and make sure, before our program even runs, that we don’t try to do something that doesn’t make sense. If a function is written on the assumption that its input is one thing, the types express that to the compiler so we don’t try to run it in a way that wouldn’t work.</p>

<h3 id="types-are-enforced-at-compile-time">types are enforced at compile time</h3>

<p>Let’s add another line to this:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
   <span class="k">let</span> <span class="n">unsigned_acab</span> <span class="p">:</span> <span class="nb">u32</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
   <span class="k">let</span> <span class="n">bigger_acab</span> <span class="p">:</span> <span class="nb">i64</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>

   <span class="k">let</span> <span class="n">causes_error</span> <span class="o">=</span> <span class="n">unsigned_acab</span> <span class="o">+</span> <span class="n">bigger_acab</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>This last line will cause an error.</p>

<p>We’re trying to add a 32-bit unsigned integer to a 64-bit signed integer. Although that seems like it probably would make sense, Rust doesn’t know what sort of value you would want the result to be, so it hasn’t defined what addition does for these two types. Before you add the numbers together, you need to <em>convert</em>, or <em>cast</em>, the numbers into a compatible pair of types which can be added.</p>

<p>For simple types like this, it can be done with the <code class="language-plaintext highlighter-rouge">as</code> keyword to convert one type into the other:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
   <span class="k">let</span> <span class="n">unsigned_acab</span> <span class="p">:</span> <span class="nb">u32</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>
   <span class="k">let</span> <span class="n">bigger_acab</span> <span class="p">:</span> <span class="nb">i64</span> <span class="o">=</span> <span class="mi">1312</span><span class="p">;</span>

   <span class="k">let</span> <span class="n">no_error</span> <span class="o">=</span> <span class="n">unsigned_acab</span> <span class="k">as</span> <span class="nb">i64</span> <span class="o">+</span> <span class="n">bigger_acab</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>It’s always safe (in the sense that no information will be lost) to turn a <code class="language-plaintext highlighter-rouge">u32</code> into an <code class="language-plaintext highlighter-rouge">i64</code>, but not the other way round. If the <code class="language-plaintext highlighter-rouge">i64</code> is negative, or larger than the maximum <code class="language-plaintext highlighter-rouge">u32</code>, there is no mathematically correct answer for this operation. However, Rust has <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">rules</a> about what to do here. Essentially, casting down to a smaller type ‘truncates’ the integer, keeping only the last 32 bits. Negative values get a little bit complicated, we’ll brush over it for now. (Though feel free to try casting some negative integers to unsigned integers and see what comes out!)</p>

<p>Does this mean that we should always use the biggest available number type, such as <code class="language-plaintext highlighter-rouge">i128</code>? This is where the abstraction starts to get leaky again! Most modern processors work with 64-bit values. To handle a 128-bit number, the compiler is forced to generate multiple instructions, and the program will be slower. It will still follow the stipulations of the abstract machine… but the abstract machine is different from the real machine in an important way, and so the real machine has to do more work to satisfy the abstract machine’s demands.</p>

<p>There are other good reasons to want to use smaller types. For example, if you are crunching lots of repetitive data, like pixels, you want to pack the data into arrays, and it matters a lot how much space an array takes up, how quickly it can be loaded in and out of memory, and so on. In this case, there are good reasons to try to use the smallest type you can get away with.</p>

<p>Unsigned types are also useful because the compiler will make sure you don’t create negative numbers by accident. Indeed, one of the most powerful things we can do in programming is to create our own types to express the needs of our program to let the compiler help us out. We’ll do that soon, but let’s get back to the dungeon game.</p>

<h2 id="a-function-to-display-the-dungeon">A function to display the dungeon</h2>

<p>Let’s imagine one way of displaying an empty room in the dungeon. We could print it out, line by line, like this:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#############"</span><span class="p">);</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#...........#"</span><span class="p">);</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#...........#"</span><span class="p">);</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#...........#"</span><span class="p">);</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#############"</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>However, we probably want to print out rooms of different sizes, and in different positions, and so on. And in general, if you find yourself repeating yourself, it’s probably a good idea to make a function to express your intent more clearly.</p>

<p>Let’s start by creating loops.</p>

<h3 id="loops">loops</h3>

<p>One thing that computers are <em>really</em> good at is doing the same thing over and over again. This is such a common construct that nearly every programming language has some way to represent it. It’s called a ‘loop’.</p>

<p>Although so far the story has concerned Rust, I need to briefly talk about some history here. C, C++, and similar languages write loops like this:</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">//do some shit</span>
<span class="p">}</span>
</code></pre></div></div>
<p>In C, this says: assign a variable of integer type called <code class="language-plaintext highlighter-rouge">i</code>; at the beginning of each loop, check if <code class="language-plaintext highlighter-rouge">i</code> is less than 10; at the end of each loop, add 1 to i.</p>

<p>In other words, it says ‘for each number from 0 up to 9 inclusive, do some shit’.</p>

<p>In Rust, this way of writing a loop can be done:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">let</span> <span class="k">mut</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10</span> <span class="p">{</span>
    <span class="c1">//do some shit</span>
    <span class="n">i</span> <span class="o">=</span> <span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>However, this is not how Rust <em>likes</em> to do things. Rust would generally prefer that you ‘iterate over’ something. It looks like this…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="mi">10</span> <span class="p">{</span>
    <span class="c1">//do some shit</span>
<span class="p">}</span>
</code></pre></div></div>
<p>In a Rust for loop, we are saying something slightly different: we have a thing we’re walking along, and we say, for each time round the loop, take the ‘next thing’ until we run out of things. This is more similar to how Python does it than how C does it. (Note that this time, the variable <code class="language-plaintext highlighter-rouge">i</code> only lives in each iteration of the loop, and doesn’t ‘leak out’ into the outer scope.)</p>

<p>The thing we’ve written here, <code class="language-plaintext highlighter-rouge">0..10</code>, is called a ‘range’. It’s Rust’s way of representing ‘the numbers from 0 to one-less-than 10’. If you want to include 10, you can put <code class="language-plaintext highlighter-rouge">1..=10</code>. You are more explicitly describing your <em>intent</em> (do something with every number from 0 up to 9) rather than <em>how you go about achieving that intent</em>; the compiler takes care of the fiddly details.</p>

<p>Ranges are not the only thing we can iterate over, but they’re the only thing we need to iterate over for now.</p>

<p>Let’s try putting a loop in our room drawing program…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">room_height</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#############"</span><span class="p">);</span>
    <span class="k">for</span> <span class="n">row</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">room_height</span> <span class="p">{</span>
        <span class="nd">println!</span><span class="p">(</span><span class="s">"#...........#"</span><span class="p">);</span>
    <span class="p">}</span>
    <span class="nd">println!</span><span class="p">(</span><span class="s">"#############"</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>
<p>We could also have another loop to represent the width of the room…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">room_height</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
    <span class="k">let</span> <span class="n">room_width</span> <span class="o">=</span> <span class="mi">9</span><span class="p">;</span>
    <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">room_width</span><span class="o">+</span><span class="mi">2</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">)</span>
    <span class="p">}</span>
    <span class="c1">//print a newline to end the row</span>
    <span class="nd">println!</span><span class="p">();</span>
    
    <span class="k">for</span> <span class="n">row</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">room_height</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">);</span>
        <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">room_width</span> <span class="p">{</span>
            <span class="nd">print!</span><span class="p">(</span><span class="s">"."</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="nd">println!</span><span class="p">(</span><span class="s">"#"</span><span class="p">);</span>
    <span class="p">}</span>
    
    <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">room_width</span><span class="o">+</span><span class="mi">2</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">)</span>
    <span class="p">}</span>
    <span class="nd">println!</span><span class="p">();</span>
<span class="p">}</span>
</code></pre></div></div>
<p>We can factor this out into a function, and pass the width and height in as arguments.</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="nf">print_room</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">fn</span> <span class="nf">print_room</span><span class="p">(</span><span class="n">width</span><span class="p">:</span> <span class="nb">u32</span><span class="p">,</span> <span class="n">height</span><span class="p">:</span> <span class="nb">u32</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">width</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">)</span>
    <span class="p">}</span>
    <span class="c1">//print a newline to end the row</span>
    <span class="nd">println!</span><span class="p">();</span>
    
    <span class="k">for</span> <span class="n">row</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">height</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">);</span>
        <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">width</span> <span class="p">{</span>
            <span class="nd">print!</span><span class="p">(</span><span class="s">"."</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="nd">println!</span><span class="p">(</span><span class="s">"#"</span><span class="p">);</span>
    <span class="p">}</span>
    
    <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">width</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">)</span>
    <span class="p">}</span>
    <span class="nd">println!</span><span class="p">();</span>
<span class="p">}</span>
</code></pre></div></div>
<p>Hang on, how are we using <code class="language-plaintext highlighter-rouge">print_room</code> before it’s defined? That stuff I said about how names only exist at certain points in time doesn’t apply for functions, just <code class="language-plaintext highlighter-rouge">let</code> bindings. Functions can be declared in any order, and they exist for the entire duration of the scope, which is in this case the entire program.</p>

<p>That’s a little repetitive. We have the row-drawing code twice. Let’s make that a function too…</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="nf">print_room</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">fn</span> <span class="nf">print_room</span><span class="p">(</span><span class="n">width</span><span class="p">:</span> <span class="nb">u32</span><span class="p">,</span> <span class="n">height</span><span class="p">:</span> <span class="nb">u32</span><span class="p">)</span> <span class="p">{</span>
    <span class="nf">print_horizontal_wall</span><span class="p">(</span><span class="n">width</span><span class="p">);</span>
    
    <span class="k">for</span> <span class="n">row</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">height</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">);</span>
        <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">width</span> <span class="p">{</span>
            <span class="nd">print!</span><span class="p">(</span><span class="s">"."</span><span class="p">);</span>
        <span class="p">}</span>
        <span class="nd">println!</span><span class="p">(</span><span class="s">"#"</span><span class="p">);</span>
    <span class="p">}</span>
    
    <span class="nf">print_horizontal_wall</span><span class="p">(</span><span class="n">width</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">fn</span> <span class="nf">print_horizontal_wall</span><span class="p">(</span><span class="n">width</span><span class="p">:</span> <span class="nb">u32</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="n">column</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">width</span><span class="o">+</span><span class="mi">2</span> <span class="p">{</span>
        <span class="nd">print!</span><span class="p">(</span><span class="s">"#"</span><span class="p">)</span>
    <span class="p">}</span>
    <span class="c1">//print a newline to end the row</span>
    <span class="nd">println!</span><span class="p">();</span>
<span class="p">}</span>
</code></pre></div></div>
<p>By giving these individual bits of logic names, it is much easier to understand what the program is doing.</p>

<h2 id="buffering-with-arrays">buffering with arrays</h2>

<p>This code will work, and it helpfully separates concerns like ‘how big is our room’ from ‘what characters do you use to draw a room’. However, it’s not going to be a good basis for making a game on, because we can’t easily put anything in this room, we can’t easily draw more than one room, and it also may be inefficient to make so many calls to <code class="language-plaintext highlighter-rouge">print!</code>, each of which potentially has to bring in a lot of extra machinery. We could theoretically add checks like ‘is there a character in this square’, but that’s going to make our code quite convoluted.</p>

<p>It would be much better if we could have a kind of ‘working area’ where we draw the rooms and characters as separate operations, and then print the whole thing out at once.</p>

<p>Which is a wonderful excuse to introduce array types!</p>

<h2 id="a-third-orb-to-ponder">a third orb to ponder</h2>

<p>You can clear the console by running</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nd">print!</span><span class="p">(</span><span class="s">"{esc}c"</span><span class="p">,</span> <span class="n">esc</span> <span class="o">=</span> <span class="mi">27</span> <span class="k">as</span> <span class="nb">char</span><span class="p">);</span>
</code></pre></div></div>
<p>which sends a special ‘control character’ signal which instructs the console to clear itself. (How do I know that? I googled ‘rust clear console’ and found a Stack Overflow thread which provided various answers; this one worked.)</p>

<p>You can also run this code to make the program wait:</p>
<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">std</span><span class="p">::</span><span class="nn">thread</span><span class="p">::</span><span class="nf">sleep</span><span class="p">(</span><span class="nn">std</span><span class="p">::</span><span class="nn">time</span><span class="p">::</span><span class="nn">Duration</span><span class="p">::</span><span class="nf">from_millis</span><span class="p">(</span><span class="mi">1000</span><span class="o">/</span><span class="mi">60</span><span class="p">));</span>
</code></pre></div></div>
<p>which will make the program stop doing anything for 1/60 seconds. (Don’t worry for now about all this <code class="language-plaintext highlighter-rouge">::</code> stuff: that’s just a way of looking up names. We’ll cover it more later.)</p>

<p>Using these two commands, and an extra loop, can you make an animation which causes the room to expand?</p>]]></content><author><name></name></author><category term="programming" /><category term="magic" /><category term="programming grimoire" /><summary type="html"><![CDATA[We learn how to name and give form to our wishes.]]></summary></entry><entry><title type="html">Let’s read Umineko! - episode 5 - chapter 14</title><link href="https://canmom.art/livereads/umineko/ep5/chapter-14" rel="alternate" type="text/html" title="Let’s read Umineko! - episode 5 - chapter 14" /><published>2026-06-05T00:00:00+00:00</published><updated>2026-06-05T00:00:00+00:00</updated><id>https://canmom.art/livereads/umineko/ep5/chapter-14</id><content type="html" xml:base="https://canmom.art/livereads/umineko/ep5/chapter-14"><![CDATA[<p>Hello everyone! I really appreciate the warm welcome back for this liveblog. You are all very, very sweet and all currently active flavours of Bryn appreciate it.</p>

<ol id="markdown-toc">
  <li><a href="#chapter-14-the-great-court-of-illusions" id="markdown-toc-chapter-14-the-great-court-of-illusions">Chapter 14: <cite>The Great Court of Illusions</cite></a>    <ol>
      <li><a href="#the-murder-of-hideyoshi" id="markdown-toc-the-murder-of-hideyoshi">the murder of Hideyoshi</a></li>
      <li><a href="#the-murder-of-the-four-in-the-guest-house" id="markdown-toc-the-murder-of-the-four-in-the-guest-house">the murder of the four in the guest house</a></li>
      <li><a href="#the-murder-of-genji" id="markdown-toc-the-murder-of-genji">the murder of Genji</a></li>
      <li><a href="#did-krauss-do-it" id="markdown-toc-did-krauss-do-it">did Krauss do it?</a></li>
      <li><a href="#a-verdict" id="markdown-toc-a-verdict">a verdict?</a></li>
      <li><a href="#battlers-turn" id="markdown-toc-battlers-turn">Battler’s turn</a></li>
      <li><a href="#knox-speedrun" id="markdown-toc-knox-speedrun">Knox% speedrun</a></li>
      <li><a href="#can-we-solve-it-for-real" id="markdown-toc-can-we-solve-it-for-real">can we solve it for real?</a></li>
      <li><a href="#battlers-last-gasp" id="markdown-toc-battlers-last-gasp">battler’s last gasp</a></li>
    </ol>
  </li>
</ol>

<p>Branwen wrote another wonderfully big comment, this time with some excellent analysis of Natsuhi:</p>

<details>
  <summary>Branwen</summary>

  <blockquote>
    <p>Welcome back!!! I’m really happy that the comments are appreciated, Umineko is really special and dear to me and honestly this is one of my favorite live-reads, its been a joy to read through to the point that I absolutely did post that comment while rereading it hehe :)</p>

    <p>Actually, I appreciate the whole canmom blog in general, its lovely (and even a little nostalgic?) to just see someone posting thoughts and essays with that more… I’m not totally sure how to describe it, personal feel I guess? Like it feels like a lot of what people put on the internet these days has an implicit audience and exists in the shadow of algorithmic ranking systems and metrics, where being more popular is “better” in some way?</p>

    <p>So I very much treasure finding and reading stuff that feels like it was written just for the sake of writing, for the joy or catharsis of it; or just that feeling of “I NEED to talk about this or I will lose it.” Even when I know very little about some of the other topics written about here, the sincerity and passion for the subjects is more than enough to make it a meaningful read… Makes me want to host my own blog too honestly?</p>

    <p>Anyway, yeah, to get back on topic, Natsuhi really DOES need to get out of that closet ASAP, the comphet on that poor woman is craazy. I’m not saying she’s straight-up a lesbian, but there’s no way she wouldn’t date a girl or two while keeping Krauss as her findom side boy if she knew it was an option. Like, all the women in Umineko are really interesting (to my mind at least!) and unique explorations of the ways patriarchy affects us all and the different ways women can struggle and try to adapt to living under it, but I honestly think she’s one of the most tragic?</p>

    <p>She’s married into the family with little or no say in the matter, and once there her status is essentially “the most important one of the servants, but we frankly trust some of them more (coughgenjicough)”. She works miserably hard to the point of constant stress headaches, managing the entire rather extensive household, on the job training for the orphans that Kinzo seemingly randomly decided should work there as a charity case, raising and educating Jessica to step into her role someday, presumably a great deal of work hosting business guests and the like, and, oh yeah, seemingly doing Krauss’ entire job for him on top of that??? She has no friends or peers that we can see, the only person approaching a peer she can honestly confide is her useless, unsympathetic husband, and half her in-laws actively hate her on top of that.</p>

    <p>And despite all that she seems to honestly believe that the work she’s doing is meaningful and valuable, that the Ushiromiya family name is worthy of all of her suffering, that the role she’s been told her entire life is hers is important and meaningful despite the complete lack of respect she gets for performing it. And I can’t help but think that yeah, there’s no wonder she believes that, for its literally all she has. What choice does she have but to believe in it? How cruel it would be, to go up to this woman and tell her that she wasted her life for nothing, that she should have been more feminist and refused to marry Krauss and run away or something. Is it any wonder that despite the narrative being decidedly sympathetic to the younger servants, the people who suffer the most for Natsuhi’s failings and shortcomings, its still sympathetic to her as well?</p>

    <p>Excited as always for you(y’all?) to read further, im glad if my comments could provide some motivation, and please don’t worry about taking time whenever y’all need :) I’m personally just happy to see other people enjoying such an important piece of literature to me u know?</p>
  </blockquote>

  <p>Once again nailing it. Not a lot to add on this analysis of Natsuhi: it’s a whole horrible complex where everyone gets hurt. Whether or not she turns out to be the murderer in this episode, she really seems to draw the short straw among the non-servant characters. (And, judging by the betel nut flashback scene, Krauss might not have always been so obviously pathetic as he seems to us now. We can easily imagine Natsuhi getting slowly frogboiled into this situation.)</p>

  <p>Thanks for all the kind words as well &lt;3 I would heartily encourage you to run a blog if you want, I would love to read more of your writings! I wouldn’t <em>necessarily</em> recommend doing it the way I do—was recently helping my partner set up a blog with a static site generator hosted on here, and for something that is fundamentally very simple (write files on computer, push, website is built) there are a surprising number of weird technical gotchas due to the clunky legacy elements of Github Pages. Jekyll is… OK, but I want to get off it. Currently eyeing up Zola.</p>

</details>

<p>On Tumblr, starry-carousel <a href="https://canmom.tumblr.com/post/817955733957132288/hello-ive-been-reading-your-umineko-blog-and">wrote</a>:</p>

<blockquote>
  <p>Hello! I‘ve been reading your Umineko blog and since the solvability of the epitaph has come up a few times, I thought I‘d tell you that I think you can solve it! It‘s really really hard without hints, I think there‘s at least one piece of information you need to have in order for it to be solvable, and I‘d suggest trying to solve it with that in mind, trying it without that is basically moot. (There‘s something I‘d like to say here that‘s mostly based on stuff you already know, but I‘ll hold back just in case.) I have mostly solved it in the Flower discord and while it took me a really long time to get there, it was also very very fun and I really suggest trying to solve it with people who know the solution and can give you tips when you‘re stuck and point you in the right direction, I think you could enjoy it and I‘d also love to hear your theories.</p>
</blockquote>

<p>I said I wanted to keep trying without handholding for now (although that does sound like a fun game), but I would definitely be amenable to being told when I have all the hints I’m going to get, and when the solution reveal is imminent.</p>

<hr />

<p>Last time, Natsuhi was stuck in the closet while Hideyoshi got murdered. She narrowly avoided getting found in there, but she was caught in the corridor by Erika, who is about to make the case that she dunnit all.</p>

<p>There are a couple of outstanding mysteries—besides the epitaph, the significance of ‘who am I’ in the last episode could apparently do with a revisit, and it may be worth collating some thoughts about what Lambda’s game expresses about the ultimate Beatrice question as well—but for now I am feeling it would be best to press on into the episode. Without further ado, then…</p>

<h2 id="chapter-14-the-great-court-of-illusions">Chapter 14: <cite>The Great Court of Illusions</cite></h2>

<p>We appear in a big marble room—the same marble room, perhaps, where <span class="smallcaps">Eva Beatrice</span> was bestowed her title of <span class="smallcaps">Beatrice</span> in episode 3. A sculpture of a plant with a glowing white orb at the centre stands at the centre of the room. Everyone, even the ‘witches on an even higher level’, is apparently here, and they are not allowed to think this is at all strange. The background is actually quite tall, scrolling up for a couple of screens.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/86-columns.webp" alt="A background from the game showing a large brightly lit space surrounded by marble arches with Corinthian columns above them. There is a bright lens flare at the top." loading="lazy" />
    
	<figcaption>
		<p>I’m by no means an architecture expert but a quick check of Wikipedia suggests these are Corinthian capitals at the top of those columns.</p>

		
	</figcaption>
    
</figure>

<p>It’s kind of gaudy—reminds me of Napoleon’s tomb in Paris, which is truly ridiculous if you’ve never seen it. Someone is going absolutely wild on an organ and choir synth on the background.</p>

<p>Well, she might stand to lose, but Lambda evidently won’t miss the opportunity to put on a big show.</p>

<p><span class="smallcaps">Bernkastel</span> remarks that outside of ‘the 18’, everyone must be illusions. <span class="smallcaps">Beatrice</span>—this must be piece!Beatrice—retorts…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/87-acknowledge.webp" alt="Beatrice: Making you acknowledge them is what my game's all about." loading="lazy" />
    
</figure>

<p>In Japanese, <span lang="ja">「それを認めさせるのが妾のゲームでな。」</span> the verb used is <ruby lang="ja">認める<rp> (</rp><rt>mitomeru</rt><rp>)</rp></ruby> which also <a href="https://jisho.org/word/%E8%AA%8D%E3%82%81%E3%82%8B-1">has senses</a> of recognising, noticing, allowing, observing and carefully observing. A versatile word!</p>

<p>For various personal reasons I (we) have been thinking a lot lately about the ‘reality’ of things that exist inside someone’s head: from the widely recognised ones like ‘thoughts’, ‘beliefs’ and ‘memories’, through abstract objects such as ‘sets’, ‘numbers’ and ‘computer programs’, and all the up to more elaborate and nebulous constructs such as ‘countries’, ‘the law’, and of course ‘plural systems’, ‘headmates’ and the related jargon.</p>

<p>Since you can’t directly physically interact with these things the way you might a physical object such as a ‘chair’, their ‘reality’ is somewhat more open to interpretation—but it seems that you would have a hard time understanding the world and the behaviour of the creatures that inhabit it without modelling their ‘existence’ somehow. ‘Acknowledging’ them, in other words. So seeing this presented in this light is quite interesting.</p>

<p>In any case, this is a ‘witches’ coven’, called in response to Erika requesting one: the Great Court of Illusions mentioned in the chapter title. Which is interesting, because I had sorta wondered if it was going to be run by Dlanor’s inquisitor court.</p>

<p>Lambda declares that the ‘lives and roles within this game’ of the pieces are officially over and this is the 24:00 showdown already. She gets everyone to introduce themselves. Notably <span class="smallcaps">Beatrice</span> asserts her goal as:</p>

<blockquote>
  <p><b class="name smallcaps">Beatrice:</b> I am the Endless Witch, <span class="smallcaps">Beatrice</span>. My goals are to assert my own existence and to protect Natsuhi and Kinzo.</p>
</blockquote>

<p>Battler—who apparently ranks just under witches in whatever hierarchy is operating here—simply says he’s here to fight ‘Beato… no, the witches’. Chiester00 informs him that he can’t initially speak, since he joined the game later than this point. Does his piece also get to participate? Erika is next, as the detective.</p>

<p>Next, the rest of the Ushiromiyas rapidly introduce themselves starting with Kinzo. Starting to hit ‘pronoun circle’ kind of vibes. ‘My name is Ushiromiya Kinzo, my pronouns are he/him’. Who’s gonna do it/its, come on. Anyway, each relative says where they are claiming to be in the narrative…</p>

<ul>
  <li>Kinzo says he’s alive and is in hiding after escaping the window</li>
  <li>Krauss says he’s been kidnapped</li>
  <li>Eva, Rudolf, Natsuhi, Kyrie, Nanjo, Sayo, and Kanon say they’re alive</li>
  <li>Rosa, Jessica, George, Maria and Genji report that they died on the first twilight. Maria cracks a joke about it</li>
  <li>Hideyoshi says he was killed ‘a short while ago’</li>
  <li>Gohda and Kumasawa say よろしくお願いします (pleased to meet you)</li>
</ul>

<p>The witch pieces <span class="smallcaps">Virgilia</span>, Gaap and Ronove report in from a separate, equally ostentatious section of the room.</p>

<p>Remarkably my PS4 controller vibrated when Gaap appeared. I’ve not seem the game activate rumble before (though it may be that it wasn’t able to on Windows). Spooky!</p>

<p>Lucifer reports that she ‘served in the murder of Hideyoshi on the second twilight’, and the Seven Sisters report in.</p>

<p>The Inquisitor group report in, with Dlanor identifying herself as Erika’s assistant. So there’s a few layers to this hierarchy! Erika says that Dlanor’s main responsibility is ‘tricky word games’, like the ‘miracle’ in the study.</p>

<p>Finally, Chiester00 says that the Chiester Sisters Imperial Guard have been tasked with ‘management of proceedings’, and helpfully offers the sum as 38 ‘people’. (I guess the goats aren’t along for this one.) Breaking that down:</p>

<ul>
  <li>2 ‘player’ witches</li>
  <li>1 ‘piece’ witch (<span class="name">Beatrice</span>)</li>
  <li>2 special human pieces (Battler, Erika)</li>
  <li>11 humans who claim to be alive, of whom one is in hiding, and one is allegedly kidnapped</li>
  <li>6 humans who claim to be dead</li>
  <li>10 magic pieces backing up Beatrice</li>
  <li>3 magic pieces backing up Erika</li>
  <li>3 Chiesters overseeing</li>
</ul>

<p>The goats seem to be along after all, since the witches immediately call for drinks and popcorn from them. But they evidently aren’t ‘people’ as far as Chiester00 is concerned. (I guess they’re the ones with the #notaperson it/its in the pronoun circle lmao)</p>

<p>Erika is also plenty happy to showboat, calling silence very dramatically (and apparently suspending everyone’s consciousness) to declare…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/88-anticipation.webp" alt="Erika: I, Furudo Erika, will make an accusation. The murderer of the fifth game is—" loading="lazy" />
    
	<figcaption>
		<p>With all this buildup, I briefly wondered if it might not be Natsuhi as a twist.</p>

		
	</figcaption>
    
</figure>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/89-release.webp" alt="Erika: Ushiromiya Natsuhi-san. You are the culprit." loading="lazy" />
    
	<figcaption>
		<p>If you’re wondering, <cite>Phoenix Wright: Ace Attorney</cite> was released in 2001.</p>

		
	</figcaption>
    
</figure>

<p>Notably the earlier scene simply took place in the parlour, without all the ceremony—even if the <em>events</em> of the game are the same, it seems like the <em>presentation</em> can be different with Battler here?</p>

<p>In this context, <span class="smallcaps">Beatrice</span> is able to step up and act as Natsuhi’s defense. Although this is a rather unusual court, because the defense is trying to prove that they did the crime, against <span class="smallcaps">Bernkastel</span>’s claim that a human, and specifically Natsuhi, did it.</p>

<p>This is a pretty specific claim for the ‘mystery’ side (I can’t exactly call them the human side.) They can’t switch to some other potential culprit after this, right? Instead of “Beatrice Dunnit” and NOT(“Beatrice Dunnit”), we have disregarded a lot of the possibility space.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/90-confession.webp" alt="Beatrice: I, Beatrice, claim... that the culprit in this game is not {y:0:Human}{n:0:human}! I am the culprit!" loading="lazy" />
    
	<figcaption>
		<p>More lawyers should make this face.</p>

		
	</figcaption>
    
</figure>

<p>They make clear that if Beatrice loses, she will be destroyed along with the witch illusions of this game. She is fighting for her life. Also, this would be true of any previous games. (Battler briefly comments that Erika has nothing to lose, but <span class="smallcaps">Virgilia</span> assures him that it will be anything but a good time for her. It really is a thunderdome situation right here.)</p>

<p>So what have we got?</p>

<h3 id="the-murder-of-hideyoshi">the murder of Hideyoshi</h3>

<p>Erika says everyone besides Natsuhi and Hideyoshi were in the same room, the parlour, at this point. This… on the face of it, is kind of obviously not true? Nobody knows where Krauss is, they only know he’s missing.</p>

<p>Anyway, Beato starts with the locked room. Erika says we’ll get to that later, and actually uses the ‘dunnit’ language!</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/91-dunit.webp" alt="Erika: I'll explain the locked room trick—the howdunit—later. We are starting with the whodunit for the time being. ......So for the reason I just mentioned, it's impossible to suspect any character except Natsuhi‐san for the murder of Hideyoshi‐san." loading="lazy" />
    
</figure>

<p>It seems that ‘-dunnit’ has made its way to Japanese: <ruby lang="jp">ハウダニット<rp> (</rp><rt>haudanitto</rt><rp>)</rp></ruby> and <ruby lang="jp">フーダニット<rp> (</rp><rt>fuudanitto</rt><rp>)</rp></ruby> for how- and whodunnit respectively. (Since Japanese doesn’t really have a ‘hu’ phoneme, it has to adapt to the nearest, ‘fu’.)</p>

<p>After a moment consulting with her legal team, Beatrice says that it would be less confusing to proceed chronologically. Bernie immediately objects. Beato counter-objects. Both say ‘objection’ if the pointing pose wasn’t enough earlier…</p>

<p>Battler has a little first-person-narration soliloquy suddenly: this, he thinks, is ‘how the tales of Rokkenjima are created’: by both sides putting forward claims.</p>

<h3 id="the-murder-of-the-four-in-the-guest-house">the murder of the four in the guest house</h3>

<p>Erika sighs and gets on with it. She says Natsuhi had no alibi from when she left until when she returned; a point that apparently merits a text card to declare it.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/92-argument.webp" alt="A white screen saying 'The culprit is Ushiromiya Natsuhi' in large letters and 'This is because Natsuhi is the only one without an alibi' in smaller ones." loading="lazy" />
    
</figure>

<p>Beatrice’s counters also get nice little summary cards, each one appearing with a dramatic impact. These continue throughout the scene to tell us the main points of each argument.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/93-counterargument.webp" alt="A white screen saying 'The culprit cannot definitively be said to be Ushiromiya Natsuhi' large and 'As long as there are other people without alibis' small." loading="lazy" />
    
</figure>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/94-elimination.webp" alt="A long list of alternative hypotheses." loading="lazy" />
    
</figure>

<p>I won’t copy out these alternative hypotheses because I suspect that they will get struck down in short order. Indeed, Bernie and Erika promise to do just that.</p>

<p>Erika gets Gohda and Kumasawa to say whether they were in the guesthouse. Gohda confirms he was on duty, Kumasawa says she went to bed in the servants’ quarters there. Natsuhi seizes on this, but Erika says she saw them both go into the servants’ quarters from the lounge and stay there until morning. How’s she going to prove that? Presumably the anti-tamper seals come into play now.</p>

<p>Beato demands proof of the alibis in question. Since her opponents don’t answer to a repetition request, and Erika insists she can fight back on her own without Dlanor, Beato drops a blue:</p>

<blockquote>
  <p><b class="name smallcaps">Beatrice:</b> <span class="blue">Gohda and Kumasawa have no alibis. The two of them were in the guesthouse and could have reached the cousins’ room to commit murder at any time. Unless you can eliminate that possibility, you cannot treat Natsuhi as the culprit</span>.</p>
</blockquote>

<p>It’s interesting that Beato is arguing for a mundane explanation here. She <em>isn’t</em> claiming to have done the murder by magic. But I guess that wouldn’t be consistent with her narrative of working for Natsuhi this game; if she committed the murders on Natsuhi’s behalf, that would still be Natsuhi’s fault, right?</p>

<p>Curiously, Gaap and Ronove say that Erika, as a human, can’t use the red. This seems to contradict the fact that she’s already used it, e.g. to declare herself the detective..? Ah, well, I guess she can’t <em>here</em> at any rate.</p>

<p>Instead, it is indeed the anti-tamper seals. She explains how she sealed the door to the servant quarters after Kumasawa entered. Despite all they said about not using the red, Bernkastel goes ahead and declares it in red anyway:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> ………<Good>. A wonderful alibi. Absolutely airtight. Kumasawa returned to the guesthouse with Erika, went to the servants' quarters to sleep, and never left the room until morning. <span class="red">In other words, after Kumasawa returned to the guesthouse, she never went to the second floor until morning</span>.</Good></p>
</blockquote>

<p>This red means we can’t quibble about other exits to the servants’ quarters. That has probably been established at some point anyway, and we have Knox forbidding secret doors. (‘Morning’ is slightly ambiguous, mind you, but with the broader context we can probably take Erika’s seal to be decisive..?)</p>

<p>Erika says she sealed Gohda in the servant room in the same way, and when she saw Rosa get back at 1am, informed Gohda she was present. At that time the seal was intact. Afterwards, Gohda hung out with her until 3am, and Erika was watching upstairs after that. (So… she just stayed up all night? Or she’s a very light sleeper?)</p>

<p>This one also gets confirmed in red:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> ………<span class="red">In other words, after Gohda returned to the guesthouse, he never went to the second floor until morning</span>.</p>
</blockquote>

<p>Is it meaningful that ‘in other words’ is in red? It is a red truth that the red claim is a rephrasing of the information in the previous dialogue?</p>

<p>We are progressing through the checklist. I’ll have to check whether I agree it’s exhaustive but let’s get through this first.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/95-superhuman.webp" alt="Erika: Thank you very much, my master. ......I am the detective! A being greater than humanss, who can invoke the red truth despite her humanity!" loading="lazy" />
    
	<figcaption>
		<p>Erika gets a little caught up in the moment and decides to become a therian or something.</p>

		
	</figcaption>
    
</figure>

<p>She decides to summarise the positions of everyone. She saw three of the kids alive at midnight, and this gets to be red as well:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> ………<span class="red">At 24:00 in the guesthouse, George, Jessica, and Maria were alive, and they were in the second‐floor cousins’ room. Nanjo, Gohda, and Kumasawa were on the first floor</span>.</p>
</blockquote>

<p>And also:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">George, Jessica, Maria, Rosa, and Genji—these five really are dead</span>.</p>
</blockquote>

<p>Though it’s not clear where this is scoped on the timeline! We have that it is impossible to mistake their dead bodies, and that as of this point in the storyline they are dead. <em>However</em>, we don’t actually have that they <em>were</em> dead on the morning when Battler found them. How could that be? Well, maybe the ones who discovered the bodies conspired to deceive Erika about the identity of the bodies. I do not believe she personally got the chance to inspect the bodies up close!</p>

<p>More interestingly, we get a confirmation of the location of some of the others…</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">at 24:00, Natsuhi, Krauss, and Genji were in a corridor on the second floor of the mansion. All the remaining people were at the family conference in the dining hall. Of course, at that point in time, no murder had occurred. Genji was also alive</span>.</p>
</blockquote>

<p>So officially whatever happened happened after midnight—but also we can confirm that Natsuhi, Krauss and Genji were not running about anywhere other than where we saw them at the time of the knock.</p>

<p>Lambda notes this is kind of a freebie, since Erika was not able to observe who was in the mansion.</p>

<p>Battler, silently observing, notes in his first-person narration that Beato must have been going easy on him in the earlier games, being very generous with the red truth repetition requests even when it was ultimately to her disadvantage. Beato (possibly privy to what Battler is thinking?) brings up the ‘incompetent’ line and promises she can handle it.</p>

<p>Nanjo is next up for elimination. He confirms he was with Erika between 1am and 3am, and it gets elevated to red. (Hey, is red truth a monad?)</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">From 1 a.m. to 3 a.m., the trio of Erika, Nanjo, and Gohda… spent their time in the lounge on the first floor of the guesthouse</span>.</p>
</blockquote>

<p>Outside of that? Beato shoots a blue:</p>

<blockquote>
  <p><b class="name smallcaps">Beatrice:</b> <span class="blue">Even so, he shouldn’t have an alibi for the time period before and after you were in the lounge! It was possible for Nanjo to commit the crime too</span>.</p>
</blockquote>

<p>Erika says she met Nanjo on the stairs and talked to him about mystery novels (of course) in the archive until 1am. (Conveniently leaving a window in which she wasn’t watching the guesthouse for the crime to take place?)</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">After 24:00, Erika was with Nanjo the whole time until 3 a.m</span>.</p>
</blockquote>

<p>After 3am, she put one of her seals (she made a lot of them!) on Nanjo’s room. But hold on a minute, what about the window? We know from the events of other episodes that the windows to the guest house can be opened, and unlike the servant quarters, it seems less likely that Nanjo was in a windowless room..? Well, put that on hold for now, because it looks like we’re up to eliminating ‘Battler dunnit’, and this should be interesting.</p>

<p>The window theory ultimately doesn’t matter because we get it in red:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">Both your seal and your red truth are perfect. Nanjo had the alibi of being with Erika until 3 a.m. And he didn’t leave his room after 3 a.m. until morning</span>.</p>
</blockquote>

<p>Wow, a ‘perfect’! Erika’s really raking in the Good Girl points.</p>

<p>In fact, the question of ‘Battler dunnit’ is raised by the man himself! (Who appears to be operating from the POV of player!Battler rather than piece!Battler right now.)</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/96-maybe-i-dunnit.webp" alt="Battler: ......Hold it, Erika. You're gonna leave me out of this? I'm pretty sure Ushiromiya Battler also had a chance to commit the crime. ......After all, I was in the same room as the victims all night. There's no way I'll let you carry on this discussion while ignoring me. ......?!" loading="lazy" />
    
	<figcaption>
		<p>A nice little hypothetical confession.</p>

		
	</figcaption>
    
</figure>

<p>He gets smacked with the Chiesters’ weapon for speaking out of turn, but Beato does take the suggestion. She doesn’t seem to particularly like it, though.</p>

<p>Beatrice taunts Erika, suggesting that she might have watched Battler sleep to confirm his alibi. Erika calls her bluff, saying that she could <em>hear</em> that nothing significant happened in the guesthouse until Battler woke up and screamed, thanks to the thin wall. And she stayed up all night to do so. The absolute madlass.</p>

<p>I love how contorted the detective’s actions are having to become here.</p>

<p>Bernie explains that she ordered Erika to do this (so she does have a direct line to her pieces in this instance!) and ordered her to listen all night in case Battler was a victim. And of course she’s a ridiculous minmax build with hearing ability ‘on par with a tape recorder’… which isn’t actually that big a boast, really? Tape recorders have pretty crap sound quality compared to the human ear. Well, whatever.</p>

<p>This time, it falls to Lambda to confirm it in red; she says this is an ‘accepted power of the detective’s authority’.</p>

<blockquote>
  <p><b class="name smallcaps">Lambdadelta:</b> <span class="red">Ushiromiya Battler returned to the cousins’ room at 3 a.m. and fell asleep. After that, until the discovery of the crime, absolutely nothing out of the ordinary happened in the room</span>!</p>

  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">In other words, it was impossible for Battler to commit murder or damage the corpses</span>.</p>
</blockquote>

<p>They sure seem to be working together against Beato at this point…</p>

<p>So, that leaves theories involving the group in the mansion taking place between midnight and 3am. We know Erika was not watching the lounge between midnight and 1am. But first we cover the possibility of climbing in from the outside.</p>

<blockquote>
  <p><b class="name smallcaps">Beatrice:</b> <span class="blue">For example, what if someone placed a ladder against the outer wall of the guesthouse and snuck in through a second‐story window?! There must be a way to reach the second floor without passing through the lounge! If this is the case, it would be possible to reach the crime scene without you seeing it</span>…!</p>
</blockquote>

<p>We confirm that there is no stealth route in the building in red pretty quickly:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">It is impossible for someone to reach the second floor of the guesthouse without anyone in the lounge noticing it. ……Though of course, this only refers to reaching the second floor from inside the building</span>.</p>
</blockquote>

<p>We can have a second ‘of course’ statement add an exception to a previous red statement? Huh.</p>

<p>Erika says she was able to prevent all entry on the second floor. What, did she put seals on all the windows? Feels like we’re getting ‘the devil’s anti-tamper seal’ at this point. <span class="smallcaps">Virgilia</span> says that, for a human, this would be ‘an impossibly dubious action’, but as a witch piece… Erika doesn’t have to worry about such trifling matters, I guess, as motivation or plausible behaviour. The narration starts increasingly calling her a spider.</p>

<p>Erika makes a slightly deranged declaration that, for detectives, someone will die wherever they spend the night, and only third-rate detectives would not prepare this thoroughly. She really is something else. The idea of detectives going about knowing that they have some kind of Elric-ass death curse on them is really funny. And hilarious as an alternative to ‘magic is real’.</p>

<p>All this effort earns her another red statement from Lambda:</p>

<blockquote>
  <p><b class="name smallcaps">Lambdadelta:</b> <span class="red">It was impossible to reach the second floor of the guesthouse without passing through the lounge, and impossible to reach it at all without Erika, who was in the lounge, knowing about it</span>!</p>
</blockquote>

<p>I feel like there’s a possibility that is missing from the checklist. I don’t believe we have had it confirmed in red that the deaths were homicides, right? Let me check… yeah, we didn’t even have the bodies confirmed until later. So, let’s say for example that Rosa killed the three kids between 1am and 3am, and then killed herself. That does leave open the question of where the weapon is, she wouldn’t exactly have time to hide it after cutting her own throat. But this should be on the list…</p>

<p>Erika takes a moment to declare in blue her conclusion so far:</p>

<blockquote>
  <p><b class="name">Erika:</b> <span class="blue">Therefore, the time of the crime is limited to the single hour between midnight, when they were confirmed to be alive, and 1 a.m., when our party in the lounge started</span>!</p>
</blockquote>

<p>(I didn’t catch on to this until later in the chapter, but Erika’s argument is contradictory! If Rosa was in the mansion until 1am, and the crime could only have been committed in this window, there would be no opportunity to kill Rosa at this time. More on this later.)</p>

<p>Bernie repeats the line about the locations of mansion people at 24:00, and also adds:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">Of all the people in the dining hall, not one of them left the dining hall until 1 a.m.</span></p>
</blockquote>

<p>Notably she doesn’t use any red in relation to the mysterious knock at the door.</p>

<p>Beato demands to know how that can be proved, and gets reminded that red truth is axiomatic:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">The red truth is simply truth, and there is no need to provide evidence, proof, or room for a counterargument</span>!</p>
</blockquote>

<p>But as we’ve seen, there are restrictions on when you’re allowed to use the red truth if you aren’t the GM. Lambda could freely declare this, but how can Bernie?</p>

<h3 id="the-murder-of-genji">the murder of Genji</h3>

<p>Well, evidently she can, and she is not challenged further. So, Genji then. There’s no argument for this one: Bernie just redtexts it by fiat.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">When Genji finished transferring the call, he immediately returned to the servants’ quarters</span>.</p>
</blockquote>

<p>This refers to ‘the call’ in red, which suggests there <em>was</em> in fact a call? If not necessarily from Phone Man…</p>

<p>Now, Eva gets called to the stand. (And credited with inventing the seals.) Eva declares that when Rosa left at 1am, Eva put the seal we saw earlier on Genji’s quarters—so either Erika’s signature was a mistake in the art, or she used one of Erika’s spare seals from her apparently unlimited supply. Also red:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">At 1 a.m., Eva sealed Genji’s sleeping quarters, and that seal was broken by Kanon and Kumasawa in the morning when the crime was discovered<span></span></span></p>

  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">During the short break at 1 a.m., the first two to leave the dining hall were Rosa and Eva. Until Eva returned, everyone in the dining hall remained there. After seeing Rosa off, Eva went to the sleeping quarters and sealed it. Of course, she did not enter the room at all at this time</span></p>
</blockquote>

<p>Erika also adds, as if in answer to my earlier concern, that these are not ‘baseless red truths’ but she got them from the people involved. And apparently she took fingerprints and stuff besides relying on testimony. I immediately start wondering ‘with what equipment’, and…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/97-scientism.webp" alt="Erika: After all, Kinzo‐san's study is a treasure trove of all kinds of chemicals! I obtained all sorts of scientific evidence, which is truth in its purest form and infinitely close to red truth. However, this isn't a science mystery, so I'll spare you the details." loading="lazy" />
    
</figure>

<p>Sure, we’ll just Devil’s Proof up a forensics kit while we’re at it. The narration lists a few of the alleged investigations: aluminium powder, ‘composition analysis’ on mud, ‘various chemical reactions’ on rainwater. I am reminded of a memorable passage from a book called <cite>Mastering Erotic Hypnosis</cite> by James Gordon and Rebecca Doll (yeah we’ll just put that cite in here :3), which talks about how a hypnotist establishes their narrative sense of authority in the process of building a ‘hypnotic modality’.</p>

<details>
  <summary>On scientific rhetoric in hypnosis</summary>

  <blockquote>
    <h3 class="no_toc" id="paradigm">Paradigm</h3>

    <p>You don’t have a holy book that was handed down by a deity, but you do have a belief that has power within western culture: Science.</p>

    <p>Hypnosis works because of science. That’s why we present some of it at the beginning of this book. We specifically wanted to highlight that modern imaging technology has shown real changes in how the brain works during hypnosis, not because you really need to understand it, but because you need to believe, on a visceral level, that it works. Books lie. Studies can lie. But imaging isn’t really something that you can fake. Either the brain undergoes changes, or it doesn’t.</p>

    <p>You’ll want to have a quick elevator speech on the science of hypnosis and how it works. Convincing people that it is a real, proven, thing will help you create a hypnotic modality. Your basic thesis is simple. Hypnosis is a science and employing it is an art. You have had training in that art because you have read a book which explained hypnosis in a scientific way. Eventually, you may wish to add other classes and certifications to increase both your authority and your perceived understanding of the paradigm.</p>
  </blockquote>

  <p>Of course, me being me, I can’t help but start quibbling the scientific rhetoric. “But imaging isn’t really something that you can fake. Either the brain undergoes changes, or it doesn’t.” The brain changes state with just about <em>any</em> activity and brain scans are notoriously hard to interpret. Determining that there are certain detectable things on an fMRI study which relate to the practice of hypnosis does not really prove very much about their relation to the rest of the structure: ‘going into state’, suggestibility, and so on.</p>

  <p>I happen to think these things, properly nuanced, are useful for understanding some things humans do… but there is an extent to which they are true because brains <em>learn to perform them</em>. It’s not that nature has furnished us with a convenient root access state ‘out of the box’, but it has furnished us with various elements for <em>constructing</em> something that looks like one.</p>

</details>

<p>Which is to say, there is no scientific argument here. Erika is simply gesturing at the epistemic authority which science claims in order to bolster her rhetoric, without doing any of the work by which science (ideally…) earns that cred. The narration highlights that she used Kinzo’s gear without asking—transmuting, in a sense, her abstract ‘detective’s authority’ into a more concrete scientific sense of authority.</p>

<p>So we have now in red:</p>

<blockquote>
  <p><span class="red">Genji never left the mansion after 24:00</span></p>
</blockquote>

<p>which is presumably spoken by Bernie, though it doesn’t actually get put in a speech box.</p>

<h3 id="did-krauss-do-it">did Krauss do it?</h3>

<p>Which just leaves Krauss, and the murder-suicide theory.</p>

<p>Bernie invites Natsuhi to put the blame on Krauss. She refuses. Battler observes that Erika is pretty much just writing the story at this point, and getting it immediately approved by the GM; <span class="smallcaps">Virgilia</span> confirms this is indeed how it works. In other words, this is, right now at least, a <a href="/rpgs/rpgs-as-games-2-goals#blorb-vs-quantum">‘quantum’ game more than a ‘blorb’ game</a>. But the ‘final truth’ here may not be the ‘real truth’.</p>

<p><span class="smallcaps">Virgilia</span> has a little lecture that, even if Erika came by it in a ‘cowardly’ way, her truth is self-consistent and plausible, or it wouldn’t have been able to see so much confirmed in red. But Battler is not in a hurry to accept it this time (even though he was willing to point to various Ushiromiyas as potential culprits at the end of the last game.) It’s kind of an emotional thing:</p>

<blockquote>
  <p>………Even if Erika <em>has</em> accused Aunt Natsuhi of being the culprit, ……and even if everyone else here believes that, ……that’s exactly why I want to be the one person who trusts her…!</p>
</blockquote>

<p>‘Stick up for the underdog’ is something of Battler’s ‘inner law’, here. But also by genre convention, it would be <em>unsatisfying</em> if Natsuhi turned out to have dunnit, so I think Battler is likely to be right. (It seems Krauss is also getting covered by this logic, mind.) But who’s left?</p>

<p>Battler contemplates the difference between truth and consensus. He decides this is just a kangaroo court designed to frame Natsuhi. And he criticises Beato for fighting too defensively, and failing to present a strong counternarrative as an alternative to Lambda. What’s he planning…?</p>

<p>It’s interesting because ‘failing to provide a good story’ has never really been Beato’s problem in the past. Indeed, her magic stories are all so sparkly and full of fun drama that you <em>want</em> to believe in them. She’s really been nerfed in piece form!</p>

<p>Battler, feeling that there should always be someone to argue the opposite case to any belief, contemplates his childhood belief that there was a society on the far side of the moon, a belief he abandoned after ridicule. He starts getting pretty hardcore empiricist with it, saying we should only believe if we’ve seen it ourselves. He further insists that no matter how many red truths are stacked against Natsuhi, he won’t believe she did it.</p>

<p>I feel like this one’s really hard, right? Without going into too much depth, an acquaintance in the sakuga fandom was recently convincingly accused, with extensive evidence, of sexually abusing a young person over a period of years. In a matter of hours he went from a respected member of the subculture to a pariah. The whole affair really threw me for multiple reasons (trust, judgement etc.) which this liveblog is not the place to elaborate. But one is this: I very much do not believe in absolute exile, yet in social spheres, when things break down, people must decide what to do: trust and defend their friends? Cut ties? Try to intervene somehow? People make their choices and the results tend to resolve to schism, exile or apologism, all of which suck. After all sorts of ugly situations, we have not found any generally robust principle. There probably is not one. A lot of infrastructure we might like does not exist.</p>

<p>But Battler’s right about one thing: we don’t have a proper ‘Natsuhi story’ here, and the <i>sente</i> is entirely with Erika right now. Apparently impressed with his resolve, <span class="smallcaps">Virgilia</span> steps in to offer him a freebie red text, as a finite witch and former <span class="smallcaps">Beatrice</span>…</p>

<blockquote>
  <p><b class="name smallcaps">Virgilia:</b> <span class="red">Ushiromiya Natsuhi is not the culprit</span>!</p>
</blockquote>

<p>Oh dang thanks. OK. That does make things a lot easier…</p>

<p>Meanwhile, back in the courtroom, Bernie’s offering Beato a ‘plea bargain’: if she pins it all on Krauss, then Bernie will stop trying to pin it on Natsuhi. I had raised Krauss theories before so this is interesting.</p>

<p>Beato muses that the ‘cat in the box’ is the source of the endless possibilities of an Endless Witch’s power. Body without organs??? Ahem. Anyway because Krauss’s state is so nebulous it’s pretty compatible with witch theories and the game could be a draw.</p>

<p>I don’t think she’s gonna take it, guys. Natsuhi certainly isn’t in a hurry to let her.</p>

<blockquote>
  <p><b class="name">Natsuhi:</b> If you wish to insult me, go ahead! If you wish to ridicule me, do as you please!! But none of you can damage my honor with fiction!!</p>
</blockquote>

<p>Beato has to decide whether to betray her. Ronove and Gaap advise her to do it. Beato raises the question of what will happen to the ‘Natsuhi of this fragment’.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/98-computer-chess.webp" alt="Throw away that useless pride of yours!! Neither Kasparov nor Deep Blue won every game! The person that wins more games wins in the end, right?! If a witch gets too attached to a single match, a single life, a single piece, ......that witch dies!!" loading="lazy" />
    
</figure>

<p>Gaap mentions Deep Blue vs Kasparov, <a href="https://en.wikipedia.org/wiki/Deep_Blue_versus_Garry_Kasparov">the match</a> that famously established that computers could beat the best human in 1997, which was indeed won 3.5-2.5 by Deep Blue. An interesting example, because in the following decades, computer chess engines kind of left humans in the dust. In any case, Beato alludes to someone (Kinzo?) who stubbornly stuck to their guns…</p>

<blockquote>
  <p><b class="name smallcaps">Beatrice:</b> …………My apologies, ………but I cannot do that. ………I know the strength of a man who believed even though everyone said he was wrong, ……and I know the suffering he went through when he was forced to abandon that belief…!</p>
</blockquote>

<p>She makes an impassioned speech about truth, saying if she can’t defend this truth there is no point to her at all; she certainly has the mindset for a defense lawyer. But I get it. ‘Beatrice who accepted a plea bargain to hold onto “existence”’ would not be <span class="smallcaps">Beatrice</span> any longer.</p>

<p>In response, Bernie officially rule out Krauss.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> By the name of <span class="smallcaps">Bernkastel</span>, Witch of Miracles, I speak with the red truth. <span class="red">Ushiromiya Krauss is not the culprit. And he was killed long ago. Shortly after you heard his voice over the phone, in fact</span>.</p>
</blockquote>

<p>We do in fact get a death screen to go with this:</p>

<dl>
  <dt>Ushiromiya Krauss</dt>
  <dd>
    <blockquote>
      <p>Murdered sometime after the early morning phone call by which Natsuhi learned he was still alive. His corpse has not been found, but his death has been guaranteed by <span class="smallcaps">Bernkastel</span> with the red truth.</p>
    </blockquote>
  </dd>
</dl>

<p>Very interesting! So that leaves wide open the question of who killed Krauss, because it certainly can’t have been Natsuhi if she was listening to him over the phone. So even if she did some of it (and we now know she did not), that rules out Natsuhi as a <em>sole</em> culprit.</p>

<p>Which means… what? Everyone has an alibi (except for the murder-suicide theory), and we also know Natsuhi didn’t do it. There is no room for Phone Man to exist, since we know from <a href="./chapter-4">chapter 4</a> that</p>

<blockquote>
  <p><b class="name smallcaps">Lambdadelta:</b> <span class="red">Besides [Erika], the number of people on this island is exactly the same as it was in the previous games</span></p>
</blockquote>

<p>Admittedly, there are much fewer alibis for this.</p>

<h3 id="a-verdict">a verdict?</h3>

<p>Anyway, Lambda declares the verdict: Natsuhi killed all six, and since a human dunnit, the court can deny Beato’s existence.</p>

<p>Did Lambda intentionally lose the game to Bernie/Erika, writing her narrative to position the ‘magic side’ to have to disprove a mundane story? Beato never really got much of an opportunity to come up with a decent magic story in this game. And, supposedly, in failing to protect Natsuhi, the witch illusion is dispelled… because, I guess, we’ve ‘proven’ that the story was in fact a mystery all along.</p>

<p>I don’t really buy this. Admittedly, overtly magical acts have been rather thin on the ground in this episode (the bodies disappearing notwithstanding), but that just means that very little about the Beatrice narrative has been put to the test at all. It really doesn’t seem like Lambda was trying very hard to create a magical mystery. On what basis can this game deny Beato’s existence? At best, it shows that Lambda is a pretty weak GM. Given her goal was supposedly to prolong the game indefinitely, throwing it here seems very strange.</p>

<p>Natsuhi and Beato both give speeches about how they still have their honour and so on (the one-winged eagle carved into her heart). Bernie scoffs at her ‘bluster’, and declares she will send a final red truth to crush it. This should be good…</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">Natsuhi. When did Kinzo ever say it was okay for you to engrave the One‐winged Eagle into your heart? Those were just the words of the Kinzo from your delusions. ……The real Kinzo? Throughout his entire life, not <em>once</em>…did he ever trust you from the bottom of his heart, and not once did he ever consider letting you bear the family crest</span>!</p>
</blockquote>

<p>Oh, so <em>that’s</em> what we’re doing.</p>

<p>Appropriately, the music drops out as Bernie delivers this line.</p>

<p>Kinzo (in this case, I suppose you would say introject!Kinzo?) tells Natsuhi not to listen.</p>

<blockquote>
  <p><b class="name">Kinzo:</b> No one can defile the crest engraved in your heart!!</p>

  <p><b class="name">Kinzo:</b> そなたの心に刻まれた紋章は、誰にも汚されぬ！！</p>
</blockquote>

<p>So of course Bernie keeps firing.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">The real Kinzo would never say such a thing. Begone, you fantasy of Kinzo inside Natsuhi’s mind, beautified by her to suit her own purposes</span>.</p>

  <p><span class="red">Pitiful woman. Now is the time for you to face the truth that you never gained Ushiromiya Kinzo’s trust as long as he lived</span>.</p>
</blockquote>

<p>The narration repeats and emphasises the point: in this game, we only saw Natsuhi’s fantasy of Kinzo. Keep kicking her while she’s down, I guess. She flashes back to the few good times with her family in her shitty life, deciding she no longer has a right to them. Kinzo just sucked that much and yet she can’t take away his authority in her head anymore.</p>

<p>Erika chooses this moment to drop her catchphrase. Everyone claps, though the narration hardly dwells on it.</p>

<p>So… when does Battler get the right to speak up? Because I feel like there is at least one possibility we haven’t played (murder-suicide theory), not that it will do much for Natsuhi now that her entire life has been officially deemed illusory with the full force of narrative authority. Well, we leave the Court and go back to the parlour, where the relatives have accepted that Natsuhi was the culprit. Eva is hit hardest, and she lays into Natsuhi, demanding to know why. Only Battler tries to stop it.</p>

<p>Erika tells Natsuhi that, by the rule of the mystery genre, now the who- and how-dunits have been solved, the whydunit must be provided.</p>

<blockquote>
  <p><b class="name">Erika:</b> Natsuhi‐san. I’ve solved two of the three riddles. The whodunit. The howdunit. The final riddle—the whydunit—must always be confessed by the culprit herself. Please follow the rules of the mystery genre and confess.</p>
</blockquote>

<p>If you’re wondering: <ruby lang="ja">ホワイダニット<rp> (</rp><rt>howaidanitto</rt><rp>)</rp></ruby>…ooh, that one’s really interesting, ‘why’ becomes two syllables here.</p>

<p>Beatrice, invisible to everyone except apparently Erika, protests; she is overruled, because she is not the truth ‘chosen by this world’. On the witch plane, Lambda sneers:</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/100-reasons.webp" alt="Goodbye, Beatrice. .........I made you a witch hoping that you would either become my friend, or help distract me from my boredom. And you've answered my expectations. The second one, that is. ...Eheheheheheheheheheheheheheh!!" loading="lazy" />
    
</figure>

<p>Fuck you I am a witch whether you say so or not, says Beato (paraphrasing); Lambda says something <em>very interesting</em> in retort…</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> You wouldn’t even have been capable of believing that if I hadn’t become your guardian in the first place…!!</p>
</blockquote>

<p>The word ‘believing’ is interesting, here. What does ‘guardian’ mean in this context? Going with the theory that this all goes back to Kinzo’s creepy orphanage somehow, and the theory of witches as people who hold elaborate fantasy ‘inner worlds’, could there be a real-world counterpart to Lambda who introduced the real-world counterpart of Beato to the practices of ‘witchcraft’..?</p>

<p>In any case, Beato lost, so by precedent it’s goat time. If you’re gonna do anything, Battler, now would be a fantastic time! There’s a cute little exchange:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> Let me hear some nice screams. You’re a bottle of wine we’ve been saving for this day.”</p>

  <p><b class="name smallcaps">Beatrice:</b> ……Then remaining silent will be my final strike back at you…</p>

  <p><b class="name smallcaps">Bernkastel:</b> Yes! I made her say it! Uhihihahaaah!! The screams of those who gift me that line as their parting shot are the most gratifying of all!</p>
</blockquote>

<p>Ha, remember when we thought Bernkastel was the nice witch?</p>

<h3 id="battlers-turn">Battler’s turn</h3>

<p>Suddenly someone cuts through the goats as they’re all chewing Beato… Battler? Nope. It’s… <em>Dlanor</em>!! Well, well, well…</p>

<p>Dlanor announces that someone—Battler, of course—has an objection. She warns him, though, that the court does have a time limit. (I’ve been reading this chapter all day lol, so probably quite a long one…)</p>

<p>Battler still feels like he has no idea what happened and it will be hard to present a counter-truth… but he has to improvise somehow. Bernie is pretty thrilled about this turn of events, evidently expecting him to go down quickly.</p>

<p>Despite intervening to let him join the fight, Dlanor is going to be his opponent. She gets all catte with it…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/101-catte.webp" alt="As you wish. Glory be to the great Lady Bernkastel! I am the Chief Inquisitor, Dlanor A. Knox...!! Step forward, Ushiromiya Battler!!" loading="lazy" />
    
</figure>

<p>Battler’s initial line of attack is the seals. Of course, since we have had most seal evidence confirmed with red truth by this point, it doesn’t seem like there is a ton of point arguing the seals could be replaced.</p>

<p>But, let’s see, some options: first up, Eva. It took me a second to notice this, but we already know that she received some seals of her own from Erika and is aware of Erika’s seal-based plan, so she would have the opportunity to replace broken seals with intact ones. It’s the <a href="https://en.wikipedia.org/wiki/Confused_deputy_problem">confused deputy problem</a>… or in this case, the evil deputy problem. Indeed, Eva might have intentionally told Erika about the idea of seals in order to set her up to exploit them for alibis.</p>

<p>Battler’s initial blue doesn’t quite go that far. He suggests that someone noticed the seal and replaced it.</p>

<blockquote>
  <p><b class="name">Battler:</b> <span class="blue">Can’t we doubt the reliability of these seals of Erika’s?! Something like wedging some paper in a door can’t create a perfect alibi! It might be that someone noticed by chance and happened to put it back in the same place</span></p>
</blockquote>

<p>Erika counters that the seals are made with perforated duct tape and signed personally by her, consistent with the one CG we got of them. So, yeah, I think I’m onto something with the Eva thing. Anyway, let’s get the initial exchange, a red-blue volley:</p>

<blockquote>
  <p><b class="name">Dlanor:</b> <span class="red">Due to the above, the seals are guaranteed to be <span class="smallcaps">perfect</span>. Miss Erika’s seals were not broken by anyone, and deception is <span class="smallcaps">impossible</span>!!</span></p>

  <p><b class="name">Battler:</b> <span class="blue">I’ll acknowledge Erika’s seals…! However, Auntie Eva’s seal on Genji‐san’s room should be different</span>!!</p>

  <p><b class="name">Dlanor:</b> <span class="red">Eva’s seal was of the same type as Miss Erika’s. That is because this method of sealing was one that Miss Erika and Eva conceived of together after <span class="smallcaps">dinner</span></span>.</p>
</blockquote>

<p>‘The same type’ huh…</p>

<blockquote>
  <p><b class="name">Battler:</b> <span class="blue">Erika fished through the chemicals in Grandfather’s room saying she’d use them for forensic testing, right?! There might have been some kind of solvent among them!! If you used that, you might be able to tear off the duct tape without leaving fingernail marks</span>!!</p>

  <p><b class="name">Gertrude:</b> For your attention: I beg to inform you of the following: <span class="red">It is impossible to tear off any of the seals by any method without leaving marks</span></p>

  <p><b class="name">Cornelia:</b> FYAIBTIYOTF: <span class="red">There were no suspicious marks on any of the seals</span></p>
</blockquote>

<p>Very carefully worded. If you put a fresh untampered seal where a broken seal was, you would cover up the marks left by the previous seal, I think? Though Bernie takes it a step further:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">All of Erika and Eva’s seals… were not tampered with in any way that hindered their ability to act as seals, such as being scraped off</span>.</p>
</blockquote>

<p>Taken literally this would probably rule out removing and replacing a seal.</p>

<p>Battler says he has something, but he left it ‘at home’. He says he would never break his promise to kill Beato; that he never breaks promises. Beato says that’s a lie. It seems it might be time to address the ‘sin’, then?</p>

<p>No, Beato just loses her shit and tells the other witches to finish the job.</p>

<h3 id="knox-speedrun">Knox% speedrun</h3>

<p>Battler starts getting desperate. He fires off a rapid series of challenges, all of which go against one or another of Knox’s rules. Since basically every line of dialogue in this section is red or blue I have to quote the lot. In between we go through just about all the red/blue VFX clips in the game’s entire library.</p>

<details>
  <summary>complete volley</summary>

  <blockquote>
    <p><b class="name">Battler:</b> <span class="blue">I postulate a method X that could lead someone to the upper floor of the guesthouse without passing through the lounge! Erika claims that the windows and such were sealed, but she can’t prove that she sealed all possible means of entry! There’s a possibility that Erika was unable to seal entrance X because she couldn’t find it</span>!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 3rd: It is forbidden for hidden passages to <span class="smallcaps">exist</span>! As the detective, Miss Erika sealed all <span class="smallcaps">entrances</span>. Passages that the detective cannot find are hidden <span class="smallcaps">passages</span>. Therefore, there are no entrances that Miss Erika cannot <span class="smallcaps">find</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">I present the possibility that Erika’s lookout in the lounge wasn’t perfect!! During the two hours Erika spent there, did she really observe everything without looking away for a second?! It might have been possible for someone to pass through the lounge during a small window of opportunity when Erika at least wouldn’t have seen them</span>!!</p>

    <p><b class="name">Gertrude:</b> FYAIBTIYOTF: <span class="red">Lady Erika’s lookout in the lounge was perfect. There were no small gaps or carelessness or times when she looked away for even a second</span>.</p>

    <p><b class="name">Cornelia:</b> FYAIBTIYOTF: <span class="red">Therefore, during their entire meeting in the lounge, only Rosa went up to the second floor</span>!</p>

    <p><b class="name">Battler:</b> <span class="blue">But was that really Auntie Rosa herself?! There’s a possibility that someone disguised themselves as Auntie Rosa!! Or maybe she was actually holding a large suitcase with someone hiding inside it</span>!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 10th: It is forbidden for a character to disguise themselves as another without any <span class="smallcaps">clues</span>! There was no foreshadowing suggesting that someone might be disguised as Rosa! Furthermore, Erika verified that Rosa was not carrying any luggage large enough to hide a human <span class="smallcaps">being</span></span>!</p>

    <p><b class="name">Battler:</b> <span class="blue">Aunt Natsuhi was being threatened by someone!! The uninvited, unknown guest X is the true culprit!! How can you be sure that we are the only ones on this island?! The true culprit is someone else</span>!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 1st: It is forbidden for the culprit to be anyone not mentioned in the early part of the <span class="smallcaps">story</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">Maybe they were killed with poison in a remote murder!! Umm, ……with a strange drug that can make a cut appear in the victim’s neck when they die…!! The poison used has a delayed effect, so even with an alibi—</span></p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 4th: It is forbidden for unknown drugs or obscure scientific devices to be <span class="smallcaps">used</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">There’s a chance that there existed a murder device X in the cousins’ room and Genji‐san’s quarters that made a remote murder possible…!! It used a secret mechanism that still hasn’t been discovered to—</span></p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 8th: It is forbidden for the case to be resolved with clues that are not <span class="smallcaps">presented</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">I just know there exists a true culprit other than Aunt Natsuhi!! If you deny that, then for each character, repeat in red that they aren’t the culprit</span>!!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 6th: It is forbidden for accident or unaccountable intuition to be employed as a detective <span class="smallcaps">technique</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">You say that everyone except Aunt Natsuhi has an alibi?! You’re forgetting one!! Who’s gonna prove that Erika herself has an alibi</span>?!!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 7th: It is forbidden for the detective to be the <span class="smallcaps">culprit</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">Unless she’s caught red‐handed, you should never be able to deny the possibility that Aunt Natsuhi is innocent!! Can you even deny future possibilities, like if a piece of evidence X that Erika hasn’t discovered proves Natsuhi’s innocence</span>?!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 8th: It is forbidden for the case to be resolved with clues that are not <span class="smallcaps">presented</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">Th‐this story is full of malicious fiction!! The story itself is a trap designed to frame Aunt Natsuhi! We should reconstruct the story from impartial truths alone</span>!!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 9th: Observers are permitted to put forward their own conclusions and <span class="smallcaps">interpretations</span></span>!</p>

    <p><b class="name">Battler:</b> <span class="blue">Maybe I was the culprit, and I gave George‐aniki and the others a slow‐acting poison to make them die after midnight, then silently slit their throats when I returned at {nobr:3 a.m.}!! I could have done it so quietly that Erika wouldn’t hear</span>…!!</p>

    <p><b class="name">Dlanor:</b> <span class="red">Knox’s 8th: It is forbidden for the case to be resolved with clues that are not <span class="smallcaps">presented</span></span>!!</p>

    <p><b class="name">Battler:</b> <span class="blue">Everyone committed suicide…!! So there is no culprit</span>!!</p>

    <p><b class="name">Gertrude:</b> FYAIBTIYOTF: <span class="red">All deaths were homicides</span>.</p>

    <p><b class="name">Battler:</b> <span class="blue">Erika didn’t personally examine the corpses, right?! It should be possible for people who aren’t the detective to make a mistake when examining the corpses</span>!!</p>

    <p><b class="name">Cornelia:</b> FYAIBTIYOTF: Be advised that <span class="red">no examination of any corpse is ever mistaken</span>!</p>

    <p><b class="name">Battler:</b> <span class="blue">Then maybe there were body double corpses!! They prepared corpses beforehand that closely resembled the victims</span>…!!</p>

    <p><b class="name">Gertrude:</b>Be advised that <span class="red">no corpses exist except those of characters who have appeared in the story</span>.</p>

    <p><b class="name">Battler:</b> <span class="blue">Th‐then how can you claim that Uncle Krauss is dead without his corpse?!! Doesn’t that violate Knox’s somethingth or whatever</span>?!!</p>

    <p><b class="name">Cornelia:</b> Be advised that <span class="red">the red truth is simply truth, and there is no need to provide evidence or proof</span>!!</p>
  </blockquote>

</details>

<p>So we’ve scored Knox 3, 10, 1, 4, 8, 6, 7, 8, 9, 8… sorting that, 1, 3, 4, 6, 7, 8, 9, 10. That leaves 2 (no supernatural effects) and 5 (the racist one). Using 2 would amount to conceding the game, and the less said about 5 the better, so I think this is a reasonable 100%.</p>

<p>The important additional clues here are:</p>

<blockquote>
  <p><b class="name">Gertrude:</b> FYAIBTIYOTF: <span class="red">All deaths were homicides</span>.</p>
</blockquote>

<p>That rules out Rosa killing everyone and then herself.</p>

<p>We have a few more ‘Umineko versions’ of the Knox rules.</p>

<blockquote>
  <p><b class="name">Dlanor:</b> <span class="red">Knox’s 1st: It is forbidden for the culprit to be anyone not mentioned in the early part of the <span class="smallcaps">story</span></span>!!</p>
</blockquote>

<p>Knox put this as:</p>

<blockquote>
  <p>The criminal must be mentioned in the early part of the story, but must not be anyone whose thoughts the reader has been allowed to know.</p>
</blockquote>

<p>This would actually rule out Natsuhi as the culprit, since we’ve had a few scenes from her first-person perspective already! I’m not sure if the latter clause was purposefully elided, or if it just doesn’t apply to Umineko.</p>

<blockquote>
  <p><b class="name">Dlanor:</b> <span class="red">Knox’s 6th: It is forbidden for accident or unaccountable intuition to be employed as a detective <span class="smallcaps">technique</span></span>!!</p>
</blockquote>

<p>Knox originally put this:</p>

<blockquote>
  <p>No accident must ever help the detective, nor must he ever have an unaccountable intuition which proves to be right.</p>
</blockquote>

<p>So this one’s a pretty close translation for once.</p>

<p>Then there’s this exchange:</p>

<blockquote>
  <p><b class="name">Battler:</b> <span class="blue">Th‐this story is full of malicious fiction!! The story itself is a trap designed to frame Aunt Natsuhi! We should reconstruct the story from impartial truths alone</span>!!</p>

  <p><b class="name">Dlanor:</b> <span class="red">Knox’s 9th: Observers are permitted to put forward their own conclusions and <span class="smallcaps">interpretations</span></span>!</p>
</blockquote>

<p>Knox put this:</p>

<blockquote>
  <p>The “sidekick” of the detective, the Watson, must not conceal from the reader any thoughts which pass through his mind: his intelligence must be slightly, but very slightly, below that of the average reader.</p>
</blockquote>

<p>We don’t have a “sidekick” character per se. Our main POV character, Battler, does constantly get <em>told</em> he’s stupid and incompetent, but he’s not really in a Watson role at all. Then again, the convention is definitely that Battler will not solve a mystery within the episode in order to give us time to figure it out ourselves. But who knows…</p>

<h3 id="can-we-solve-it-for-real">can we solve it for real?</h3>

<p>So, with all that, the dust is settling. Battler says he has one last thing. Let me pause him a second… because I feel like we should have enough to come up with a solution for this episode now. A positive truth that can make sense of the whole affair. Let’s take stock…</p>

<ul>
  <li>Natsuhi does insist that she was being blackmailed</li>
  <li>by all accounts there was no possible way for the knock to happen at the door at midnight, but perhaps everyone there could be implicated in a conspiracy to claim someone knocked</li>
  <li>it is possible, if a little of an edge case, that Eva is able to duplicate Erika’s seals.</li>
</ul>

<p>Despite a redtext that comes pretty damn close to denying it, the last one stands out to me, since it feels like it <em>was</em> a clue that was set up earlier in this chapter. We know Eva knows about the seals, we know that she knows what Erika’s seals look like, and the art for that scene very clearly showed Erika’s signature and not Eva’s.</p>

<p>Let’s check what actual red text we have about Genji.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">When Genji finished transferring the call, he immediately returned to the servants’ quarters</span>.</p>
</blockquote>

<p>Hold on, now… when was that? That sounds like it was <em>before</em> 1am.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">At 1 a.m., Eva sealed Genji’s sleeping quarters, and that seal was broken by Kanon and Kumasawa in the morning when the crime was discovered<span></span></span></p>

  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">During the short break at 1 a.m., the first two to leave the dining hall were Rosa and Eva. Until Eva returned, everyone in the dining hall remained there. After seeing Rosa off, Eva went to the sleeping quarters and sealed it. Of course, she did not enter the room at all at this time</span></p>
</blockquote>

<blockquote>
  <p><span class="red">Genji never left the mansion after 24:00</span></p>
</blockquote>

<p>So when did ‘Genji finish transferring the call’? According to the narration, which we seem to have had confirmed by the red text placing him in the hall upstairs at midnight, Genji was presenting Natsuhi with the phone just as the clock struck midnight.</p>

<p>OK. Genji returns to the servants’ quarters after that. He has an opportunity at this point to move around and do other stuff, as long as he’s back in there by 1am and does not leave the mansion. For example, he could abduct Krauss. It would be difficult for him to play the role of Phone Man, though, if we believe the narration that showed him passing the phone to Natsuhi in person.</p>

<p>There’s another problem here. We’ve spent this whole chapter establishing the murders must have happened while Erika wasn’t in the lounge, which is the period between midnight and 1am. But we’ve also established that Rosa went back at 1am and met Erika on the stairs, right? And from that point until 3am, Erika was watching the lounge? So when was Rosa killed? Even if a culprit had entered the building while Erika was in the archives, and carried out the murder between 1am and 3am, they would not have had the opportunity to slip away.</p>

<p>When was Krauss last heard alive? Significantly later than the others: in Chapter 10, around when the bodies are being discovered. On top of that, someone must be playing as Phone Man at this point.</p>

<p>OK, so we shouldn’t assume that there is only one culprit. here’s some ideas. we must assume, since we’re playing for Beatrice, that neither Natsuhi nor Krauss killed anyone. but anyone else except Erika is fair game, even Battler.</p>

<ul>
  <li>for some reason, the group of relatives in the hall decide to carry out a series of murders. probably something to do with the inheritance</li>
  <li>Rosa is dispatched to deal with the group in the guest house. She meets Erika on the way in, and goes upstairs while Erika, Genji and Nanjo hang out in the lounge. Rosa kills George, Jessica and Maria. but then who kills Rosa?</li>
  <li>Eva is dispatched to deal with Genji. we know she does not enter the room and it wasn’t a suicide. it is possible she opened the door, attacked him across the threshold, and then closed and sealed it afterwards?</li>
  <li>it is also possible that someone else entered the room prior to 1am and killed Genji. while Gohda and Kumasawa are sealed away, and the rest were in the dining room, it is entirely possible for one of the kids to <em>leave</em> the guesthouse while Erika is talking to Nanjo, enter the mansion, kill Genji, and return with Erika none the wiser.</li>
  <li>who didn’t show up at the body discovery scene? mostly the servants in the mansion it seems like (Kanon, Gohda, Kumasawa and Sayo) who all seem to have left the mansion prior to Battler waking up. and Natsuhi and Krauss of course.</li>
  <li>at some point after the body discovery scene, the bodies are moved to an unknown location by an unknown party. this is so far entirely unaddressed.</li>
  <li>there was no noise until Battler screamed at 7am. shortly after this, people came running, and Erika ran off to check the whole guesthouse for anti-tamper seals. in this period, there is a small window where someone (Battler perhaps) could carry out murders</li>
</ul>

<p>Hang on, when did the servants get up? clearly prior to the bodies being discovered. if Erika was listening closely at the wall until Battler screamed as she claims, how could she also be verifying that the seals were unbroken?</p>

<p>Here’s another oddity. In describing the bodies, the game often uses modal constructions with <em>could</em>. For example, we have</p>

<blockquote>
  <p><span class="red">anyone looking at George, Jessica, Maria, Rosa, or Genji’s corpses could confirm at a glance that they are dead</span>.</p>
</blockquote>

<p>Which doesn’t mean that anyone <em>did</em> look at the corpses and confirm they are dead. It’s possible they looked at something else and pretended. Even in this episode, we have:</p>

<blockquote>
  <p><b class="name">Cornelia:</b> <span class="red">no examination of any corpse is ever mistaken</span>!</p>
</blockquote>

<p>How would this work exactly? Well, let’s say the “corpses” are playing dead in the morning at 7am when Battler wakes up. He pretends to scream in fright. This is part of a pre-planned conspiracy, designed to keep Erika busy. The other relatives from the dining hall are in on it, same as the knock thing.</p>

<p>So while I don’t have a conclusive counter-narrative yet, here are some points to use:</p>

<ul>
  <li>the murder of Rosa, at least, cannot have happened before 1am. if there can be no murders after 3am, someone must have entered the guesthouse and waited for Rosa to come upstairs.</li>
  <li>it is possible that someone <em>left</em> the guesthouse as well as entered it; this may account for Genji’s death.</li>
  <li>where is Krauss being held when Phone Man calls Natsuhi around 7:30am? and by who?</li>
  <li>the anti-tamper seals and corresponding red guarantees last until a nebulous ‘morning’. it seems that the servants leave the guesthouse prior to the bodies being discovered, perhaps to kidnap Krauss</li>
  <li>who moved the bodies? during the 7am to 8am period, there’s a lot of running around and perspective jumps, so I’m kind of hazy on where everyone goes</li>
</ul>

<p>Since moving four bodies would probably require a few people to be involved, especially to do so without Erika noticing, this would also suggest a big conspiracy. Possibly a close reading could confirm where Erika’s POV is.</p>

<p>With this in mind, here’s a really convoluted counter-narrative which nevertheless accounts for more of the events than Erika’s story:</p>

<ul>
  <li>the relatives in the dining hall aren’t confident of their claim on the inheritance. they conspire to make up the story about the knock, and this sets the ball rolling for further conspiracies.</li>
  <li>some or all of them decide that framing Krauss and Natsuhi for murder would be a good way to get them out of the way.</li>
  <li>the conspirators—whoever they are—kidnap Krauss during the night, and take him to an unknown location.</li>
  <li>to stitch up Natsuhi, Eva conspires to introduce Erika to a ‘foolproof’ way to guarantee alibis.</li>
  <li>Genji may also be playing dead, or else he caught wind of the conspiracy and had to be killed. after killing him without entering the room, Eva seals the door.</li>
  <li>meanwhile, Rosa enters the guest house and informs the kids that they need to play a trick on Erika. (alternatively, she kills them.) Battler is already in on the plan. perhaps they use the betel nuts, established early on as resembling blood.</li>
  <li>in the morning, Battler wakes up and ‘discovers’ that the room is full of dead bodies. he pretends to panic, causing the other relatives to come running. everyone already knows who (if anyone) is actually dead, so nobody is ‘mistaken’.</li>
  <li>Erika does not examine the bodies as noted, so she does not know they are faking their deaths.</li>
  <li>everyone moves to the mansion after the alarm is raised. after they’ve gone, the ‘dead’ bodies get up and start moving independently. someone pretends to be ‘phone man’ in order to terrify Natsuhi into compliance.</li>
  <li>they assist Erika in running around establishing everyone’s alibis, feeding her a consistent set of yarns in order to point the finger at Krauss and Natsuhi.</li>
  <li>at some point prior to Erika’s parlour scene, the group who faked their deaths actually die for real. maybe the conspiracy collapses, or it’s an accident. maybe Krauss breaks free and they all kill each other.</li>
</ul>

<p>That still leaves a pretty big question: why did they kill Hideyoshi, and why arrange for Natsuhi to be in the room when Hideyoshi is killed? I don’t have a great answer for that.</p>

<h3 id="battlers-last-gasp">battler’s last gasp</h3>

<p>Lets see which Battler uses. We get some buildup. He doesn’t have an alternative truth to present, but he can at least prove it was not Natsuhi. The way he’s talking, he’s about to do a heroic sacrifice.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/102-double-standard.webp" alt="Battler: ......Well, ......it looks like I'll have to break my promise to kill you after all." loading="lazy" />
    
</figure>

<p>He declares the red truth that <span class="smallcaps">Virgilia</span> gave him: <span class="red">Ushiromiya Natsuhi is not the culprit</span>. Unfortunately, Dlanor pops out her caestus and hits the parry window without skipping a beat.</p>

<blockquote>
  <p><b class="name">Dlanor:</b> <span class="red">Knox’s 2nd: It is forbidden for supernatural agencies to be employed as a detective <span class="smallcaps">technique</span></span>.</p>
</blockquote>

<p>So we do get Knox 2 after all. I kind of thought we’d already done ‘using the red as evidence’ in the volley above, but I guess this is subtly distinct from the previous rule that framed it as an intuition.</p>

<p>This feels a bit odd: we have been forming all manner of inferences based on the red, which is without a doubt using ‘supernatural agencies as a detective technique’, but I guess most of those inferences were not <em>declared in red</em>, and that’s when Knox kicks in.</p>

<p>So Battler’s gonna like, die?</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/103-deaths.webp" alt="Dlanor says the word 'death' in red a whole bunch of times." loading="lazy" />
    
	<figcaption>
		<p>Dlanor sure seems to think so.</p>

		
	</figcaption>
    
</figure>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/104-deathphrase.webp" alt="Dlanor: &lt;Die the death&gt;. &lt;Sentence to death&gt;. &lt;Great equalizer is the death&gt;!" loading="lazy" />
    
	<figcaption>
		<p>Sure Dlanor, it’s just a job…</p>

		
	</figcaption>
    
</figure>

<p>We get a whole CG of Battler getting impaled on a big two-pronged red spear like the good old Lance of Longinus…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/105-longinus.webp" alt="CG of Battler being impaled on two long red spears that extend out of frame." loading="lazy" />
    
</figure>

<p>And Dlanor gets to wrap things up with her version of Natsuhi’s ‘whydunit’. With her authority(TM), she broke the locks on Natsuhi’s diary (how convenient, not at all ‘third rate’).</p>

<p>Natsuhi’s marriage, she says, was more like a hostage situation; Natsuhi described it as such in her own words. Kinzo, we are told, economically crushed Natsuhi’s noble family as a way to force them to agree to a marriage, in order to raise his standing as an ‘upstart’ among the rich. Natsuhi, we are told, was raised by Shinto priests, and they would have been utterly humiliated by the affair.</p>

<p>Natsuhi protests: despite this fucked situation, Krauss was kind and understanding. Erika quotes her diary back at her, saying she didn’t trust it. Natsuhi protests she came around, and just didn’t write it down.</p>

<p>Erika’s response is comically… Erika.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/106-internal-authority.webp" alt="Erika: Multiple diverse pieces of evidence and testimony... make it clear that you had an intense hatred for your husband. On the other hand, your claim, that you eventually accepted his feelings, is unsupported by evidence." loading="lazy" />
    
</figure>

<p>I can see why she called herself an ‘intellectual rapist’. Natsuhi isn’t even being allowed authority over narrating her own thoughts and feelings anymore.</p>

<blockquote>
  <p><b class="name">Erika:</b> Nothing can be trusted except for red truth…!! Statements that aren’t red don’t count as evidence at all, and they can’t be trusted at all! All text that is not red is a falsehood that exists to deceive me!!</p>
</blockquote>

<p>…which seems like it’s directly aimed at the attitude the reader has probably reached by this point (certainly expressed at various points in this liveblog), of assuming that all the narration not directly verifiable by the presence of Battler (or now Erika) or backed up in red is probably a smokescreen of some kind. So, well played, Ryuukishi…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/107-unnecessary.webp" alt="Romance is unnecessary for a detective. I don't think I've ever used the word 'romance' except to explain the motive for murder." loading="lazy" />
    
	<figcaption>
		<p>She’s so much…</p>

		
	</figcaption>
    
</figure>

<p>As if to reassure themselves, everyone expresses their pitying thoughts on what a sorry thing Natsuhi’s life has been—never mind what she thinks about the matter. Even Battler—now presumably severed completely from his player—starts to wonder if Natsuhi was the one that dunnit.</p>

<p>But then Erika throws us a little surprise. She says there’s one person that could still have done it… Kinzo. Because, on this level of reality, it is not yet proven that he’s dead. Which means Natsuhi could try to pin it on Kinzo—at which point Erika can of course reveal that Kinzo is already dead and ‘prove’ that Natsuhi is a liar who hates the Ushiromiyas, right? Of course, if she refuses the bait, Erika can spin that as a confession.</p>

<p>Abruptly, we are back in court. We already have Kinzo’s death down in red, but Bernkastel wants a perfect victory, which means Natsuhi must resign.</p>

<p>Bernie says:</p>

<blockquote>
  <p>“Lambda. I’m going to make Kinzo’s location from midnight until the morning absolutely clear. ……<span class="red">From midnight until morning, Kinzo stayed in the same room</span>.</p>
</blockquote>

<p>Lambda decides to let her cook after a moment of confusion. So, defining ‘Kinzo’ to mean ‘a living Kinzo’, Bernie continues:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">Kinzo does not exist anywhere outside the mansion</span>.</p>
</blockquote>

<p>Are you about to tell me she searched the entire damn island? Apparently, yes: Erika searched, and because she is the detective she must necessarily find any relevant clues per Knox, but there weren’t any, QED. I feel like if you’ll fall back on that you might as well just plonk Erika down anywhere and not bother with all the running about sticking tape on things… the detective in a mystery story has to at least justify their discovery of clues by some effort to make it plausible.</p>

<p>Anyway, they drag it out a bit, eliminating every location Kinzo might be one by one. Once again I can’t help but think of <cite>Green Eggs and Ham</cite>.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">Kinzo is nowhere outside the mansion. Kinzo isn’t on the third floor. Kinzo isn’t in the basement. Kinzo isn’t on the first floor. Therefore, the only place Kinzo could possibly exist is the second floor</span>.</p>
</blockquote>

<p>Then, after a room by room search:</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">Kinzo does not exist outside Natsuhi’s room</span>.</p>
</blockquote>

<p>The contrapositive comes up (as Hempel’s raven, we won’t get into all that again.) Erika mentions that he might have left again by the window… but couldn’t he use the classic hide-and-seek strat of moving around behind the searcher, e.g. down the stairs? Lookouts have yet to be mentioned.</p>

<p>Hey, you know, since we’ve observed that Kinzo’s quantum location is limited to Natsuhi’s room, that leaves his momentum highly uncertain! We’ll find him shooting through the mansion like a bullet! …ok yeah nevermind</p>

<p>Since we have the arbitrary declaration that he did not change rooms, and Erika was apparently checking for evidence of where he’d been, we get that…</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">For the entire duration of the night between midnight and morning, a living Kinzo could not have existed anywhere outside Natsuhi’s room</span>.</p>
</blockquote>

<p>And then, after one more refusal… they go ahead and accuse her of incest (or something akin to it). Quite explicitly. Jesus lmao.</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">For the entire duration of the night between midnight and morning, a living Kinzo could not have existed in any place except inside your bed</span>.</p>
</blockquote>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="red">For the entire duration of the night between midnight and morning, a living Kinzo could not have existed in any place except inside Natsuhi’s bed. And last night, Natsuhi also slept in that same bed</span>.</p>
</blockquote>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> <span class="blue">Therefore, we can conjecture that Ushiromiya Natsuhi and Ushiromiya Kinzo had sexual relations with each other. Why else would a man and a woman share the same bed all night long</span>?</p>
</blockquote>

<p>There is a great deal of cruelty in Umineko, but it is kind of impressive how far these two can take their vindictive games. This Natsuhi humiliation train just doesn’t stop. And for all that Erika makes big talk about solving mysteries, she is evidently <em>extremely</em> willing to use selective evidence to tell whatever story she damn well pleases (if all the ‘scientific’ evidence she pulled out of her arse this episode weren’t evidence enough of that.)</p>

<p>Natsuhi is stubborn to the last, so Bern adds…</p>

<blockquote>
  <p><b class="name smallcaps">Bernkastel:</b> “He’s not one of the dead. We’re talking about the honor of a convenient delusion inside Natsuhi’s head. ……<span class="red">The real Kinzo never once ordered Natsuhi…to do anything like protect his honor</span>.”</p>
</blockquote>

<p>With that, Bernkastel gets declared the victor—and apparently gets the right to write the ending for this fragment out of it. And that’s the chapter end, so I guess we’ll see whatever cursed epilogue she has in mind next time.</p>

<hr />

<p>Bloody hell.</p>

<p><cite>Umineko</cite> can get pretty damn mean with it at times, huh.</p>

<p>Battler and Beato are both…dead? This is not the first time Battler has died, but this seems a bit more final. Obviously, the <em>story</em> isn’t over, but maybe this pirate dude is gonna come in and replace Battler for a while? I was discussing <cite>Umineko</cite> with someone IRL recently (at the Glasgow Leatherdykes pub night, where else) and she implied there would be some kind of major twist still to come, so I am kind of wondering if this might be it.</p>

<p>I’ll save further comments on Natsuhi until after the next chapter, since it seems like there is more to come here. But I definitely feel things about someone getting overwritten with some other narrative of their life than their own (she says, transgenderly). Poor Natsuhi. This chapter has just been gratuitously brutal towards her.</p>

<p>I’m not confident in every detail of the counter-narrative here. I do feel like I may have caught some of the tricks, though. I’ll be quite interested to find out what the real solutions are in a couple of episodes.</p>

<p>Also seems notable that if I <em>am</em> right about this counter-narrative or anything similar, it wouldn’t be much good for <span class="smallcaps">Beatrice</span> getting to exist, because it’s also a mundane narrative. The problem is, the magic narrative has almost nothing to go on in this episode. We get too many POV scenes of <span class="smallcaps">Beatrice</span> and co. floundering to come up with a next move. Where are the incredible plays we saw in the previous games? Well, of course, the actual player!<span class="smallcaps">Beatrice</span> is no longer in control here. Without omniscience, it’s a bit harder to pull that kind of thing off.</p>

<p>OK, well, this has been a lot more of an Umineko day than I ever planned, but I’m glad to be through that monster chapter. We’ll see you soon, there are only a few chapters left in the episode now (going by the numbers on the script files, which go up to 17, so presumably one more regular chapter and two tea parties). But we have a lot of work to catch up on so we’ll see.</p>

<p>Catch you soon~</p>]]></content><author><name></name></author><category term="livereads" /><category term="umineko" /><category term="ep5" /><category term="umineko" /><summary type="html"><![CDATA[in which it's not a fair cop at all]]></summary></entry><entry><title type="html">Let’s read Umineko! - episode 5 - chapter 13</title><link href="https://canmom.art/livereads/umineko/ep5/chapter-13" rel="alternate" type="text/html" title="Let’s read Umineko! - episode 5 - chapter 13" /><published>2026-05-29T00:00:00+00:00</published><updated>2026-05-29T00:00:00+00:00</updated><id>https://canmom.art/livereads/umineko/ep5/chapter-13</id><content type="html" xml:base="https://canmom.art/livereads/umineko/ep5/chapter-13"><![CDATA[<p>Helloooo Uminekoheads, it has been a minute. A whole lot has happened offline for me/us, some pretty significant <a href="https://canmom.art/theory/disaggregation-1">changes to the old self-conception</a> and so on, lots of demoscene activity, working to finish the game… and then, horribly, someone died in real life. Outside of noting it here, I’ll try not to let all of that intrude too much into the Umineko liveblog.</p>

<p>But, I finally have a combination of some time and the right headspace to read some more Umineko, so let’s get back on the mystery-solving horse!</p>

<p>In other news, this liveblog is back to running on Linux, this time CachyOS! This means I might actually have a chance to fork OnScripterRU to add some new features to make liveblogging easier. I won’t do that this month, since it’s a bit of a yakshave, but it’s a possibility.</p>

<h2 id="reader-comments-roundup">reader comments roundup</h2>

<p>Let’s respond to a few comments that have accumulated since the beginning of this year. I’ve been lucky enough to get a few new readers drop by, and I’m grateful for every comment! One drawback of using Staticman is that I can’t notify people when I approve or respond to their comments, so I hope this ‘roundup’ format is good.</p>

<details>
  <summary>Reader comments time!</summary>

  <p>reader ‘no’ came by in February as of Episode 5, Chapter 4 and accused me of having read ahead or looked up solutions. I wrote a response <a href="chapter-4">there</a>, which I won’t repeat here. Suffice to say: I have received a small amount of spoilers. They are vague and I’ve tried to avoid picking up too much extra information beyond what I glimpsed by accident. If I use that information, I will let you know about it.</p>

  <p>zoe jay, <a href="chapter-7">ep 5 chapter 7</a></p>
  <blockquote>
    <p>I’m in the midst of catching up with this liveblog and just wanted to put my hat in the ring and say I’d love to see you try to tackle silent hill f some day if you ever end up feeling compelled to go through with that! I’ve been incredibly curious about what the game would be like since news came out that ryukishi would be writing it, but I’ve got a migraine condition that means playing the game myself or even watching footage of it is completely off the table. getting to see someone as thoughtful as you liveblog it would probably be the best secondhand experience possible.</p>

    <p>I’ve really enjoyed this umineko liveblog and have had a lot of fun dipping my toes into your side tangents about game design and ttrpgs more specifically. not really a space I’ve ever been personally involved with myself so getting to see something I do have firsthand familiarity with it through a lens I wasn’t really capable of applying myself is definitely giving me a fuller picture of the work. that’s the nice thing about works that are as much of a behemoth as this one I suppose! you can’t ever run out of new ways to look at them</p>
  </blockquote>

  <p>Well, no promises, you can see how hard it has been to even stick to this project lol. I am not sure what sort of format would work for a real-time game like Silent Hill. Perhaps I could record videos, or write a commentary after each chunk of game, or both? In any case, consider it a thing I would like to cover “at some point”; we’ll see how it goes.</p>

  <p>felix <a href="chapter-12">wrote on ep 5 chapter 12</a>:</p>
  <blockquote>
    <p>where did you go? :o</p>
  </blockquote>

  <p>saisai wrote in the same place</p>
  <blockquote>
    <p>hi!! i know its been a while since you’ve updated this, but i just wanted to say that its really reassuring to see someone else who’s been reading umineko over a long period of time ^^</p>

    <p>while i haven’t read too many of your posts, i really like your interpretations of what’s going on, especially as someone who’s been focused more on the emotional “drama” (that doesn’t feel like the right word but i can’t think of a “correct” one right now) of the characters rather than trying to figure out the mysteries themselves. i honestly feel a little guilty about it, but mysteries have never been my strong suit ^^;</p>

    <p>your posts have also been a good resource for looking back on some of my favorite moments so far (especially appreciate the inclusion of specific lines from the chapters!!), and your comments on what happens also serve as some nice food for thought on them. i hope you enjoy reading the rest of umineko!! (OuO)/</p>
  </blockquote>

  <p>Hi felix and saisai! Thank you for reading, and I’m sorry for the extended hiatus! I’m very glad you’ve been enjoying the blog. I wouldn’t worry too much about solving the mysteries; <cite>Umineko</cite> is a wonderful work that has many different appeals and as much shit as Battler gets, the mysteries are pretty damn hard. Hope to see you again here sometime!</p>

  <p>andrew came by in April-May with some comments.</p>

  <p>on <a href="../ep3/lets-read-umineko-episode-3-part-20">ep 3 part 20</a></p>
  <blockquote>
    <p>(frame of reference: have read higurashi, am currently through ch. 3 of umi)</p>

    <p>it is really interesting to see you run into things that were established in higu-the fragment stuff was a huge part of higu and this was honestly more of a reveal than it was an introduction!</p>
  </blockquote>

  <p>This is cool context to have! I suppose Ryuukishi must have had both audiences in mind, and I wonder at what point significant numbers of people were starting with Umineko instead of coming in from Higurashi. But we have these two parallel reading experiences. Because I’m me, I think about how <cite>NieR Automata</cite> hits different if you’ve already played <cite>NieR Replicant</cite>/<cite>Gestalt</cite>.</p>

  <p>on <a href="../ep4/chapter-14">ep 4 chapter 14</a>, in which I discussed the possibility of recompiling the game…</p>
  <blockquote>
    <p>speaking as someone who has done more research than is sane on the onscripter/ponscripter/onscripter-en/onscripter-ru/onscripter-insani/whathaveeyou lineage (primarily for the purpose of pestering a guy who ported it to android and then took it closed source to comply with the GPL smh-to his credit he did send me a tarball)…that codebase is a certified dumpster-fire of international scale and its lowkey a miracle that umiproj exists at all.</p>

    <p>(i am playing on the modded switch port, which is its own mess)</p>
  </blockquote>

  <p>lol yeah it seems pretty fiddly, though admittedly I haven’t the greatest amount of experience with OpenGL C++ projects (most of my graphics programming has been in Rust + wgpu lately, moving in the direction of dealing with Vulkan directly). All the locking to old versions is a pain though. If I have any luck with getting it compiling on Linux, I’ll fill in the liveblog.</p>

  <p>on <a href="chapter-2">ep 5 chapter 2</a>, referring to witches talking about peeling fingernails:</p>
  <blockquote>
    <p>the “classic gory witch metaphor”? You guessed it, a higurashi reference!</p>
  </blockquote>

  <p>Oh! Yes, that completely flew over my head. I wonder what context it has in Higurashi… one day I’ll find out.</p>

  <p>and on <a href="chapter-3">ep 5 chapter 3</a></p>
  <blockquote>
    <p>worth noting that bernkastel’s avatar in higu is “furude rika” so “furudo erika” is…honestly hilariously uncreative from an in universe pov, although I guess its less so when you write it in japanese</p>

    <p>古手 梨花 -&gt; 古戸 ヱリカ</p>
  </blockquote>

  <p>Haha, that’s great. I wonder what reading Higurashi after Umineko will be like? If I live that long.</p>

  <p>On <a href="../ep3/lets-read-umineko-episode-3-part-19">ep 3 part 19</a>, where I mentioned in passing the use of the ‘dream bubble’ concept in <cite>Harrow the Ninth</cite>, Lilien noted:</p>
  <blockquote>
    <p>Funfact, one of the inspirations for The Locked Tomb was Umineko. The author mentioned it in one of their Reddit comments</p>
  </blockquote>

  <p>Full circle, then. It’s a very fruitful concept!</p>

  <p>‘necro lol’ (fair) wrote on ep 3 part 7:</p>
  <blockquote>
    <p>I don’t know if it’s polite to leave comments on old shit like this but I’m reading this liveblog because I just finished Disc 1 and I wanted to see someone else’s perspective. I just wanted to interject some thoughts I had re: shannon in this scene because there weren’t any future notes on it.</p>

    <p>To me, Shannon’s aggressive gendered performance of heterosexuality is meant to emphasize the exaggerated narrative tropes at play. As ‘less real’ and ‘less human’ members of the cast, the servants embody narrative tropes much more strongly than the family members. Shannon is the overly maiden-like ‘ideal female love interest’ type of servant, where Kanon is more of a ‘ideal male love interest’. They’re sort of tailored to be ‘of use’ to jessica and george in the wider narrative by being their stock romance options.</p>
  </blockquote>

  <p>I responded…</p>

  <blockquote>
    <p>Hi! Comments on the old stuff are welcome, but I do appreciate the recognition that it’s old haha.</p>

    <p>I appreciate this angle because I think I was kind of taking the opposite perspective: that George is an idealised love interest for Sayo: he’s rich, upstanding (supposedly…), generous, and of course willing to defy his family to be with her. He feels almost like a romance novel guy. But you’re absolutely right, Sayo is equally the archetype of the shy, clumsy moe girl (and literally a maid!).</p>

    <p>I don’t think I really get into ‘author!Beatrice’ interpretations until a fair bit later in this liveblog, but I definitely came to suspect by the end of Episode 4 that neither of these characters is ‘real’, and they might instead be composite characters of some sort…</p>
  </blockquote>

  <p>Weirdly I ended up writing nearly exactly the same comment before I realised I’d already responded at the time. (I am reading these off Github.)</p>

</details>

<h3 id="branwen">Branwen</h3>

<p>I got a particularly thoughtful series of comments from Branwen on various parts of the site, thank you so much for these! Some of them concerned Umineko.</p>

<p>On <a href="../ep4/chapter-21">episode 4, chapter 21</a></p>
<blockquote>
  <p>As far as I’m aware, the earliest more or less correct solution to the epitaph with a verifiable date was posted after game 5, and frankly its insane to me that anyone solved it even with that.</p>
</blockquote>

<p>OK, I shouldn’t worry <em>too</em> much then. It’s fun to try, though!</p>

<p>On <a href="../ep3/lets-read-umineko-episode-3-part-1">episode 3, part 1</a>, a scene in which Battler made sexual remarks about the Sisters of Purgatory when he’s being tortured. This is where one of the infamous ‘notes from the future’ was inserted, and this led to Branwen writing a really thoughtful comment on how Battler is characterised across the novel.</p>

<blockquote>
  <p>Regarding future Bryn’s comments: I find these meta scenes (this one and the one with him interrupting the previous tea party) specifically with Battler being uncomfortably sexual absolutely fascinating in the way they contrast Battler’s dual positions as an undeniably powerless victim and a young, rich man who holds tremendous implicit social power over the women in his life.</p>

  <p>Like he is powerless to the point that escape even through death is unimaginable, objectified in a sense far more literal than its often used. But rather than this leading him to empathize with, frankly literally any of the women or servants in his family and the power dynamics they’ve spent their lives subjected to, he doubles down on his socially implicit male role as the objectifier, as the person who gets to feel powerful, in control, perhaps even funny and charming! Certain I knew plenty of teenagers back in the day, especially boys, who were undeniably popular and considered funny for making uncomfortable transgressive “jokes” about women, children, poc, etc. And I think its probably true that victims by and large don’t become better people for suffering. Personal growth is hard, and its only made harder by feeling vulnerable and afraid. Most people just lash out and double down in that situation, Battler included.</p>

  <p>That’s also fwiw a framing I really like for Battler’s behavior around his cousins. He hasn’t seen them in a third of his life! Its so easy to imagine him feeling insecure, out of place, vulnerable from his fear of planes and boats, unsure of his position in the social hierarchy of a deeply hierarchal family. So what does he do? He acts up, he makes himself the center of attention. Maybe’s done that in class a dozen times, acting the rebellious class clown who made his peers laugh with inappropriate jokes, the kid who was a little too rich and not quite disruptive enough for the teachers to ever do more than tell him off. He hits his baby cousin when she says things he thinks are wrong, because he’s the adult now and that’s what her mom does, isn’t it? He needs to show he’s mature now, after six years. He doesn’t hit her hard, he doesn’t want to hurt her, its just a little reprimand, he’s just trying to teach her better behavior so she doesn’t get bullied. He doesn’t even realize that his actions are just as potentially hurtful and damaging to Maria as Rosa’s were when he was the only one to rightfully call her out in game one.</p>

  <p>It’s such a compelling characterization to me bcuz not only does it make him a really nuanced protagonist, someone who cares deeply about his family despite their flaws, who feels strongly enough even as a child to renounce his family name and cut off his own father over a perceived abandonment of his dead mother! But it also paints a really believable picture of the way the shitty little things about patriarchy and abusive power dynamics continue to propagate. The microaggressions, the ways smart, empathetic men who it seems like should know better will often double down and get defensive when their behavior is challenged, the way people who explicitly reject the power dynamics of their parents can still recreate them in subtler ways, an example of how victims can and do become abusers in their own rights even without realizing it.</p>

  <p>Not to mention that like. It’s honestly really relatable! I’ve personally felt the urge many times to lash out with words when I feel powerless to try and assert that I have some say in things still. I used to make nasty, self-effacing jokes when I felt insecure or out of place, for reasons that feel much the same as I imagine Battler’s to be, and I have friends who still haven’t broken that habit. I still struggle with feeling like an “adult” around my parents sometimes, despite the fact that I first moved out over a decade ago, in no small part due to financial dynamics and having had a really rocky relationship with them growing up. I’m sure pretty much anyone with friends around my age (especially trans friends!) has heard similar things.</p>

  <p>I think it can be tremendously effective writing for exactly that reason. If (or perhaps when!) one can look past the shock value and the discomfort with Battler’s behavior to ask “Why might someone act like that?”, they’re placed in the perfect position to recognize that the small (but difficult!) step they’ve taken towards kindness and greater cognitive empathy is exactly the same skill that Battler is struggling to master. And its a skill that can do so, so much good in the world.</p>
</blockquote>

<p>I wrote:</p>

<blockquote>
  <p>This is such a fantastic comment! Really good analysis of what’s going on with Battler, and with Umineko in general—it’s so much a story about learning to understand the Other, the ‘why would someone do that’.</p>

  <p>With the benefit of a few more years’ hindsight, I feel like I can understand both the version of me who wrote this part of the liveblog originally, and the version who wrote the ‘notes from the future’, with sympathy to both. It’s kind of funny, really. Both ‘Bryns’ were trying very hard to play up to some ideal, not unlike what you say about Battler. When I edited in all these notes I was feeling this strange sense of shame about what I saw as my overly moralistic younger self, but now it’s evident how much at that point I was also trying to perform like ‘I’m cool now, I’m into edgy guro stuff’ to some other imagined judgemental viewer. Kind of cute in a way.</p>
</blockquote>

<p>Cadence then wrote:</p>

<blockquote>
  <p>With love, it can be seen.</p>
</blockquote>

<p>Which, not to get too much into the introspective shit, really is the thing, isn’t it? I have been trying to hold to that principle.</p>

<p>Anyway: Branwen, I cannot overstate how much it means to have such thoughtful comments appear in my inbox. While I was checking to see if I hadn’t missed anything, I realised you’ve been commenting on the liveblog since 2020. I deeply, deeply appreciate it. Makes this whole thing feel worthwhile.</p>

<p><small>I should add, for any future commenters, a quick technical note: after you click submit, the bot will make a PR on Github to add your comment. You should see it appear <a href="https://github.com/canmom/canmom.github.io/pulls">here</a> after a few minutes. (If I manage to migrate this site to another Git forge, I’ll need to fiddle around to get that working.) Assuming it’s not spam (the honeypot catches nearly all spam, but I want to be sure), I will probably merge it sometime in the next day or two. So if you want to see what happened to your comment, check that page. I know it’s a bit crude! At some point I might consider coming up with a more bespoke comment submitting system, and also port the site to a faster SSG, and all sorts of other things. Very much depends where my brain ends up.</small></p>

<h3 id="a-mystery-allegedly-solvable">a mystery allegedly solvable</h3>

<p>J commented on <a href="../ep4/chapter-20">Ep 4, Chapter 20</a></p>
<blockquote>
  <p>been playing while reading this and finally caught up to where the blog stops! hope u keep playing it this year. theres a big hint about the last riddle thats kinda lost in translation - when the ghost beatrice asks “who am i” she uses the pronoun watashi instead of her usual warara. not to spoil too much but it’s definitely solvable! there are hints to the answer all over this episode</p>
</blockquote>

<p>Ooh, I could maybe have picked this up in the voice acting, but I did not. That’s very interesting… of course ‘watashi’ is more or less the default polite first person pronoun in Japanese (feminine in casual contexts). So if I did a search of the episode text for 私 I would find a <em>lot</em> of examples. I’m not sure whether it’s wise to try to solve it now, but I could do with rereading the Episode 4 liveblog at some point and seeing if anything new comes to mind. Not right now, though. I’ve kept you waiting long enough…</p>

<h2 id="chapter-13-closet">Chapter 13: <cite>Closet</cite></h2>

<p>It’s been a long time—not the longest hiatus this liveblog has experienced, but still, oof—so let’s reorient. Midnight came on Rokkenjima. We spent most of the last chapter trying to figure out who knocked at the door and left a mysterious note for Battler and the rest on the night before the murders started. A slightly ridiculous back-and-forth ensued on the ‘player’ plane. My solution was that this is a ‘truth’ that’s proper to the people in the dining room: they are working together to maintain the fiction that somebody knocked on the door, so that is what the game presented us. Meanwhile, Erika crashed out a bit and declared that she had ‘solved’ Battler’s stunt at the window. The game world had to paper over her weird behaviour.</p>

<p>Earlier, Natsuhi has received instructions from Phone Man to hide herself in a closet at a certain point in time. So while the jokes write themselves in a chapter called ‘Closet’, presumably that is what is about to happen.</p>

<p>We open with Erika, who is going about attempting to establish a timeline of events during the night and figure out everyone’s alibis. She establishes…</p>

<ul>
  <li>Battler came back at 3am.</li>
  <li>at about 3:30am, Eva says that the rest of the group split up and went to bed.</li>
</ul>

<p>Meanwhile, Ronove, Gaap and piece!<span class="smallcaps">Beatrice</span> are also talking strategy. <span class="smallcaps">Beatrice</span> is back to feeling confident, saying that Kinzo has escaped ‘off the chessboard’ through the window. Gaap assures her that she has also hidden away the bodies from the First Twilight.</p>

<p>Ronove quotes the one line of Sun Tzu everyone knows…</p>

<blockquote>
  <p><b class="name">Ronove</b> As they say, if you know your enemy, you need not fear the outcome of a hundred battles.</p>
</blockquote>

<p>…except he leaves out the bit about ‘knowing yourself’, notable omission?</p>

<p>The narration informs us that wherever Gaap put the bodies, it is a place outside space and time:</p>

<blockquote>
  <p>Every single place led to here, but no place could be reached from here.</p>

  <p>Furthermore, all times connected to this place, but no time could be passed to from here.</p>
</blockquote>

<p>So in the game’s spacetime location graph, it is a sink with <a href="https://en.wikipedia.org/wiki/Directed_graph#Indegree_and_outdegree">outdegree</a> zero. OK. The bodies are in Rome! But we could read this a different way: currently ‘where did the bodies go’ is an undefined, floating variable.</p>

<p>Virgilia pops in, remarking that there are as yet only five bodies for the First Twilight. Beatrice seems happy to see her.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/82-o-hai.webp" alt="Beatrice: Oh, it's you, Master. I was worried about where you'd gone. The game has already reached the first twilight, and as you can see, the first victims have emerged. ......Now it's time for the real show. I'm getting all excited...!" loading="lazy" />
    
	<figcaption>
		<p>Not a particularly interesting screenshot, I just wanted to iron out the screenshow flow on the new platform…</p>

		
	</figcaption>
    
</figure>

<p>Virgilia seems to be aware of the broader context, referring to Beato as ‘the version of you that’s here’. Beato completely misses the subtext and says some unfortunately painful lines…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/83-o-no.webp" alt="Beatrice: Hm?? If you took away my high spirits, my bewitching &lt;body&gt;, and my pleasant disposition, I'd have nothing left! Wahaha." loading="lazy" />
    
	<figcaption>
		<p>Yeah, bet. (interesting that ‘body’ is in English!)</p>

		
	</figcaption>
    
</figure>

<p>Immediately Virgilia throws out a bit of red.</p>

<blockquote>
  <p><b class="name smallcaps">Virgilia</b> So, <span class="red">anyone looking at George, Jessica, Maria, Rosa, or Genji’s corpses could confirm at a glance that they are dead</span>.</p>
</blockquote>

<p>Beato is confused (she is really cut off from the context a witch would normally have, huh) but goes ahead and confirms:</p>

<blockquote>
  <p>That’s right, <span class="red">at a glance, anyone could confirm that these corpses are dead, so it is absolutely impossible that they are just people playing dead</span>.</p>
</blockquote>

<p>Virgilia on the other hand has full context and must have some play in mind with this. Since as far as I know the events of this game are railroaded until the opening scene where Erika accuses Natsuhi, was she here the first time, or only on this run? Since piece!Beato is in a nebulous state of ‘reality’, perhaps Virgilia can talk to her on this run and not the other.</p>

<p>In any case, by establishing this in red, Gaap’s effort to hide the bodies has been negated. They had predicted that Natsuhi was being set up as the murderer, and thinking ahead, were trying to give her an alibi so she can’t be cornered into admitting Kinzo doesn’t exist. A surprisingly narrow goal, all things considered.</p>

<p>Beato says, since red truth doesn’t exist in ‘the human world’, even though it’s been confirmed very hard that the bodies are dead, Natsuhi has some leeway to insist otherwise. And perhaps more importantly, since she knows Natsuhi isn’t the culprit, she has ‘both truth and illusions’ on her side to protect Natsuhi.</p>

<p>(Now, is it possible for piece!Beatrice to be wrong about who the culprit is..?)</p>

<p>Smash cut (literally, Natsuhi smashes a cup) to the parlour, where is Erika demanding Natsuhi prove her alibi. The other adults are in attendance as well, and apparently their alibis are pretty solid. Even though they’re literally accusing her of murder, the dynamics are pretty similar to the family conference scenes: Eva snaps out an accusation, and Hideyoshi gets her to rein it in.</p>

<p>The narration keeps reminding us how narratively awkward Erika’s role as the detective is in this episode. More interestingly, it includes a first-person segment from a ‘witch’ point of view…</p>

<blockquote>
  <p>………It may be a bit late to mention this, but—well, no, this happens every time.<br />
As usual, the phone couldn’t connect to the police.<br />
Natsuhi said the police would come, but that wasn’t exactly true.<br />
Strictly speaking, the boat to pick them up would come tomorrow, and they would be able to use the radio on that boat to contact the police.<br />
Well, ……it’s not like I’ll let everyone live that long anyway.<br />
…<em>giggle</em>.</p>
</blockquote>

<p>This seems to be confirming rather explicitly that in this game, the narrator is literally just Lambda. Perhaps, like a GM, she is reciting this story to Battler and Bernie. It’s unusual to see the first-person pronoun in narration though!</p>

<p>Natsuhi goes to her room, and the point of view follows her. As usual, her internal monologue stresses the One-Winged Eagle. She ponders whether Phone Man might be waiting for her. The narration mentions that she knows how to use a naginata, if not well—what, there’s just gonna be a naginata lying about? That would be pretty funny. Surprisingly many martial artists in this family, huh.</p>

<p>Anyway, nobody is waiting. She considers locking the door, but imagines the others discovering the locked room and freaking out, and concludes it might put her in a position where she has to tell on Phone Man. So she elects not to. Interesting—we teased the possibility of a locked room and then rejected it.</p>

<p>So Natsuhi goes in the closet and has a think. She thinks about punishing Jessica in this exact way, in fact. Dang. She tries to figure out how Phone Man knew her favourite season was autumn (not realising, I suppose, that he could have hedged his bets pretty easily). She notes that the only person she ever told this information (people in this story have a shockingly good memory, huh) was Sayo, and therefore she must be an accomplice. This actually gets confirmed in red:</p>

<blockquote>
  <p><b class="name">Natsuhi:</b> <span class="red">I never told anyone but Shannon that I like autumn</span>.</p>
</blockquote>

<p>Really feels like a red herring but OK.</p>

<p>Unexpectedly, Hideyoshi enters the room. We get a POV shot for Natsuhi, I guess for the sake of visual representation she opens the door a crack…</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/84-pov.webp" alt="An out of focus closet door covers the room. Narration: .........Don't tell me... ...Hideyoshi‐san... ...is the mastermind...?! Or else, an accomplice...?!" loading="lazy" />
    
</figure>

<p>Natsuhi still fears observation by Phone Man (girl is so panopticon-brained) so she doesn’t come out to explain the situation. She lurks in there as Hideyoshi has a good cry. A new(?) track, <cite>Spiral</cite>, with slow, wordless, mournful operatic vocals, starts playing as she contemplates the end of the Ushiromiyas. (Good riddance.)</p>

<p>Of course, someone then comes in and attacks Hideyoshi. He says…</p>

<blockquote>
  <p><b class="name">Hideyoshi:</b> Wh‐who are you…?!</p>

  <p><b class="name">Hideyoshi:</b> How did you get in here……? ……Wh‐…what’s that…? ……W‐wait a second…! Wai………ngahh, ……mmpph—</p>
</blockquote>

<p>So: if we can believe this narration (whose narrative is this?), whoever it is, it is not someone Hideyoshi recognises at a glance. Even now, Natsuhi is immobilised by the thought Krauss could be harmed. As if they’re ever going to let him live!!</p>

<p>Anyway, Eva shows up and tries to open the chained door, but she can’t open it. Hideyoshi gets got!</p>

<p>Cut to Eva’s POV, with Natsuhi never having left the closet. Eva gets Gohda to cut the chain with little ceremony.</p>

<p>So, Lambda’s ploy here is to contrive a scenario where, at least by the presented narration, someone is hiding in the room but they are not the killer. Why, though? This whole game has been about Natsuhi’s ‘truth’, and also piling suspicion on her at every turn. Is this all a setup so that Bernie can have a blue truth that Natsuhi dunnit, Lambda can shoot it down with red, and then Bernie’s spent the whole game taking the bait around Natsuhi so she doesn’t have a hypothesis B left in the quiver..? That seems weak, there’s got to be more to it.</p>

<p>We get a death screen for Hideyoshi:</p>

<dl>
  <dt>Ushiromiya Hideyoshi</dt>
  <dd>
    <blockquote>
      <p>Corpse discovered in a guest room on the first floor of the mansion.</p>

      <p>He had been pierced through the back with a demon stake. Its tip reached as far as his lungs.</p>

      <p>Because he was lying face-down on the bed, suicide must be ruled out.</p>
    </blockquote>
  </dd>
</dl>

<p>The survivors quickly figure that this is a locked room. Kyrie further observes that there is no line of sight from the crack in the door to the bed where Hideyoshi died where someone could fire the stake.</p>

<p>Of course, it’s time to start probing this locked room like you’re Deviant Ollam at a hacker conference. Erika confirms that the shutters can’t be opened from the outside, and it’s time for her and Battler to start shooting again. Eva insists on moving Hideyoshi’s body so that it won’t be spirited away like the other ones. They wrap him in the bedsheets, which presumably serves to establish that there is no culprit hiding under the bed..?</p>

<p>Kyrie, rather too late, tells everyone to stop splitting up and going off alone so damn much.</p>

<p>We get what almost feels like a speedrun of the beats of episode 2: it’s a locked room, so the servants say at once it must be Beatrice. Erika goes to open the closet door, but Battler pulls her away to travel back to the parlour with the rest. Which means… Natsuhi <em>isn’t</em> discovered? And there is also a window for the culprit, theoretically hiding elsewhere in the room, to slip away as well? The door isn’t locked, so Natsuhi can leave, although perhaps Erika put one of her famous anti-tamper seals on it.</p>

<p>As a locked room this seems like it’s leaving some very obvious loopholes. But Natsuhi doesn’t make it back to her room without running into Erika. It’s not as damning as if she was caught in the room, but, OK…</p>

<p>Natsuhi invents a quick lie about turning back to check the lock on her room on her way to the palour, earning another +30 sus points. She does nevertheless manage to keep her cool on letting slip that she knows what happened. But she can’t escape being dragged to the parlour for another Parlour Scene from Erika, invoking once again her detective rights… I guess we’re almost at the <i>in media res</i> opener already.</p>

<p>Nevertheless, Erika/Bernie declare ‘checkmate’. Hmm. Feels premature, there’s got to be more to Lambda’s game than this.</p>

<p>A layer below, Team Piece!Beatrice note that they have a difficult fight ahead: they need to not just defend the existence of witches, but also Natsuhi’s innocence and Kinzo being alive. Which is notably not Lambda’s goal, just the goal that piece!Beatrice was hired by Natsuhi to do…</p>

<p>But before we can see the alleged checkmate, we get a quiet rain scene with Virgilia and the true Beato. She confirms Battler will no longer surrenderer, and further, that we now have all the information to solve the game as a whole:</p>

<blockquote>
  <p><b class="name smallcaps">Virgilia:</b> You gave him every message he needs by the end of the fourth game. ………That is to say, ……Battler‐kun possesses all the tools to reach the truth at any moment. ………However, he has a weak side. ……Because of that, even if the game goes on to repeat a hundred times, he will never solve it. He’ll just wander forever like someone trying to find the <a href="https://en.wikipedia.org/wiki/The_Blue_Bird_(play)">blue bird</a>.</p>
</blockquote>

<p>Hey, it just occurred to me, the Road Runner is a blue bird, isn’t it? What the coyote wanted all along… was happiness…</p>

<p>Anyway, Virgilia remarks, because of Battler’s weakness and Beatrice’s own flaws, she will never get the answer she seeks. That’s why, Virgilia says, Beatrice ‘called them here’, even if it seems the game has been stolen.</p>

<p>They need these asshole lesbians to get anything done around here, seems to be the gist.</p>

<p>Whether this brings victory or defeat, Virgilia says, it will be one ‘filled with compassion’. Which is kind of funny, because compassion is the last trait I would attribute to either Bernkastel or Lambdadelta. You have to see what’s missing, I guess.</p>

<p>The Purgatory allusion is made explicit, as Virgilia closes out the chapter with a little soliloquy.</p>

<figure>
	<img src="https://canmom.art/img/embed/umineko/ep5/85-purgatorio.webp" alt="Virgilia, standing close behind Beatrice: Beatrice. .........How long do you intend to stay there......neither alive...nor dead, .........not ascending to heaven...nor descending to hell, there in a daze on the peak of Mount Purgatory......?" loading="lazy" />
    
</figure>

<blockquote>
  <p>I am <span class="smallcaps">Virgilia</span>. I have guided him through Purgatory and brought him to you at its peak. ……And you are <span class="smallcaps">Beatrice</span>. You must choose whether to take his hand and rise up to heaven, or embrace him and fall into hell.</p>
</blockquote>

<p>‘Him’ could be Battler, but it seems like she is calling back to their namesake. In <cite>Purgatorio</cite>, the second volume of the <cite>Divine Comedy</cite>, Dante is guided by the Roman poet Virgil (I did not make the connection before but it’s so obvious looking up the reference!), until getting handed over to Beatrice for the last four cantos. So <span class="smallcaps">Virgilia</span> is getting literary with it. The narration elaborates: in Hell, you must famously abandon all hope, but the denizens of Purgatory still have it, which makes their suffering worse. Supposedly. So <span class="smallcaps">Beatrice</span> must be willing to jump off the mountain and (mixing mythologies a bit) open Pandora’s Box.</p>

<p>In short, <span class="smallcaps">Virgilia</span> is saying… <em>don’t die wondering</em>? <a href="https://diyhrt.info">;P</a></p>

<aside>...ugh unfortunately that old lesbian slogan seems to have been colonised by some fucking fashion brand</aside>

<p>The nekobokusu comes up again. <span class="smallcaps">Virgilia</span> says it is, in effect, cruel to leave the cat in a superposition. Bury it or take care of it, but don’t leave it in the damn box. Fun way to spin the quantum metaphor, I’ll give her that.</p>

<p>And, for a suitably dramatic note to close the chapter, the clock zips right up to midnight and we begin a chapter called <cite>The Great Court of Illusions</cite>. Which seems to be taking place in an enormous marble hall. More on that, soon!</p>

<p>Despite all the drama, I kind of suspect we won’t simply be killing off <span class="smallcaps">Beatrice</span> so decisively at this point. At least, not in any simple way. There are three-and-a-bit entire episodes to go, after all.</p>

<hr />

<p>OK, I’m back. Will I last a bit longer this time? I’m going to various things in June—among them, the Nova demoparty and Annecy film festival—and I’ve got a game demo to finish, so time is pretty tight these days. I would like to get Episode 5 wrapped in the next couple of weeks though.</p>

<p>Since we seem to be about to have the big parlour scene reveal, who do we think dunnit? The narrative so far has been rigged to point at Natsuhi in a comically overt way, with barely any effort to construct a plausible ‘witch narrative’. Given what we know so far, there is absolutely no difficulty in saying Natsuhi dunnit all. Which of course means she certainly did not, so the question is, who did?</p>

<p>If it is the case that everyone involved has alibis except Natsuhi, we do not have a lot of room to manoeuvre. But we don’t actually have a ton of red text about the latest murder. It wouldn’t be too hard to pin the blame on Krauss, right? Although he is allegedly a hostage, we have no outright proof of this, he’s simply missing. Admittedly, a complicated scheme to frame and emotionally torture his wife with multiple moving parts doesn’t seem like a very Krauss thing to do. Like, I’m not saying he wouldn’t <em>try</em>, but he’d comically fail at it.</p>

<p>Since Erika is The Detective, we can at least trust that scenes where she is present took place more or less as depicted. So there was <em>some</em> sort of locked room in which Hideyoshi was murdered, and Erika did encounter Natsuhi on the stairway right after. We do not actually know for sure that Natsuhi was the one who was hiding in that closet. We know very well that <em>somebody</em> could have been hiding in the closet, but it could equally have been Krauss.</p>

<p>If that was the case, we can’t disregard the narrative where Natsuhi was hiding in the closet entirely. It has to be ‘somebody’s truth’ that Natsuhi was being coerced into hiding. Not necessarily Natsuhi’s, mind you! If Krauss is playing dead, but had been forcing Natsuhi to cooperate with him, perhaps it would be legitimate to show a ‘truth’ in which Krauss was absent and Natsuhi was being coerced by a hidden third party.</p>

<p>With so many moving parts and openings still available, it’s hard to guess where exactly this is going. ‘Whodunnit’ in this scenario isn’t really the main thing; the main thing is, what does it reveal about Beatrice? It is too late now to speculate on that front, so we can pick this thread up in the next chapter. Briefly though, in this story, Beatrice is rather mercenary, and offers her services in narrative coverup to Natsuhi; this feels like it’s pointing to how <em>someone else</em> used the Beatrice story to cover up their own deeds. But that doesn’t actually tell us a great deal! So there’s got to be some other, more important dynamic to note here…</p>

<p>Until next time, friends.</p>]]></content><author><name></name></author><category term="livereads" /><category term="umineko" /><category term="ep5" /><category term="umineko" /><summary type="html"><![CDATA[in which Natsuhi can't come out of the closet]]></summary></entry><entry><title type="html">Mountainbytes 2026</title><link href="https://canmom.art/adventure/demoscene/mountainbytes-2026" rel="alternate" type="text/html" title="Mountainbytes 2026" /><published>2026-05-05T00:00:00+00:00</published><updated>2026-05-05T00:00:00+00:00</updated><id>https://canmom.art/adventure/demoscene/mountainbytes-2026</id><content type="html" xml:base="https://canmom.art/adventure/demoscene/mountainbytes-2026"><![CDATA[<p>A year ago, I went to the <a href="mountainbytes-2025">Mountainbytes Demoparty</a> for my first introduction to a subculture I would spend the next year seriously falling in love with. One year on, I’ve experienced my second Revision and Mountainbytes (and before that, last year, Evoke, Deadline, and Limelight).</p>

<p>Last year I also went to the rather crazy project of writing <a href="revision-2025">a ~17500 word long party report on Revision</a>, a project which took about half a year because, mysteriously, a past Bryn decided that she should review close to every single prod released at the party and the rest of us felt obliged to follow through. Rest assured that this won’t be happening this time.</p>

<p>We begin with Mountainbytes.</p>

<ol id="markdown-toc">
  <li><a href="#in-memory-of-mem" id="markdown-toc-in-memory-of-mem">in memory of mem</a></li>
  <li><a href="#mountainbytes" id="markdown-toc-mountainbytes">Mountainbytes</a>    <ol>
      <li><a href="#before-mountainbytes" id="markdown-toc-before-mountainbytes">before Mountainbytes</a></li>
      <li><a href="#the-party-itself" id="markdown-toc-the-party-itself">the party itself</a></li>
    </ol>
  </li>
  <li><a href="#the-meteoriks" id="markdown-toc-the-meteoriks">The Meteoriks</a></li>
  <li><a href="#mountainbytes-prods" id="markdown-toc-mountainbytes-prods">Mountainbytes prods</a>    <ol>
      <li><a href="#graphics" id="markdown-toc-graphics">Graphics</a></li>
      <li><a href="#demolab-beginner-demoscener-workshop" id="markdown-toc-demolab-beginner-demoscener-workshop">Demolab (beginner demoscener workshop)</a></li>
      <li><a href="#ohp" id="markdown-toc-ohp">OHP</a></li>
      <li><a href="#oldschool-and-alternative" id="markdown-toc-oldschool-and-alternative">Oldschool and Alternative</a></li>
      <li><a href="#pc-demo" id="markdown-toc-pc-demo">PC Demo</a></li>
      <li><a href="#the-revision-invite" id="markdown-toc-the-revision-invite">the Revision invite</a></li>
    </ol>
  </li>
  <li><a href="#the-wanky-philosophical-bit" id="markdown-toc-the-wanky-philosophical-bit">the wanky philosophical bit</a></li>
</ol>

<h2 id="in-memory-of-mem">in memory of mem</h2>

<p>There’s no good way to talk about this part. Content warning: suicide and death.</p>

<p>Last year at MountainBytes, I met <a href="https://demozoo.org/sceners/148039/">mem</a>, aka <a href="https://catgirl.global/@memdmp@catgirl.center">memdmp/7222e800</a> (<a href="https://estrogen.zone/~mem/">website</a>).</p>

<aside>I'll be using it pronouns, since that was its main pronoun.</aside>

<p>We spoke only briefly—I expressed admiration for <a href="https://demozoo.org/productions/367482/">the Rust intro</a> it and its group had running on a Steam Deck, and it told me a bit about Rust sizecoding. Later, I’d see its work, such as <a href="https://ansied.estrogen.zone/home/">ansied</a>, pop up at various other parties, with ‘estrogen.zone’ always pinging as a reassuring symbol of trans presence on the scene. And this year, it was on the organising team for the Mountainbytes, handling the graphics and music compos and server infrastructure. We didn’t get much chance to talk during the party.</p>

<p><a href="https://catgirl.global/notes/almlzdkwqyth00qg">mem ended its life about a week ago</a>, in the usual way that trans women go out. Its mother has written a memorial <a href="https://www.darthmama.org/">here</a>. As I write this, the Mountainbytes orgas and wider hacker scene are in mourning.</p>

<p>I do not claim to know the context of mem’s life. But everything I do know makes me feel it is a like being to canmoms; it seems easy to think that, had the timeline gone very slightly differently, had I got more involved in the Swiss scene, we could have been good friends. Which is a shadow of the weight everyone is feeling: what could we have done differently? What should we have noticed? What decisions did we make wrong? Where were our priorities skewed? Why didn’t we have more capacity? I was not at all in mem’s inner circle, but I know the structures of these thoughts painfully well.</p>

<p>It’s very hard to know what to write here. From what I hear, the demoscene and the hacker scene was a refuge for mem, something that was very important to it. So for the sake of remembering its work as much as anything, I want to celebrate this edition of Mountainbytes. But I am also furious that once again this world has taken someone so special as a creative, curious, and caring being like mem, and hurt it to the point that it could not go on.</p>

<p>the following is some personal feelings about this. I don’t know how appropriate it is to record them, as someone not particularly close to mem, but it felt important to write.</p>

<details>
  <summary>suicidality etc.</summary>

  <p>A past iteration of me was suicidal, at roughly the age mem was when it died; <a href="https://canmom.art/fallrose/">I also lost my friend Fall to suicide</a> in 2022 and this is bringing back a lot of those memories. I still can fish out memories of that time; the ways I imagined going out, the tortured logic by which I tried to figure out how to die without causing anyone the discomfort of finding a body. And I remember the friends who gave, with no small effort, a new context ‘I’ could exist in as my old life fell apart.</p>

  <p>There are many forms that suicidality can take. The forms I encountered feel, like all thoughts, stochastic: suicidal thoughts would simply manifest in conditions of great distress, produced by “thought-generating mechanisms”: in hacker language, ROP-gadget-like chains that were planted and incubated by inscrutable processes. The structure of the brain is no help to us here. When you are in the depths of it, all your memories of other times of distress are helpfully queried up and surfaced: every struggle and anxiety, every future that cannot be resolved, every force taking away control of your life will be injected into your context, and all the positive projects and good memories helpfully partitioned away.</p>

  <p>I know with near certainty that suicide and death will haunt the rest of this life. We will keep writing pages like this, for people we know more or less well, until one day—hopefully a long way off—perhaps someone has to write one about us.</p>

  <p>I never got to speak to mem about its experience of plurality; indeed, I did not even know about that side of mem’s life until after it died. Behind the front interface of ‘mem’ was a world, process-inhabitants, that are lost to us now.</p>

  <p>I think sometimes about how the expressive power that allows the infinite complexity of human behaviour also lets us generate the thought that we should die and the ability to act on it. In a computer, the abstract process we call a “program” can invoke a syscall that causes the operating system to shut it down: the substrate on which it exists will then remove its section from the computer’s memory and cease to process the instructions associated with it. The memory cells will be repurposed to belong to some other process. If other processes held references to it, they will be stale, and no longer resolve.</p>

  <p>But there can be traces that the program once existed. mem’s handle refers to memory; ‘memdmp’ refers to a <em>memory dump</em>, the process of copying the contents of a process’s memory into a file: a lasting record of an instantaneous moment of a constantly changing process. It is not possible to do this with a mind, and it would be kind of scary if it was. But there are memories; everyone who knew mem holds onto something of it.</p>

</details>

<p>I am grateful to have known mem at all, to be able to have participated in the worlds it inhabited. So much love to everyone who knew mem and made its life a little better.</p>

<p>May its memory be a blessing; may we hold it forever in the Wired.</p>

<h2 id="mountainbytes">Mountainbytes</h2>

<p>Mountainbytes 2026 was my one-year anniversary in the demoscene—a year that has been one of the most eventful in my life. I was very excited to come back and see the ‘Meowtainbytes’ crew which had formed the year before (‘so what is meowtainbytes, is that a demogroup?’ ‘it’s kind of a polycule’, to quote Ronja).</p>

<p>This year, I jumped to volunteer as a mentor in the beginner demoscene workshop, backing up <a href="https://demozoo.org/sceners/52696/">moovie</a> and <a href="https://demozoo.org/sceners/141392/">binary-sequence</a> in teaching a fresh cohort of potential demosceners. This was the same workshop that got me into the demoscene a year prior, so it felt like an important ritual: to become part of the vector of propagation.</p>

<p>Mountainbytes was no longer in Cham, but in Steinhausen, another town adjoining Zug. The new venue was a <em>very</em> modern town hall type of building, the centre of <a href="https://archello.com/project/dreiklang-steinhausen">the Dreiklang development</a>. Behind the glossy black tiles was a spacious hall lined with bright yellow vertical panels, autolocking glass doors, all sorts; it proved to be an excellent venue, perhaps slightly larger than last year.</p>

<figure>
	<img src="https://canmom.art/img/embed/demoscene/mountainbytes-2026/hall.webp" alt="View of the projector screen across a table in the Dreiklang main hall." loading="lazy" />
    
	<figcaption>
		<p>Striking yellow walls that look kinda purple in this lighting! Photo by <a href="https://social.coop/@jicka">jicka</a></p>

		
	</figcaption>
    
</figure>

<h3 id="before-mountainbytes">before Mountainbytes</h3>

<p>The trip to Mountainbytes happened at a pretty psychologically weird time for me/us; I won’t go into it but it came shortly after writing <cite><a href="/theory/plural">how many of us are in here</a></cite>, and the experience of the trip fed into writing <cite><a href="/theory/disaggregation-1">disaggregation</a></cite>. The demoparty came on the back of a very busy week first visiting <a href="https://baeddel.tumblr.com/">jackie</a> and some friends who were also visiting Northern Ireland, and then hopped over to London to play in an erhu performance at the Goldsmiths University Lunar New Year Gala. Each context inhabited by a slightly different species of canmom.</p>

<p>The former is mostly private, though I will give a nod to the lovely <a href="https://www.deeheritage.co.uk/the-sir-samuel-kelly-project">Donaghadee lifeboat museum</a>.</p>

<p>The latter was a really incredible celebration of Chinese dance and music traditions, put together by the <a href="https://www.gold.ac.uk/confucius-institute/">Confucius Institute</a>. After getting in a rather strange state of mind sitting in the unfamiliar university, walking past art exhibits of ISIS prisons and sitting in an empty classroom reading <cite>Persona</cite> under a very self-referential painting… I was able to start rehearsing with my teacher Wen Li and four other students for our performance of <cite>Horse Racing</cite>. An intense day of rehearsals got us all playing in time and we hammered out the final details of the performance.</p>

<p>I reckon we did a creditable job of playing the song (the rest of us largely in support of Wen’s expert performance, but it worked) and as an experience, it was amazing. I got to poke my head in to much of the rest of the show as well and oh my fucking god, Chinese dance traditions are the coolest shit?? It was fascinating seeing such a variety of both traditional and modern approaches drawing on many different parts of China, and of course a lot of Chinese dance involves these gorgeous flowing costumes which are just incredible in motion.</p>

<p>Naturally most of the audience consisted of parents of the students and other people associated with the Confucius institute, who lingered after the performance to enjoy a nice big Chinese buffet. Behind our performances was a video projection, for us mostly imagery of horses. I’m not entirely sure who made this, but I feel like there would be a ton of potential for integrating dance and realtime graphics if we could just get the right people to talk to each other about it.</p>

<h3 id="the-party-itself">the party itself</h3>

<p>The next hop took the canmom body-interface-platform to Zurich, then to Steinhausen by train. I had a bit of a rough time because for whatever reason, my mobile data refused to work for a couple of hours, making navigating the train system rather difficult. But I made it there in the end, found something to eat at the nearby supermarket, and settled in. The workshop students were by that point already getting going on their projects, but I was able to float around and see if anyone wanted to learn about shader programming; fortunately, some people did, so I wasn’t entirely extraneous.</p>

<figure>
	<img src="https://canmom.art/img/embed/demoscene/mountainbytes-2026/posters.webp" alt="Some posters adorning the wall of the Mountainbytes venue." loading="lazy" />
    
	<figcaption>
		<p>A few posters glimpsed on the wall. Photo by <a href="https://nextcloud.ezdk.org/index.php/apps/photos/public/K9O3OR6bpimHyqbaRrUaKXdEfCYec1JL">Maya</a>, CC-BY-SA.</p>

		
	</figcaption>
    
</figure>

<p>Mountainbytes is a small but very very friendly party. Within the larger demoscene ecosystem, in some ways it functions as a kind of overture to Revision, since both the Meteoriks shortlists and the Revision invite demo are traditionally released there and it shares many of the same orgas. We’ll talk about that shortly. But focusing on the party itself, this year they had a delightful horror/b-movie (b-moovie? sorry :p ) theme, with all sorts of posters sporting suitably awful computer graphics puns decorating the venue (submitted by a variety of sceners in the months before the party), and niche horror movie DVDs handed out in the prize bags. A fun little parallel to Deadline last year!</p>

<figure class="video hascaption"><div><iframe src="https://www.youtube-nocookie.com/embed/mvrFSdxmk0c" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
<figcaption>This year's Mountainbytes invite, featuring the posters from the poster contest.</figcaption></figure>

<p>I was hoping to finish the prod which would eventually become <cite>Shaderland: Swizzle’s Journey</cite> at Mountainbytes, so I spent much of the first day of the party partycoding. At some point it became clear it was not happening so I decided to shelve it and release at Revision instead, which considering how much further work was involved, was a very good decision.</p>

<p>The party featured a music performance by Baumann Bergmann Pokinsson. Unfortunately, at that particular moment I was having a somewhat rough sensory time so I had to duck out of the hall—hopefully someone else can comment on this!</p>

<p>Other anecdotes: after a minor pizza mishap in the complicated order, I ended up needing to go out and find one of the very few late-open restaurants in Steinhausen. I am not sure what the host made of this strange lanky British woman, unable to speak more than a word or two of German, coming into her fancy restaurant to order a basic margherita pizza as the only non-meat item on the menu. Hopefully she thought well of me. Switzerland is one of the countries where the shops and restaurants shut very early, so it was a little strange to walk the completely deserted streets.</p>

<p>I slept at the party hall, which was perfectly comfy, with a nice big room to set up our beds. Slightly more awkward was the auto-locking glass door: after making my way to the toilet during the night, I found that the toilet was considered to be in an outer area and I could not return to my bed… luckily, someone happened to pass by before too long and let me back in, or it could have been a very awkward night.</p>

<h2 id="the-meteoriks">The Meteoriks</h2>

<p>I was part of the jury for this year’s <a href="https://2026.meteoriks.org/">Meteoriks awards</a>. This is an annual award show taking place at Revision highlighting the best demos in various categories, each individually judged by a jury. So lemme talk a little about the experience of that.</p>

<p>I was reluctant to join the juries at first, because I can’t claim to have a huge amount of experience in the demoscene… but, after multiple calls to jurors went out, the inclination to join in won out over the reluctance, and they seemed happy enough to have me.</p>

<p>So, why? I was interested for a few reasons: it seemed like a place where discussions of the demoscene as an art subculture would happen. I wanted to see the process of this mysterious award show which I’d encountered last year, and I thought it would be a good motivation to actually sit down and watch all the hundreds of prods released over the last year.</p>

<figure class="video hascaption"><div><iframe src="https://www.youtube-nocookie.com/embed/iest_7_fh8g" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
<figcaption>The Meteoriks nomination gala at Mountainbytes.</figcaption></figure>

<p>I can’t say too much about the internal discussions because they are private by design. But it’s probably OK to say that I was on the juries for <a href="https://2026.meteoriks.org/laureates/#nominees-bv">Best Visuals</a> and <a href="https://2026.meteoriks.org/laureates/#nominees-bd">Best Direction</a>.</p>

<p>We could regard these as sibling categories because both of them are inherently cross-platform and also <em>extremely subjective</em>. That brings a set of conceptual challenges: how do you judge the ‘visuals’ of a Commodore 64 prod, with the limitations that entails, against a modern PC prod? How to compare an intro to a demo? How do you compare something which creates avant-garde, abstract visuals (i.e. a Wrighter intro) against something which aims for photorealistic rendering? How do you weigh a demo which has a lot of great shots but a few rough ones against a demo which doesn’t reach the same highs but is more consistent? What aspects of rendering fall under ‘technical achievement’ vs ‘visuals’, and how can we be sure the technical achievement jury agree on that front?</p>

<p>These are all questions on which people could very reasonably disagree. My own tastes, and my experience as a programmer, skew new-school, but I tried to be cognisant of platform and size limits. I was particularly interested in celebrating demos that broke new ground, using new techniques or doing things that hadn’t often been done in the scene before.</p>

<p>Still, I think I underestimated quite how much work being a juror would be! Although there were several stages of preselection to narrow the field, one of the categories still had a spreadsheet of hundreds of entries to filter through. (The other had a different procedure.) I tried to cover as much of the spreadsheet as I reasonably could, and give everything a fair shake; wherever possible (which is to say, for Windows and Linux demos) I made sure to run it on actual hardware. I did my best to ensure that every demo in consideration had at least two votes in the first stage of filtering, and the end I considered 262 prods (one of the other jurors managed to vote on 510, nearly all of them!). This led to a good few discoveries of quality demos I hadn’t seen, so it was worth the effort.</p>

<p>Award shows are always a bit of a dubious prospect. Had the historical dice fallen slightly differently, a different shortlist could have come out. (One demo actually got shortlisted after nearly being neglected for consideration, just because I’d reviewed it early before really calibrating my personal scale and given it a ‘Maybe’ which I later updated to ‘Yay’.) So if you disagree with any of our Meteoriks picks… yeah, fair enough! While it’s unlikely anyone would be able to spin up an awards show as high-profile as the Meteoriks, I would love to see personal celebrations of their favourite demos of the last year. Maybe I’ll write one.</p>

<h2 id="mountainbytes-prods">Mountainbytes prods</h2>

<p>I won’t be reviewing <a href="https://demozoo.org/parties/5272/">every prod released at the party</a>, but I will discuss some that stood out!</p>

<figure>
	<img src="https://canmom.art/img/embed/demoscene/mountainbytes-2026/watashi.webp" alt="A picture of me, a trans woman with red hair, smiling while backlit by the sun, blowing out the camera a bit." loading="lazy" />
    
	<figcaption>
		<p>I did not take a ton of pictures so here’s a random one of your girl walking through Steinhausen.</p>

		
	</figcaption>
    
</figure>

<h3 id="graphics">Graphics</h3>

<p>The winner of the voting was, perhaps not surprisingly for anyone who’s been in the scene the last few years, a work of the immensely talented digital artist and web dev <a href="https://demozoo.org/sceners/136847/">Steffest</a>: <a href="https://demozoo.org/graphics/388218/"><cite>the Matriarch</cite></a>. Steffest created a gorgeous portrait of an old woman in an Amiga palette, using his own custom drawing software <a href="https://dpaint.app/">dpaint</a> to colour it. There’s a timelapse of it too:</p>

<figure class="video"><div><iframe src="https://www.youtube-nocookie.com/embed/4pU8BU59fIE" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
</figure>

<p>Stef is one of those sceners who came to the demoscene with, evidently, a ton of art experience; all his pieces have the really strong eye for composition, form, and value structure that you only get by many, many hours of diligent studies, and indeed you can see an archive of his works going back to the 90s <a href="https://www.stef.be/graphics/">here</a>, in both traditional media and digital pixel art. Like many of Stef’s pieces, this seems to be a hybrid piece, first working in the values in a digital painting program and then bringing it to dpaint for a final colour pass.</p>

<p>One thing I really appreciate about Stef’s recent works is his interest in depicting older people. He’s got a great eye for creating interesting faces, and especially in these pieces, he brings so much depth to the characters’ expressions as their gaze is lost in the distance (or magical orb), creating a space to fill with your interpretation of what they may be feeling. Wrinkles and sepia palettes seem to be a great fit for the Amiga… but also of course on a thematic level, age and death seem to be kind of looming a lot on the demoscene at the moment, which is negotiating being a very nostalgia-oriented computer subculture that hasn’t really quite resolved what it is going to become for the new generation for whom Amiga boingballs are a bit mystifying. This is going to be something to talk about a lot more when we get to discuss Razor1911’s eponymous demo in the Revision writeup.</p>

<p>Vivid rendering of faces also formed part of hemostick’s entry <a href="https://demozoo.org/graphics/388216/">The Offering</a>, which was in many ways quite specific to Mountainbytes: not only playing on the party’s great love of cows (expressed among other ways in their Cowee mascot character), it also explicitly draws on the work of a Swiss artist, perhaps the most famous Swiss artist: HR Giger. So we get a looming, sinister cosmic cow in a highly Giger-like rendering style, composed with a striking horizontal symmetry. Unlike Giger’s, work it does not have the same preponderence of phallic mechanical imagery which proved so influential (dare I say ‘seminal’? ;p ) on future artists such as Tsutomu Nihei, but we can’t have everything.</p>

<p>Unlike demos and tracker music, which are forms of art incubated largely within the scene itself, digital art is not something that is celebrated but not really <em>cultivated</em> in the demoscene; if you want to learn to draw, on computer or otherwise, you probably need to go elsewhere. So artists in the demoscene tend to bring their influences with them. This can be seen vividly with the instantly recognisable works of Suule, who <a href="https://demozoo.org/graphics/388222/">this year</a> brought a hurt/comfort furry image of a battered cyborg in a classic 90s dithered rendering style. I really like Suule’s work; something about the way it constructs space it brings to mind 2000s indie games like <cite>Iji</cite>.</p>

<p>I keep meaning to enter graphics compos and not doing so. Maybe I’ll get something in later this year…</p>

<h3 id="demolab-beginner-demoscener-workshop">Demolab (beginner demoscener workshop)</h3>

<p>We had a packed Demolab this year, with an enormous variety of entries on all kinds of platforms: 256 byte DOS demos, web demos in Processing, even an oscilloscope music track! Since I was a mentor here, this is the category I <em>will</em> be talking about everything. Like last year, the participants were provided with a bunch of songs by sceners to use in their prods, allowing them to focus on visuals. The mentors would go around checking in and providing advice or support, and at a couple of points we gathered for discussion, but for the most part we let them all get on with it.</p>

<p>The prod I helped the most with was <a href="https://demozoo.org/productions/388397/">sin circles</a> by mahal. mahal travelled an enormous distance to get to the party, and I ended up sitting down for a lesson in the basics of Shadertoy and 2D distance fields—a hard road, but one which allows some of the most flexible and powerful effects. mahal took the basic ideas and iterated them into a cool revolving chain of boxes. It was really cool getting to see someone experiment and iterate on the tools. Everything flows from this.</p>

<p>I was particularly impressed to see someone produce an <a href="https://demozoo.org/productions/388385/">oscilloscope music</a> track. I have mentioned on various occasions that I think oscilloscope music is incredibly cool; I continue to think oscilloscope music is incredibly cool. I’m not sure exactly which software bluetonyum used. It may have been <a href="https://osci-render.com/">Osci-Render</a> or perhaps <a href="https://oscilloscopemusic.com/software/oscistudio/">OsciStudio</a>. In any case, for such limited time, they put together an impressive range of effects on top of the base drawing.</p>

<p>Jena had an entry that, like much of her work, reflects her fannish devotion to the history of the demoscene—in this case, a <a href="https://demozoo.org/graphics/388384/">photo</a> of some custom plushies she made. It’s kind of a high-context piece; one of the plushies represents one of her friends, minecraft youtuber <a href="https://www.youtube.com/@maximumg99">MaximumG9</a>, another a classic demo effect known as a <a href="https://democyclopedia.wordpress.com/2015/11/15/g-comme-glenz-vector/">glenz vector</a> which consists of a spherical-ish cluster of transparent triangles. Jena is one of the youngest people I know in the scene, drawn by an intense special interest in its history, and despite some fairly fraught interactions with older sceners it makes me really happy to see her continuing to produce quite personal works. I’m looking forward to seeing her technical skills and expressions evolve.</p>

<p><a href="https://demozoo.org/productions/388386/">Growth</a> by Razielle is one I saw develop over the course of the workshop. Using the browser rendering framework <a href="https://p5js.org/">p5.js</a>, it shows leaves made of ellipse segments growing on an archimedean spiral stem. I really respect Razielle’s dedication to figuring out her own effects with these tools, and combining the individual elements she learned into more complex effects! (Note that if you download this, you should serve it over HTTP using e.g. <code class="language-plaintext highlighter-rouge">python -m http.server 8080</code>, otherwise CORS requests may fail to load local assets such as music.) <a href="https://demozoo.org/productions/388388/">Mandaloopsie</a> by das-g, with help from Razielle, was the other to use p5.js, and das-g made the ambitious choice to create a different variation of its core effect for three different songs. The effect in question, as the name suggests, draws on <a href="https://en.wikipedia.org/wiki/Mandala">mandalas</a>, in this case interpreted through slightly inclined ellipses in various colours, first spinning and then growing into a chaotic ball. The effect can be quite hypnotic.</p>

<p>Bitgoat interpreted the event as a game jam and accordingly made <a href="https://demozoo.org/productions/388399/">a little flight sim</a> in Godot, with some procedural geometry. Another Godot prod came from huge NixOS fan <a href="https://martini.moe/">MartiniMoe</a>, who demonstrated the most foundational of demoscene arts: making cubes rotate.</p>

<p>gäss did something very cool, and implemented the <a href="https://en.wikipedia.org/wiki/Munching_square">munching square</a> algorithm as a set of tiny Linux intros. Sadly, on my distro/terminal, I can’t seem to get the output to display, but huge props to gäss for doing things the hard way and going straight for coding in assembly, all the more so for targeting Linux.</p>

<p>Bitflex0r made <a href="https://demozoo.org/productions/388390/">a cute little pixel animation</a> using Pygame, which has the nice advantage of being cross-platform =)</p>

<p>binary-sequence, one of my fellow workshop mentors, made <a href="https://demozoo.org/productions/388393/">a little Commodore 64 intro</a> which displays the letter H. I believe this was his first time using the platform, pretty cool to figure that out while also teaching everyone lol. Meanwhile, dominikr and mikerofone released <a href="https://demozoo.org/productions/388402/">a C64 scroller</a> inviting everyone to a small Swiss C64 party called Die Diskette.</p>

<p>It was really good to be able to stand in the hall and watch such a diverse set of first prods come up. My memory is hazy at this moment of writing, but I recall going up on the stage to give some brief comments on it. I hope I’ll be able to participate again in Demolab next year, perhaps try to provide some more structured support to people interested in learning my corner of graphics programming—admittedly, quite a hard thing to really teach in a weekend, since it’s heavy on both maths and boilerplate.</p>

<h3 id="ohp">OHP</h3>

<p>The Overhead Projector competition is one of the unique traditions of Mountainbytes. This year we only had two entries and I was a little distracted at the time the compo happened; unfortunately, recordings are not available so I can’t comment in a lot of detail on the individual prods (I have vague memories of cows), but I continue to find this very endearing. I hope I’ll actually be able to do one next year.</p>

<h3 id="oldschool-and-alternative">Oldschool and Alternative</h3>

<p>This is the catchall category for ‘not a PC’, and we had quite a variety here. ceemos even released a <a href="https://demozoo.org/productions/388323/">demo for a tiny LED-array conference badge</a>. I have not been able to track down the source although it is reportedly available, but I admire the spirit of turning every conceivable computer into a demo platform.</p>

<figure class="video"><div><iframe src="https://www.youtube-nocookie.com/embed/Xx9KVtufoe8" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
</figure>

<p>The <a href="https://demozoo.org/productions/388339/">overall winner</a> was a scroller, but the scrollingness can be forgiven because the effect is a really gorgeous pixel drawing of Boris Karloff in costume as Frankenstein’s monster in the <a href="https://en.wikipedia.org/wiki/Frankenstein_(1931_film)">1931 film</a>. Extremely on-theme for the party, and rather than simply scrolling, there was a pretty cool progression with the monster’s hands coming up and lunging to hurl the text into the air, giving it some visual interest. If all scrollers had this much going on I’d probably like the genre a whole lot more…</p>

<figure class="video"><div><iframe src="https://www.youtube-nocookie.com/embed/h5f0ipIurrQ" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
</figure>

<p>Spreadpoint’s Amiga demo <a href="https://demozoo.org/productions/388334/">+=+</a> should definitely also get some recognition. With a strong visual identity defined by structures of blue lines being drawn by white dots, it builds up steady hypnotic patterns, all nicely integrated with the music: the synth surges as a line passes near the screen. Over time, rectangular patterns give way to more complex orbiting pentagons and octahedra, and then to recognisable wireframe representations of the robot helmets of Daft Punk, as well as a model of two touching hands.</p>

<p>Sadly, a flaw with this one is that halfway through the eight minute runtime, the effects start to repeat—this combined with the overall slow pace makes it feel like it is on the long side, and would have been better served to hit a definite ending. But the minimalist approach is very strong! I’m excited to see the next prod Spreadpoint do.</p>

<h3 id="pc-demo">PC Demo</h3>

<p>The PC Demo compo was, as has been the case since Revision started releasing their invites at Mountainbytes in 2024, won by the Revision intro—but honestly deservedly so, I’ll have to give that one a section of its own since there is so much to say about it. First, though, other PC prods: we had some compofillers (including <a href="https://demozoo.org/productions/388343/">a farjan</a> by the group Siegerländerfinnlandliebhabergruppierung which I mention largely so that I can put the name of the group Siegerländerfinnlandliebhabergruppierung). Ernie had <a href="https://demozoo.org/productions/388192/">a nice little Cables thing</a> with some particles.</p>

<p>There were a couple of 256byte prods for Linux. <a href="https://demozoo.org/productions/388345/">Orange vs Green</a> by dominkr helpfully included clear instructions on how to actually run a 256byte Linux prod, although unfortunately didn’t seem to work quite right on an ultrawide aspect ratio. Still, it’s cool to know that this is even possible on Linux! And Kandid’s <a href="https://demozoo.org/productions/388344/">Say Hi</a> was very sweet.</p>

<p><a href="https://demozoo.org/productions/388340/">BHACK</a> by Japotek and Spinning Kids appeared to be showing off some raytracing effects, including reflections and refractions, in an OpenGL renderer using various test models including the Nefertiti bust and a chess set. Running it again at home at 3440x1440, some impact was lost to framerate drops, but helpfully the creators included the shader code along with the actual executable, so we can take a look inside…</p>

<p>Turns out it’s actually doing something pretty interesting: it’s tracing rays in the fragment shader using a custom BVH data structure that is passed in as a texture, two pixels per BVH node. I assume the BVH construction happens on the CPU; it’s not present in the shader. Really interesting concept, and a very oldschool (read: before compute shaders) way of doing things! It just needs a little optimisation and some more presentation polish—it seems like all the effort has gone into the raytracing code, and having some more conscious direction and original models would bring a lot to it.</p>

<figure class="video"><div><iframe src="https://www.youtube-nocookie.com/embed/_T6fea-n8Z8" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
</figure>

<p>The most substantial demo not to be the Revision invite was <a href="https://demozoo.org/productions/388346/">Δ</a> (that’s the Greek letter Delta), a 4K by Team210 and Epoque. Sadly this is the only one in the set not to work under Wine, so dust off your Windows partition ;p</p>

<p>As the demo begins, the camera steadily rises up a column of white, intersecting cubes, pulsing and spinning in time to the music. As it goes on, more complex effects layer up, including VHS-like distortions and subtle chromatic aberration. Coloured stripes appear in colours resembling the pan pride flag and then, abruptly, the cubes become smooth and you realise that they were an implicit surface all along.</p>

<p>Short and sweet, clear art direction and well-choreographed: it’s a very solid 4k! I was even thinking I might vote for it over the Revision invite, just for the sake of favouring something other than ‘Revision wins every year’, but <em>then</em>…</p>

<h3 id="the-revision-invite">the Revision invite</h3>

<p>Revision is the largest pure demoparty and so its invites tend to be a pretty major event. This year, they brought together a group of largely UK-based sceners, which means that I am friends with pretty much everyone in the credits lol.</p>

<figure class="video"><div><iframe src="https://www.youtube-nocookie.com/embed/dYpy5PCMS0Y" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
</figure>

<p>The demo is an outright short film. It is by far the most elaborate Revision invite I’ve seen (and I’ll be excited to see next year’s answer). It centres on the character Evilbot from two prior invites, who became something of a demoscene meme.</p>

<p>Let’s quickly run down those credits! In the director’s chair was fellow Scottish scener <a href="https://demozoo.org/sceners/66552/">Mrs Beanbag</a>, and her partner <a href="https://demozoo.org/sceners/63755/">Aldroid</a> is credited as the ‘associate producer’. <a href="https://demozoo.org/sceners/3845/">Halcy</a> is further credited as ‘assistant director’. My friends <a href="https://demozoo.org/sceners/138609/">Vurpo</a> and <a href="https://demozoo.org/sceners/90373/">RaccoonViolet</a> worked together on the character designs and 3D models, with <a href="https://demozoo.org/sceners/90946/">Ando</a> credited for 2D graphics (character faces and the Slipstream logo). <a href="https://demozoo.org/sceners/3048/">Jeenio</a> coordinated musicians <a href="https://demozoo.org/sceners/1981/">jco</a> and <a href="https://demozoo.org/sceners/5879/">Gasman</a> to cover the multiple tracks in the demo, and <a href="https://demozoo.org/sceners/89891/">Enfys</a> covered further sound effects while <a href="https://demozoo.org/sceners/80132/">Bus Error</a> and <a href="https://demozoo.org/sceners/852/">Ziphoid</a> voiced the characters. I’m told most of the code was written by Halcy, Aldroid and Mrs Beanbag; Gasman is also credited for ‘additional code’. The full repo is available on <a href="https://codeberg.org/aldroid/revision-2026-invite">Codeberg</a>, with the commit history squashed.</p>

<p>Evilbot’s story began back with 2013’s <a href="https://demozoo.org/productions/48345/"><cite>This Is Revision</cite></a>, which featured a round blue-eyed robot singing a saccharine song about the party only to be interrupted by the sarcastic, dismissive interjections of a black-and red robot with a triangular jaw speaking in a harsh monotone speech synth. The robot was soon named ‘Evilbot’, its counterpart ‘Goodbot’. By the end of the intro, Evilbot takes over entirely to an aggressive dubstep soundtrack.</p>

<p>2016’s <a href="https://demozoo.org/productions/151904/"><cite>The Return</cite></a>, by a different crew, added a kind of origin story for Evilbot: an aspiring demoscener, Evilbot was disqualified by a party software bug and thus went on a campaign to cause mischief at the party, such as making the toilet tunnel even longer. Most notably, <cite>The Return</cite> was related mostly in rhyme, and towards the end it featured Evilbot singing a duet song.</p>

<p><cite>The Golden Disk</cite> picks up the story: Evilbot is now cast as not just a pantomime mischief-maker, but an avatar of the evils of tech at large—particularly, cloud computing. (In this, it follows the contours of a recent trend of self-reflective demos such as <a href="https://www.pouet.net/prod.php?which=96966">Fairlight’s 13:37</a>, which place the somewhat impenetrable creative ethos of the scene in opposition to big tech and AI.) TGD sets itself up as a pastiche of Saturday-morning American cartoons, most specifically <a href="https://en.wikipedia.org/wiki/The_Transformers_(TV_series)"><cite>The Transformers</cite></a> (1984-7), and naturally it has to lovingly one-up <cite>The Return</cite> with a genuine banger of an 80s-style theme song for the d-d-demoscene by Gasman. (Indeed, songs with lyrics would prove to be a real theme at Revision, but we’ll get into that in the next article!)</p>

<p>Using a custom OpenGL renderer which can also be compiled to a WASM+WebGL target, the demo is largely rendered with cel-shading; for the most part, it is lit by a single directional light with sharp shadows and a lot of flat grey surfaces that almost give it a Sketchup kind of vibe. The result has a clear stylistic coherence, though I found myself wishing for some slightly stronger colour picks.</p>

<p>Although the character designs are incredibly charming (I love Evilbot’s samurai-style armour), the character animation is—perhaps appropriate to its inspirations!—quite limited, and perhaps the main flaw of the demo; there is little sense of weight, particularly in walk cycles, and in many cases the animation is quite stiff. But these minor flaws do not matter at all really, because the concept is just so lovely and the overall direction is immensely strong: there’s a huge variety of delightfully constructed scenes and the story arc perfectly nails the tone of its inspiration, as well as providing a pretty overt theme of personal transformation (fittingly for a prod with as many trans people working on it as this one), as Evilbot reforms his evil ways and transforms into a VW van after a suitable lecture from <del>Optimus Prime</del> the E-Werk.</p>

<p>Fleshing out this story are cute little scenes that make it clear just how much fun the crew were having with it: the Amiga’s cat ears, the evil Clouds turning into herds of good Clippies, the Spectrum’s buzzing synth voice as it catches the Golden Disk, Evilbot falling into the Bonzomatic default shader tunnel, 13:37 on the clock, the tiny <a href="https://www.pouet.net/prod.php?which=69701">Kevin</a> plushie. And in van form, Evilbot is driven by Goodbot from the original <cite>This Is Revision</cite>, and a brief musical reprise of Goodbot’s song even comes in as Evilbot remembers and frees Goodbot.</p>

<p>So, yeah, <cite>The Golden Disk</cite> charmed my socks off, and I had to vote for it after all. I was very impressed that Mrs. Beanbag and Aldroid were able to keep it under wraps for the whole of Mountainbytes. I remember tracking them down to give some very effusive congratulations.</p>

<p>I recall someone remarking that this belongs in a notional ‘British style’ of demos which don’t take themselves too seriously; my demolore isn’t really good enough to furnish what other demos might belong to this style but I can believe it. Alas, the precise details of the conversation have escaped as I write these words… I feel like I need to study the ‘art history’ of demos more strongly to be able to comment better on this kind of thing.</p>

<p>This is not as I initially thought Mrs Beanbag’s first time directing a demo… but regardless she rules, I can’t wait to see what she does next. The fact this appears to have been coordinated very consciously as a <em>film</em>, with a director, storyboards etc., is interesting—while I certainly enjoy the abstraction and technical wizardry of most demos plenty, I was drawn to the demoscene from my broader interest in animation, so when I see demos adopting the formal elements of other types of animation (not necessarily just narrative film), I find it quite exciting.</p>

<h2 id="the-wanky-philosophical-bit">the wanky philosophical bit</h2>

<p>Of course, overall, <cite>The Golden Disk</cite> must function as a party invite, so its story must revolve around the demoparty, amusing regulars and intriguing outsiders; and it is also mostly a pastiche of an older style of animation. But, consider how Gainax emerged out of creating the pop-culture stew of the Daicon III and IV intros. I do not know where we will go from here. Many things are possible.</p>

<p>I wrote last year about how the Line Rider subculture matured over time, formally and thematically, and indeed I <a href="https://www.youtube.com/watch?v=Vt5_yCVqgKw">recently had the chance to interview Bevibel and September on that subject</a>. While ‘story demos’ are nothing new, I am fascinated by the idea of similar shifts happening within this subculture. So I am continually intrigued by the times that demos explore moods and types of storytelling that they had not before (for example, Conspiracy’s atmosphere-drenched <a href="https://demozoo.org/productions/155058/"><cite>Darkness Lay Your Eyes Upon Me</cite></a>, now ten years old!). But there will be a great deal more to say about that when we come to write about Revision, and <cite>Razor1911</cite>!</p>

<p>‘Why are we doing any of this’ is a question that will eternally be asked for as long as there is such a thing as a demoscene. A moving target, too, for the thing we call ‘the demoscene’ is a composite thing; over time, its shape changes as people come and go and change. If, in 32 or 64 or 128 years, people still identify what they’re doing as a ‘demoscene’, it might not resemble today’s spread of activity at all… and what exactly will be preserved is difficult to say.</p>

<p>Demos are simultaneously a type of short film or music video to be viewed in the language of those media, a technical demonstration of computing judged on arcane criteria, a personal expression to a specific subculture… well, the same is perhaps true of all art. Why am I drawn to pursue realtime graphics, when results could likely be achieved faster in Blender, without having to reinvent quite so many wheels? Because on some level I want to understand… the final film is part of the expression, but so too are the processes which gives rise to it, both in the moment of running the software, and the longer process of conception and development that blends indistinguishably with living.</p>

<p>For a bunch of people, the demoscene is a refuge: the party hall, closed off and glittering with computers, is a place where for a brief window the rules can be different. Here, you might find people who actually understand the strange contexts that inhabit your head and remain so opaque to everyone else, the particular(ly autistic) ways of being we occupy, these thought-things which bloom so unpredictably in the wider population. I inhabit a bunch of different contexts, and many of them would be equally alien to most sceners, but this computer graphics thing is evidently quite mysterious to most of my friends back here. It is hard to speak of this because online the demoscene is so abrasive; I would never have imagined it would be so welcoming in-person.</p>

<p>Humans are creatures which build structures in our heads. No matter what the field of engagement with the world, it is rich in jargon, esoteric knowledge, criteria to optimise against, histories to know, etc. etc.; and then we absorb all of that, build mental representations, and eagerly look for another layer to add. This is our “magic”; this is the significance. Understand something is the intimacy of representing its structure inside yourself.</p>

<p>Next up: let’s talk about the project I’ve been working on for the last year, <cite>Shaderland</cite>.</p>]]></content><author><name></name></author><category term="adventure" /><category term="demoscene" /><category term="demoscene" /><summary type="html"><![CDATA[One year after joining the demoscene, we return to Switzerland for a profoundly sorcerous time.]]></summary></entry><entry><title type="html">Disaggregation, part one</title><link href="https://canmom.art/theory/disaggregation-1" rel="alternate" type="text/html" title="Disaggregation, part one" /><published>2026-03-11T00:00:00+00:00</published><updated>2026-03-11T00:00:00+00:00</updated><id>https://canmom.art/theory/disaggregation-1</id><content type="html" xml:base="https://canmom.art/theory/disaggregation-1"><![CDATA[<p>this one is going to be a little different.</p>

<p>everything we write that isn’t dashed off in a few furious locked-in hours must be understood as a collaboration, right?</p>

<p>in this article, we do not attempt to hide the seams. this is not without editing but we have tried to preserve what is important of the pheromone-thought-traces of the ephemeral mindbeings which created it.</p>

<p>the purpose of this article is to create shapes. we hope that you will follow them, reproduce them in your mind, and then make of them what you will.</p>

<p>ok. here’s the mic</p>

<ol id="markdown-toc">
  <li><a href="#initiation" id="markdown-toc-initiation">initiation</a></li>
  <li><a href="#the-first-dialogue" id="markdown-toc-the-first-dialogue">the first dialogue</a></li>
  <li><a href="#the-dracula-thing" id="markdown-toc-the-dracula-thing">the dracula thing</a></li>
  <li><a href="#digging-into-the-pile-of-secrets" id="markdown-toc-digging-into-the-pile-of-secrets">digging into the pile of secrets</a>    <ol>
      <li><a href="#thinking-phenomena" id="markdown-toc-thinking-phenomena">thinking phenomena</a></li>
      <li><a href="#the-i-function" id="markdown-toc-the-i-function">the ‘I’ function</a></li>
      <li><a href="#human-experience--fragmented" id="markdown-toc-human-experience--fragmented">human experience // fragmented</a></li>
      <li><a href="#word-matryoshka" id="markdown-toc-word-matryoshka">word-matryoshka</a></li>
    </ol>
  </li>
</ol>

<h2 id="initiation">initiation</h2>

<p>It has been about a month since we wrote <a href="./plural">“How many of us are in here?”</a>; since then, things have progressed, as is their wont.</p>

<p>Figuring out that it suddenly makes a great deal more sense to feel that you’ve spent most of your life being multiple ‘people’ without realising it is a bit of a trip.</p>

<p>Perhaps more disconcertingly, while you’re doing unusual things such as adopting a different first-person pronoun about it (a social act which moves you towards one group’s symbolic order, and away from another), you’re not entirely sure that your conclusions wouldn’t be potentially available to most of humanity, if they chose to adopt a similar interpretive frame. Perhaps you were fictional but perhaps every person is just as fictional.</p>

<p>There are of course <em>many</em> frames that we can use to describe this moment. We probably don’t currently meet the clinical model of ‘DID’, even if you drop the requirement that it only emerge as a result of horrible childhood trauma. According to the categories of modern psychiatry, we could probably find less ambitious boxes to be housed in, such as an episode of ‘depersonalisation’.</p>

<aside>obligatory link to <a href="https://thenewinquiry.com/book-of-lamentations/">book of lamentations</a>... <small>oh, it was Sam Kriss who wrote that article? huh, fancy that, makes a kind of sense, it's a very Sam Kriss writing style isn't it.</small></aside>

<p>But: we find the lens of ‘plural system’ theory, developed not in the halls of academia (although hardly without their influence) but by creatures of the Wired such as ourselves, a much more welcoming starting point to parse this experiential blender.</p>

<p>We intend to conduct much of this writing as a dialogue. A dialogue of course needs characters to inhabit it.</p>

<p>While contemplating our past behaviour we have identified certain ‘stances’, or modes, that seem to be relatively concrete poles of thought/behaviour. However, we also think that the personas that we form in different contexts are most likely composites; these stances may exist on the ‘level below’ the ‘interface’ of various personas which draw on them.</p>

<p>As well as attempting to draw out our thoughts on this plurality business, we also want to discuss some books we read recently: <cite>Persona</cite> by Aoife Josie Clements, and <cite>A/S/L</cite> by Jeanne Thornton. Both of these books came at just the right moment and hit really damn hard. It feels impossible to attempt to separate reading these books from everything else that’s going on; however, the bulk of book discussion is in the <a href="./disaggregation-2">second part</a> and this part is more on the theory groundwork side.</p>

<h2 id="the-first-dialogue">the first dialogue</h2>

<aside>approximate dramatis personae:<br />green voice = scientist|practical|curator<br />red voice = mystic|rogue<br />some superposition inevitable</aside>

<ul class="chat">
  <li class="person1">Hiiii girls. We’re doing this thing. Hope everyone’s cool with the introduction. I wanted to write in a way that’s a bit less cryptic than some of what we’ve expressed over the past few days…</li>
  <li class="person2">greetings to beings. we’ve been (we’ll stay a ‘we’ even though we are only one ‘character’ here) a little dormant over the past day but we’re around, don’t you worry!! i think we find it easier to find existence-thought-paths when we are on a methylphenidate (or of course on the mushrooms instruction set) or read a book like A/S/L which really brings out the sorta tearful fervour that reading about trans girls having meaningful psychosis does? but yes we will be the mystic. behold our works! and so forth ehehe</li>
  <li class="person1">
    <p>Hey!</p>

    <p>Damn, OK, it’s good to realise it’s possible to switch gears like this. So, we’re trying to bring out some of the girls in order to… hold a discussion, I suppose? To get our brain a bit more used to noticing switching and cultivate an ability to reach for these alternative pathways when we’re a bit stuck in one mode.</p>
  </li>
  <li class="person2">
    <p>yeah that’s cool. glad you’re taking this idea of doing a working.</p>

    <p>for context to non-bryn readers, we have a writing-artefact here from a bryn-persona of yesterday. which we’re sorta drawing on to work out the characters here…</p>
  </li>
  <li class="person1">Yes. In our memory, it came to us while lying down in a moment of abrupt revelation, after turning over the question of what kind of ‘Bryns’ there were for some time. At the time, I guess you could say we were kinda… should we say schizoposting? Is it far enough to count as schizo?</li>
  <li class="person2">you can label it whatever, we said what we needed to say in that moment right? don’t try to disavow it</li>
  <li class="person1">OK, yeah, I mean we were definitely thinking of the concept of ‘psychosis’ and ‘schizo’ at the time because of Abraxa though, weren’t we?</li>
  <li class="person2">
    <p>sure, yes, we are trying to move through the ‘without love it cannot be seen’ planes!!</p>

    <p>but also you know… there is some sort of temptation here to write this all off as a passing episode and we don’t want the collective to do that. we want to continue to be like this sometimes. we hope it will turn out better for us than it does for abraxa but we fervently admire abraxa-processes</p>
  </li>
  <li class="person1">Abraxa’s depiction was very, very striking. Sash and Lilith also, but… yeah. It’s like xraf’s metaphor about taking the risk of going into the deep water. To take on danger and be willing to be changed. And Abraxa’s metaphors, her fragile worldview, System D, the Sorceress… <em>goddamn</em>, right?</li>
  <li class="person2">yeah goddamn</li>
  <li class="person1">yeah goddamn. Like…  Jeanne truly figured out how to follow the contours of that world, to express what it means and why. It reminds us of course of when we encountered xraf’s writing, how long ago now?</li>
  <li class="person2">we first received a signal from xrafstar-beings around the howling dogs time-instant-jiken</li>
  <li class="person1">So… 2012, 2013? Somewhere around then. Around 14 years ago. A time when we were disintegrating; we had hit a dam and needed a new current to follow.</li>
  <li class="person2">ehehe there’s all those physicsy fluid dynamics metaphors again</li>
  <li class="person1">Well, that’s us. And me especially, since I’m the scientist apparently.</li>
  <li class="person2">you’re pretty scholarly at any rate. that is a role that is needed.</li>
  <li class="person1">
    <p>Heh, thanks, I think.</p>

    <p>But I’m kind of bringing it up because Jeanne brings up that metaphor in the endnotes of the book. I’m not sure I entirely agree with it; I sorta think of it as a moment of reconfiguration or reconstruction, perhaps? Like, a vehicle that was shaking itself to pieces on that road. It needed rebuilding to run again.</p>
  </li>
  <li class="person2">construction, reconfiguration… is the big theme of all of this. but we can use whatever metaphors serve the process. metaphors are sigils. you draw the logic gate on the circuit diagram, you structure the world to match, the process diverts one way or another… that is how these things are done.</li>
  <li class="person1">Right, speaking of metaphors, we should probably try and lay some of this shit out.</li>
  <li class="person2">this seems like a moment to speak paragraphwise, if you would. we will be here to observe &lt;3</li>
  <li class="person1">All right then. Should we post the Dracula thing first?</li>
  <li class="person2">oh we should <em>definitely</em> post the Dracula thing first!!</li>
</ul>

<h2 id="the-dracula-thing">the dracula thing</h2>

<p>The following <a href="https://bsky.app/profile/canmom.art/post/3mf7zxq7bck23">was originally composed as a series of Bluesky posts</a>. For context, the original translation of <cite>Castlevania: Symphony of the Night</cite> by Jeremy Blaustein, who decided to make a very memorable ‘creative’ translation, throwing in some French novel allusions <a href="https://web.archive.org/web/20240324155701/https://legendsoflocalization.com/lets-investigate-a-miserable-pile-of-secrets/">which were not present in the original</a>:</p>

<figure class="video"><div><iframe src="https://www.youtube-nocookie.com/embed/8uxzJMVPDJ4" frameborder="0" allow="accelerometer; encrypted-media; gyroscope" allowfullscreen="" loading="lazy"></iframe></div>
</figure>

<ul class="chat">
  <li><b class="name">richter:</b> your words are as empty as your soul! mankind ill needs a saviour such as you!</li>
  <li><b class="name">dracula:</b> what is a man? perhaps an assemblage of contextual thought-generating mechanisms, and a representation returned when querying for ‘self’?</li>
  <li><b class="name">richter:</b> what?</li>
  <li><b class="name">dracula:</b> now then, concurrency and parallelism,</li>
</ul>

<hr />

<ul class="chat">
  <li><b class="name">richter:</b> but if these person-process-constructs are compositions of modular elements, any basis for identifying one as being ‘the same’ as an earlier one, or attributing thoughts to one or another concurrent mode, is completely arbitrary!</li>
  <li><b class="name">dracula:</b> the same could be said of all self-concepts!</li>
</ul>

<hr />

<ul class="chat">
  <li><b class="name">richter:</b> you steal mens’ souls, and make them your slaves!</li>
  <li><b class="name">dracula:</b> the word is ‘introject’, and at worst it’s piracy, not stealing–</li>
</ul>

<hr />

<ul class="chat">
  <li><b class="name">dracula:</b> actually, if you really think about it, the way we assemble personalities from fragmentary pieces of the wider culture is kind of like bittorrent, isn’t it?</li>
  <li><b class="name">richter:</b> can the regular dracula start fronting again please, i can’t keep up with this</li>
  <li><b class="name">dracula:</b> have you read deleuze?</li>
</ul>

<hr />

<ul class="chat">
  <li><b class="name">richter:</b> accepting something into your ontology doesn’t require identifying with it yourself!</li>
  <li><b class="name">dracula:</b> if it doesn’t carry that potential, are you really taking it seriously?</li>
  <li><b class="name">richter:</b> hang on i think i’m out of funny lines from castlevania can i get back to you</li>
</ul>

<hr />

<ul class="chat">
  <li><b class="name">dracula:</b> it was not by my hand i was once again given flesh! i was summoned here by bryns who wish to pay me tribute!</li>
  <li><b class="name">richter:</b> this is a really absurd way to come out? if that’s what we’re doing?</li>
</ul>

<hr />

<ul class="chat">
  <li><b class="name">dracula:</b> look, if that girl eva could write a formative fanfic about alucard being trans, then we can be plural in a silly bluesky thread</li>
  <li><b class="name">richter:</b> which “we” do you mean!!</li>
</ul>

<p>The time it seems has maybe come to elaborate on what the hell Dracula was on about in this exchange.</p>

<h2 id="digging-into-the-pile-of-secrets">digging into the pile of secrets</h2>

<p>So, let’s try and build this up, piece by piece. I’ll talk about the model that we ‘bryn-processes’ have reached; then we can resume the dialogue.</p>

<aside>and from over here, we behold the proceedings. in a chuuni way of course!</aside>

<p>Right. So, let’s start with <a href="https://canmom.art/crit/baru/tyrant-9-brains">something out of <cite>Baru Cormorant</cite></a>: the ‘inner law’. This is a concept of a soul, attributed to a fictional culture in the book. After murdering her wife Tain Hu in a horribly traumatic way, in the subsequent novels we can say Baru becomes a plural system by gaining a ‘tulpa’ of Hu; this is framed in the novel as the result of a split-brain condition, and accordingly the literary device of right-aligned text is used to express the tulpa’s occasional interjections. In any case, the important part is the concept of <em>what</em>, exactly, Baru has captured of Tain Hu. Here is a relevant exchange:</p>

<blockquote>
  <p>“Don’t look that way,” Yawa said, “you asked. To us a soul is not a great ineffable mystery. People are, after all, not very mysterious. A soul is simply the text of a person’s inner law, and a mind is the act of reading that law into the world. Through study and meditation you can read another soul’s law and copy it into yourself until it comes alive, so that you now have two books of law, two selves, two souls. Himu, Devena, and Wydd all studied and practiced their virtues so completely that they became those virtues. That’s why we emulate them.”</p>

  <p>“But I haven’t studied the ykari. I haven’t meditated on a virtue… I just swear by them, very often, I take their names in vain.…”</p>

  <p>“No, child. Your obsession was with a woman. Through study and obsession you have built inside yourself the soul of Tain Hu.”</p>
</blockquote>

<p>Elsewhere in the novel, the idea of inheriting a soul is discussed; a mathematician, Kimbune, claims that a soul has been inherited along with a transmissible cancer once carried by her husband, because the inheritor of the cancer expressed an identical stubbornness. Baru prods her about memories, the question of whether Abdumasi could remember something he shouldn’t, but it is not memories that Kimbune is concerned with: it is a way of being and thinking. <em>Dynamics</em>.</p>

<p>Contra Xate Yawa, we continue to find people very mysterious. But the concept of an ‘inner law’ is a fruitful one. We can think of it as something like a program: the ‘system’ which determines what a person would think, say and do in any given situation.</p>

<h3 id="thinking-phenomena">thinking phenomena</h3>

<p>We should briefly comment on the subjective experience of thoughts, here. Like many but apparently not all people (the quoted numbers seem to vary a lot), we experience a highly verbal stream of consciousness (aka ‘inner monologue’ or <a href="https://en.wikipedia.org/wiki/Intrapersonal_communication">‘intrapersonal communication’</a>). We tend to think in sentences; sometimes images (we have come to suspect we may have a mild aphantasia).</p>

<p>But where do these thoughts ‘come from’? For us it is as if they ‘bubble up’ in some vague form: a sentence is coming, but we have to sort of let it run through to actually become language. After a sentence has been thought, we can perceive it from the point of view of the currently ‘active’ sentence.</p>

<p>Not every thought is rendered verbal like this, however. We do not have to consciously, verbally think through every action we might take, although sometimes we will talk ourselves through the actions that need to be taken (incantation: “a series of operations need to be performed in sequence”.)</p>

<p>Indeed, since we started observing all this closely, we notice that often our body will start carrying out an intention without any conscious or verbal direction: for example, a need to plug in our phone charger would be directed to the series of movements, even if the conscious linguistic part of the brain is busy thinking very hard about something else, and was slightly surprised to realise that our body had seemingly carried out some actions on its own.</p>

<p>Now, enter the effects of psychedelics (c.f. <a href="https://canmom.art/theory/analogistically">analogistically</a>). We should be very careful in interpreting psychedelic experiences as genuine insight into the ‘inner mechanisms of consciousness’. But it is still useful to describe them.</p>

<p>When under the effects of, say, mushrooms, it is as if some of these capacities will become separated out. We may find ourselves standing in a fixed posture, not connecting the discomfort we might be feeling to an instruction to change posture until we consciously think through the need to move. Or, we may perceive the language centre as sort of ‘running on its own’, spinning filler sentences while it waits for another part of the mind to feed it something to encode into language.</p>

<p>Of course, these are not neutral observations. We know that brains are parallel; that there are specialised areas which handle specific functions. We do not claim to have directly observed these; it is possible that the brain is conjuring the image it expects to see.</p>

<p>Nevertheless, experiences like this reinforced our sense of the following: the pronoun ‘I’ hides a shifting cluster of elements which it doesn’t necessarily make sense to always refer to as the same being.</p>

<h3 id="the-i-function">the ‘I’ function</h3>

<p>So, semiotics. Signifier, signified, and suchlike subjects.</p>

<p>Among all the different cognitive mechanisms is at least one that identifies ‘the self’. It is the mechanism that answers the question of ‘who am I’, but also a vague sense of ‘me-ness’ that pervades thoughts and attaches to the representations of other entities.</p>

<p>We’ve been discussing this with members of plural systems we are friends with. A plural brain is one capable of expressing multiple different ‘I’ functions (and building personas to match, as we’ll get into), either at different times, or in association with certain thoughts (modelled as a headmate interjecting with a comment). This function is not always entirely concrete: for some systems it takes some time to figure out who is fronting when they wake up, and it must be inferred from certain cues like what they can most easily remember, while for others (including other members of the same system) instantly ‘just know’.</p>

<p>We are (sometimes) a computer-programmer-system, and most of our language for describing complex processes comes from the field of computing. We will do our best to explain anything technical that happens to come up in this investigation.</p>

<p>So, let’s consider the ‘working memory’: the various elements of semantic, episodic and procedural memory that are ‘active’ at a given time. Although ‘procedural memories’ are usually conceived of as ‘memories of how to do a thing’ (e.g. how to stay on a bike), we think the concept is probably something a lot more broad: perhaps in fact all memories can be thought of as ‘programs’.</p>

<p>One of these programs is the ‘I’ function.</p>

<p>We can think of the ‘I’ function as something which returns a reference or pointer. A means of resolving a symbol, with other symbols.</p>

<p>It perhaps relates to capacities like proprioception. A commonly needed piece of information like ‘where is my hand right now’ can be glossed as ‘lookup the entity “I” and then find the hand that belongs to it’; then the context could be queried again like ‘look up This Hand and find its location property’. We can observe that this functionality becomes disrupted under the effect of psychedelics: when close to someone it becomes hard to tell whose body part is whose. Is that my hand or your hand?</p>

<p>This ‘I’, and its interpretation, encapsulates and obscures a huge amount of information. For example, I can currently retrieve a memory of our body picking up and playing the erhu this afternoon or being in Switzerland a week ago; from this, I can create a sentence like ‘I played the erhu’.</p>

<p>However, the body-process thing that is being called “I” was in a very different frame of mind at the time “I” played the erhu, and wandered through many different states of mind in Switzerland, than “I” am now; in the intervening period, I frequently fell asleep, dreamed etc. This is inevitable; but what is particular to our experience is the frequent feeling of dislocation from past actions or thoughts; feeling that we do not understand the reasons we thought, spoke or acted the way we did.</p>

<p>So I could instead assert that ‘I’ right now refers to the process that is generating these words (the only ‘I’ implied by ‘cogito ergo sum’); is it only by convention that we insist this is the same ‘I’ which generated the actions that this body performed when it picked up and played the erhu earlier?</p>

<p>It is not that these two ‘I’s are unrelated. But perhaps they are better modelled by a ‘we’, the sort of ‘we’ of a group such as a team.</p>

<p>Language is mutable, vague and flexible in ways that philosophers have spent centuries unpicking; contextually, everyone will know what is meant by ‘I played the erhu this afternoon’. (Assuming they know what an erhu is, anyway.) They can at least vaguely imagine “me”, meaning my body, and whatever they think of as ‘my mind’—however I look in their mental model of the author of this text!—picking up the instrument and playing a song on it.</p>

<p>In a context like this one, though… in the context of the inner monologues that have been generated in the last month within this body… it suddenly became urgent to start peeling apart the different elements of ‘I’.</p>

<h3 id="human-experience--fragmented">human experience // fragmented</h3>

<p>There are many common phrases that gesture towards the idea of multiple ‘minds’ sharing a body in the ‘normal human experience’.</p>

<p>You might say ‘I don’t know what came over me, I wasn’t in my right mind’. You might say, ‘I’m in two minds about this’. You might engage in explicit self-talk, perhaps even using ‘we’ pronouns: ‘we should get some food’. You might claim an absence of ‘self-control’, implicitly suggesting there is something to be controlled and something to do the controlling.</p>

<p>You might have different personas that belong to different contexts. We learned about something in psychology called <a href="https://en.wikipedia.org/wiki/Self-categorization_theory">self-categorisation theory</a>, a body of research about how people engage in ‘self-stereotyping’, defining themselves more as a member of a collective than an individual, and thus generate their thoughts and feelings according to context. Phrases like ‘As a fan, I think…’ might explicitly call attention to the role being played, but the influences of this sense of being a role are for the most part subtler.</p>

<p>Not only this, but <em>temporal coherence is a constant challenge for humans!</em> Tools like the calendar, the alarm, the diary, the note to self and so on exist to establish a channel of communication between your present self and a future self. It is very common for a person to find something they wrote in the past and not understand why they wrote it, what context they were responding to, and so on.</p>

<p>Our memory, conceived in this view, is just one temporal communication channel between a succession of beings. The ‘selves’ we occupy at different moments can have more or less overlap or similarity.</p>

<p>Once you start noticing this kind of thing you pretty quickly get <a href="https://en.wikipedia.org/wiki/Frequency_illusion">Baader-Meinhof</a>‘d on it. Turns of phrase that held no special significance suddenly start resonating with the idea.</p>

<p>The fear you had, that your thoughts and opinions shift depending on who you’re standing next to, that you are a vacillator, a sycophant… that can be dissolved and remodelled into a new self-conception, acceptance that you are a collective of fragments.</p>

<p>This sense of fragmentation and dis-association can go much further, though.</p>

<h3 id="word-matryoshka">word-matryoshka</h3>

<p>In the milieus we inhabit, it is not entirely uncommon to see oneself as a hollow vessel, something less than “a person” (this thing from which so much is expected) and more like a conduit for… something. Words and other material to pass through. There are other depersonal metaphors, dolls being the most popular. Certain ways of speaking attach to such concepts: this doll, awawa. (Of course this mixes in curious ways with BDSM archetypes.)</p>

<p>What about the modelling of other minds? We can speak of specialist domains, the theatre or the RPG group… but it is not necessary to perform to achieve such an effect: merely encountering the words of another in a story, real or fictional, is sufficient to conjure a model of them in your mind and generate what they are likely to be feeling. Less than that, even: merely engaging in a conversation.</p>

<p>Every so often, writers will hit on the realisation that writing is something like a form of mind control. Just for a moment, you shape the linguistic flow of thoughts in someone’s head; what they will do with the decoded sentence is their business, but if you understand the magic working you are performing, you can hope to conjure up images, evoke emotions, all that good stuff. (Of course, you cannot do so with any exactness: your reader will combine it with unknowable things in their own context; the model they assemble will not map 1:1 to yours, or another reader’s.)</p>

<ul class="chat">
  <li class="person2">i’d like to put some of our words from this morning here</li>
</ul>

<blockquote>
  <p>we wanted to share an observation about books in the religions that have them. the contents of the book sort of matter but the ritual of having a book more so. books contain many language encoded thoughts and when your thoughts are wandering around being lots of different things, looking at the book will flood your memory-context with book-words and realign your thoughts towards book-associated shapes. for that function the repetitiveness and contradictory qualities of the book is actually desirable. makes it find more purchase so more effective temporal alignment tool for maintaining religionish thought behaviour patterns.</p>

  <p>the reason we are thinking about this is because we were looking across the bed at a/s/l, thinking about which books (mostly about trans women having a bad time) we would put on our top shelf to feel the significance waft from them. thinking about abraxa (book character) and the sorceress, and how in the book the game they made pulls them back into the orbit of game text and the world they inhabited when it was created, how convincingly jeanne portrayed abraxa’s psychosis magic working to rekindle that world.</p>

  <p>we don’t have one book, we have lots of books, lots of booklike things, which is maybe why we find it hard to be one person. every significant book/game/web thing etc. has thought patterns radiating from it (in its place in memory and in a way the physical artefact of the printed book as well). we are in part assembled out of lots of different pieces of book combining unpredictably like molecules in the primordial soup.</p>

  <p>putting rituals around the book makes it radiate brighter, not just the thoughts in the book but the thoughts related to reading the book. perhaps this is why we hold onto copies of the most important books even after we’ve read them. this is a way of affecting a realm of invisible things (thoughts, minds etc) so it is magic as we are defining it.</p>
</blockquote>

<ul class="chat">
  <li class="person1">It is so. We’ll need to get into the magic side of things later. For now we should discuss the boooooks.</li>
</ul>

<p>(Thank you for reading so far. The discussion continues in <a href="./disaggregation-2">part 2</a>)</p>]]></content><author><name></name></author><category term="theory" /><category term="introspection" /><category term="plurality" /><summary type="html"><![CDATA[A curling descent into probing the plural nature of bryn-processes.]]></summary></entry><entry><title type="html">Disaggregation, part two</title><link href="https://canmom.art/theory/disaggregation-2" rel="alternate" type="text/html" title="Disaggregation, part two" /><published>2026-03-11T00:00:00+00:00</published><updated>2026-03-11T00:00:00+00:00</updated><id>https://canmom.art/theory/disaggregation-2</id><content type="html" xml:base="https://canmom.art/theory/disaggregation-2"><![CDATA[<p>this is a book article but it is also part of a ritual and an exploration; you can join here, but you may prefer to join at <a href="./disaggregation-1.md">the beginning</a> for proper context.</p>

<ol id="markdown-toc">
  <li><a href="#book-1-persona" id="markdown-toc-book-1-persona">book 1: <cite>Persona</cite></a>    <ol>
      <li><a href="#wot-happens-in-the-book" id="markdown-toc-wot-happens-in-the-book">wot happens in the book</a></li>
      <li><a href="#the-default-persona-and-the-muck" id="markdown-toc-the-default-persona-and-the-muck">the ‘default persona’ and the muck</a></li>
      <li><a href="#a-memory-of-a-demonstration" id="markdown-toc-a-memory-of-a-demonstration">a memory of a demonstration</a></li>
    </ol>
  </li>
  <li><a href="#book-2-asl" id="markdown-toc-book-2-asl">book 2: <cite>A/S/L</cite></a>    <ol>
      <li><a href="#wot-happens-in-the-book-1" id="markdown-toc-wot-happens-in-the-book-1">wot happens in the book</a></li>
    </ol>
  </li>
  <li><a href="#space-for-a-sorceress" id="markdown-toc-space-for-a-sorceress">space for a sorceress</a></li>
  <li><a href="#betrayal" id="markdown-toc-betrayal">betrayal</a></li>
</ol>

<h2 id="book-1-persona">book 1: <cite>Persona</cite></h2>

<ul class="chat">
  <li class="person1">OK, let’s get into this one. Because foooooof.</li>
  <li class="person2">yeah fooooooof. aoife was wielding some real sorcerous powers when she wrote this book. it wrapped us up in its whorls and truths.</li>
  <li class="person1">
    <p>Let’s describe the book, in case our readers haven’t read it, and also to make sure it is fresh in our mental shared context.</p>

    <p><cite>Persona</cite> is a horror novel by Aoife Josie Clements. We became aware of Aoife thanks to her role in <cite>Castration Movie</cite>; we are in a discord server with her as a result of that. It can be positioned in relation to the current wave of trans guro horror seen in authors like Alison Rumfitt and Gretchen Felker-Martin (whose endorsement is listed on the cover), but it is thankfully less of a direct political polemic or self-conscious of how transgressive~ it is, even if it is very very directly concerned with the abjection we face.</p>
  </li>
  <li class="person2">it’s a book about dissociating to shit. of being an interchangeable thing. of breaking under the gaze of the world. of negation.</li>
  <li class="person1">So we can begin the plot summary-y section.</li>
</ul>

<h3 id="wot-happens-in-the-book">wot happens in the book</h3>

<ul class="chat">
  <li class="person1">
    <p>The book opens with the story of a trans girl called Annie, though the FPPOV makes it take a while until we get her name. A persistent sleepwalker as a child, Annie briefly eked out a living working in a kitchen, but increasingly became overcome by what we might describe as severe agoraphobia; she is overwhelmed by the gaze of the world.</p>

    <p>As we hit the end of her sole relationship, a rather desperate affair with a server at the kitchen, Annie lives in a garbage-filled apartment, scraping by just enough from a job filling out meaningless online surveys to pay for food deliveries and hormones. Her attitude towards the bugs and filth is unusually positive; she seems to regard them with a kind of adoration. As the story begins, she attempts suicide.</p>

    <p>As the first arc progresses, Annie’s perception takes on increasingly strange shapes, narrated in claustrophobic present tense; it is harder to tell what is ‘real’ as we slip in and out of flashback. But it’s not that she doesn’t have reason to be paranoid. The survey company somehow performs a surreal ‘full body scan’ that her computer should not be able to perform. At one point she wakes up from a failed suicide attempt on a subway line; she bites the conductor and runs through the city, an event that will have repurcussions.</p>

    <p>But the thing that hits her hardest is that, bizarrely, in a throwaway online porn video, she sees the face of a performer who looks exactly identical to her.</p>

    <p>(Do you wanna do the next bit?)</p>
  </li>
  <li class="person2">
    <p>ok. absolutely. so the narration is very roundabout-loopwise-circumspect about what is happening, right? this is why we hesitate to spell it out all at once. because the buildup is such a big part of it. you must inhabit annie’s world for the shape of the ending to work.</p>

    <p>you have theories, of course. you think perhaps this might be a DID story, like that one episode of paranoia agent. or that she has a twin. annie’s dealing with the same, she becomes more and more obsessive, trying to find another glimpse of this performer, figure out what it means.</p>

    <p>it’s not just that she has an identical face; even her room is like a clean mirror of annie’s. she behaves in increasingly erratic ways to herself, dreaming of being trapped underground, waking to find she’s dug herself a hole; then she somehow witnesses her doppelganger in the identical apartment block across the street, fucking her ex, and their bodies merge into a kinda flesh scorpion.</p>

    <p>is that where the novel is going? is this a supernatural horror novel? but it is time to be the other girl. because it turns out there <em>is</em> another girl.</p>

    <p>and at first it seems that the other girl, amy, has more of her shit together, that she is the more normie to annie’s hikikomori. she is a cam worker, her clients are shit in the way clients tend to be, harassing her, wasting her time. she has friends, though she is clearly at some remove from them. she fills her mind with youtube ghost hunting videos and yoga and true crime, descriptions of the video interweaving into the narration as stream of consciousness wavers and wiggles</p>
  </li>
  <li class="person1">It’s a really nice writing trick. Captures perfectly the furious context-switching of living as an online being.</li>
  <li class="person2">yeah fr. and like, she does not have her shit together much more than annie right? she’s barely holding on. she constantly has nightmares of a grasping arm, which can only be defeated by tracing lines to prove that it’s just a trick of the light. when she’s not doing cam work she is in some nebulous hr position for the same company as does annie’s surveys. she can’t help someone with his problems so she provokes him into getting fired. perhaps it’s not as strange as the ‘body scan’ in annie’s arc but this company is increasingly hard to explain.</li>
  <li class="person1">Doing these online surveys probably is as fucked up and self-displacing as it is in the book though. Even if it’s not a front for, you know.</li>
  <li class="person2">
    <p>one of amy’s nebulous friends is an artist; she goes to her show, and her art is confrontational, and amy’s friend is having a bad time, but she hooks up with the guy who’s hosting the show and then it turns into a party where everyone does a ton of coke and they go to annie’s place and a guy has a psychotic episode trying to exorcise her and attempts suicide…</p>

    <p>and we finally get the context for the video annie saw, which is basically straight up a rape given all the substances and power dynamics and all that. but in the aftermath, amy’s friends abandon her for being associated with the whole situation, for dissociating out herself and failing to help.</p>

    <p>we see the same timeframe, some of the same events from amy’s side; amy becomes aware of annie thanks to one of those ghost-hunting videos, which misgenders and condescends about annie even as it chastises the viewers for voyeuristically treating a homeless person as a supernatural manifestation.</p>

    <p>and like, this is going to shade into the stuff we’ll be talking to with a/s/l, this figure of the total tranny schizo exile, social alien, homo sacer and all that shit: this possibility corner that haunts all of the discourses that shape our lives. but we know annie by this point. we have seen inside her world. without love it cannot be seen, of course.</p>

    <p>anyway by weird coincidence amy finds annie’s ex and hooks up with him (so that’s real) in an effort to get to annie. and it kinda… works? she sees annie, finds out where she lives, does not turn into a weird flesh scorpion. the two girls make contact and a kind of mania erupts. they feel a strangely fervent connection; they agree to skip town, to tear down all the layers of rubbish in annie’s apartment and go away together in amy’s car, the proposals of where to land kind of vague. they both lie to each other and yet both of them seem to actually understand the other in a way nobody else does. neither of them can afford to let go of this.</p>

    <p>and you want this for them. you want them at last to live. of course you do. how can you read this book and not love these girls by this point?</p>

    <p>but first they try to visit annie’s dad. and he doesn’t exist, her house isn’t real, her memories are entirely false, there was never anything there. so they get over their reluctance, they go to the company, because now they have to know.</p>
  </li>
  <li class="person1">Some of the reviewers on Goodreads found the ending unsatisfying but for us, it really, dramatically hit. It makes it all come together.</li>
  <li class="person2">
    <p>annie and amy descend into the strangely enormous shaft beneath the company, a huge stone staircase labelled ‘the abattoir’ in weird greasepaint layers. they separate at the bottom. amy cannot resist going on; annie goes into the weird underground management suite.</p>

    <p>annie discovers a man busily conversing about ‘the product’. sort of a scientist discussing how these products don’t really have consciousness, of how to spin this to the public, contradicting himself repeatedly. they do not have consciousness, but perhaps they represent the next step in human potential; that some of them transition and pursue sex work and suchlike things is a success of the program, or a defect, or an expression of something. by this point aoife has us by the neck.</p>

    <p>amy goes to the abattoir.</p>

    <p>on the way down she falls and breaks her legs. delerious, she witnesses this huge bioreactor column, an industrial process of making these clone-like bodies; fragmentary bodies are emerging from the muck, climbing over each other, rubbing and fucking and grasping. randomly, some are dragged up to the light by these silver surgical arms. they graft on faces for release, or else methodically take them apart and cast them back into the muck.</p>

    <p>the bodies are all the same stuff. nutrients, raw life, body soup (with penises, the narration makes note of their penises, some of them have boobs too). the book frames it as a kind of thing that pre-exists the company, something they are exploiting. there is suggestion of an origin, of whom all these bodies are clone; perhaps a defective origin, which gives them their transness “defect” or expressive potential.</p>

    <p>there are two epilogues. we find out what becomes of annie. she lurks in the cracks of another city, informal sex work, couchsurfing, something tenuous on the edge of the peopleworld. and we get a second-person epilogue, in which someone witnesses these new clone people being put out on the TV, and retreats from the world to a closed fortress; the narration imputes you with a disgust at your ‘children’, who “are able to conceptualise even less about the outside world than you can, but are now tasked with inventing entirely new ways of being in order to fill the vacuums of power and meaning left by the failed world you created.”</p>

    <p>and on this note it ends.</p>
  </li>
</ul>

<h3 id="the-default-persona-and-the-muck">the ‘default persona’ and the muck</h3>

<ul class="chat">
  <li class="person1">The title of the book is ‘Persona’, and from the outset, Annie thinks of the personas she inhabits; notably the ‘Default Persona’ of online, an incurious and hostile man’s role, a creature which seeks isolation and resents the intrusion of figures like ‘The Girl’, who intrudes into the fantasy of non-existence, of negation. While this is framed as a chat room role it seems that the model is equally if not more the world of imageboards.</li>
</ul>

<p>A quote, in which Annie considers, before her descending spiral really kicks in, the shape of Online in the form of an anon chat room:</p>

<blockquote>
  <p>You might expect, as many people once expected, that fungible anonymity would allow for more fluid and sincere personal expression than the limitations of a single identity. In reality, though, in the chat room, anonymity instead boils down the chaos of a conversation with multiple participants into a single voice, shouting itself into eternity in a beautiful, worthless mass expenditure of energy. It strips away our individual features so that we all emerge as, talk as, the Default Persona. The Default Persona within this space is a white male, approximately 18 to 30 years old, who has been gifted with historically miraculous comforts but whose shamefully masculine pride bristles against him. This is an easy thing to be, a safe thing to be. As long as you follow the code of anonymity, as long as you talk in this voice too, you can slide by, an unnoticed witness.</p>
</blockquote>

<p>But, she goes on to note, there are other personas you can inhabit. Of particular note is The Girl, whose presence and existence is a fundamental challenge to the Default Persona. Her presence ‘In Here’ represents a failure far greater, and also a threat. A series of statements are elaborated.</p>

<blockquote>
  <p><em>She does not belong here</em> … <em>She is far worse than us for being here</em> … <em>She just needs to learn the rules of the game</em> … <em>She represents creativity and the world, and the Default Persona demands eternal negation</em>.</p>
</blockquote>

<p>And Annie continues to inhabit the default persona, here, not The Girl:</p>

<blockquote>
  <p>I’ve grown comfortable in his contradictions. While the Default Persona says he believes in things, the things he believes rarely seem to line up. Instead, any conversation with him, as him, is a game of invention, and reinvention, the constant creation and destruction of identity for rhetorical advantage, scoring cheap points off the naive enjoyment of anything. To come into this world attempting unguarded connection is to invite total evisceration, consumption and excretion by the hall of mirrors</p>
</blockquote>

<p>She writes of dissociating through her childhood, of burying herself in the “spectacular underground” of extreme pirated media:</p>

<blockquote>
  <p>It felt good learning forbidden things: I was being taken seriously as an adult, even if I was constantly being torn down as a human being, let alone as a Girl.</p>
</blockquote>

<p>And before long she had internalised the Default Persona. Ominously, Annie remarks:</p>

<blockquote>
  <p>Me and him are one and the same now, and in my head I carry his voice, his opinions, an awareness of what he would say in any given situation, the desire to say it, and the knowledge that silence is always better.</p>
</blockquote>

<ul class="chat">
  <li class="person2">
    <p>so we have this sharp, atomic breakdown of the world of anon, the imageboard mask; and we have this lurid, feverish image of the bodies being made and unmade like the tank of Rei clones, and rereading the former throws the latter into resonance. this muck is what we creatures of the Wired emerged from. we were chosen, randomly, to have the seed of becoming something else planted in us. were chosen by the arm; selected to become the Product instead of biomass.</p>

    <p>why? no reason at all. we are made of the same stuff. our brain is a shapable plastic learning engine, ready to be filled with stories, same as the rest. but we switched contexts, again and again, didn’t we? we planted image after image into the clay. innumerable subcultures and discourses. we would read about the struggles that came and went and here and there we would get caught up in the fury.</p>

    <p>we are called things, sometimes. we were called a caring nerd, and that made us feel good. one friend said we were a polymath. another, an aesthete. we greedily reach for any external description of what we are, or what we have seemed to be, even mockery, perhaps especially gentle mockery that carries the form of recognition. because from ‘in here’ it is so hard to discern.</p>

    <p>ironically if we are anything now it is this being of questioning. we probe and probe and talk about weird philosophical cybergothic things like the character in yvette’s first book. we are the only person who says things like “I need to act like a stereotype of myself so you remember who I am.” but really it is us who are trying to remember who we are.</p>
  </li>
  <li class="person1">We can give you autobiographical information of course. We don’t tend to forget where we live, and so far nobody has wanted a name besides ‘Bryn’ or ‘canmom’. Enough processes are active as to hold onto this information.</li>
  <li class="person2">‘bryn’ is a kind of anchor. ‘canmom’ is something we have ended up with.</li>
  <li class="person1">Our body-interface, as you would put it, has a shape as well. We’ve worked to make it softer.</li>
  <li class="person2">estroglyphs and spiroglyphs… or decapetylglyphs… surgeryglyphs</li>
</ul>

<h3 id="a-memory-of-a-demonstration">a memory of a demonstration</h3>

<p>The fascist woman in the spy x family t-shirt had come out to the demonstration too, from god knows where. Antifascists had come out to confront her group. That day’s Bryn had heard on the web that more bodies were needed, so she cycled down to the demonstration, like she used to do in the old days.</p>

<p>By the time she arrived, the balance of power was already with the antifascists. Most of the fash had left, a tiny core remaining, crowded against a shop front, separated from Our Side by a thin police line. The usual chants and shouts were going across it, but no projectiles. Someone had found a sound system and a mic. The shoppers wandered by with mild curiosity, sometimes approached and even joined the demonstration.</p>

<details>
  <summary>a thing that happened</summary>

  <p>A group of the fascists had separated out from the main group. They were watching from the sidelines, shouting something. This Bryn had done the dutiful thing and handed out water bottles to anyone who seemed to need it, which is a function she learned from her ex to occupy in street demonstrations, back when she was in her ex’s organisation to do activities called Care and First Aid; the water is a simple measure but it falls into the rubric of being The First-Aider, which is a nice distinctly identifiable useful role within the organism of a demonstration. Now the time came to observe.</p>

  <p>She was outside, which is always stressful, though the clearly defined roles of A Demonstration made it a lot easier to parse. She had not been to an anti-fascist demonstration in some time. She’d talked with all the people she knew and there wasn’t much to do, the chants were getting boring, and the thin core of fascists that remained did not seem like they were in a hurry to give up. And a persona of curiosity was active.</p>

  <p>She didn’t understand what these fascists were thinking. She thought—a crazy thought but she is not a sane woman—that perhaps something was to be gained by talking to them, that she could try to put something outside of their context in, or just better understand why these strange people had ended up on this street in Glasgow.</p>

  <p>So she approached the group containing the woman in the spy x family shirt. This woman was shouting a stream of nonstop invective against ‘scroungers’, indignant that an allegedly peaceful demonstration against such fiends should be disrupted by such rude and aggressive people as us. This Bryn could not help it: she didn’t think anyone could be so brainwashed by the Rupert Murdoch papers, so she laughed, because she had thought to find something that would make sense of this, and there was <em>nothing</em> there.</p>

  <p>And of course, she had separated from the main group, so she was noticed, and she was obviously on the Antifa side, so she became the target. There she was, the arrogantly laughing transsexual, suddenly the figure of the decadence of society in their eyes.</p>

  <p>Accompanying the woman in the spy x family t-shirt and her friend were two younger people. One wore a leather jacket. The other called Bryn a tranny. It felt good to be recognised as such by The Enemy. Here she could legibly be something, a Tranny, and a worthwhile thing at that.</p>

  <p>She had a memory that people sometimes take photos of fascists so as she walked away, clearly unable to get a word in edgewise, she thought she should do something useful for the cause, and pulled out her phone to take a photo, in case it might be useful for someone later. An obviously aggressive move, and it was answered in kind; the woman in the spy x family shirt jeered and posed, and the person in the leather jacket lunged forwards and knocked this Bryn’s phone out of her hands. (The phone was fine.) Bryn retreated. The young pair made themselves scarce.</p>

</details>

<p>This Bryn could not help but replay the scene from their eyes. She had emerged from the crowd, laughed at them, and tried to photograph them for obviously hostile reasons. She was in the role of The Antifa Tranny, and there was no possible bridge across to touch their world where ‘scroungers’ existed. But she was playing the part badly, going out recklessly into a dangerous place in front of people who despised everything she represents.</p>

<p>Her friends checked, was she all right, had she been hurt? Wounded pride more than anything, she said. It was true.</p>

<p>But it seemed, she felt, that she was lost in the sea of symbols. The Antifa and the Fash would face each other, over and over again, and each of us would step into our designated roles, to play this game. What could anyone say that wouldn’t be cast against that matrix?</p>

<p>And shouldn’t she know better? If she probed for facts about Bryn, experienced at political demonstrations was supposed to be one. She had run around with black blocs, dropping smoke and sprinting, pushed through police lines, watched the nazis get their heads kicked in during the big BLM demos of the pandemic summer. She’d treated injuries, though never worse than a sprained ankle. Here she was doing rookie mistakes, going out without a buddy, approaching the enemy without being ready to fight. What had possessed her?</p>

<p>Moreover… what had led these two entities here? Something had made this woman in the spy x family t-shirt, just as something had made this Bryn. Bryn could try to trace a history that had led her here. A point of divergence somewhere had put her on Our Side and not Their Side. Some other process had made the woman in the spy x family t-shirt.</p>

<p>In theory it was about the right of disabled people to exist, or migrants: whatever The Fascists were trying to accomplish needed to be stopped; but it was unlikely that this battle would do very much either way for the situations of either group. But in confronting each other on the street like this, by facing someone who would spit and call her a tranny, she could know she really was in fact A Tranny. And no doubt this woman could go home affirming that she was something else as well, whatever that was in her personal world of symbols.</p>

<ul class="chat">
  <li class="person1">What are we doing here? Why are we writing this kind of pseudo-autofiction thing? Is this inspired by Aoife? We’re breaking the stylistic conventions we’ve established.</li>
  <li class="person2">it felt right to. we have a word-frame for this memory. the technique of declaring a Thing, with Capital Letters.</li>
  <li class="person1">You quoted quite a few passages of Aoife above. Do these resonate in particular? Why these paragraphs?</li>
  <li class="person2">structure, mirroring. the sense of being something that emerges from a mass. we are contemplating our time in the message boards and chat rooms.</li>
  <li class="person1">That image at the end of the novel… Polymorphous perversity, giving way to distinction. The AT Field.</li>
  <li class="person2">yes. we are just cells. we are just life. we are just the growth process. thoughts are growths too, in an abstract space. distinctions grow out of distinctions. pheromone trails. we are thrown into the world. we hold onto these images. it was the first time we found someone express what we were trying to express through <cite>Incubator</cite>.</li>
  <li class="person1">
    <p>For some context to the reader, we were never particularly active on imageboards, but we had our early exposures to the culture. But in our teens, our friends were all imageboard guys, and we encountered the material of /b/ through them. While Jackie was running her <a href="https://porpentine.itch.io/runescape">runescape teen brothel</a>, somewhere else in the servers, headcrab2002 was picking flax, and our friends would sometimes take control to go around annoying strangers about cybersex.</p>

    <p>We pulled in fragmentary bits of culture from magazines and forums… we immersed ourselves in roleplaying forums, learned to speak forum before we learned to speak to schoolmates. We knew we were so often the butt of the joke but at least we had a place as that. A friend would come over and we would watch him play Half Life. We feared downloading films, and then we learned to do it, and then we learned to follow the esoteric arguments of fansubbers, and to construct a persona which had strong opinions about video encoding.</p>
  </li>
  <li class="person2">why were we so afraid of touch?</li>
  <li class="person1">
    <p>We imitated animations, we imitated writing, the patterns as we understood them. Stick figures. Warhammer spaceships. We followed online arguments and learned to express the consensus thought of a niche subculture which fit our conception of the people who knew best. Impulse: find out what it means to do it as well as possible and do that. Impulse: know all the rules. We pushed together symbols we didn’t understand, read about social movements, built up the context to understand them. Sometimes other contexts hit us like a bomb, like the LiveJournal ‘social justice’ milieu of 2009, or the ‘rationalists’.</p>

    <p>We disavowed. We performed the appropriate shames, what we thought were the appropriate shames, for our sordid past of having slightly bad opinions in a kinda normie way. We learned the rituals of apologising. We constructed a persona who was very concerned about representations of fictional members of various social groups in American cartoons. We constructed personas who knew what to say about Bayes’s theorem or Maoism or Sylvia Federici.</p>

    <p>It was helpful that there were explicit rules to be followed. We didn’t understand that the rules were just things people made up, and that the real rules were not the rules people laid out openly, until the tumblr tranny subculture splintered with accusations and it became impossible to ignore.</p>

    <p>For a large part of that long period, sexuality was something that could not be addressed openly. In the dark and the quiet, the child-Bryn fantasised about having a smooth hole through her finger and pushing her other finger through it. She fantasised about a line of people all fucking each other in the ass. But she kept all this secret. She didn’t even dare express something resembling desire to anyone under any circumstances. To unlock the door she had to take a roundabout and awkward route through another online 2D imageboard-derived subculture.</p>

    <p>We learned how to be into ponies and encountered sexuality through that interface. It seemed permissible, for a while, for a “man” to engage with this thing, because someone on the internet said it was a good and feminist thing. Eventually that consensus changed and we disavowed that too, in favour of progressive science fiction novels. ‘Bryn who disavows’ became a routinely operated stance.</p>

    <p>But it let us loop closer to not modelling ourselves through this category of ‘man’ anymore, to get involved with other LGBT students. They were going on political demonstrations and having arguments on Twitter, so we got Twitter and followed their arguments. We barely knew how to function in this milieu and we were certainly not functioning in university milieu. We were diagnosed with depression and anxiety and put on SSRIs but it didn’t seem to make us work again. We tried to form relationships with people we met at science fiction conventions. We didn’t know how to be a girlfriend yet so it went quite poorly. We felt most at home in things like word games and board game nights, where it was clear who to be.</p>
  </li>
  <li class="person2">would our friends of that time understand what we became?</li>
  <li class="person1">
    <p>Maybe they would. Perhaps even another one of them could have transitioned by now, for all we know. Perhaps something could have exploded their worldview. Perhaps they too could have disaggregated.</p>

    <p>They were in the Wired too. The great persona-blender would have cut them apart as it did us. But perhaps they were not so immersed in the Wired. Perhaps they had anchoring contexts.</p>
  </li>
</ul>

<h2 id="book-2-asl">book 2: <cite>A/S/L</cite></h2>

<ul class="chat">
  <li class="person1">So let’s talk about <cite>A/S/L</cite>, so it can inform the rest of the discussion.</li>
  <li class="person2">goddamn this one is like. shaped charge pointed right at us?? like it’s literally about trans girls making games together in service of occult workings, it’s about the memory of internet chat rooms lingering on your brain, it’s about things failing to pan out how you imagined…</li>
  <li class="person1">If <cite>Persona</cite> is more on the horror end of the distribution this is more on the literary end although these categories really blend together. We should read more literary fiction though.</li>
  <li class="person2">if it’s gay and such, sure</li>
  <li class="person1">
    <p>Obviously if it’s gay and such. But yeah like… we were on the Topside thing back in the day, we read like Casey Plett, Imogen Binnie, Sybil Lamb, Torrey Peters before she was like super popular or whatever. We know the fingerprints. The no quotation marks thing being an obvious one.</p>

    <p>It’s kind of fascinating, looking back, how much we used those books to construct the idea of what Being A Trans Woman would be. Considering like… I know people get <em>really</em> weird about <cite>Nevada</cite> as the egg cracking book or whatever when it’s sorta not that, that’s a horrendous and reductive reading of it, but like more than that, those literary realist trans books never really made being trans seem like a good time for anyone. But they do make it seem like an <em>interesting</em> time. All these girls taking various drugs and having various configurations of sex and sex work and experiencing nightmare personal crises and so on. You feel like you’re touching the Truth.</p>
  </li>
  <li class="person2">it can be a terribly dangerous thing to feel like we have found the Truth. and we keep doing it.</li>
  <li class="person1">
    <p>In those early transition days we were very caught up in the <em>ideal</em> of being a trans woman, to the neglect of actually responding properly to the people around us. This whole mental break thing was prompted in part by running into someone from that past. We won’t name her, but I think a big problem she had was that we were always absorbed in some online Thing. We have some other memories from that time that are still available… they are about failing to pay attention, saying things which came off the wrong way, that kinda stuff.</p>

    <p>Well, her autism direction skewed more science fictional; her worlds were spec bio and such. Back then we had built the first Trans Persona, of someone with her heart caught on the idea of these trans communist chicks on tumblr and their complicated dazzling ideologies and inscrutable ways to interact on the internet. We had stumbled into this persona of someone new to touch and affection, as enthusiastic about sexuality as she had once been distant from it, enthralled by the idea of being in a big polycule and such.</p>
  </li>
  <li class="person2">we were not wrong to desire touch. we had to find the people who wanted to play the game the way we wanted to play it.</li>
  <li class="person1">We have this Topside zine called <cite>Where We’re Going We Don’t Need Roads</cite>, and it contains many different flavours of trans fiction from that period. I have a memory of sharing this with the aforementioned ex; that she responded most to this kind of near-future clifi story about an apocalyptic new york, whereas the Bryn of that time was vibing more with a sorta more grounded story of like a trans girl hooking up or something, all done in like lowercase stream of consciousness. And later we actually felt guilty about that, like we weren’t being true to the Spirit of Autism or something; that she was more in tune with a different ideal. Anyway, we just dug out the zine and it turns out that story that the Bryn of back then liked was by Merritt Kopas, which is probably another reason we activated the Disavow Function.</li>
  <li class="person2">oh god oof</li>
  <li class="person1">Yeah like. Should we get into that in here?</li>
  <li class="person2">kinda have to at least touch on it, what with the anna anthropy cite in the endnotes of a/s/l</li>
  <li class="person1">But what do we have to say exactly? Relitigate the events behind <cite><a href="https://thenewinquiry.com/hot-allostatic-load/">Hot Allostatic Load</a></cite>? Try and figure out how far the web of negative association should extend? What is our duty here? But to make a long story short, Anna and Merritt treated our friend unconscionably and destroyed their life over basically nothing. Just about everyone even tangentially attached to the ‘queer games’ scene of that era enabled them to do it.</li>
  <li class="person3">A different persona intruding here, I think? We have to acknowledge this, but the purpose of this article is not to resolve events that happened a decade ago between people we have largely never met. Let’s focus on jeanne, and a/s/l.</li>
  <li class="person1">It turns out Jeanne Thornton also has a story in this zine, actually. It’s a pretty clear roman à clef, about a vampire returning from a book tour. The three vampires named in the story are presumably fictionalised versions of the actual people on the tour. Jeanne is here as ‘the new one’, still struggling to come to terms with being a vampire, concerned about ‘appropriating’ and such like things, rather awed by her companions. She briefly comments on how the trans lit (sorry, vampire lit) had largely been ‘conversion’ narratives, and not the problems an out vampire faces, among them ‘everyone hanging around the castle complaining about how some other vampire lady is actually a jerk and how to process that’.</li>
  <li class="person2">trannies love our vampire metaphors huh</li>
  <li class="person1">Jeanne’s literary voice is not yet established in this story; <cite>A/S/L</cite> is a much sharper, more richly characterised work. But I do find it interesting to observe this past context.</li>
  <li class="person2">context may be important, but this is kinda a rough start to talking about a book that really hit us very hard, that we loved. so let’s get into the part where we talk about what happens in it!</li>
  <li class="person1">Abso<em>lutely</em>. Once again, then: the events of the book, to keep them fresh in mind, and perhaps explain what we’re on about for anyone who doesn’t go and read the book (which they most urgently should.)</li>
</ul>

<h3 id="wot-happens-in-the-book-1">wot happens in the book</h3>

<p>A/S/L is a story about (it turns out) three trans women, Abraxa, Sash and Lilith, who as teenagers worked together on a game called <cite>Saga of the Sorceress</cite>. Jeanne’s rendition of a teenage IRC channel, of the grandiosity of that sort of bubble is shockingly spot on; we are reminded of <a href="https://thecatamites.itch.io/dictionary-to-the-known-world">thecatamites’s writing on RPG forums</a> for Em Reed’s ‘lost history jam’.</p>

<p>The trio live on a channel called #teengoetia; at this time, only Sash is out to herself, and she is cooking up a complicated vision of the <em>significance</em> of RPGs made in a clunky ASCII engine called CraftQ, a fictionalised version of the ZZT engine and the community around it. They have formed a ‘company’ together, who share a grand plan to build the greatest CraftQ game ever, taking after the masters of the RPG form, a series called ‘Mystic Knights’ which all, but especially Sash, revere.</p>

<p>Sash, believed by all to be the CraftQ community’s only cis girl, is the mastermind of the project and writer; then there is Abraxa, who makes her entrance first with a ritual and a dream, and then drops into IRC talking about trans porn and gender transformation rings, working at once as the game’s artist, musician and programmer. And then there is Lilith, who doesn’t understand why she has been made the level designer but earnestly wants to impress Sash.</p>

<p>And Sash, for her part, has built a whole mythology around the developers of the fictional Mystic Knights games, following the occultic contours that are usually attributed to people like Grant Morrison. Mystic Knights is a melange of JRPGs most closely taking after <cite>Final Fantasy</cite>, something most evident when we hear of later iterations of the series, like an MMO supposedly mostly played by trans women.</p>

<p>Lilith disappears; we soon find out why, a moment of personal resolution that occurs on a Boy Scout trip and convinces her she must decide to betray Sash to gain the tenuous acceptance of the group; later we find out that shortly before the trip, Sash, who was infatuated with her, had a sexually charged interaction where she tried to get Lilith to come out as trans and Lilith ghosted her. Absent Lilith, the game project dies. And the novel jumps forward in time; now we join Abraxa, who has lived a drifting life, washing up in the house of her friend Marcie. She tries to find jobs; Jeanne writes these darkly funny scenes of the aftermath of her job interviews where she came off far too obviously crazy.</p>

<p>Abraxa’s POV is one of the true beautiful triumphs of this novel. It winds in the way one of Sash’s ideal, ‘involuted’ CraftQ dungeons creates a winding path back to its origin. We understand the dislocation that Abraxa feels from the world, the roundabout ways she processes things. Abraxa has moved on, time and again, from different contexts; she does this of her own accord or she is kicked out, one way or another. Shortly before we rejoin her, she nearly drowned. She does mushrooms with her host and a visiting friend in the basement of a burned church, and has a vision of being embraced by the Sorceress of Mystic Knights and CraftQ; this inspires her to move into the church to perform a magical working.</p>

<p>Meanwhile, we are reintroduced to Lilith, who has found her way into a relatively secure position as a bank loan underwriter, and of course still carries the anxiety of any trans woman who has found some tenuous foothold in society. She has, more than the others, buried the memories of working on the game, but not completely; we see through Lilith’s eyes her connections with other trans women of New York with whom she shares some awkward friendships; we have a temporal location now, around the time of the first Trump election.</p>

<p>Sash is the last to be reintroduced, and she has largely buried herself—not quite, perhaps, to the same degree as Annie in <cite>Persona</cite>, but she lives with her parents, discretely working as a webcam dominatrix with only one client, a strangely endearing character referred to as only Droneslut who does the CBT and ruined orgasms and findom as ordered by Sash.</p>

<p>I find the character of Sash particularly interesting as well. She is someone who thinks in lists and procedures; she is the main trio’s only black character; she finds herself at a remove even at queer/trans events, like a book reading where she meets a journalist covering a San Franciscan game-making cult which echoes what Sash and her friends were trying to do. At the same time, Sash sees a cryptic blog post from Abraxa which reveals that she is still alive and perhaps in distress, naming a location; Sash commands Droneslut to track down the location.</p>

<p>There are two parallel threads here, now. Lilith is approached by a cis woman who wants a loan to build a kind of LGBT healing centre; she tells Lilith of a cloying vision of rescuing some traumatised babyqueer like a wild animal, but Lilith sees the project as a chance to use her position to do something actually good, and goes behind her boss’s back to work on the loan.</p>

<p>Of course, the building she wants to use is the exact one that Abraxa now occupies; Abraxa has been transforming it gradually into a garden/ritual space, convinced she must pursue some numinous purpose bestowed on her by the Sorceress. To shield herself from ‘System D’, she isolates herself from the internet, from spaces outside the church basement; she rejects offers of help even from the friend Marcie she most recently left, lives only on bagels and canned food, occasionally visits queer coops to take stuff. She reads library books about historical mystics and anchorites and spends the time transforming the church. When asked what her goal is, she speaks of making a kind of community space.</p>

<p>Through Droneslut, Sash manages to make contact with Abraxa. Lilith stumbles in by chance, or perhaps we should read it that she is drawn in by the magical working; she visits to find out what’s the situation with the apparent squatter in the church and gradually realises that it must be Abraxa. For her this is a distant memory, but she feels an inexplicable loyalty to her old friend. She tries to convince her cis client not to call the cops to remove Abraxa.</p>

<p>The cis client is, it turns out, willing to sic the law on a homeless trans woman to create her personal vision of a queer healing centre thing. Abraxa sends cryptic invites to Lilith and Sash; before she goes, Lilith goes to the bank to end the loan application, and gets herself fired for her shenanigans. It seems that at last the three may finally meet, in person; that their vision of Invocation LLC might be rekindled by Abraxa’s magical working.</p>

<p>By this point in the novel, you will want this to happen more than anything. But the novel has told you what’s going to happen, like <cite>Baru Cormorant</cite> did; by the time Sash arrives, Abraxa has already left, once again. We see her travelling by foot, drinking oily water; her health had been declining across the novel and it seems hard to think that she will survive this time.</p>

<p>Sash meets Lilith, and they revisit their game together; Lilith offers for Sash to move in… but entropy wins here too, Sash shuts herself down, runs away. The whole thing falls apart a second time.</p>

<p>We end with a letter written to Sash, from Lilith, in which she gives her meaning of the encounter they had as teens, the door that was opened.</p>

<ul class="chat">
  <li class="person2">i feel on the verge of tears again.</li>
  <li class="person1">
    <p>We are, yes, but I am thinking about the meaning of the choice to end that way. Both novels end with the connection at the centre dashed. We spend the novel waiting for the moment where the two, or the three, unite to support each other against this awful world; and like Droneslut’s ruined orgasms, these hopes are torn apart again after only a very brief encounter.</p>

    <p>There is so much to get into here. There is the significance of the Sorceress, of “System D”—no connection with Linux so far as I can tell, it is instead a kind of Instrumentality-like project to link the minds of everyone except certain outcasts too alien to be brought in to the fold. There are the sorts of tranny lives represented by our three protagonists. There is the making of worlds to inhabit through games and the communities that surround them.</p>

    <p>I heard about this book on a blog called ‘The Transfeminine Review’, and noticed that the premise seemed kind of similar to a story that we are writing, and thus seemed powerfully relevant to the sorts of things that we’re all about here in canmom. So we wanted to read it, to see if what were doing was too similar to something that had already been done very well, and also to experience a reportedly great book on subjects that matter to us.</p>
  </li>
  <li class="person2">the story we are writing is not this story. how could it be? this story is from jeanne.</li>
  <li class="person1">
    <p>But a great book is what we got.</p>

    <p>In the early 2010s our head was blasted open by the incursion of the Twine scene. We encountered it through Xrafstar/Charity (then best known as Porpentine), who ran a weekly column on <cite>Rock Paper Shotgun</cite>, where they reviewed all the weird and interesting queer indie games that would be the precursor to today’s itch.io. It had a strong adjacency with certain movements in indie roleplaying games; the two subcultures rode some strange cultural wave.</p>

    <p>With the benefit of hindsight, it is possible to say that Xraf was miles ahead; <a href="https://store.steampowered.com/app/422010/Eczema_Angel_Orifice/">their works of that time</a> were more striking in their imagery, far more emotionally sharp, far less caught up in the forms and conventions than their contemporaries in that scene. Of course, I view them with a certain lens. They won’t mean to me what they mean for you. But all of it was equally new to us. In any case, as we were sort of dissociating along writing long blog posts about physics or whatever the hell it was we were doing back then, this force, this strange sorcery from the most cultic parts of america, came to visit us. It was perhaps exactly what we were looking for. We constructed these new spaces into our mind, we became a convert.</p>

    <p>I relate this largely because this is what happened to Lilith in the dark halls of #teengoetia. Lilith writes:</p>
  </li>
</ul>

<blockquote>
  <p>When I met you, long ago now, I was stuck. I didn’t even realise then how stuck I was: I was alone, asleep, buried. Back then, all that stuff—CraftQ and #teengoetia and online and all the weirdos we knew—it was a way for me to be alive. You, and Abraxa, and everyone else we knew online, so dramatic and committed and creative and shining and fun. A whole secret world in my heart, no matter where my body was: in Texas, in the Boy Scouts, in the world where I was going to grow up to be a man. Bodies didn’t matter there. It was the start of everything, for me, and so much of it flowed from you.</p>
</blockquote>

<ul class="chat">
  <li class="person1">I won’t quote the whole letter; Lilith’s anger towards Sash, that she would apologise for any of what happened, her descriptions of the <em>seriousness</em> that they all held in that world, is too contextual, it won’t work without the frame in the book. What I will quote is another line:</li>
</ul>

<blockquote class="chat">
  <p>That’s how I think you might see it. Do you want me to tell you what I see? Long ago, you opened a door in me, and I walked through it, and my life became my life at last.</p>
</blockquote>

<p>This is a pheromone trail. We will elaborate on that in the next part.</p>

<h2 id="space-for-a-sorceress">space for a sorceress</h2>

<p>In the worldview that Abraxa builds for herself, the goddess who stands as an enemy of ‘System D’ is the Sorceress.</p>

<p>An intriguing party member in the Mystic Knight games, Sash selected the Sorceress as the POV character whose inner world they would expand on in their work. We get glimpses of the sorts of stories that Sash wanted to tell with her, and they are ambitious, literary or pretentious but either way a great deal of meaning was invested into this figure.</p>

<p>The Sorceress is described as basically a kind of goth elf girl, an inevitable erotic fixation of Mystic Knights players. Abraxa hopes to discover what she represents; a beautiful passage describes Abraxa’s dream, when Lilith finally asks. It begins:</p>

<blockquote>
  <p>In this game, you are a trans woman who is trying to perform a magical ritual. You do this by occupying a space, ritually consecrating it, performing certain actions within it to summon the presence of the entities you desire to be there. For example, if you summon the sorceress, your space will be attuned to her energy, which is the energy of fire: the energy of transformation in accordance with purpose.</p>
</blockquote>

<p>As the ritual develops, others will be drawn in. A place for trans people to stay, where people can learn about Mystic Knights, and ‘develop an ethic of reciprocal altruism, separate from ownership.’, reflecting the mission of the Sorceress in her source material.</p>

<p>Some trans girls want to build temples. Sometimes they say they they wanna build a cult. And, as the book makes very clear, building a game is not so very different. Source code maps to religious texts.</p>

<p>Sometimes the girls actually do go and build the cult. There was a section here where we considered engaging with a mystic-type author associated with the so-called ‘Zizians’ whose writing about plural stuff was sent our way; in the end I think we have decided it would be wiser to excise that because the situation seems far too ugly and complicated to really work into this project in a way that wouldn’t be horrible. These pathways will be quiet for now.</p>

<p>Instead, we landed on the discussion of pheromone trails.</p>

<h2 id="betrayal">betrayal</h2>

<p>Early in the novel, Lilith rationalises her ghosting of Sash by coming to a belief that “the main ethical choice in life is who to betray.” This theme of deception and betrayal comes back soon after we rejoin her after the timeskip, as she contemplates how she must be seen by the bank where she works:</p>

<blockquote>
  <p>It was like the part in <cite>Mystic Knights 2</cite> when the sorceress first joins the party and the other heroes don’t trust her yet. She’s evil, she’s a witch, she used to be our enemy. How do we know she won’t betray us?</p>

  <p>Lilith tried to see the situation through Ronin’s eyes. The first thing she saw: she was a transsexual. This was never the first fact she noticed about herself anymore, when she chose to look, but it must always be the first thing Ronin saw, even the object of his fantasies of her. And what were those fantasies? Fantasies of blur, fantasies of instability. A transsexual is inherently unstable: she is someone who yanks herself out of her context and plants herself in altogether different soil. No transsexual’s roots can ever be as strong as a cis person’s. We are built to betray. This is how Ronin must see it.</p>
</blockquote>

<p>She shakes off this fantasy; but the course of the novel does see her betray the bank for Abraxa’s sake. In the eyes of the Default Persona: quitting a decent job Out There for the sake of weird online tranny shit that nobody can understand. Yet, for the likely trans reader, this is no doubt Lilith’s redeeming act; the point where she brings her loyalties back to the sacred work of making a videogame with some other trannies.</p>

<ul class="chat">
  <li class="person2">but the instability is universal. the possibility of the break is universal. we trannies certainly don’t have a monopoly on weird incomprehensible online shit, but we do live beside and within it. the abyss the cis see through us is the possibility that having a stable job at a bank wouldn’t be the most important thing for someone, right? they glimpse a world they do not understand and have to face up to the fact that their world is hollow.</li>
  <li class="person1">Hold on now. We can’t just go on like that. As if ‘the cis’ is a coherent category and they all want to work in a bank. We can do a lot better than this.</li>
  <li class="person2">well not ‘the cis’. but like. people for whom the system works, to some degree. i mean you can kinda see it with Lilith’s friend, the one who calls herself a communist but thinks it’s lame to support Abraxa’s efforts. she’s trans but she’s still doing the thing. a small world is seen as a corruption by the big one.</li>
  <li class="person1">Hmm. Is Annie’s rotten apartment equally as sacred as making a videogame?</li>
  <li class="person2">
    <p>it is to her. the bugs have meaning for her and we get to inhabit that world with her. until amy gives her a route towards a different expression of what they both are.</p>

    <p>what is scary about being in a cult? is it that your microworld would lose its interface with the other worlds? that you would do harm, or be harmed in ways you are unable to perceive, because you cannot see the other worlds layered over yours?</p>
  </li>
  <li class="person1">It’s being controlled. Not making your own meaning but having it forced onto you by violence.</li>
  <li class="person2">which we do every day. like that’s the whole theme of all of this.</li>
  <li class="person1">When it’s diffuse, from everywhere, it’s… you can redirect it, let it flow past, find points of shelter. When you have someone’s personal attention…</li>
  <li class="person2">serious weakness would say it’s the opposite, perhaps…</li>
  <li class="person1">I still don’t think we’re ready to write about seriweak.</li>
  <li class="person2">not right now. not here. but we should try.</li>
</ul>

<p>(The discussion continues in <a href="./disaggregation-3">part 3</a>)</p>]]></content><author><name></name></author><category term="theory" /><category term="introspection" /><category term="plurality" /><summary type="html"><![CDATA[The dismanting ritual wraps around Persona and A/S/L, powerful books, and their shapes in our thoughts.]]></summary></entry><entry><title type="html">Disaggregation, part three</title><link href="https://canmom.art/theory/disaggregation-3" rel="alternate" type="text/html" title="Disaggregation, part three" /><published>2026-03-11T00:00:00+00:00</published><updated>2026-03-11T00:00:00+00:00</updated><id>https://canmom.art/theory/disaggregation-3</id><content type="html" xml:base="https://canmom.art/theory/disaggregation-3"><![CDATA[<p>this is a book article but it is also part of a ritual and an exploration; you can join here, but you may prefer to join at <a href="./disaggregation-1.md">the beginning</a> for proper context. we are talking about books introduced in <a href="./disaggregation-2.md">part two</a>. and we must talk a bit about ants.</p>

<ol id="markdown-toc">
  <li><a href="#writing-as-a-pheromone-trail" id="markdown-toc-writing-as-a-pheromone-trail">writing as a pheromone trail</a></li>
  <li><a href="#plural-technologyplural-sorcery" id="markdown-toc-plural-technologyplural-sorcery">plural technology//plural sorcery</a>    <ol>
      <li><a href="#writing-and-training-of-thoughts" id="markdown-toc-writing-and-training-of-thoughts">writing and training of thoughts</a></li>
    </ol>
  </li>
  <li><a href="#we" id="markdown-toc-we">we</a></li>
</ol>

<h2 id="writing-as-a-pheromone-trail">writing as a pheromone trail</h2>

<ul class="chat">
  <li class="person2">wanna do the intro about ants?</li>
  <li class="person1">
    <p>An ant colony is a system which performs certain behaviours, such as finding food sources and bringing them back to the ant colony. It is the classic example of a ‘superorganism’; evolutionarily, the individual ants are subsumed to the reproduction of the whole collective of sibling ants who share most of their genetic material, and thus it is adaptive for them to adopt strategies where a bunch of them like, die and stuff.</p>

    <p>Anyway, ants have a very elegant mechanism to find food. As ants wander around, they leave a trail of pheromones in the world. When they find food, they take some and walk back along their pheromone trail, which leads back to the colony - and also reinforces that pheromone trail, marking it as a route to food. Other passing ants may detect this trail and follow it to join in on the food source. This can be simulated on a computer; creative programmer Pezzza has <a href="https://www.youtube.com/playlist?list=PLPiMlUuvmixC-R-5DXE6k2P6FdKn71JGY">a fascinating series of videos</a> on simulating the behaviour of ants.</p>
  </li>
  <li class="person2">
    <p>the ants are doing a kind of stochastic search of a space. whole lot of problems can be seen in this light, including of course ‘stochastic gradient descent’ and ‘evolutionary algorithms’, but also things like ‘monte-carlo integration’, ‘metropolis light transport’…</p>

    <p>ok so now think about brains. they’re generating thoughts by all these different contextual mechanisms, stuff that cascades into a series of other thoughts. which train of thought you go down is semi-random but it is a <em>patterned</em> randomness. if thoughts are interesting, you’re likely to follow them again. and you can also induce other people to follow them…</p>

    <p>so we can think of the trains of thought generated by your brain as being like ants. the nectar they are looking for is… insight, challenge, emotional fulfilment, protection from danger, all the things that thoughts do; but overall it is ‘interest’. a bored mind has its ants running around aimlessly looking for something to think about. a focused mind has its ants running along a trail.</p>
  </li>
  <li class="person1">Not sure that last part of the analogy holds up… it’s less ‘bring the food back to the nest’, and more ‘try to find the next step’.</li>
  <li class="person2">
    <p>sure. not a perfect analogy.</p>

    <p>but in any case, as far as writing. let’s consider what happens when you write a book. you put a lot of effort into refining the pathways of thought that the reader will follow as they interact with the book. the reader will still be exploring the space around your path—and note that the deserialised thoughts in their head will have a different representation and exist in a different space than the ones in the author’s head.</p>

    <p>this means the purpose of writing is not originality exactly, but to find good pathways through the space and guide minds—your mind, and other minds—to follow them in their explorations. most effective when decoded into a somewhat similar space, of course. but the pathways generated by the pheromone trails <em>create</em> the contours of the spaces.</p>
  </li>
  <li class="person1">So the door that Sash and Abraxa opened for Lilith…</li>
  <li class="person2">abraxa’s magic working in the book is a pheromone trail even though she is fictional. because jeanne has created such a compelling image of how she thinks, it is a strong pheromone trail. and jeanne is following the pheromone trails of other people, who may or may not also be fictional.</li>
  <li class="person1">In the endnotes of the book, Jeanne mentions talking to her therapist about Internal Family Systems theory, and <cite>The Far Side of Madness</cite> by John Weir Perry, and <cite>Maps to the Other Side</cite> by a Sascha Altman DuBrul. We have read neither of those, but those are some of the pheromone trails which shaped her thought-paths, right?</li>
  <li class="person2">the crucial thing though is that it interacts with actual experiences, not just other texts. that is what stops us getting stuck in a basin. the constant interaction with the wider world.</li>
</ul>

<h2 id="plural-technologyplural-sorcery">plural technology//plural sorcery</h2>

<ul class="chat">
  <li class="person2">so it’s time to talk about magic probably</li>
  <li class="person1">We kind of already are, huh. But for the readers’ sake, what are we using this word ‘magic’ to mean?</li>
  <li class="person2">
    <p>for our purposes, the basic contention is that magic is a means to use symbolic methods to interact with invisible and abstract things. this is maybe a somewhat orthogonal concept to what is usually conceived of as magic. our concept of magic is entirely compatible with a materialist worldview, which other ideas aren’t.</p>

    <p>it owes something to the neoplatonist conception of programs-as-intention described by that biologist we encountered last year, <a href="https://thoughtforms.life/">michael levin</a>, a body of theory which really dances at the edge of being crank stuff but hits on some genuinely fascinating novel creations; biobots and neural cellular automata and morphological compilers.</p>
  </li>
  <li class="person1">OK. But lets start with something that can conventionally be called magic, to see if we can put across what we are getting at here. We can talk about sigil-based magic.</li>
  <li class="person2">ehehe queers love our sigils</li>
  <li class="person1">
    <p>As Uminekoheads in the chat know, the <cite><a href="https://sacred-texts.com/grim/kos/">Key of Solomon</a></cite> is one of a number of grimoires circulating in the European ‘Renaissance’, and it is followed a century or two later by another <cite><a href="https://sacred-texts.com/grim/lks/">Lesser Key of Solomon</a></cite>. They describe rituals, demons whose powers can supposedly be called upon, and sigils to command them, all ordered into a great big list.</p>

    <p>These books can be reasonably criticised as being clunky appropriations of poorly understood Kabbalah; on a literary level they might be called repetitive and opaque and narrow in their aspirations and all sorts of stuff. They are popular today largely because they got picked up by a charismatic figures of the early 20th century occult movement, Crowley and that lot. Nowadays they are a well established established bit of visual iconography in the cultural stew, a go to representation of The Occult. You can get them printed on a bag.</p>

    <p>The notion of ‘sigils’ would later be picked up and emphasised by the chaos magic tradition, where it would be separated from a specific symbolic language; the practitioner is instead encouraged to create their own asemic script and inject it with personal meaning. Here the idea of magic working on the mind is made much more explicit; the magician is supposed to forget the meaning of the sigil, to allow the ‘thoughtform’ to do its work unconsciously.</p>
  </li>
  <li class="person2">yes. we are in the concept-space-zone of “magical language”. so the celestial alphabet. the hebrew letters on the sigils. daoist fulu. ofuda. contracts with the devil.</li>
  <li class="person1">
    <p>Creating sigils and magic circles and the like is an archetype for interaction with the world. You do something visible with symbols, and some invisible state changes as a result, causing a cascade of consequences. It turns out, sometimes that actually works, in a way you can meaningfully confirm.</p>

    <p>I think ‘you’ would probably say writing <em>is</em> magic, and it is the scaffolding for further magic. We teach all of our children to perform magic. We teach them to interface with a world of invisible powers: electric and magnetic fields, computer programs, countries, laws, money, gender, metaphor, social roles, minds. We teach them rituals to appease these powers and how to allow these structures to exist on the substrate of our bodies. (I won’t go over the ‘magic circle’ and the ‘egregore’ again here; enough has been written on that on this website already.)</p>
  </li>
  <li class="person2">
    <p>そうです。by training their brains to interact with such systems, by building them up on a group of people and allowing their brains to learn how they work through interaction, them we create the spaces of meaning that their ‘selves’ can exist in. ‘socialisation’, process by which we train the persona &amp; processes of the surrounding society into their minds. that is how a glider propagates one step further.</p>

    <p>the fascists talk about trans existence as a ‘social contagion’. but the entirety of society, every thing that we are, propagates by the same sort of contagion. so like, the point of socialisation is not to just train one role, but to implement the whole social stack. which is just a sorta technomagical spin on like, the general concept of learning! but that’s what it <em>is</em>.</p>

    <p>sigils, then. we started with the most obvious things that ‘count’ as sigils, but the idea can get pretty damn abstract. like the solomon stuff is pretty oldschool. when you hear about grant morrison trying to make a hypersigil by writing comics… the ‘sigil’ is an entire creative work which is reckoned as an act of occultism. and you can say, like, that’s just mystique building, to get you to buy their comics. but <em>mystique building is magic</em>. it’s kind of a self-fulfilling prophecy. (c.f., <a href="/crit/baru/tyrant-3-wizards">baru article 3</a>)</p>
  </li>
  <li class="person1">Right. The sigil stuff comes up in Jeanne’s book: Sash tells her friends that the developers of Mystic Knights are doing occult workings, making sigils by creating the games. Which is probably a remix of the Grant Morrison thing, right?</li>
  <li class="person2">
    <p>mm. worth noting all this ritual is also <em>technology</em>: a learnable, imitable method to accomplish something. in this case, to perform transitions through the spaces of minds.</p>

    <p>so, gender transition is one such technology. it allowed us to escape from default personas and become a creature capable of touch and connection. we’ve come to think plurality is a technology too.</p>
  </li>
  <li class="person1">What does that technology exist to accomplish?</li>
  <li class="person2">there are various answers but one is that it simply exists, and people are using it and entering into a space. (an abstract space, like a high-dimensional vector space with certain dynamics built on it.)</li>
  <li class="person1">And what is to be found in that space? Why should we go there?</li>
  <li class="person2">maybe when you’re inbetween too many spaces it helps us find any space at all to anchor to? maybe because we found our way there by accident, and now wish to be able to explore it more consciously; and we cannot come back so we must make sense of where we are.</li>
  <li class="person1">Here’s a theory. I don’t know that you will like this theory.</li>
  <li class="person2">i have some idea but speak it.</li>
  <li class="person1">We want to be plural because if we are plural we decisively belong to the field of weirdo trannies. We could try being an it/its awawa dollgirl or something but ‘plural system’ seems more compatible. In all these different personas we contextually inhabit in the way all humans do, we sometimes have to adapt to corpo-type panopticon spaces, and we want to make sure we do not forget our loyalty to the Wired, to the Abraxa and the Annie beings of this world.</li>
  <li class="person2">notably that theory does not mean we aren’t, or can’t be, plural?</li>
  <li class="person1">True. But it makes it sound less like a voyage of self-discovery and more like another desperate attempt to assimilate to a group.</li>
  <li class="person2">it doesn’t work. we wouldn’t be doing all this work to dissolve all concepts into atoms if we <em>only</em> wanted to fit in, we’d just pick some random conceptualisation and run with it. we do love and admire our plural friends but it is for the specific beings they are and not just because of what they represent in the plane of symbols.</li>
  <li class="person1">But you’re saying we’re built out of this plane of symbols, aren’t you?</li>
  <li class="person2">
    <p>no. we are built out of system-dynamics. the symbols are just a means to create the interaction space.</p>

    <p>like, think about computer programs, right? it’s kind of hard to define what a program does except in relation to other things. because you can store state anywhere. a function transforms some bits and puts them somewhere and later a another function will read those bits and put some other bits somewhere else. on the local scale it means nothing. it’s only in aggregate, the big pattern that can only be seen ‘from the outside’, that we can see what the program is actually doing.</p>

    <p>we have been brought into resonances by the actual, direct contact with the systems inside our friends, whether they identify as plural or not. this is how the contextual personas emerge. don’t reduce it.</p>
  </li>
  <li class="person1">I think that answers my fear.</li>
  <li class="person2">good. it is good to be able to switch perspectives. flip the chessboard.</li>
  <li class="person1">It is odd, thinking about it, that I identified Abraxa as a creature of the Wired. Because she is not that, not exactly. She makes her working by isolation from the Wired; by distancing herself from the contexts of regular society (the ‘System D’) to create a space of meaning where things could happen without exposure to the panopticon-light, the force that would bring her thoughts back into alignment with the rest.</li>
  <li class="person2">is the wired the internet, though?</li>
  <li class="person1">Hmm. No. It’s something else, isn’t it?</li>
  <li class="person2">we should probably check. does the reader know about lain?</li>
  <li class="person1">Of course the reader knows about Lain, right? Everyone knows about Lain. Even if it’s just like, that girl on the cover of the breakcore mix.</li>
  <li class="person2">you’re funny. i don’t think everyone does know about lain.</li>
  <li class="person1">
    <p>OK. Sure. <cite>Serial Experiments Lain</cite> is an anime series; it is described as ‘cyberpunk’ but ultimately a work that sorta defies categorisation. It is full of richly resonant symbols. Yoshitoshi Abe’s designs with that distant-gaze expression that are empty and yet suggest all sorts of things behind; the deceptive simplicity of the drawings, the disconcerting wires and searing lighting; the inscrutable nonlinear plotting; the fact she actually canonically is plural and one of her is becoming god or something.</p>

    <p>Anyway. The Wired is full of strange creatures, people inhabiting nonhuman bauplans, secretive organisations. It is a vision of the internet of the late 90s, before anyone had any real experience with what was soon to unfold; back when the internet was a hole for strange people to hide in and not the mass of Everyone.</p>
  </li>
  <li class="person3">The line between the strange-person hole and the overwhelming mass is pretty nebulous, isn’t it. Consider aoife’s words on the default persona. Consider that <a href="https://en.wikipedia.org/wiki/Chiaki_J._Konaka">the writer of Lain</a> went on to become a right-wing conspiracy theorist.</li>
  <li class="person2">who are you, person3 (purple)? where did you emerge from?</li>
  <li class="person3">I thought I was you, because I was responding to person1 (green), but then it didn’t seem like a very person2 thing to be thinking, so I realised I must be a third thing. Hello. I suppose I am trying to steer us away from potholes.</li>
  <li class="person1">Well, welcome to the party. If we three stick around, we will have to adopt names or something.</li>
  <li class="person2">do we? there is something comforting about being a nameless swarm of beings, any of which can be Bryn.</li>
</ul>

<h3 id="writing-and-training-of-thoughts">writing and training of thoughts</h3>

<ul class="chat">
  <li class="person1">Writing must be read to do anything, right?</li>
  <li class="person2">yes. absolutely. a serialisation that is never decoded is just bits. it is only meaningful by interaction with a larger system.</li>
  <li class="person1">Of course, writing is read by the author before anyone else. This is how we iterate. We lay down sentences, and that is a pheromone trail to guide us back to where we got to so we can explore further.</li>
  <li class="person2">we don’t just retrace the thoughts. by writing them down we can see them in a different spatial arrangement, recognise patterns, have stable structure.</li>
  <li class="person1">Right, damn, yeah. Writing is ordered and serialised, unlike memory. It’s laid out on a page; we can move our attention around the whole piece and come back. That stability makes it possible to approach it with an editor’s perspective; to revise and adjust, which is hard to do when everything’s floating in the associative fog of memory.</li>
  <li class="person2">right! writing is a technology, perhaps the most powerful technology that humans ever invented, because it is that constant transformation between fuzzy vibesy thoughtspace and serialised space that scaffolds us out into the space of thoughts.</li>
  <li class="person1">There are multiple layers of such transformations, aren’t there? Between images and words inside the brain, and between thought words and spoken or written words. Each one is encountered slightly differently, and we procede by mapping one into the other.</li>
  <li class="person2">just like how programming is mostly about transforming data into different structures!!!</li>
  <li class="person1">Shit, yeah.</li>
  <li class="person2">anyway, the processes, the things that we are made of, that are generating these contextual personas. those are different types of ant, aren’t they? different ways to extend and adjust the thought trail as we wander back and forth along it.</li>
  <li class="person1">Perhaps we could also compare it to processes of erosion and sedimentation.</li>
  <li class="person2">
    <p>oho yeah that’s tasty too. longer-term shifts in the processes of thought.</p>

    <p>think about learning to play a musical instrument, right? or a language. any complex skill really. at first, stupid hard. you have to think about literally everything. but over time, <em>the other parts of your brain learn to model the conscious thought process</em>. you impress those pathways, you create new ants.</p>

    <p>which brings us back to plurality, tulpamancy and the like. the reason that pretending eventually becomes real. At first you have to think, ‘what would my tulpa think about this situation’. but over time, just like you develop a process for playing a musical instrument without conscious thought, your brain can take over modelling the tulpa without conscious thought along the lines of ‘what would the tulpa say’.</p>

    <p>the theory of plural systems talks about finding ways to achieve ‘intra-system’ communication, to recognise switches, to build a ‘headspace’. these things are <em>creating the mechanisms for a plural system to exist within</em>.</p>
  </li>
  <li class="person1">
    <p>So the answer to the ‘real’ vs. ‘iatrogenic roleplaying’ controversy that the wiki article spends so much ink on is, actually, both or neither. When you’re in the self-reference mines like this, the line between ‘roleplayed’ and ‘real’ is not actually a real one. This is perhaps an extension of the <a href="/rpgs/everything-is-roleplaying">everything is roleplaying</a> observation.</p>

    <p>Just like the <a href="/theory/self-exciting-gender-instability">self-exciting gender instability</a>, it’s not just that something like plurality is a pre-existing thing that must be discovered. Nor is it a purely arbitrary fantasy that is copied as a fad. It <em>is</em> a deep fundamental shift to the mechanisms of thought; it is <em>also</em> something a set of practices that must be learned, just like mathematics must be learned.</p>
  </li>
  <li class="person2">yes!! the fact that you have to build mathematics up in your brain does not mean that mathematics isn’t ‘real’.</li>
  <li class="person3">What does that mean for maintaining the line between fiction and reality? Because that line is very important. Getting mixed up leads you to a lot of very dangerous places, like persecuting real people for having the wrong sort of fantasy, or conversely getting so caught up in fantasy that you act on it in the real world.</li>
  <li class="person1">Pretty simple: the mechanisms that distinguish thoughts as belonging to the plane of reality or the plane of fantasy are things that need to maintained. You need to keep practicing recognising the distinction so that your ‘ants’ continue to push thought-paths in the direction of recognising it. If you spend a lot of time around kink people, that gets easier.</li>
  <li class="person3">So this plural stuff… what plane does that belong to?</li>
  <li class="person2">
    <p>well, we have been thinking in these ways and so forth. we are fixated on this subject. it has already grown into something that is real about us. because things on the plane of thoughts and minds are invisible and shape themselves to the observer at the same time as <em>being</em> the observer, they are fundamentally quite mutable. we can reassess the evidence and conclude that we are plural and we will probably start acting in ways that are more plural as a result.</p>

    <p>but we can take care not to lose our model’s connection with the worlds outside our head, because feedback mechanisms are powerful, it is so easy to get lost in our own coils.</p>
  </li>
</ul>

<h2 id="we">we</h2>

<ul class="chat">
  <li class="person3">Are we on Abraxa’s path? Sash’s path? Or Lilith’s path? Annie and Amy?</li>
  <li class="person2">
    <p>no. we’re on some other path. but our we can follow their thought-paths when we need to.</p>

    <p>for now we have found a foothold in an economic system as Lilith did, even if in a weirdo niche like game development; we are not suppressing ourselves as sash spends most of the novel doing, but we certainly have in the past, and we relate hard to her proceduralisations and lists and fear of being evil. but we are drifting into stranger territories now. like Abraxa we have fallen through many different contexts and lives.</p>

    <p>as for annie and amy, they inhabit a horror novel; theirs is not a story that permits happy resolution. their ways of being are necessary to comprehend. they have shown us the way we relate to the biomass tower and the bugs and the sandpaper worlds of the Wired. they are beautiful.</p>

    <p>we love these girls, fictional or not. they represent something important.</p>
  </li>
  <li class="person1">Truly. We would not have been on the edge of tears in the air above France if they didn’t have power in their fictional thoughts.</li>
  <li class="person2">yes. consider this also: Abraxa’s working does not fully fire off in the way she or the reader hopes, but it does something that might even be more important: it replicates the Sorceress, and the ways of her hosts, Abraxa and Sash and Lilith, the spaces they inhabit, and the thought-ways of people they remix and reflect, into the mind of the reader. they have made us understand why our projects matter. so her working is profoundly successful: it already brought together her three friends in our mind, in our hope, even if on the page it all falls apart once more…</li>
  <li class="person1">So this is why we are making the game?</li>
  <li class="person2">this is why we do <em>any</em> of it.</li>
</ul>]]></content><author><name></name></author><category term="theory" /><category term="introspection" /><category term="plurality" /><summary type="html"><![CDATA[We learn to lay and follow pheromone trails.]]></summary></entry></feed>