Crossword overview
{{ gridSize }} × {{ gridSize }}
{{ summaryLine }}
{{ placedWordCount }} placed {{ fillPercent }}% filled {{ unusedCount }} unused All entries placed {{ strategyLabel }} {{ symmetryLabel }} Best of {{ attemptCount }}
Crossword entries
Enter one ANSWER: clue per line; TXT imports use the same format.
{{ entryInputMeta }}
{{ entryInputActionHint }}
Use 5-25 cells per side; larger grids fit more words but print smaller cells.
{{ safeGridSize }} × {{ safeGridSize }}
Use Backtracking for quality; use Greedy when you need a quick printable draft.
Use 2-10 letters; entries below this length are ignored for the next generation.
Choose None for maximum fit, or rotational/mirror symmetry for a more classic-looking grid.
Use milliseconds per attempt; higher values may improve fit at the cost of runtime.
ms
Use 1-12 attempts; more tries can place more entries but take longer.
{{ attemptTarget }} tries
{{ safeCellSize }} px
Choose 24-52 px; smaller cells fit large grids, larger cells suit handouts.
Enter any short text to reproduce a layout, or leave blank for a fresh shuffle.
Use a classroom, event, or topic title such as Biology Week Review.
Use two-column for compact sheets or single list when clues are long.
Toggle title/date and add a short note for student copies or event handouts.
{{ show_title_export ? 'On' : 'Off' }}
{{ show_date_export ? 'On' : 'Off' }}
{{ border_px }} px
Use 1-3 px; heavier lines improve low-quality printing.
Turn on for sharper printed grid lines and blocked squares.
{{ high_contrast ? 'On' : 'Off' }}
Pick the fill colour for unused cells; black is safest for answer-key printing.
{{ letter_scale.toFixed(2) }}
Use 0.45-0.65; lower values leave more white space inside answer cells.
Choose A4, Letter, Legal, or A3 before exporting PDF puzzle sheets.
Use Portrait for normal worksheets or Landscape for wider grids.
Enter margin millimetres; smaller margins leave more room for the puzzle.
mm
{{ solveComplete ? 'Solved cleanly' : 'Solve this crossword' }}
{{ solveProgressPercent }}%
{{ solveStatusLine }}
{{ solveFilledCells }} filled {{ solveChecked ? solveCorrectCells + ' correct' : 'Unchecked' }} {{ allPlayableClues.length }} clues
No. Direction Clue Length Copy
{{ clue.num }} {{ clue.direction }} {{ clue.word.length }}
Across Down Copy
{{ clueText(across[i-1]) }} {{ clueText(down[i-1]) }}
Across
Item Copy
{{ clueText(a) }}
Down
Item Copy
{{ clueText(d) }}
No. Answer Clue Copy
{{ clue.num }} {{ clue.word }} {{ clue.clue || clue.word }}

Generate a grid to populate across clues.

No. Answer Clue Copy
{{ clue.num }} {{ clue.word }} {{ clue.clue || clue.word }}

Generate a grid to populate down clues.

Metric Value Copy
{{ row.metric }} {{ row.value }}

Run the generator to populate grid quality metrics.

# Seed Placed Fill % Time Note Copy
{{ run.attempt }} {{ run.seed || 'default' }} {{ run.placed }} {{ run.fillPercent }} {{ run.genMs }} ms {{ run.note || '—' }}

No attempt data yet.

Word Clue Length Copy
{{ entry.word }} {{ entry.clue || '—' }} {{ entry.word.length }}

Every entry was placed in the grid.


        
Customize
Advanced
:

Introduction

A crossword puzzle is a clue-driven word grid where answers run across and down and shared letters help confirm each other. That interlocking structure is what makes crosswords satisfying to solve and useful to build around a theme, whether the subject is classroom vocabulary, a club night, a staff social, or a custom handout tied to one event.

