Dojo Octave: An Ink-Wash Duel Won by Melody
Win a martial-arts duel without draining any health bar, in one offline HTML file: two duellists on a ring of eight trigram stances, and every clean strike lights one of the eight notes on your opponent — complete the octave to play the winning melody. Paper-and-ink arena, top octave ring, bottom-centre HUD and synthesised bianzhong audio.
Bring the arena, the stances and the victory condition, and optionally the note layout, the strike feel, the HUD layout and the UI text. The Skill returns a downloadable Skill (the duel project, a customize guide, headless verification) and one playable example bout.
How it works
Your coding agent copies the working game and follows the customize guide: arena dressing, stance ring and notes, strike profiles, the melody order, palette and the synthesised bianzhong audio.
Instead of an HP bar, every clean strike lights one of the eight trigram notes on your opponent; completing the octave plays the winning melody and ends the bout.
The game is played headlessly under the sandbox policy: bout start, the first stance, a step, the first lit note, a second note and the full octave, plus a phone bout.
Frequently asked questions
Does it call a model or need a key?
No. The Skill gives your agent a working game, a customize guide and verification; the game itself makes no network calls and calls no model.
Why is the demo sandboxed?
The frame has an opaque origin and no network access, so the scene can’t read anything from this page or reach the internet.
Is the game in English only?
Yes. The page is in two languages; the game’s own text is in English.
Where does it come from?
It is a credited port: the package keeps the upstream Apache-2.0 licence and notices, and the page’s third-party notices list its libraries and the original code licence.
Does it work on mobile?
Yes: sliding along the ring and tapping to strike plays the bout under touch. Verified under touch emulation, not on real devices.
Why is there no online generation?
Building a new scene needs a model key inside the sandbox, which the backend doesn’t support yet. Run the Skill with your own agent for now.