Late on September 18 a video went past me on X that I could not stop thinking about. @chetaslua posted a clip of a naval battle rendered entirely in ballpoint pen on lined notebook paper. Sailing ships trading fire, a lighthouse, a palm island, a treasure map with a compass rose, a wind indicator. Score popups reading "RESCUED! +50" and "HELP!". In the margin, a half-finished maths problem about a ship sailing at 12 knots for 3 hours, and a teacher's note in red pen. A label in the corner read "EVERY LINE HERE IS BALLPOINT PEN". The conceit is a bored kid drawing a naval war across his exercise book instead of listening.
It is a lovely piece of work. By the next day it had passed 600,000 views. The caption was "Fable 5.2 made this video and game both < routed from fable 5.1 >".
I wanted to play it. I could not, and that turns out to be the interesting part.
What I could check, and what I could not
There is no playable link. Not in the thread, not in the replies, not on his GitHub, which has eight public repositories and none of them is this game. The clip's own title screen reads INK ARMADA in big block capitals, so the name was never a secret, and someone went looking hard enough to open an issue on an unrelated repo of his, the entire body being "ink armada link for game ?". It got silence.
The absence stands out because it is not how he normally ships. His little-neighbourhood project has a single index.html, a GitHub Pages link and a downloadable HTML release. That is someone who knows how to put a self-contained browser toy in front of people. Here, nothing.
Then there is the model claim. "Fable 5.2" is not an announced model. As of September 18 it appears in no Anthropic documentation, no sitemap and no OpenRouter catalog. The newest identifier I can find is claude-fable-5-1, released on September 1. "Routed from 5.1" means he believes an unannounced checkpoint quietly served his Claude Code request.
The evidence offered for that, by him and by one other account, is a recall prompt. They asked who a particular obscure person is, with searching disabled, and got a different answer than before. That is genuinely all of it. No model identifier, no screenshot of a model list. The other account read the same result as evidence that a release is not imminent, which tells you how much weight the test carries. Recall of an obscure name moves with temperature, system prompt and harness, so it cannot separate a new checkpoint from ordinary variance.
Then I did what I should have done first and pulled the clip apart frame by frame, 61 frames at half-second steps. Two things sit in it in plain sight. First, the video carries a pinned caption through its whole runtime: "made by Claude Fable 5.1 · 2 prompts · sprites via ChatGPT Images". That does not contradict his routing claim, since the tool he used was labelled 5.1 either way, but it is a disclosure the in-game banner does not make: the ships and clouds are AI-generated image sprites in a pen style, so "EVERY LINE HERE IS BALLPOINT PEN" describes the look rather than the method. Second, the frames show a real and surprisingly deep game. A title screen with controls. Sailing on A and D. A scribble-strike special that drains an ink meter. Named waves, a boss called The Black Biro, a kraken arm with a warning to keep moving, lightning to dodge, powder barrels, flat shots that ricochet like skipped stones, and tips that float past as messages in bottles. It is genuinely great work, which makes the missing link stranger, not less strange.
I want to be careful here, because there is a lazy version of this post that I am not writing. He is not a fabricator. In October 2025 he posted early Gemini 3.0 Pro demos that held up. I am not calling the claim false.
What I am saying is narrower. A demo video is not an artifact. You cannot run a video, you cannot read its source, you cannot check that it does what the cut suggests. And "which checkpoint served my request" is not knowable from outside the company serving it, by him or by me or by anyone in the replies. Both things can be true at once: he saw what he says he saw, and none of us can verify it. The correct response to an unverifiable claim about a model is not to argue about the model. It is to go and build the thing and see how hard it actually is.
So I built one
This is an original game, not a reconstruction of his. I have never seen his source and I am not trying to reproduce his output. It is also a game I genuinely wanted to make, not just a point I wanted to prove. I wrote a brief and built it with Claude Fable 5.1 in the Claude app. The first playable version came out of a single session; getting it from playable to something I would put my name on took longer, and I am nowhere near done with it. I kept the name Ink Armada, the title on his own start screen, because it is what everyone was already calling the thing they could not play.
It is one self-contained HTML file, 46 KB, Canvas 2D, no dependencies, no CDN, no network requests. Double-click it and it works offline. And where his sprites came from ChatGPT Images, there is no image anywhere in mine: every ship, wave and doodle is a polyline pushed through a simulated pen, which is the part this post is actually about.
Controls: aim with the mouse, hold to charge your shot, release to fire. Arrow keys, Space and R also work, and so does touch.
It is a side-view artillery duel. Your ship sits on the left, enemies sail in from the right in three classes: sloop, frigate and galleon. Wind changes every wave, shows up as an arrow on a doodled compass, and bends every shot including theirs. Ships collect red scribble damage as they take hits, and some sloops will ram you. A sunk ship gets crossed out with an overdrawn red X and drops a survivor who waves for seven and a half seconds. Click them for "RESCUED! +50" in green.
The page itself is the notebook. Printed rules, red margin, binder holes, paper grain, and the marginalia doing a lot of the work: the maths problem, a crossed-out wrong answer, a red "PAY ATTENTION! SEE ME AFTER CLASS." beside a circled C-, the palm island, the lighthouse, the treasure map. The footer reads "NAME: ... CLASS: 4-B SUBJECT: NAVAL WARFARE".
The actual problem is the pen
Here is the part worth your time. Faking ballpoint is harder than it looks, and the obvious approach does not work.
If you add random jitter to each lineTo, you get a wobbly filter. It reads as a broken line renderer rather than a hand, because hands do not produce white noise. What worked was treating the pen as several smooth signals stacked on each other.
Two bands of noise, not one. Every stroke gets two bands of smooth value noise, offset along the stroke normal. A low-frequency band is the wrist drifting, roughly a pixel of wander over 30 to 40 pixels. A high-frequency band on top is the tremor, about 0.4 pixels. One random offset per point reads as noise. Two smooth bands at different frequencies read as a hand.
Pressure drives width and alpha together. A third smooth band acts as pen pressure, and it controls line width and ink alpha at the same time. This matters because a ballpoint gets darker and wider together. Vary one without the other and it stops looking like ink.
Ink pooling. Real ballpoints dump a small blob when the tip first touches down. An exponential pressure boost over the first five pixels or so of every stroke gets you that, and it is a bigger contributor to the effect than its size suggests.
Skips. A fourth noise band, thresholded, drops alpha to around 15% for a few pixels at a time. Pens skip. A pen that never skips looks printed.
Corner overshoot. This is the one that surprised me. Any corner sharper than about 50 degrees splits the polyline into two separate strokes: the incoming one extended one to three pixels past the corner, the outgoing one starting one to two pixels before it. This single rule is the difference between a rectangle that looks drawn and a rectangle that looks plotted. Hands overshoot corners and then come back.
Overdraw. Each shape has a chance of a second pass at 45% alpha with a different noise seed. That is the "went over it twice" look you get in a real notebook, and it breaks up the uniformity that gives generated art away.
Multiply compositing on the paper layer, so overlapping ink darkens the way it does on actual paper.
Then the performance work, because all of that is expensive. Every stroke takes a seed, so it is deterministic. Paper and static doodles bake once to an offscreen canvas. Ships bake into sprite canvases keyed by type, damage, facing and one of three "boil" variants that cycle roughly every 280 ms, so moving things shimmer while the page underneath stays still. Waves draw live on the same slow seed. Measured about 1 ms per frame of drawing in software-rendered headless Chromium at 1280x760, and it respects prefers-reduced-motion.
There is also a hand font: A to Z, digits and punctuation defined as polylines on a 4x6 grid, pushed through the same pen so the labels match the art, with per-glyph baseline and rotation jitter.
What is weak
The hand font is the roughest part of it and I would not defend it. Enemy AI is a timer, not a brain. And there is no sound at all yet, which is the most obvious gap. Synthesized pen-scratch and paper-thump Foley through Web Audio is the next thing I want to do, and it would probably add more than another visual pass would.
This is the beginning, not the end
What is live today is the first playable version, and I am treating it as a foundation rather than a finished game. The plan I am building toward: 50 levels instead of endless waves, with a boss every tenth level. Sea monsters. Storms that whip the sea up and make the wind mean something more than a bent trajectory. And your ship learning to move, because dodging a kraken's arm or a ramming sloop should be a skill, not a coin flip.
No dates promised, because I do not know them. Each piece will get written up as it lands, since the rendering technique is still the point of all this.
This is the first of a series
I am calling it Margin Games: small single-file browser games where the whole gimmick is the rendering. Each one fakes a different analog medium in code, with no image assets at all. Each gets a playable page here and a post about how the rendering works.
On the list so far: a chalkboard with dust and smudged erasures, graph paper with plotted curves, sticky notes with marker bleed, thermal receipt paper, a felt-tip napkin sketch, a blueprint in white on cyan, cave painting, and a whiteboard with dry-erase ghosting.
If there is a medium you want to see faked, tell me. I will take the suggestions seriously, and the weirder ones are more interesting than the obvious ones.
Go play it and tell me your score, because I genuinely do not know what a good one looks like yet. And if you build AI tools yourself, submit yours to the directory.














