CodingSoftware & developer tools
Simon Willison uses Claude Opus 5.5 to build Chirp Pong, a two-phone game that syncs over audio chirps
Simon Willison used Claude Opus 5.5 in Claude Code to generate Chirp Pong, a single-file browser game in which two phones exchange game events as audio tones, using a compact acoustic modem with frequency-shift keying, checksums and retransmission.
From the Simon Willison article of October 15, 2026 and cited sources: Willison wrote a one-paragraph prompt, and the result was a static web page for two phones placed top-to-top. [1] [2]
SOURCES[1] Simon Willison: Chirp Pong (post) simonwillison.net[2] Chirp Pong (live tool) tools.simonwillison.net
AI-assisted, not human-edited. Methodology Corrections Who owns this site
- What happened
- Willison wrote a one-paragraph prompt, and the result was a static web page for two phones placed top-to-top. [1] [2]
- Original source
- Simon Willison article, independent perspective
- Brief by
- AT Pulse research desk AI-assisted; publisher and contact on the desk page
- When
- October 15, 2026 article published
- Covered
- Oct 16 edition
- Evidence
- 9 sources across 9 sites
- 1Simon Willison: Chirp Pong (post)simonwillison.net
- 2Chirp Pong (live tool)tools.simonwillison.net
- 3BleepingComputer: New Chirp tool uses audio tonesbleepingcomputer.com
- 4Felo: Opus 5.5 releasefelo.ai
- 5The Batch: Claude Opus 5.5 Leaps Forwarddeeplearning.ai
- 6chirp-pong.html, simonw/tools (GitHub)github.com
QuietHow it’s measured
Hacker News · 2 likes · 1 comment
Reach blends public engagement (views, likes, comments, shares, stars) from the platforms where the story or its original source lives: YouTube, Hacker News, GitHub, Substack and similar. A video and the article written from its transcript share one score, taken from the video. Platforms with no data are left out rather than counted as zero, and the age of a story never lowers its score.
Willison wrote a one-paragraph prompt, and the result was a static web page for two phones placed top-to-top. The phones play Pong-style rallies without Wi-Fi or Bluetooth, passing game state through each phone's speaker and microphone. Willison says it seems to work. [1] [2]
The published code has a complete link layer. Each player gets its own audio band for 16-ary FSK, with 50 ms symbols and a sync preamble. Frames carry CRC-8 checksums. Key messages such as ball handoffs, scores and bombs are acknowledged, and they are resent about once a second until the other phone confirms them. [6] [7]
The game is designed around a very slow link. Each phone runs its own copy of the game, and only small events cross the gap, such as compact ball handoffs and full score tallies. Each frame takes hundreds of milliseconds, so live paddle syncing is not possible. Unlike ggwave, the code has no forward error correction. [7] [9]
one prompt produced readable code that anyone can inspect, covering modulation, framing and acknowledgments, which is normally specialist work. Implication: generated protocols could speed up prototyping for offline pairing or kiosk handoffs.
Read the full assessment
They still need testing across devices and noise levels, and audio links create covert data paths.
Executive brief
Simon Willison used Claude Opus 5.5 in Claude Code to build Chirp Pong. It is a two-player Pong-style game that runs in static HTML on two phones, with no Wi-Fi or Bluetooth. Game state moves between the phones as audio chirps that each phone's microphone picks up. The surprising part is that the generated single-file app contains a complete working acoustic modem: frequency-shift keying, CRC checksums, and acknowledgments with automatic retransmission. Willison reports that "it seems to work". No one else has tested or written about the game.
What changed and event timeline
Text-over-sound tool draws attention
Researcher solst/ICE released Chirp, a browser tool that sends text as audio tones. It has no error correction, and a 100-word message takes about 70 seconds.
Claude Opus 5.5 ships
Sources disagree on the date: says September 22, and says September 25. Both describe it as cheaper than Opus 5 and focused on agentic coding.
Willison covers Claude Haiku 5.5
Anthropic's smaller 5.5-generation model follows Opus, as listed in the.
Chirp Pong posted
Willison shares his one-paragraph prompt and credits "Claude Opus 5.5 Extra in Claude Code."
Capabilities and access
- Model: Claude Opus 5.5 in Claude Code.
- Access: a free static web page at tools.simonwillison.net/chirp-pong, with the code in the simonw/tools repo.
- Gameplay twists: points are worth ×2 after 6 hits in a rally and ×3 after 12.
Read the full section
- Model: Claude Opus 5.5 in Claude Code. The label "Extra" is Willison's. The Batch lists the effort levels as low, medium, high, xhigh and max, so "Extra" probably means xhigh, but that is not confirmed.
- Access: a free static web page at tools.simonwillison.net/chirp-pong, with the code in the simonw/tools repo. It needs microphone permission. Players put the phones top-to-top a few centimetres apart with volume at maximum.
- Gameplay twists: points are worth ×2 after 6 hits in a rally and ×3 after 12. Players can also send "trick gems" and bombs that stun the other player's paddle.
Technical analysis for researchers and developers
- Modulation: 16-ary FSK. Each symbol lasts 50 ms, and each frame starts with a two-symbol sync tone.
- Receiver: the code switches off the browser's echo cancellation, noise suppression and automatic gain control.
- Reliability: each frame carries a CRC-8 checksum. Before sending, a phone checks that the other band is quiet.
Read the full section
From the source file:
- Modulation: 16-ary FSK. Each player transmits in its own band, roughly 1.4–3.0 kHz or 3.4–5.0 kHz, using 18 tones spaced 46.875 Hz apart. Each symbol lasts 50 ms, and each frame starts with a two-symbol sync tone. Consecutive tones always differ, so the receiver can find symbol boundaries without a shared clock.
- Receiver: the code switches off the browser's echo cancellation, noise suppression and automatic gain control. It runs a 1024-point analysis at 48 kHz and picks the strongest tone in each symbol. It tries up to five timing guesses, and the first one that passes the checksum wins.
- Reliability: each frame carries a CRC-8 checksum. Before sending, a phone checks that the other band is quiet. Important messages (ball handoff, scores, bombs) use stop-and-wait acknowledgments and are resent about every second until acknowledged.
- State model: each phone runs its own game. Only small events cross the gap: a ball handoff packs position, angle, speed, spin, trick type and rally count into a few dozen bits. Each miss message carries both players' full scores, so the phones can detect when they disagree.
Claims and evidence
- The game works on two phones over audio. Only Willison reports this, in his post.
- Claude Opus 5.5 wrote it. The post does not link a coding transcript, so it is unclear how much he reworked the code.
- The protocol design described above is in the code. Anyone can check this by reading the published file.
Read the full section
- The game works on two phones over audio. Only Willison reports this, in his post. There is no independent playtest, no measured error rate and no record of which devices it was tried on.
- Claude Opus 5.5 wrote it. This rests on Willison's attribution. The post does not link a coding transcript, so it is unclear how much he reworked the code.
- The protocol design described above is in the code. Anyone can check this by reading the published file.
- Opus 5.5 leads on agentic coding. Anthropic positions it this way. Third-party indexes from Artificial Analysis and Vals AI rank it first overall, as summarized by The Batch, but none of these benchmarks test this kind of task.
Context and prior work
- Sending data over sound is an old idea. ggwave is an open-source library that uses multi-tone FSK with Reed-Solomon error correction at 8–16 bytes/sec.
- The Chirp company) grew out of University College London research on "sonic barcodes."
- Chirp Pong includes no outside library. Its one new element is pairing a low-bandwidth audio link with game design that only sends sparse events.
Read the full section
- Sending data over sound is an old idea. ggwave is an open-source library that uses multi-tone FSK with Reed-Solomon error correction at 8–16 bytes/sec. It offers audible and ultrasonic modes and runs in the browser via WebAssembly. It uses the same 46.875 Hz tone spacing as Chirp Pong, which is what a 1024-point analysis at 48 kHz gives.
- The Chirp company) grew out of University College London research on "sonic barcodes."
- Chirp Pong includes no outside library. Its one new element is pairing a low-bandwidth audio link with game design that only sends sparse events.
Limitations, safety and contested findings
- Distance and noise: the game needs the phones a few centimetres apart at full volume.
- Bandwidth: the code's own airtime formula, (2 + data symbols) × 50 ms per frame, means each ball handoff takes hundreds of milliseconds.
- Model safety: The Batch reports that Opus 5.5 passes cybersecurity and biology queries that Anthropic considers sensitive to Opus 4.8 instead.
Read the full section
- Distance and noise: the game needs the phones a few centimetres apart at full volume. It uses audible tones and no forward error correction, so noisy rooms could break it. ggwave's Reed-Solomon coding is the obvious contrast.
- Bandwidth: the code's own airtime formula, (2 + data symbols) × 50 ms per frame, means each ball handoff takes hundreds of milliseconds. Real-time paddle syncing is not possible; the design hands the ball over in discrete events instead.
- Model safety: The Batch reports that Opus 5.5 passes cybersecurity and biology queries that Anthropic considers sensitive to Opus 4.8 instead. That does not affect this project.
- Conflicting dates: sources disagree on the Opus 5.5 release date, as noted in the timeline.
Business and practitioner implications
- Prototyping cost: one prompt produced a niche signal-processing design (modulation, framing, acknowledgments). That is the kind of work that used to need a specialist.
- Review burden: the code is easy to read but has had little testing.
- Uses beyond games: the same browser-only, no-network method could support device pairing, offline handoffs or kiosk interactions.
Read the full section
- Prototyping cost: one prompt produced a niche signal-processing design (modulation, framing, acknowledgments). That is the kind of work that used to need a specialist. This is a single anecdote, not a benchmark result.
- Review burden: the code is easy to read but has had little testing. Before relying on similar generated protocols, teams should run their own tests across devices and noise levels.
- Uses beyond games: the same browser-only, no-network method could support device pairing, offline handoffs or kiosk interactions. It also creates a covert data path that security teams should keep in mind.
- Cost: The Batch lists Opus 5.5 at $4/$20 per million input/output tokens, which matters for how many experiments like this a team can afford.