Haiku in nine themes, with every line counted after it is built from CMU Pronouncing Dictionary syllable counts rather than a spelling rule, and a seed in the link so a poem can be shared
Initializing in your browser…
Build or paste a Markdown table and see it read back cell by cell, with column widths measured in display columns so CJK text, emoji and accents line up, and pipes escaped in the right order
Generate a JSON Schema from a document and see whether it actually validates that document, with every number written back exactly as the file spelled it and formats checked against the calendar and the clock rather than by pattern
134 printable paper templates - dot grid, graph, isometric, hex, Cornell notes, handwriting guides, planners, calendars, manuscript paper, tablature, game boards and more. True vector PDF, SVG or PNG at any paper size.
You want a 5-7-5 haiku, and you want to know that it really is 5-7-5.
Theme
Nature, seed h3k9m2
Haiku
an enchanting stream 5 the silent rain wandering 7 morning dew glistens 5
Each line is counted AFTER it is built and the number is shown beside it, from the CMU Pronouncing Dictionary rather than a spelling rule. The previous version labelled every line with the number it had asked for whatever the line held, and scored 157 of 1,800 when the poems were actually counted; the word banks themselves had 70 of 422 entries filed under the wrong syllable count. The seed is in the link, so sending somebody this poem sends them this poem.
Generate haiku in nine themes, with the syllables counted from the CMU Pronouncing Dictionary rather than guessed at, and a seed in the link so a poem can be shared and reproduced.
A haiku generator makes exactly one claim that can be checked, 5-7-5, and this one checks it. Every line is counted after it is built, the count is shown beside the line, and the page says whether the poem is a haiku rather than asserting that it is.
The counting is not a rule about spelling. English spelling does not determine pronunciation, so a rule can only ever be an estimate. Instead, every one of the 474 words this tool ships carries a count taken from the CMU Pronouncing Dictionary, 126,052 entries, where a syllable is a vowel phoneme carrying a stress digit: a transcription of how the word is said. Ten words the dictionary does not hold were counted by hand and are listed on the page, and seven it gives two readings for (spring, current, beloved, wire, wires, glistening, hovering) were settled by choosing the common one, which is also listed. Nothing is hidden behind a heuristic.
That mattered more than it sounds. The word banks used to be arrays keyed by syllable count, and nothing checked that a word filed under 2 has two syllables: measured against the dictionary, 70 of the 422 checkable entries were filed wrong. `serenity` was filed as two and has four. `comet` was filed as one and has two. `the internet never sleeps` was filed as five and has seven. The count is a property of each entry now, taken from the dictionary, so there is no bucket to be wrong.
A line is built by choosing a shape (an adjective, a noun and a verb; the word "the" and a noun and a verb; and six more) and then working out how many syllables each slot should take so the total is exactly right, searching every combination the theme can actually supply. When no shape fits, the line says it missed rather than being labelled with the number it was aiming at.
Every draw comes from a seeded stream, and the seed travels in the shared link, so sending somebody a haiku sends them the poem rather than the theme. Press New haiku for a different seed, or hover a line and press the shuffle icon to replace just that line, which keeps the other two and stays 5-7-5.
Words you add yourself are a different case: nothing knows them, so they are counted by an estimate whose accuracy is measured (right on 108 of 128 hand-counted words) and every word and every line built from them is marked as uncertain. Saved poems are kept in this browser rather than in memory, so they survive a reload. The image export draws the poem from the lines rather than from the page, so it cannot disagree with what is on screen.
Use a generated haiku as a starting point, and replace one line at a time until the poem is going somewhere.
Open the counting panel and see the syllables added up word by word, with each count traced to a pronunciation rather than a spelling rule.
Share a short poem as a link that shows the reader the same poem, or as an image.
Add your own words and the generator builds from them, marking any count it had to estimate.
It is measured rather than asserted. Every line is counted after it is built and the number is shown beside it. In this project's tests, 1,800 of 1,800 generated poems are 5-7-5 when scored against the CMU Pronouncing Dictionary, and 180 of 180 through the running page. The previous version scored 157 of 1,800, because it labelled every line with the number it was asked for whatever the line held.
Traditional haiku are counted in Japanese "on", which are not quite English syllables: a Japanese haiku of 17 on is usually shorter than an English one of 17 syllables. The 5-7-5 syllable form is the English convention and is what this tool produces.
Because it is not one of the 474 words this tool ships, so there is no dictionary entry for it here and the count comes from a rule. That rule is right on 108 of 128 hand-counted words, which is good and not certain, so the page says so rather than presenting the number as a fact.
Yes. Every draw comes from the seed in the URL, so a link reproduces the poem exactly. Press New haiku for a different seed.
Your text is processed locally in the browser. Nothing you paste or open is transmitted or logged.