Read what you see
Name every picture, word, number, and symbol. The first meaning is often only the beginning.
HEAD HEELS
Words can become objects
How to play
Rebuzzle turns familiar words and phrases into visual clues. Your job is to work backwards—from what you see to the thought hiding underneath.
What familiar phrase is pictured here?
Reading between the lines
The word READING is literally placed between two lines.
The arrangement is part of the clue
The decoder
A rebus can communicate through meaning, sound, count, direction, scale, or position. Read all of them before you settle on an answer.
Name every picture, word, number, and symbol. The first meaning is often only the beginning.
HEAD HEELS
Words can become objects
Above, below, inside, outside, backwards, tiny, repeated—position is part of the sentence.
CYCLE CYCLE CYCLE
Three cycles → tricycle
Pictures and letters may be sounds. Join them together and listen for a familiar word or phrase.
🐝 + 4
Bee + four → before
Your daily run
Start with the relationship between the clues—not just each clue on its own.
Type the phrase you think the board represents. Close answers get useful feedback, not a dead end.
Reveal a progressive hint when you need one. It points you toward the mechanism without giving away the answer.
See the explanation, collect your score, and carry the pattern into tomorrow's puzzle.
The best puzzle makes you work, then makes perfect sense. Rebuzzle evaluates each board for clarity, fairness, and that unmistakable aha moment.
Now you know the language
Look closely, trust the wordplay, and send the answer that makes everything click.
Start today's RebuzzleUnder the hood
Rebuzzle is open source. Below is how the AI systems actually work—what each piece is for, why it exists, and where to look in the repo if you want to fork, critique, or contribute.
Architecture
Generation is fail-closed: if evidence is thin, we fall back to a curated reserve rather than ship a weak board. Paths below live under apps/web/src/.
ai/services/master-puzzle-orchestrator.ts
Chooses Apex tournament vs classic Eve ToolLoop and returns a single publishable candidate or a reserve fallback.
ai/puzzle-agent/apex/engine.ts
Multi-candidate contest: curriculum → answer-first seeds → Eve slots → critique/repair → player sim → rubric → finalist.
ai/puzzle-agent/run-generation.ts
Tool-using agent that proposes boards, visuals, and explanations under a difficulty band.
AI_PROVIDER / AI_GATEWAY_API_KEY
Model routing for generation, critique, embeddings, and quips without baking a single vendor into the app.
Generators
A single model draft is optimistic. Apex runs a short tournament so we pick the board that survives critique, blind solve pressure, and a rubric—not the first fluent JSON blob. Curriculum + answer-first seeds force technique coverage and stop “pretty but unmoored” rebus art.
Eve is the tool-loop workhorse inside each slot: proposing displays, calling visual tools, writing explanations and progressive hints. Apex orchestrates; Eve crafts. Difficulty bands (Hard → Impossible) constrain how far wordplay can stretch.
Quality contract
Shipping a daily puzzle is a privilege. Gates exist so “hard” never means “illegible” or “the answer leaked in the art.”
Deterministic check that every answer-seed cue is represented before we spend on judges.
semantic-alignment-v1 rejects boards where the visual story cannot plausibly land on the intended phrase.
Pictogram integrity, clarity, and multi-model recognition consensus so icons read at play size—not just in a design tool.
Independent solvers attempt the board without the answer. If they cannot converge, it does not ship.
evaluatePublishGates enforces leak checks, technique coverage, uniqueness, difficulty band, and funScore thresholds.
Quarantined or edge candidates can require human playtest / icon naming evidence before the quarantine bit clears.
Visual stack
Boards prefer catalog-grounded icons (and carefully vetted generated paths) over decorative noise. We rasterize at play sizes, run pixel-integrity checks, and require recognition consensus before a symbol is publication-eligible. Third-party Material Symbol subsets are Apache-2.0 vendored and documented in docs/THIRD_PARTY_PICTOGRAMS.md.
In session
POST /api/puzzles/guess is the only scorer. The active board never ships the answer; the DB is the source of truth.
validateAnswer combines fuzzy string distance, contraction maps, and word-order tolerance so near-misses feel fair.
Instant feedback: correct · close (≥70) · warm (≥40) · cold · out. Built in lib/game/reactions.ts for a snappy first beat.
POST /api/puzzles/quip streams a short riff. The model is never told the answer—only the guess and tier—so it cannot spoil.
Closed loop
Post-solve Too easy / Just right / Brutal votes hit /api/puzzles/difficulty-feedback and feed AIFeedback.
Like/dislike + reason tags via /api/puzzles/rating steer puzzle_quality learning.
Learning calibration adjusts the daily band (Hard → Impossible) from recent play and rejection digests—not vibes alone.
One puzzle document per YYYY-MM-DD publication key; each player unlocks at their local midnight so the habit matches the calendar.
Operations
Cron jobs (see root vercel.json) drive /api/workflows/daily-content: calibrate → publish today → pre-generate tomorrow → open a draft blog PR for yesterday. Blog posts are human-merged before they go live (docs/AI_BLOG_PULL_REQUESTS.md).
Beyond today
Puzzle embeddings (Gateway / Gemini embedding model) power semantic search and recommendations mixed with category affinity, difficulty fit, and novelty. Useful for archive play and “more like this”—not for spoiling tomorrow.
Contribute
apps/web (Next.js), shared packages/game-logic & packages/config.apps/web/docs/ (generator v2, difficulty, blog PRs, pictogram licensing).SECURITY.md—not the public feedback form.CONTRIBUTING.md.Feedback
Developers, players, and puzzle pedants welcome. Notes about gates, model choices, docs gaps, or product feel all help. Optional email if you want a reply.