This generator takes that familiar format and rebuilds it around your own answer-and-clue list. Instead of starting from a fixed puzzle bank, you supply the entries, choose how hard the page should search for a good fit, and then review the numbered grid, clue lists, quality metrics, attempt log, unused entries, and JSON snapshot from the winning run.

Custom crossword generation flow A list of answer and clue pairs is cleaned, placed into an interlocking grid, then turned into clue lists, metrics, and export files. Entry List OSMOSIS : Water movement MITOSIS : Cell division DNA : Genetic material GENE : Inherited unit Winning Grid 1 2 3 4 5 6 7 8 9 D N A G E N E Clues Stats Exports
The page cleans the entry list, tries one or more layouts, keeps the strongest result, then groups the grid, clues, metrics, and export files from that same run.

That workflow is most useful when the vocabulary itself matters. A teacher can build a revision puzzle from lesson terms, an organiser can turn themed facts into a table activity, and a team can make a custom puzzle for one meeting instead of relying on a generic newspaper grid.

The important caveat is that this page helps you build practical custom crosswords, not editor-reviewed publication puzzles. Classic American-style construction usually expects 180 degree symmetry, no two-letter answers, and every letter to belong to both an Across and a Down entry. This generator can aim toward some of those goals, but it does not enforce the full editorial rule set on your behalf.

Technical Details

Each non-empty line is split at the first colon. The text before that colon is treated as the answer field and the text after it becomes the clue. The answer field is uppercased and stripped down to letters A to Z only, so snow day becomes SNOWDAY and ice-cream becomes ICECREAM. If no letters survive, the line is ignored and reported as invalid. If the cleaned answer repeats an earlier cleaned answer, the later copy is removed as a duplicate.

The generator then works inside a square grid from 5 to 25 cells per side. The longest surviving answer is placed horizontally near the middle, and the remaining answers are tested only in horizontal and vertical directions. A legal placement must stay within the grid, agree with any letters already in place, avoid extra letters immediately before or after the answer, and avoid side contacts that would create stray fragments shorter than the chosen minimum word length.

The two search modes differ mainly in how hard they push for a better fit. Greedy takes the best placement it can see for each next answer and moves on. Backtracking ranks candidate placements, explores the stronger branches, and keeps improving the best grid it has seen until the time budget runs out. Candidate scoring rewards crossings, keeps some weight near the centre, and applies a penalty when the chosen symmetry mode would prefer matching occupied cells elsewhere in the square.

Formula Core

The main quality metrics compare filled cells with the full square and checked cells with filled cells. They are best used to compare runs made from the same answer bank, because a dense grid can still be weak if too few letters cross.

Fill density = letter cells N×N × 100 Crossing rate = crossing cells letter cells × 100
Main crossword outputs and how to read them
Output What the page measures Why it helps
Fill density The share of all cells that contain letters in the winning grid Useful for comparing attempts of the same word bank, especially when one grid feels too open
Crossing cells and Crossing rate How many filled cells belong to both an across answer and a down answer Shows how interlocked the puzzle really is, which is often more important than density alone
Unused entries Clean answers that never appeared in the winning attempt Flags theme terms that still need a larger grid, better connectors, or looser constraints
Attempt log Per-run seed, placed count, fill percentage, runtime, and any stopping note Makes repeated tuning easier because you can see whether a new setting actually improved the result
JSON Inputs, export settings, diagnostics, stats, attempts, numbering, clues, and the final grid Gives you a structured record of the accepted puzzle instead of only a picture or document export
Common publication-style crossword expectations compared with this generator
Common convention What this generator does How to read the result
American-style grids usually use 180 degree rotational symmetry You can choose none, rotational, horizontal mirror, or vertical mirror, and the stats panel reports a symmetry match percentage The symmetry score shows resemblance of occupied and empty cells. It is not proof of a publication-standard block pattern
Minimum answer length is commonly three letters The default minimum is 3, but you can lower or raise it Shorter cleaned answers than the chosen minimum are skipped, and placements that create too-short cross fragments are rejected
Every letter is usually checked by both an Across and a Down entry Not enforced A puzzle can still generate with low crossings or even one-direction answers, so check the crossing rate before printing
Repeated answers are normally not allowed Later duplicates are removed after answer cleanup You will see the duplicate warning, and only the first cleaned answer stays eligible for placement
Clues are edited for fairness and polish The page uses the clue you provide and falls back to the answer text when no clue is supplied Construction can be complete while clue writing still needs human revision

