Dillfrog Muse is a set of free online tools to help with your English [song]writing. Its defining features include:

  • Rhyming Dictionary - Find rhyming words with varying degrees of stability, including slant/off rhyme: perfect/identical, family, additive, consonance, assonance. Refine and group your results by factors such as part of speech (verb, noun, adjective, or adverb), familiarity, and syllable count.
  • Meaning Dictionary/Thesaurus - Navigate words' meanings and relationships via hyperlinked WordNet data.
  • Lists - Use our random word lists to fill in your blank. Resolve a writer's block, or simply steer your work in a new direction.
  • Low mud - The minimalist, mobile-friendly interface helps you focus on the craft, not on other distractions.

Rhyme search

This is our main rhyming-dictionary search tool. Use it to search for words that look or sound similar to your input word.

Quick start

To find words that rhyme or off-rhyme with "elephant"
In the a word to rhyme field, type elephant. Then, press the Enter or Return key of your keyboard, or click the magnifying glass (search) button on the screen.
 Try it yourself!
To increase the number of results, when you're okay with unfamiliar words showing up
Uncheck the Only common words checkbox, then click the "search" button to re-search. Results will include some previously-hidden words.
To increase the number of results when searching words whose stressed syllable is early in the word
Change the Match type dropdown from "I'm Feeling Rhymey" to "Vowel Sounds (exact)". The search results will automatically update.
 Try it yourself!

Activity Ideas

  • What rhymes with these atypical or difficult words? Try using the "I'm Feeling Rhymey" match type for words like: "sushi", "silver", "orange", "purple", "typical".
  • Are you having trouble finding a rhyme for a multisyllabic word? If so, try the "Vowel Sounds (exact)" search. This will find other words with the same vowel sounds and stress patterns. It tends to work really well and sounds fairly stable for words with 3 or more syllables. For example, consider the word "effigy" which doesn't have many perfect rhymes. A "Vowel Sounds (exact)" search yields results like "charity", "chemistry", "density", "sparingly" which share the same vowel sounds and stress pattern as "effigy".
  • Create your own portmanteaus: Pick a word that you want to be the start of the portmanteau. Then, search with a Match Type of "Vowel Sounds (stressed + consonant)". All the results share the same primary-stress vowel sound and singe trailing consonant. Review these words as possible candidates for the first or second part of the portmanteau. For example, search for "snuggle" (the "UG" sound). You might see "luxury" in the results and reason that "snuggle" + "luxury" = "snuxury".
  • Use the "Vowel Sounds (stressed + consonant)" or "Vowel Sounds (stressed)" to find similar words to string together in a phrase for a good rhythmic assonance feel. Group results by "Stress Pattern" so that words of similar stress and syllables are grouped together where you can find them. Use the "Word Type" filter to narrow to adjectives/nouns/etc depending on what blanks you're trying to fill. For example, you might search for "went" (the "EN" sound) and string results together like "He wENt to defENd his best friENd who surrENdered to bENches and cENsure, a sENseless advENture."

Match type

The "match type" is the main algorithm, or search mode, to use when finding words based on their spelling or sound.

When you change the Match type, search results are automatically updated.

I'm Feeling Rhymey

The default match type; this is a fast way to get a decent selection of words that rhyme and off-rhyme, without sacrificing a lot of stability of the rhyme. (The results should generally feel pretty tight, despite including slant rhymes.) Here, we're trying to strike the balance delivering too few results, and too many results that don't seem like they should rhyme.

This match type's approach is likely to change/improve over time, but as of September 2017 the results are a blend of perfect rhymes, family rhymes, slant rhymes, and last-3-syllable rhymes.

Rhymes (perfect/identical)

Also known as: perfect rhymes and identical rhymes.

This finds words where the stressed vowel sound, and all sounds after the stressed vowel are identical to the input word. Since we don't look at sounds prior to the vowel of primary stress, the results can include identical rhymes as well as perfect rhymes.


  • Perfect rhymes are about as stable as you're going to get. They are useful in situations where you want to convey confidence, certainty, and strength.
  • Perfect rhymes are hard to find, so they tend to be predictable and overused. If all the rhymes appear too cliche for your purposes, consider using a different match type like "Rhymes (slant)" or "Rhymes (family)" instead.
Rhymes (family)

This finds words that are almost perfect rhymes of the input word, by matching consonant sounds of the same family as one another.

For example, any plosive such as "P", "T", "K", "B", "G" and "D" can match any other plosive.

