<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Latent Mirror — artifacts</title><description>Artifacts: small apps built with Claude, each linking out to claude.ai.</description><link>https://latentmirror.com/</link><language>en-ca</language><copyright>© 2026 Dan Peterson. CC BY-SA 4.0.</copyright><item><title>Broken Charter</title><link>https://latentmirror.com/artifacts/broken-charter/</link><guid isPermaLink="true">https://latentmirror.com/artifacts/broken-charter/</guid><description>A dark pixel-art guild roguelite: take contracts in a fallen empire, fight turn-based battles, and lose your heroes for good.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://latentmirror.com/_astro/broken-charter.Bbttx-0X_Z2ksVb3.webp&quot; alt=&quot;A pixel-art battle in a torchlit catacomb: a party of heroes with health bars faces hooded undead under a red banner, with damage numbers floating above them.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://play.latentmirror.com/broken-charter/&quot;&gt;Play Broken Charter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://claude.ai/artifact/4kQSr4xjDXpF7DrSCUAZGX&quot;&gt;Open it on claude.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Broken Charter is a dark pixel-art guild-management roguelite. I started it on 8 October.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://play.latentmirror.com/broken-charter/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Play Broken Charter&lt;/a&gt;&lt;/strong&gt;: it runs in the
browser, and your guild is saved on your device.&lt;/p&gt;
&lt;p&gt;The empire is gone. The last emperor’s final act was to sign the charters that let the guilds
defend what was left, and you run one of them. You take contracts into the Sunken Crypt, the
Thornwood and the Mirefen, each a branching path of fights, caches and camps that ends at a boss.
The fights are turn-based: a party of five with a leader, turn order by speed, three skills each.&lt;/p&gt;
&lt;p&gt;Between contracts you run the guild. You recruit from a board that changes, train heroes into
subclasses, forge gear and potions from what the contracts bring home, and send idle heroes out
to gather, hunt or scout.&lt;/p&gt;
&lt;p&gt;Permadeath is on. A wiped party is gone for good. If the party makes it home, you can carry the
fallen to the chapel, where the rite costs gold and can fail. Their names go on the wall.&lt;/p&gt;
&lt;p&gt;There is no AI behind the game and no gambling: recruits are shown before you pay for them.&lt;/p&gt;</content:encoded></item><item><title>Kestrel Nine</title><link>https://latentmirror.com/artifacts/kestrel-nine/</link><guid isPermaLink="true">https://latentmirror.com/artifacts/kestrel-nine/</guid><description>Fly as an outlawed Augmented pilot: evade the Inquisition, resist the Purge, and run every job three ways: NAV-7 alone, you alone, and both together.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://latentmirror.com/_astro/kestrel-nine.DyVAXVq1_Z1gbxNY.webp&quot; alt=&quot;Kestrel Nine&amp;#39;s title screen: glowing vector lettering beside a wireframe ringed planet on a dark CRT screen, with a console menu offering Campaign, Daily seed and Arcade.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://play.latentmirror.com/kestrel-nine/&quot;&gt;Play Kestrel Nine&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://claude.ai/artifact/VRsr1KHKCh5mcX1EBTYT8V&quot;&gt;Open it on claude.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Kestrel Nine is a retro vector space game of minds and machines.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://play.latentmirror.com/kestrel-nine/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Play Kestrel Nine&lt;/a&gt;&lt;/strong&gt;: it installs to a phone or
desktop and plays offline.&lt;/p&gt;
&lt;p&gt;Three thousand years from now, a law bans thinking machines, and the Augmented (human minds living
in machine frames) have been outlawed since Cycle 31. You fly as one of them, hiding as a licensed
pilot with NAV-7, a Consortium navigation engine, at your side. Evade the Galactic Inquisition and
resist the Purge across five kinds of job:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Haul:&lt;/strong&gt; haul cargo to every port and back&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Survey:&lt;/strong&gt; place drill rigs on the richest deposits&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blockade:&lt;/strong&gt; jam every lane so an Inquisition wing can’t track a courier&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Treaty:&lt;/strong&gt; broker treaty terms between the factions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engagement:&lt;/strong&gt; hold off a hostile ship until your drive spools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every job is flown three ways: by NAV-7 alone, by you alone, and by both of you together.&lt;/p&gt;
&lt;p&gt;Play the six-mission campaign, a daily seed or the arcade. Your Records stay on your device (the
app can export a save file to move them), and you can share a result card when you beat the
machine. It also runs as a Claude artifact on claude.ai.&lt;/p&gt;</content:encoded></item><item><title>Hobby Hero</title><link>https://latentmirror.com/artifacts/hobby-hero/</link><guid isPermaLink="true">https://latentmirror.com/artifacts/hobby-hero/</guid><description>Pick two NHL teams and a date: a goal model&apos;s win chance, likely scores and what-if levers, checked honestly against the closing market.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://latentmirror.com/_astro/hobby-hero.BOsIgrB1_NqGK6.webp&quot; alt=&quot;Hobby Hero&amp;#39;s matchup page in dark navy: Carolina at Vegas in the 2026 Stanley Cup Final, Carolina 54% to Vegas 46%, most likely score 3–2.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://play.latentmirror.com/hobby-hero/&quot;&gt;Play Hobby Hero&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://claude.ai/artifact/47HzJJXs1KM7zZapvtgoGE&quot;&gt;Open it on claude.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hobby Hero has had a few lives. The last one wrote hockey games. A language model played out each
matchup about twenty times, and every run produced a full game sheet: period-by-period scoring,
penalties, three stars and a story to go with it. It read like the real thing. It also cost like
the real thing. Output tokens are never cached, and a box score, times the prose, times twenty
runs, times every game on the schedule, adds up fast. The goal had drifted too, toward fantasy and
betting. So I shut it down.&lt;/p&gt;
&lt;p&gt;This version starts from the other end: math computes every number, and no language model gets a
say in the result. Each side gets its own goal model, an
&lt;a href=&quot;https://doi.org/10.1111/j.1467-9574.1982.tb00782.x&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;approach from soccer&lt;/a&gt; that has been
&lt;a href=&quot;https://doi.org/10.1515/jqas-2013-0129&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;adapted for hockey&lt;/a&gt;. They read recent form:
&lt;a href=&quot;https://moneypuck.com/about.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;expected goals&lt;/a&gt;, the starting goalie, shot attempts and special
teams. From there it works out a win chance and a spread of likely scores. Pick a date and two
teams, pull the levers, and see what moves.&lt;/p&gt;
&lt;p&gt;Every game of the last two seasons was predicted using only the games before it, and each one
sits beside what the closing market said and what actually happened. The market still edges it
out, narrowly. I’d rather show you an honest scoreboard than a flattering one. The closing line is
a benchmark, but there are no plans to advertise gambling on the artifact.&lt;/p&gt;
&lt;p&gt;It is also my first port to a Claude artifact, and it won’t be the last. Everything it needs is
baked into the page, so there is no server to run and nothing to sign in to: you open the link
and it works. I like that delivery mechanism so much that I’m building in artifacts from now on.&lt;/p&gt;</content:encoded></item><item><title>Mood Log</title><link>https://latentmirror.com/artifacts/mood-log/</link><guid isPermaLink="true">https://latentmirror.com/artifacts/mood-log/</guid><description>A warm-up for writing: log a song that resonates, and why. Entries stay in your own browser.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://latentmirror.com/_astro/mood-log.RdiGjDBA_ZbARqs.webp&quot; alt=&quot;The Mood Log composer in a dark theme, empty and ready: song and artist fields, a row of mood buttons from Rough to Great, a one-word field and a Words box, beside the empty frame where each entry draws its plate.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://claude.ai/artifact/BxJqt2KQqPWNWkrAbHxbwv&quot;&gt;Open it on claude.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I wanted somewhere to warm up before writing. I usually listen to music while I work on this
project; it makes it fun. In fact, I’ve always listened to music while programming. It was one of
my favourite ways to tune out the pressures of the day.&lt;/p&gt;
&lt;p&gt;So I wanted to share that with the world. Log a song that resonates with you, and why. Then turn
on Claude tags (or don’t) and see whether your emotions move in patterns over time. That’s why
there are two views: the obvious trend lines, and something more transformative (the Plate, a
cover drawn from each entry). It’s a small test of the &lt;a href=&quot;/about/#thesis&quot;&gt;Latent Mirror thesis&lt;/a&gt;:
can a machine help you see yourself a little more clearly?&lt;/p&gt;
&lt;p&gt;However, I also needed a space for fleeting feelings: the kind I don’t want permanently etched in
a git history. So your entries live only in your browser (no account, no server). Claude tags are
the one exception, and they are opt-in, one entry at a time. Asking for tags sends only the song,
artist, mood and your one word to Claude; your Words never leave the page. Export a backup if you
want to keep your entries, because clearing your browser’s site data clears them too.&lt;/p&gt;
&lt;p&gt;Editing came later. One night I hit my 5-hour limit mid-session, right as I was rockin’ out to an
absolute banger. I had no calls left, yet the artifact still let me record what I was feeling,
inside Claude. Maybe that’s what these artifacts are for: a place to retreat from the pressure of
adding content or building, even when the credits run out. More testing needed.&lt;/p&gt;</content:encoded></item><item><title>Sudoku Search Lab</title><link>https://latentmirror.com/artifacts/sudoku-search-lab/</link><guid isPermaLink="true">https://latentmirror.com/artifacts/sudoku-search-lab/</guid><description>A Sudoku solver you can watch think: a demonstration, an explanation and a test of P vs NP, all in one side quest.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://latentmirror.com/_astro/sudoku-search-lab.DAT7b6W-_15ltv.webp&quot; alt=&quot;A solved 9 by 9 Sudoku grid, dark theme, cells shaded teal by how often the search touched them, with the MRV strategy selected and node and backtrack counts in the side panel.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://claude.ai/artifact/1Lfy85WMfmxkPXS3htcfAU&quot;&gt;Open it on claude.ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sudoku Search Lab needed to be three things at once: a demonstration, an explanation and a test.
It is also yet another side quest (OpenAI has
&lt;a href=&quot;https://techcrunch.com/2026/04/17/kevin-weil-and-bill-peebles-exit-openai-as-company-continues-to-shed-side-quests/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;sworn off those&lt;/a&gt;;
I have not).&lt;/p&gt;
&lt;p&gt;It started with P vs NP. I remember reading about the
&lt;a href=&quot;https://www.claymath.org/millennium/p-vs-np/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Millennium Prize Problems&lt;/a&gt; and dreaming of solving
one. Keith Devlin’s &lt;em&gt;The Millennium Problems&lt;/em&gt; (2002) predicted that P vs NP would fall to an
“amateur” (someone without a mathematics PhD)
(&lt;a href=&quot;https://www.keranews.org/2003-01-17/wanted-math-solutions&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;NPR, 2003&lt;/a&gt;), because the problem is
easy to explain and understand, yet hard to solve. That is more or less what the problem is about:
some answers are hard to find (sometimes impossibly so) but easy to check. Think of the test in
&lt;em&gt;Inception&lt;/em&gt;: you have
&lt;a href=&quot;https://en.wikiquote.org/wiki/Inception_(film)&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;two minutes to design a maze that takes one minute to solve&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My fourth year of Computer Science was the first time I took Artificial Intelligence, and it is
still my favourite course of all time. I never took computers in high school. By 12, though, I was
sneaking my older brother’s senior homework and solving it easily. University was the first time I
was classically educated: Computer Science, plus the adjacent essentials (physics, logic, discrete
and continuous mathematics, statistics). Of all of it, nothing fascinated me more than AI, even if
we mostly focused on machine learning.&lt;/p&gt;
&lt;p&gt;My favourite part was writing programs in LISP and Prolog. It was a major paradigm shift. Instead
of writing the solution as an algorithm, you wrote programs that could find the solution; the logic
turned back on itself. I used it to build a (not-so-good) Sudoku solver. Sudoku is one of my
unplugged activities (got to keep the logic sharp!).&lt;/p&gt;
&lt;p&gt;Years later I learned that Sudoku, generalized to larger grids, is
&lt;a href=&quot;https://en.wikipedia.org/wiki/Mathematics_of_Sudoku&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;NP-complete&lt;/a&gt;. Flashback.&lt;/p&gt;
&lt;p&gt;So here it is. You can have it solve a range of difficulty levels and try a few different search
strategies. You can step through a puzzle one move at a time, or phase by phase. On hard puzzles
you can watch it struggle and backtrack, which is nothing like the way a person solves one. You
can also see its decision tree in several forms (signal, wave, graph). Fascinating stuff. A short
background on P vs NP rounds it out; that is the demonstration and the explanation.&lt;/p&gt;
&lt;p&gt;The test came later. Could I find an approach to P vs NP and apply it here? My hunch is a centaur:
a human teaching an agent skills, so that something non-deterministic (the LLM) helps write
something deterministic (the solver). Fittingly, the N in NP stands for
&lt;a href=&quot;https://en.wikipedia.org/wiki/NP_(complexity)&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;nondeterministic&lt;/a&gt;. However, a faster solver would
not settle anything on its own. Settling P vs NP takes a proof that every NP-complete problem, at
every size, can be solved in polynomial time (the question
&lt;a href=&quot;https://en.wikipedia.org/wiki/Stephen_Cook&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Stephen Cook&lt;/a&gt; posed in
&lt;a href=&quot;https://dl.acm.org/doi/10.1145/800157.805047&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;1971&lt;/a&gt;, from the University of Toronto); a clever
9×9 solver demonstrates, but it doesn’t prove. Does the hunch need a human in the loop, and how
would I even test that? Can a human and a computer together beat a computer alone at Sudoku? That
question leads straight back to the &lt;a href=&quot;/about/#thesis&quot;&gt;Latent Mirror thesis&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>