Generation, numbering, clue assembly, and file creation stay in the current browser session. Treat the page as local-first for ordinary classroom, event, and team puzzles, but avoid entering sensitive answer banks on a device or browser profile you do not trust.

Everyday Use & Decision Guide

Start by thinking about the word bank, not the styling controls. A custom crossword works best when the list mixes a few long anchor answers with shorter connector words that share common letters. If most entries are long, unusual, or built from rare letter clusters, the generator may still produce a grid, but the unused list or crossing rate will usually reveal the strain.

Choose grid size with room to spare on the first pass. A 15 x 15 square feels familiar, but it is not automatically the right size for every list. If one or two entries are close to the grid width, begin larger and shrink later. Tight grids can force clean entries out of the puzzle entirely, while oversized grids can leave you with a sparse layout that looks formal but solves awkwardly.

Use Greedy when you want a quick feasibility check. It is fast and good at telling you whether the bank is obviously workable. Use Backtracking when you care more about crossings, density, and overall fit. The Attempts (best-of) setting matters more than it first appears because each attempt reshuffles the entry order and the page keeps the strongest result automatically.

  • Use a seed only after you find a layout you may want to reproduce. The same cleaned entries and settings recreate the same attempt family.
  • Keep Min word length at 3 when you want a more conventional classroom or print puzzle. Lowering it helps fit but also relaxes the construction standard.
  • Turn on rotational symmetry when appearance matters more than absolute fit. Mirror modes can still look tidy, but they are not the usual newspaper convention.
  • Read Clues and Stats before exporting anything. A grid can look finished while still hiding leftovers, weak crossings, or clue text you never intended to publish.

Once the puzzle itself looks right, then move on to presentation. The design and export controls let you switch clue layout, show or hide the title and date, add a header note, thicken grid lines, boost contrast for photocopies, adjust blank-square colour and letter scale, and choose page size, orientation, and margins for printable output.

Step-by-Step Guide

  1. Paste one entry per line in the form ANSWER:clue. If you want a phrase answer, enter it as plain text and let the page collapse spaces and punctuation automatically.
  2. Run a first draft with a roomy grid and either Greedy or a short Backtracking budget. The first goal is to see whether the cleaned list is viable at all.
  3. Read the warning block right away. It tells you which duplicates were removed and which lines were ignored because no usable letters remained.
  4. Adjust Grid size, Min word length, Symmetry, Time budget, and Attempts (best-of) until the grid quality looks acceptable for your audience.
  5. Review the Crossword Grid, then open Clues and Stats. Confirm that clue numbering looks clean, that blank clue fields are acceptable where you left them blank, and that no important entry is sitting in Unused entries.
  6. If you want a reproducible version, keep the seed shown in the accepted run and avoid changing the cleaned entry list afterward.
  7. Only after the puzzle content is settled should you export PDF, DOCX, CSV, or JSON. The exported files reflect the currently accepted run, not a separate reconstruction later.

Interpreting Results

Fill density is the easiest number to notice, but it is not the whole story. A crowded square can still be a weak crossword if many entries barely confirm one another. For this page, Crossing rate is usually the better fairness check because it tells you how much of the filled area actually interlocks.

Unused entries is the next number to trust. If the count is above zero, something in the bank or the constraints still does not fit the winning layout. That may mean the grid is too small, the symmetry choice is too restrictive, the word list lacks connector entries, or the list contains very long answers that do not share enough letters with the rest of the set.