The same goes for fricatives (V, TH, Z, etc) and nasals (M, N).

Pat Pattison covers this type of rhyme very well in his online Songwriting course, which I highly recommend. See Week 4 for some great rhyme theory and examples.

Rhymes (vowel shift)

This finds words that would perfectly rhyme with the input word, if the vowel sounds in the original word's rhyming syllables were changed to slightly different vowel sounds. These results won't feel like incredibly stable rhymes, but they're more stable than allowing the original vowel sound to match any vowel.

Vowel sounds are chosen based on their relationship in the vowel diagram, or within a diphthong.

Example: if you search for "smoke" (whose perfect-rhyme phonemes sound like "oke"), we find words whose perfect-rhyme phonemes sound like "ah-k", "oo-k", or "ow-k". So you get results like "block", "walk", "luke".

Example: a search for "bind" yields results like "bond", "leaned", and "beyond".

Example: a search for bind finds:

bond, leaned, beyond

Example: a search for "afford" yields results like "insured", "blurred", and "bernard".

Vowel Sounds (last 2)

This finds words whose last 2 vowel sounds are the same as the word you typed, ignoring stress. If you typed a single-syllable word (i.e. it only has 1 vowel sound), then we find any words that share that last vowel sound.

Example: a search for "bind" yields results like "cites", "smile", "sometimes", and "institutionalized".

Example: a search for "affluent" yields results like "dual", "student", "monument" and "circumlocution".

Group by

Specifies how search results should be grouped. Depending on how you plan to use the results, you may find one grouping more useful than another. In general, the Syllable count - minimum and Stress pattern settings will likely be useful.

The following groupings are available:

Frequency class
Pertains to the familiarity or common-ness of the word. Common words have a low score, uncommon words have a high score.
Letter/number count
The number of letters or numbers in the word. Other characters, such as dashes, are not counted.
Meaning count
The number of meanings available for the word. Words with multiple meanings are generally more ambiguous than other words, and are ripe for wordplay.
Primary part of speech
The main part of speech of the word. For example, if the word is typically used as an adjective and less-so as a noun, it will show up in the adjective grouping and not the noun grouping.
Pronunciation count
The number of pronunciations available for the word. This isn't generally useful, but may be for some rare wordplay opportunities.
Stress pattern
The pattern of stress that the word pertains to. Example: the word development is 4 syllables and has primary stress on the 2nd syllable, so its stress pattern is USUU. If the word has multiple stress patterns, it may show up in multiple lists. This is sometimes more useful than the "Syllable count" groupings, in that it separates the groups further by primary stress. For example, rather than seeing all 2-syllable words together, you can separate the "SU" from the "US" words, to find the words that best fit your song's rhythm.
Syllable count - maximum
The maximum number of syllables known for this word. Most words have 1 pronunciation, in which case the max and the min are identical.
Syllable count - minimum
The minimum number of syllables known for this word. Most words have 1 pronunciation, in which case the max and the min are identical.

Word type

The Word type filter allows you to narrow results by their part of speech (adjective, adverb, noun, or verb). Options are:


The default option, this skips part-of-speech filtering.


Only adjectives are displayed in the results.


Only adverbs are displayed in the results.


Only nouns are displayed in the results.


Only verbs are displayed in the results.


Only shows words that have at least 1 part of speech in common with the input word.

For example, if you use this filter to search for "run" (which can be used as a noun or a verb), we display verbs and nouns in the results.

A word to rhyme

Pretty self-explanatory. Type the word you want to search for here.

Press the Enter or Return key on your keyboard to trigger a search.

If you type multiple words, results will show for the last word you type. You will also see a link to our Mosaic assonance rhyme tool, which supports searching for a multi-word phrase.


It looks like a magnifying glass. You click it when you want to search.

Only common words

When checkmarked, results will only include words that are relatively common or familiar.

Only defined words

When checkmarked, results will only include words we know the meanings of. This is another way to filter out unfamiliar words.

Mosaic assonance search

This tool searches for phrases that off-rhyme with an input phrase (a.k.a. mosaic rhyme or multi-rhyme).

It is considered separate from the single-word Rhyme search functionality.

Quick start

In the search box, type a multisyllabic word or phrase that you want to find rhymes for. To be interesting, this ought to be at least 2 syllables. For example you might search for "alligator" or "the doctor is in".

In the search results, you see phrases whose vowel sounds match your input. Other preceding (non-matched) phrase input appears, grayed out. Phrases are bolded when their stress pattern matches your input stress pattern. Results are grouped by how many extra syllables are included in the phrase. For example, if you search for "eating pie", you might see "army design" in the '1 extra syllable' group. This is because the word "army" includes an extra syllable that is not matched: the "my" part of "army" is matched, but the "ar" part is just coming along for the ride.

 Try it yourself!


  • The search only matches vowel sounds, not consonant sounds. Because of this, many of the results may not feel fully resolved compared to your input word. Rhymes of long vowel sounds (eee, oh, eye, etc) will feel more stable than their shorter counterparts (ah, ih, etc). So in other words, if your input word has lots of long vowel sounds, you will probably find some great results here.
  • Results are in bold when they match the stress of your input pattern. These might be strong matches for you. The others might be good too, but this is a nice place to start.
  • Sometimes your input words have multiple pronunciations. When this happens, we search for phrases that match any combination of those pronunciations. In the future, we might let you choose which pronunciations to use and which to ignore, but for now it's all-in.

Result format

Each result is formatted in 2 parts: the actual result (which rhymes with your input), and some preceding context that might help you pick usage. Some results have no additional context, and some results have multiple contextual examples. Results are displayed in bold when their stress pattern matches the stress pattern of your input (generally a tighter match).

Search results are grouped based on how many additional syllables are found in the highlighted result compared to the input word.

For example, if you search for elephant stew (4 syllables), you will find:

exact syllable matches
...where the match has exactly 4 syllables, like "arrogant shrew" or "best of the blues"
with 1 extra syllable
...where the match has 5 syllables, like "ostensible use" and "concepts of the group"

If there aren't a lot of matches for these groups, you may find additional groupings like "with 2 extra syllables".


Not all pronunciations are considered
Although some words have multiple pronunciations, our phrase data only stores 1 pronunciation for each phrase. Because of this, some phrases might be excluded from the results when you are expecting an alternate pronunciation.
When multiple pronunciations exist for the same word, we don't always pick the best pronunciation. For example, words like "wind", "subject, and "contest" are pronounced differently as a noun than as a verb. "Dr" can be pronounced like "doctor" or "drive". This tool isn't smart enough to realize the word is used as one or the other, so it might pick the wrong pronunciation when the word is used in context.
Your input words must be in our dictionary
We don't search if we cannot pronounce any input words. If this happens, check your spelling or pick alternative words that sound similar. Remember, only the vowel sounds matter [for now].
Optimized for desktop users
Due to space limitations, the "preceding text" (gray text) in search results is not visible on small screens.

Meaning search

This is a more traditional dictionary search tool. Use it to figure out what a word means (e.g. as seen via rhyming dictionary search results), or to find other words related to a theme.

Activity ideas

  • Find related words and the right level of specificity by following "hyponym" and "hypernym" links from your search results. For example, you might search for "snow", meaning "a layer of snowflakes". The results show a hypernym of "layer" (snow is a type of layer), and hypernyms of "corn snow" and "crud" (these are types of snow). If you follow the link to "layer", you'll find other related layers like "cell wall", "stratosphere", "ozone layer", etc. You can use this to find related ideas, and the right level of specificity for your work.

Result format

Search results for a given word are separated by part of speech (e.g. noun, verb, adverb, adjective).

The most common usages/meanings float toward the top.

For each meaning, you might find other related words listed, including the following types:

A more general version of the word. Example: "feline" is a hypernym of "cat"
A more specific version of the word. Example: "house cat" is a hyponym of "cat"
A different word that has the same meaning.

Use these related-word links to add more color to your lyrics. For example, writing about "a cat" is less interesting than writing about a "tabby cat" or "maltese", etc.

Word lists

Our word lists organize our dictionary words by topic, such as "animals", "where?", "adjectives", etc.

Activity Ideas

Ad-lib, fill in the blank
Seed a short writing exercise by picking an item from each of the "Who?", "When?" and "Where?" lists.
Paint colorful detail
Add detail to your writing by picking very specific words from lists like "Clothing", "Feelings and Emotions", and "Man-Made Instruments".

Types of lists

By category
These are custom-curated lists that help answer questions like "who?", or pick a genre, or find words that are very specific (i.e. not ambiguous; there's only 1 meaning).
By part of speech
Get random adjectives, adverbs, nouns, or verbs. Some lists allow you to narrow on specific subcategories, like nouns that are plants.
Smashed phrases
Smashes words from various lists together. For example, you can build a list of {Adjective, Noun} pairs.
Other one-off lists, like a list of ambiguous words (i.e. words that have many meanings).


Storm is a new [song]writing tool that is primarily a rhyming dictionary, but ties in other features and flexibility in ways you won't find anywhere else.

You might use it to:

  • Find rhymes - off-rhyme, inner-rhyme, multi-rhyme. Find words that look or sound like a given word. Features like "Dial-A-Rhyme" and flexible input options make this the most customizable rhyming dictionaries you'll see.
  • Find related and descriptive words - find adjectives that describe an apple. Find words related to boating. Flesh out your idea with specificity.
  • Wordplay, pick a brand - find words that use the same phonemes (sounds) as your word. Look up portmanteaus
  • FUTURE (not exposed officially yet) - Research pronunciations and find patterns of English words using regex pattern-mathcing tools.

Quick start

Let's learn by example!

Search for close off-rhymes (simple)

Dillfrog Storm is mainly a rhyming dictionary. All you have to do is:

  1. Leave the Search Type dropdown set to "Dial-A-Rhyme"
  2. In the Search Text box, type "love"
  3. Press the Enter or Return key on your keyboard, or click the Search icon
  4. Use the results as inspiration to write awesome rhyming phrases.

By default, we show you close off-rhymes, not just perfect rhymes. If you want to fine-tune the results, you can fiddle with the Searchlet controls. We'll dive into that soon.

Search for multiple words at once (comma-separated)

Storm lets you view results for multiple words at the same time. All you have to do is separate the words with a comma. This comes in handy when you want to quickly work out rhyming pairs.

So this time:

  1. Leave the Search Type dropdown set to "Dial-A-Rhyme"
  2. In the Search Text box, type "love, fish"
  3. Press the Enter or Return key on your keyboard, or click the Search icon
  4. Notice that the search results are colored now. Red results rhyme with the first word. Blue results rhyme with the second word. Black results rhyme with multiple words.


A modern browser is required
Chrome, Safari (iOS 11 and above), Firefox, and Edge should all work. Internet Explorer 11 users are out of luck.
English only
Only English words and pronunciations are supported. (Sorry - no Spanish, French, German, Latin, etc)

Origins, stuff for geeks

Storm began as a research tool, when Plat was trying to refine the Dillfrog Muse "I'm Feeling Rhymey" logic. The tool allowed him to search for words that matched certain phoneme sequences, to help determine which phoneme matches are essential or flexible to a tight rhyme.

Whereas most rhyming dictionaries are implemented as server-side code or applications you ahve to download, Storm's core functionality is implemented in JavaScript (via ECMAScript 6 syntax). This means core functionality:

  • PRO: Generally works offline after you initially load the page, so if you lose a connection later (like when in the subway), you probably won't notice an issue. Some functionality may still require a connection.
  • PRO: Will likely be free (as in beer) and ad-free, since it will be cheap to host, and available client-side
  • PRO: Can allow more intensive or customized search options that would typically tax a server
  • CON: Will use more browser resources (CPU, memory, and hence battery) than traditional tools
  • CON: May act on a more limited data set than traditional tools

General design thoughts are:

  • General
    • Create a tool that the author would use (I.e., scratch my own itches first)
    • Make as much functionality work offline as possible (i.e., put as much on the client as we can)
    • Make typical use cases fast, clear, and easy (e.g., via presets, minimal UI unless the user opts for more advanced UI, clear and uncluttered output formats)
    • Organize the code so it's easier to build other experimental UIs in the future
      • Use TypeScript for maintainability
      • Keep UI logic separate from search logic
    • When sourcing data, prefer free (as in liberty and beer) sources wherever possible
  • UI analogies
    • What if a songwriting tool were played more like an instrument?
      • I.e., you don't just look up something, but you experiment and tweak with it too, like a mixing board or guitar string or an effects pedal.
    • What if a songwriting tool acted more like a DAW plug-in chain?
      • Give the songwriter some creative control over the results
      • Provide "presets" to get started with, but expose advanced "under the hood" features for when the user wants to fine-tune.
      • E.g. what is the songwriting equivalent to… a signal generator? a given filter plug-in? a spectral analyzer?
    • What if a songwriting tool acted more like an IDE?

Known issues

Atypical pronuniciations

Our data has some strange pronunciations. We clean up these outliers as we become aware of them. For example, at some point we encountered these impossibilities:

  • "home" rhymed with "room", "broom", "zoom", etc (because proper noun "Home" is pronounced "hume")
  • "bung" rhymed with "fun" (because it can be pronounced like "bung" or "bun")