How to interpret common crossword generator result patterns
If you see It usually means Useful next move
High fill density but low crossing rate The square is busy, but too many answers sit beside each other without enough shared letters Try backtracking, more attempts, or a word bank with more connector terms
Low fill density and zero unused entries The puzzle fits, but the grid is probably larger than the list needs Shrink the grid and compare the next run
High unused count The grid size, symmetry pressure, or answer mix is blocking placement Enlarge the grid, loosen symmetry, or revise the bank
Time budget reached Backtracking stopped because the allotted search time expired Raise the budget only if the current crossings or leftovers are still poor
Strong symmetry match with poor crossings The shape looks balanced, but the actual word mesh is still weak Prioritise solver support over appearance if the puzzle is meant to be played, not merely displayed

Read Symmetry match carefully too. It compares the final occupied and empty pattern with the selected mirror rule. It does not certify a full editor-approved crossword, and it says nothing by itself about clue quality, theme placement, or whether every letter is checked in both directions.

Worked Examples

Biology revision sheet with a reproducible seed

Using CELL, DNA, ENZYME, OSMOSIS, MITOSIS, GENE, ATOM, and ORGAN in a 15 x 15 grid with Backtracking, Rotational symmetry, a 1500 ms time budget, three attempts, and the seed bio1, the page placed all 8 entries. The winning run reported 15.1% fill density, 17.6% crossing rate, 0 unused entries, and 86.7% symmetry match, while every attempt logged Time budget reached. That is a good sign that the list is workable, but also a reminder that a complete puzzle is not the same thing as an exhaustive search.

Small grid that proves density is not enough

Using CAT, DOG, and ELEPHANT in a 5 x 5 grid with Greedy placement and the seed animals, the page produced a grid with 44.0% fill density but only two placed answers and no down clues at all. ELEPHANT stayed in Unused entries. The result looks dense because the square is tiny, yet it is not a strong crossword by publication standards because the interlock is missing.

Cleanup warnings that materially change the puzzle

Using RAIN, sun, snow day, ice-cream, a repeated RAIN, and 1234 in a 9 x 9 grid with Backtracking, horizontal mirror symmetry, two attempts, and the seed weather, the page cleaned the phrases into SNOWDAY and ICECREAM, removed one duplicate RAIN, ignored the numeric line, and placed all 4 surviving entries. The best run was attempt 2 with 24.7% fill density and 10.0% crossing rate. This is exactly why the warning and stats panels matter: the final puzzle may be based on a noticeably different list from what you first pasted.

FAQ:

Why did my phrase lose spaces or punctuation?

The answer field is cleaned down to letters A to Z before placement. That means spaces, hyphens, apostrophes, and similar punctuation are removed from the answer itself, even though the clue text stays as you wrote it.

Why does a clue sometimes show the answer itself?

Clues are optional. If you leave the clue side blank, the page falls back to the answer text in the clue lists and exports. That is useful for construction testing, but you will usually want to replace those fallback clues before sharing the puzzle.

Why can the generator make a grid with very few crossings?

The page searches for legal placements, but it does not require every letter to be checked by both an Across and a Down answer. A run can therefore finish with weak interlock if the grid is small, the bank is awkward, or the settings favour appearance over crossings.

Does choosing symmetry guarantee a newspaper-style crossword?

No. Symmetry affects placement scoring and the stats panel reports how closely the final occupied and empty pattern mirrors the chosen mode. It does not enforce the full editorial checklist used by major crossword outlets.

Do my entries leave this page?

Generation and export happen in the current browser session. Avoid entering sensitive answer banks on a device or browser profile you do not trust.

Glossary:

Checked letter
A cell that belongs to both an Across answer and a Down answer.
Fill density
The percentage of all grid cells that contain letters in the winning layout.
Crossing cell
A filled cell that has neighbouring letters in both the horizontal and vertical directions.
Seed
The text value used to reproduce the same attempt family when the cleaned list and settings do not change.
Unused entry
A cleaned answer that never appeared in the winning grid.
Symmetry match
The percentage showing how closely the occupied and empty pattern mirrors the selected symmetry mode.

References: