Changelog
What's new, changed, and fixed on PlayMemorize
June 30, 2026
New
- new Study Analogies by topic and set learning goals. You can now filter the verbal analogies game by specific themes: Geography, Nature, Language, Practical, or Logic. We also added a "Learn X analogies" feature that lets you set a session goal (5, 10, or 20 rounds) and tracks your progress toward it, complete with a success screen once you reach your target. The new controls are fully localized across all 25 languages.
June 28, 2026
Improved
- improve Which Curve is now more challenging and realistic. The game has been enhanced with new mathematical curve shapes (quadratic, square root, and logarithmic) to provide more plausible decoys. Curves now feature subtle organic noise to simulate real-world data variability, and five new phenomena have been added: global surface temperature, atmospheric CO2, solar module costs, internet adoption, and life expectancy. The new content is fully translated into English and Swedish.
June 28, 2026
Improved
- improve Timeline expanded and graduated from Beta. The game now draws from a larger, more modern dataset including events from 2020-2024. Rounds have been bumped from 5 to 6 items, and the result panel now shows factual descriptions for every event placed, so you can learn the story behind all your answers. Added official skill tags and removed the beta badge.
June 25, 2026
Improved
- improve Every game keeps its name in every language. A game's name is now shown in English on every translated page · on cards, headers, menus and the links between blog posts · so Memory, Ghost, Polyglot and the rest read the same whatever language you play in. Everything around the name · descriptions, instructions and the whole interface · stays fully translated across all 25 languages.
June 24, 2026
New
- new Expected Value · weigh the odds of a bet in your head. Each round shows a stake and a table of outcomes · a chance to double up, a rare jackpot, a chance to lose half, a small risk of losing it all · and asks you to pick the average payoff. Three difficulty tiers ramp from a clean two-outcome gamble to a four-branch bet with fat tails. Prefer to crunch your own numbers? The new Expected Value Calculator adds up any set of outcomes for you.
- new Battle Mate · a simultaneous-turn tactics puzzle, and a whole new Strategy & Tactics category. Program every unit with an order queue of up to eight steps · walk, turn or loose a volley · then press Execute and watch all units, yours and the enemy's, resolve at once across eight ticks. Soldiers brace a frontal charge, cavalry run down anything they strike from the side or back, and archers level a whole line but fold to a single touch. Each enemy's planned route is telegraphed so the turn is a calculation, not a guess; plan with the order buttons or by clicking the board, and pick the map size, army size and odds before you start. Wipe out the enemy line, and the leaner your plan the higher you score. Translated into all 25 languages, with a full "how to master" strategy guide.
- new Life Hacks · a library of genuinely useful tips, each checked against a cited source. A new tool (not a game): browse practical life hacks shown as clear visual cards, with the written steps matched to what a reputable source actually says. It now spans 20 categories · from Kitchen, Cleaning and Money to First Aid, Safety, Study and Pets · with every tip sourced to authorities like the USDA, CDC, NHS, TSA, FAA, CISA, the FTC and peer-reviewed research. Want just one? Random Life Hack serves a single tip at a time. Every card links to its source.
- new Human Timer · prove you're human, against the clock. A beat-the-clock CAPTCHA speedrun: read a distorted code and type it, tap every tile showing the target, spot the one tile that's tilted, then tap the scattered numbers in order. Solve the whole run as fast as you can and race your own personal best · stored per difficulty, so easy, medium and hard each keep their own record.
- new Human Map · watch the world's births and deaths, live. A world map where every country is a dot that flashes green when a birth happens and red when a death does · all generated from real population and birth/death-rate maths, no live feed. Filter to births, deaths, or both, hover a country for its running totals, and watch the global counters climb · roughly four births and two deaths every second.
- new Progress · see how far through everything we are. Live bars fill in real time for the year, month, week, day and hour · switch to any time zone to watch the clock tick over around the world. Underneath, keep a personal to-do list: tick tasks off to fill your own progress bar, with an all-time completed counter that keeps climbing, saved to your account when you sign in.
- new Perfect Shape · how perfect a circle can you draw? Pick a circle, square, triangle, pentagon or hexagon and draw it freehand in one stroke · we score how close to perfect you got and overlay the ideal outline so you can see where you drifted. You are never marked wrong, and each shape keeps its own personal best to beat.
- new Emoji Explorer · a goal-free wander through a world of emoji. Pull a lever to drift from one emoji to the next; every few pulls the path forks into two new worlds · animals, ocean, space, music and more · and you pick one to follow, or go back and take the other. Nothing to win, just a timer and how many of the worlds you have explored.
- new Which Curve · which graph is the real one? Each round names something that changes over time · world population, a year of daylight, the price of storage, a viral video's views · and shows two curves. One is the real shape it makes, the other a decoy. Pick the real one, learn in a line why it bends the way it does, and build a streak.
- new Perfect Day · design your ideal 24 hours. Slide hours into sleep, work, study, fun and family · me-time soaks up whatever is left · until your day adds up to 24. Then lay it side by side with the average day in countries around the world, drawn from OECD time-use data. No right answer, just your perfect day versus everyone else's.
- new Inflation · how far did money used to go? Each round shows a real US price from decades back · a loaf of bread for 12 cents in 1950, a gallon of gas for 36 cents in 1970 · and you guess what it is worth today. The answer is worked out from the actual Consumer Price Index, so you see exactly how many times prices have risen. Build a streak.
- new Paper Folds · how many folds reach the Moon? A sheet of paper is a tenth of a millimetre thick, and every fold doubles it. Each round names a real thing · a giraffe, the Eiffel Tower, Mount Everest, the Moon · and you guess how many folds it takes to reach that height. The answer is exact maths, and it is always smaller than you think: the Moon is just 42 folds away. Build a streak.
- new Timeline · place history on a line. Each round lays out a stretch of years and a handful of real events, and you drag each one onto the line where you think it belongs. You are never marked wrong for a far-off guess · the game just scores how close you land, then reveals the correct spot and the exact year of every event. The forgiving, drag-on-a-line companion to Ordering.
Improved
- improve Expected Value now shows its work. When a round resolves it lays the whole sum out · each chance times its result, added up to the average · so you can see exactly where the number comes from, and a wrong answer points out the trap your figure fell into: averaging the outcomes, chasing the likeliest one, or fixating on the jackpot. The game and the Expected Value Calculator now read in all 25 languages.
- improve More games tell you why an answer is right or wrong. Deduction now ticks off every clue the answer fits and points at the one your pick broke, Where on the Map traces the route to the place the steps reach, the candlestick round in Finance Lab names the pattern it just taught, and Who Painted, Who Wrote and Who Composed It? name the work and the year it was made.
- improve More game cards read in your language. Dozens of games that still showed an English one-liner on translated pages · from Odds to Mental Rotation to the Japanese logic puzzles · now have their card description translated across all 25 languages. (Game names themselves stay English · see June 25.)
Fixed
- fix Fold Out's pentagon and hexagon shapes are now solids you can actually fold. The pentagonal and hexagonal prisms and pyramids were drawn as a smooth cylinder or cone · a round shape that no flat net can fold into · so the 3D shape in the question matched none of the answers. They now appear as true flat-faced solids · a real six-sided pyramid, a real hexagonal prism · so the figure you see is always exactly the shape one of the nets folds up into.
- fix Geography had a few wrong place names and facts, now corrected. A fact-check pass caught several slips in the geography facts · Albania's capital read "Tiran" instead of Tirana, Belarus's great river "Dinyeper" instead of the Dnieper, and Belize's and Sri Lanka's famous peaks carried a stray foreign word ("Victoria Peak" and "Adam's Peak" now read correctly). A handful of facts were wrong too · Klagenfurt does not host "the world's oldest dinosaur museum", and Slavonski Brod's castle, not a tournament held in another town, is what it's known for. These now read right in every language.
June 23, 2026
Improved
- improve The home page now opens with the most popular games. The Popular row · the games people are playing most right now · has moved to the very top of the home page, above the age rows, so the first thing you see is what everyone's playing.
Fixed
- fix The highlighted word in the "Built to make you…" line is the right size again. In the band lower down the home page, the animated pink word had shrunk to about half the height of the rest of the headline · it now types out at the same size as the words beside it.
June 22, 2026
Fixed
- fix The home page no longer has a tall stretch of empty space below the footer. Scrolling to the bottom of the home page left a large blank band under the footer · an off-screen text-measuring helper behind the animated headline was stretching the page thousands of pixels past its real end. The page now stops right at the footer, so there's no dead space to scroll through.
June 18, 2026
New
- new Who Painted It? and Bullseye are out of beta. Both have graduated into the full library · Who Painted It? shows a famous painting and asks who made it, and Bullseye has you read the angle and power of a shot before letting the arrow fly.
Improved
- improve The home page shows more games at a glance, by age first. It now opens with the best picks for each age · 4-7, 8-11, 11-15 and 15-18 · then Popular and a row for every category, and each row fills with up to five games · five across on a wide screen and two across on a phone · instead of just two. The full game library lays its games out the same way.
- improve Shadow Cast is a real challenge now. It stacks a little tower of blocks, shines a light from one corner and asks which flat shadow it casts · with many more shapes, answer choices that look genuinely close to the real shadow, and difficulty that climbs the longer you last.
- improve Fold Out has far more shapes to recognise. The pool grew to fifty solids · cubes, prisms and pyramids all the way up to pentagonal and hexagonal forms · so you go much longer before a net repeats, and harder rounds bring in the trickier shapes.
- improve Loading is now one endless bar that never stops speeding up. Instead of clearing fixed waves you keep a single progress bar from filling · each save speeds it up and asks for more taps · and your score is simply how many bars you reach before one slips past.
- improve Bullseye arrows now stick into the target. A hit buries the front of the arrow in the face of the target like the real thing, rather than resting flat on top of it.
Fixed
- fix The home page no longer jumps as the headline cycles. The big animated headline at the top used to spill onto a second line whenever it landed on a longer word or question · most often on a phone · which nudged everything below it up and down each time the word changed. It now always sits on a single line at one steady size · no longer growing and shrinking as each word swaps in · so the page stays still while it types.
- fix Your stats page no longer gets stuck on "Loading…". In rare cases the page could sit on its loading message and never show your numbers · a single odd value in your saved history was enough to stop the whole page from drawing. Your stats now always load · any data it can't read is safely skipped instead of freezing the page, and if anything still goes wrong you get a clear "reload" button rather than a blank screen.
- fix Volume Estimate shapes always look like real solids now. A few rounds could draw a very wide, flat cone or cylinder that read as an odd lens rather than a 3D shape · every solid is now kept in sensible proportions, so each one is clearly recognisable while the maths behind the puzzle stays exact.
June 17, 2026
New
- new Several games that lived only inside a combined hub now have their own page too. Wordle, Hangman and Word Square each get a dedicated page again · and so do Trig Drills, Prime Time and Fractions Faster from Math Lab, Heads of State, Classify the Era and Who Made This? from History, Facts from Did You Know?, and Mirror Symmetry from Pattern Recognition. Nothing is taken away · the combined hubs still play every one of them, so you can jump straight to the single game you want or keep them all in one place.
- new Market Health · read the market like a doctor reads a chart. Is a high Shiller PE, a low VIX or an inverted yield curve a healthy sign or a warning? Each round shows one indicator and you call whether it points to a healthier or weaker market. It used to be a topic tucked inside Finance Lab · now it has its own page while still appearing in the lab.
- new Many puzzles tucked inside the combined hubs now have their own page too. The six grid puzzles from Logic Puzzles · Akari, Shikaku, Nurikabe, Slitherlink, Bridges and Infinity Loop · each get a dedicated page. So do the Pattern Recognition challenges Matrix Reasoning, Odd One Out, Rule Induction and Mirror Draw; the Music Lab trainers Tone Memory and Melody Lab; the estimation games Product Estimate and Crazy Comparisons; Mental Rotation from Spatial Reasoning; Compound Interest and Odds & Probability from Finance Lab; the Did You Know? modes Useful Facts, Fun Facts and But Why?; and the Who Made This? trio Who Painted It?, Who Wrote It? and Who Composed It?. The combined hubs still play every one of them. Two of these · Nurikabe and Who Painted It? · are still being tuned in the Beta section for now.
- new A whole new category · Completion · seven "fill the generated text" games. Each round writes out a short passage one line at a time and pauses on each blank for you to pick the missing word from a few choices · so you get more and more to fill in as the text builds, clear every blank to keep the streak alive, and miss once and it ends. The new family covers Recipe Blanks (cooking amounts, temperatures and techniques), History Blanks (events, dates and figures), Science Blanks (numbers, elements and processes), Geography Blanks (capitals, rivers and landmarks), Quote Blanks (famous quotes and proverbs), Movie Blanks (films and pop culture) and Sports Blanks (rules, records and numbers). They all share one cloze engine, so a longer streak reaches deeper into the pool, higher difficulty adds more answer choices and longer passages, and every game prints to a paper worksheet with a matching answer key. Translated into all 25 languages.
- new Old Curses (beta) · guess what a forgotten swear word once meant. An archaic curse, oath or insult appears · "Zounds", "Fopdoodle", "Gadzooks" · and you pick what it meant from a short list. Get it right or wrong, and the game tells you the word's history: where it came from and why it once made people gasp. Almost none of these would offend anyone today · "zounds" is a softened "God's wounds" from an age when swearing on the body of God was the real scandal. Each language plays its own native old words, not translations · the French get "morbleu", the Germans "Sapperlot", the Swedes "tusan" · because old swearing is rooted in each culture's own taboos. A hundred words per language, still being tuned in the Beta section.
- new Loading (beta) · the anti-loading-screen reflex game. A progress bar creeps toward full · tap it to snap it back to empty before it gets there. Every tap speeds the whole board up a notch, and every few taps a fresh bar joins the stack · so one calm, slow bar quickly becomes a frantic juggle of five or six all filling at once. Keep every bar from finishing to clear each wave; let one complete and the run ends. Translated into all 25 languages.
Improved
- improve Four more games can now be printed as paper worksheets. Prime Time (is this number prime or composite?), Fractions Faster (pick the largest fraction), Trig Drills (read a value off the unit circle) and Red Day Match (which tradition is this holiday from?) all print as clean multiple-choice sheets with a matching answer key · easy to hand out and easy to mark. Make one from the worksheet builder.
- improve Every game now opens on a start screen that shows how it's played. The little animation that used to pop up the first time you opened a game now plays right on the start screen instead · choose your settings if the game has any, watch the demo, then press Go. There's no popup to dismiss before you can read it any more, and you can replay the how-to-play demo any time from Settings → Guide.
- improve The home page now groups games into rows you can scan, each with a "See all" shortcut. A "Popular right now" row sits up top, and below it comes one row for every category · Memory, Numbers, Knowledge, Words, Reasoning, Puzzles, Spatial, Observation, Finance, Completion and Silly · then the best picks for ages 4-7, 8-11, 11-15 and 15-18. Each row now shows just its two strongest picks as a taster, with a "See all" button that jumps straight to that category in the library or to the games filtered for that age · so you can sample what fits and dive into the full set in one tap, instead of scrolling one long grid.
- improve Market Health now reads far more of the market. It grew from a dozen gauges to twenty-six · adding retail sales, wage growth, jobless claims, the manufacturing PMI, credit spreads, real yields, the advance-decline line and more · and asks about each at both a high and a low reading. That is over fifty distinct questions, so you go a long way before one comes back.
- improve Game cards are smaller on phones, so you see more at a glance. The home page and the full game library now fit two cards per row on a phone instead of one · the live preview on each card scales down to match, so there's less scrolling to reach the game you want.
- improve Slitherlink now shows your progress as you draw, and starts gentler. Each clue turns green the moment its sides are satisfied and flags coral when you draw too many around it · so a loop that looks finished but breaks a number no longer just sits there doing nothing, with no hint as to why. New runs also open on a small grid and grow as your streak climbs, instead of dropping you straight onto a full-size board.
- improve Bridges puzzles are now always fair, and you place every bridge yourself. Every board is guaranteed to have exactly one solution · so you can always reason your way to it instead of guessing, and a puzzle never "feels impossible" because two different answers were both allowed. Placing bridges is sharper too · a tap toggles the bridge nearest your finger rather than whichever one the game happened to find first, taps line up correctly even when the board is scaled down on a phone, and a right-click takes a bridge back without cycling all the way around.
- improve Bullseye now lets you aim the angle, not just the power · on a much wider range. The target now stands down the range as an angled 3D target on a post, and your arrow arcs to it under gravity, so you set two things now: how steeply you aim and how far you draw. Drag the bowstring back and the direction you pull sets the angle while the distance sets the power · a faint dotted line previews the arc as you draw. On the keyboard, up and down set the angle and left and right set the power. The playing field is also much wider, giving the arc room to breathe.
- improve Game results are now read aloud by screen readers. When you answer in a quiz, ordering, or word game · and in Hangman · the "correct / not quite" verdict and the right answer are announced to screen-reader users, not just shown on screen. The result reaches everyone, however they play.
- improve Numbers now follow your language's formatting. Big numbers in Mental Math, Sequences and the country fact guides group digits the way your language does · so a German reader sees 8.850 and a French reader 8 850, instead of the English 8,850.
- improve Power Grid's wires are now real on/off switches. Every wire carries a switch you tap to flip · the knob slides across and the wire lights up once power reaches it, so it is finally clear where to tap and which connections are live. No more wondering whether to click or drag.
- improve Power Grid is easier to read and gets tougher as you climb. The bulb is now clearly visible from the very first round instead of a tiny dot in the corner, and it grows as it fills toward the target. Longer streaks keep adding board · up to 5×5 · and bring in ×2 and ×3 booster nodes that multiply the power routed through them, so later rounds become a real wiring puzzle instead of just a longer path.
- improve Game cards now show how each game is actually played. The little animated preview on every card · in the library, on the home page and in the "how to play" popup · now mirrors the real game. Word Games no longer looks identical to plain Wordle, Volume Estimate compares three boxes, Finance Lab reads a candlestick, Market Health calls a gauge good or bad, Hash probes the hidden-rule machine, Mirror Draw mirrors across the middle, Coast calls the zone a sliding stone stops in, and the two ear trainers Tone Memory and Melody Lab now look distinct from each other. The card and the popup always match.
- improve Game card previews celebrate more quietly. When the looping preview on a card solves its round · on the home page, in the library and in the "how to play" popup · it now marks the win with just a discreet success flash, instead of popping the mascot up over the board. Calmer to watch when a whole grid of cards is animating at once.
- improve Cards across the site sit at one consistent depth. The hard drop shadow under the game cards on the home page and in the library, the home-page category cards, and the summary panels inside games had drifted to three different depths · the home-page game cards floated as high as a pop-up dialog. They now share a single resting shadow, so a row of cards reads as one even surface. Pop-ups and dialogs still lift a touch higher, the way they should.
- improve Press Enter to send your answer in games where you type one. In Product Estimate, Card Count and the Crossword, pressing Enter now submits your answer straight away instead of making you reach for the button · the same shortcut Wordle, Word Square and Hash already had.
- improve More paintings to recognise in the art games. Who Painted It?, Who Made This? and the Mosaic reveal now include Bridget Riley's op-art squares and Damien Hirst's spot painting, so a run cycles through more artists before any work repeats.
- improve Beta games now sit only in the Beta section of the game library. Games still in the workshop no longer appear among the finished ones in the main "All games" grid · they are gathered in the "Beta" section at the foot of the page, where they stay clearly badged. So the main list reads as the finished catalogue, and anything still cooking is grouped on its own.
- improve Volume Estimate now compares a real mix of 3D shapes, not just boxes. A round can pit a cube against a cylinder, a sphere, a cone, a pyramid or a triangular prism · so you have to judge a round shape against a blocky one, which is far more interesting than three near-identical boxes. The shape that holds the most is still always the one drawn biggest, every shape is shown to the same scale, and once you pick, the card reveals the exact volume and the formula behind it.
- improve Laser Bounce's easy mode now shows the beam bouncing as you aim. On easy the laser is drawn live · it ricochets off the mirrors the instant you spin one, so you can line the shot up by eye before you fire. Medium and hard still hide the reflected path until you fire, so tracing the bounces in your head stays the challenge there · pick the mode that suits you on the start screen.
- improve Pink text reads more clearly everywhere. The brand pink used for text · the wordmark in the footer, the rotating word in the homepage headline, and in-text links · is now a slightly deeper shade on light backgrounds, so it stands out cleanly enough to pass accessibility contrast guidelines while still looking like the same pink. The bright pink stays on buttons, badges and fills.
Fixed
- fix Flag a Mine's mine counter is readable again. The little "mines left" box was drawn as dark text on a dark background, so the bomb icon and the number were invisible · it sat there as an unexplained black block. It now reads as a clean bordered counter you can actually see.
- fix Laser Bounce shows its bouncing beam when featured in an article. Embedded in a blog post the laser only drew its first short segment and looked frozen · the full reflecting path now shows in that preview so you can see the beam ricochet off the mirrors. Playing the game on its own page is unchanged · there the path still reveals when you fire, so the puzzle stays a puzzle.
- fix Games embedded in articles never get stuck on "Loading…" anymore. If an in-article game ever fails to start, it now falls back to a tidy "open the full game" card instead of spinning forever, so a single hiccup can't leave a dead box in the middle of a post.
- fix Who Painted It? now shows the actual painting, not just its title. The game asked "who painted this?" while only printing the work's name as text · so it was really a name-recognition quiz. Each round now renders the real artwork, the way the game was always meant to play, sharing the same painting view as Who Made This?.
- fix Your badge count matches between your profile and the badges page now. Your profile summarised your badges with a far smaller number than the badges page it links to · the summary counted only a handful of overall badges, while the full page counts every tier you have earned across every game. Both now report the same total, so tapping "view all" no longer jumps to a different number.
- fix Games no longer ask the same question again until you have seen the whole set. A streak game was meant to cycle through every question once before any repeats, but a couple of them stopped short · Market Health could come back to the same indicator after only a few rounds. Now every game shows each of its questions before one returns.
- fix The Slitherlink card preview now shows a puzzle that obeys the rules. Its little animated loop traced the outer square while a "3" clue sat on a cell that loop touches only once · a plain contradiction to anyone who knows the game. The preview now draws a real solution where every number shown (2, 3 and 1) matches the loop around it.
- fix Heavy Friction's how-to-play preview shows the real game now. The little animated card still ran an old "where will it stop?" sliding-block puzzle instead of the factory line the game actually is · it now mirrors real play: drag the lever against the friction to fill the production meter and make a good, then watch the boat ship it out and sail home with the money.
- fix Fold Out now draws real 3D solids and their nets, and asks both ways. The puzzle used to show a row of broken symbols for the net and tiny mismatched icons for the answers, so there was nothing to actually reason about. Each shape is now drawn as a clean 3D solid · cube, rectangular prism, square pyramid, triangular prism · alongside its flat fold-out net. Rounds also go both directions now: some show a net and ask which solid it folds into, others show a solid and ask which net folds up to make it.
- fix Your streak no longer breaks around daylight-saving changes. The "consecutive days" count compared exact 24-hour gaps, so the spring-forward or fall-back night (23 or 25 hours long) could split a perfectly good streak in two. It now counts whole calendar days, so a run across a clock change stays a run.
- fix Shikaku only accepts a proper division of the grid now. A layout where one rectangle swallowed two numbers · leaving another with none · could slip through as "solved". Every rectangle must now hold exactly one number, as the puzzle intends.
- fix Labyrinth challenge tiles no longer block the only way through. A scattered challenge could land right on the single corridor to the exit, forcing it on you · and a wrong answer sent you back to the start. Those optional challenges now keep to the side paths, so the route to the goal is always yours to walk.
- fix Printable Define worksheets work in every language. On the hardest setting, the non-English worksheets printed a blank placeholder instead of real questions · they now always fill in proper options.
- fix Shadow Cast now shows a real cube casting a real shadow. The puzzle used to offer four abstract black bars with names like "two-step diagonal" that had nothing to do with the light · now an actual cube sits in the sun and each choice shows that cube throwing its shadow toward one corner, so you simply pick the shadow that falls away from the light.
June 16, 2026
New
- new Coast (beta) · guess where the sliding stone stops. A stone is launched down a track and coasts to a halt, slowing the whole way. Tap the numbered zone you think it will stop in before it settles · call it early while it is still racing for a fast reaction time, or hold your nerve until the right zone is obvious and play it safe. The board stays the same size every round · each correct call just sends the stone off faster, so you have less time to read it, and your quickest correct call is saved so you always have a time to beat. It plays the same in every language · just a stone, the zones and the clock.
- new Bullseye (beta) · draw the bow and land the arrow in the gold. A target stands somewhere down the range and you shoot at it with one arrow · drag the bowstring back to build power, then let go to loose it. The harder you pull the further it flies, so you read the distance, judge the draw and commit · pull too softly and it falls short, overdraw and it sails past. Hit the gold and you advance to a harder round; the gold shrinks as your streak climbs and the target moves each time, and your closest shot is saved so you always have a margin to beat. Prefer the keyboard? Set your power with the arrow keys and press Enter to loose.
- new Pattern Recognition has a new Mirror Draw mode (beta) · complete the reflection. Half the grid shows a shape and a mirror line down (or across) the middle; you tap the blank half to fill in its mirror image, then hit Check. Where the original Mirror Symmetry asks you to spot the tile that breaks symmetry, this one asks you to build the symmetry yourself · and the reveal lights up the full correct reflection so a near miss is easy to see. Puzzles come in a few grid sizes and mirror either down the middle or across it.
- new Fold Out (beta) · fold the flat net into the right solid. A flattened paper net sits on the card and you pick the 3D shape it folds up into · a cube, a pyramid or one of two prisms. It is pure spatial visualisation with no reading at all, so it plays the same in every language. Fold Out used to be one mode inside Spatial Reasoning · now it is its own game, still being tuned in the Beta section.
- new Shadow Cast (beta) · read the light, pick the shadow. A block stands under a light that jumps to a new corner each round; you work out which way the shadow falls and tap the matching flat shape. Like Fold Out, it was split out of Spatial Reasoning into a standalone game and lives in the Beta section while its difficulty and art are finished.
- new Volume Estimate (beta) · pick the box that holds the most. Three containers sit on the card and you judge each one by its length, width and height, then tap the one with the largest internal volume. It is pure number sense with no reading at all, so it plays the same in every language. Volume Estimate used to be one lens inside Estimation · now it is its own game, still being tuned in the Beta section.
Improved
- improve Polyglot now lives inside Flashcards. Matching a foreign word to its emoji was always one of the three ways Flashcards already lets you study, so the two are now one game · open Flashcards, pick "word to emoji" and you are playing exactly what Polyglot was, plus the freedom to flip the direction, swap decks, or study between any two of 25 languages. Old Polyglot links still work · they drop you straight into word-to-emoji mode.
Fixed
- fix Mixing's colour squares are all the same size now. In the "mix these · what do you get?" prompt, one coloured square could turn up noticeably bigger than the one next to it · so a simple "red + blue" looked lopsided. Every square, in the question and in the answers, is now drawn the same crisp way, so they all line up at a matching size.
- fix The "?" help icons in a game's Stats panel work again. On a game page, tapping or hovering the little "?" next to a stat · Plays, Win rate, Best streak and the rest · did nothing, so there was no way to find out what each number meant. The explanation bubble now opens reliably wherever a help icon appears.
- fix Logic Puzzles' Bridges could deal a board that was impossible to finish. On the harder maps, an island sometimes asked for more bridges than its corner of the board could actually support, so no arrangement could ever satisfy it. Every Bridges board now only asks for connections that can really be made · a clean solution always exists.
- fix Laser Bounce could very rarely deal an unwinnable board on the hardest setting. A tiny fraction of the toughest puzzles arranged the mirrors so the beam could never reach the goal no matter how you spun them. Those layouts are gone · every shot now has a real solution.
- fix The round counter now shows the round you're actually on. In streak games the little "Round N" tag stayed hidden on your very first round and then trailed one behind the whole way · it now appears right from round one and counts in step with your play.
- fix Your stats now carry over completely between devices. When you signed in on another device, a fast game that finished two rounds in the very same instant could drop one of them from your synced history · every round now transfers, so your play counts and streaks line up wherever you sign in.
Improved
- improved Every game now has a little card that plays itself. Across the home page, the games library and the "How to play" popup, each game shows a small looping card that demonstrates its mechanic · a pointer taps through one quick round and a tiny celebration plays · so you can see how a game works at a glance instead of reading a wall of text. It is the same friendly card everywhere, in your language, and it pauses politely when it scrolls off screen or if you prefer reduced motion.
June 15, 2026
New
- new Every game now greets you with a quick "How to play" guide. The first time you open a game, a friendly popup explains what you're doing and how it works before you dive in · dismiss it and it won't nag you again. Want a refresher later? It's always one tap away under Settings → Guide.
- new Flashcards · learn vocabulary between any two of 25 languages. Pick the language you speak and the one you're learning, choose a deck · animals, food, travel, objects and more · and drill the words three ways: see an emoji and pick the word, see a word and pick the emoji, or translate word to word. The picture decks are fully translated into all 25 languages, so the very same deck works for any language pair you choose.
Improved
- improve The "How to play" guide is shorter, and now shows you the game. Every game's greeting popup leads with a single quick line instead of a wall of text, and plays a little looping demo of how it works · cards flipping and matching, a Simon sequence lighting up, a grid you scan for the odd one out, or a prompt you answer to build a streak · so you get it at a glance before you tap a thing.
- improve Emoji answers are bigger and the same size in every game. In Mixing the answer emojis were rendering tiny · too small to actually read. They now appear on a proper, finger-sized tile, and every game that asks you to tap an emoji answer · Mixing, Where on the Map, Odd One Out, Polyglot and Twemoji Ghost · uses the exact same tile size, so the answer row looks consistent wherever you meet it.
- improve Logic Puzzles gives the board your full attention. The how-to panel that used to sit above every puzzle is gone · now that each game opens with a guide you can reopen any time under Settings → Guide, the rules no longer need to crowd the grid while you solve.
- improve Restart any game without leaving full-screen Game Mode. A Restart button now sits next to Exit while you play in Game Mode, so you can start a run over from the top in one tap · no need to drop out of full-screen and back in. It appears for every game with a fresh-run to give.
- improve Heavy Friction's boat now actually sails. When the boat leaves the dock you watch it sail across to the far shore with your goods, sell them, and sail back home with the money · so it's clear how long the whole round trip takes before the cash lands. The "factory restarted while you were away" notice stays up until you click it away instead of vanishing on its own.
- improve Heavy Friction's lever is now a lever you pull. Instead of tapping a button, you grab the handle and drag it all the way across the track to make a good · a half-hearted pull snaps back and produces nothing. Keyboard players can haul it across with the arrow keys.
- improve A wave of games graduated out of beta. Eleven games that had been living in the Beta section · including Traveling Salesman, Logic Puzzles, Circuit Breaker, Gear Train, Where on the Map, Deduction and Mixing · are now finished games in the main library, each with its own write-up and a place in the skill round-ups, fully translated across all 25 languages. Heavy Friction stays in beta for now while it keeps growing.
- improve Robot Builder opens up one piece at a time. Instead of every option at once, you now start with a single thing you can change · your robot's colour · and the rest of the workshop unlocks slowly as you play: its eyes, then its mouth, its body shape, an antenna, and finally a second accent colour. Each new row arrives after a few more rounds across the site, and the ones still to come sit right there showing exactly how many rounds unlock them · so there's always a next thing to grow into. (The gear head-pieces still layer on top once the basics are yours.)
Fixed
- fix Heavy Friction's boat sailed backwards and rushed the trip. The ship faced the wrong way · it looked like it was reversing across the water · and the round trip flashed by far too quickly. The boat now points where it's going and takes a full minute to sail out, sell, and return.
- fix Popups now always fit your screen. On phones, a long "How to play" guide or other popup could run off the bottom of the screen behind the browser's address bar, hiding its "Got it" button so you couldn't dismiss it. Popups now size to the visible screen and scroll inside their own box, keeping every button reachable.
- fix Where on the Map no longer sends you on pointless detours. Some routes doubled back on themselves · "3 north, then 3 west, then 3 south" quietly cancelled out, so two of the steps did nothing and you ended up directly beside the house. Routes now always head somewhere new on each turn, so every direction you follow does real work.
- fix The "memorise the digits of pi" guides now read fully in every language. The longest guide, for the first 100 digits, had slipped through with large stretches still in English in several languages · the scene-by-scene memory prompts and the closing practice tips · so readers in Thai, Hebrew, Ukrainian, Japanese, Hindi and Czech hit walls of English partway through. Every guide is now complete and native in all 25 languages.
- fix A wrong digit and a miscount in the pi guides are fixed. The short guide's summary listed eleven digits while promising ten, and the long guide said a hundred digits fill sixteen scenes when it is seventeen · both now match.
June 14, 2026
New
- new Labyrinth has a Classic maze mode. Pick Classic before you start and the maze drops the quests, encounters and items · it's just you, the walls and the exit. Instead of tapping a far tile and watching the hero stroll there, you draw the route yourself: each tap, swipe or arrow key steps one square and inks an arrow, so your path is a line you can see · and walking back the way you came rubs the line out behind you. Adventure, the original quest maze, is still there in the same picker.
- new Where on the Map (beta) · follow the directions to the right place. You stand at a house on a small map with a few places dotted around it. A short list of step-by-step directions · "3 north, then 2 east" · leads to exactly one of them. Trace the arrows across the grid in your head and tap the place you land on. Easy keeps it to a gentle 5×5 map with two turns; harder settings widen the map and add more legs to remember. The places are emoji and the directions are arrows, so it plays the same in every language.
- new Circuit Breaker and Gear Train (beta) · two puzzles that used to share one page now stand on their own. Circuit Breaker is a gentle, from-scratch introduction to logic gates: you get two inputs and a target, and the game spells out in plain words what AND, OR and XOR each do, showing the output update live as you try a gate · so you can reason it out instead of guessing. Gear Train asks which way the last gear in a chain turns given the first, and reveals every gear's spin once you answer so you can see the rule. Each now has its own page and its own thorough explanation.
Improved
- improve Robot Builder now lives in your account menu. Designing your robot is a personal setting, not a game · so it has moved out of the games grid and into your account dropdown, right next to your badges. Open the menu in the top corner and tap Robot Builder any time to restyle your avatar; the robot you save still follows you everywhere · the account badge and the character games.
- improve The game library is sorted into clearer categories. As the catalogue has grown, two sections had quietly swollen into catch-alls. "Knowledge" now keeps the trivia and world-facts games, while word and language games · Crossword, Polyglot, Define, Word Games and friends · move into their own Words section. "Reasoning" keeps the pure deduction games, and the hands-on solving and strategy games · Chess Mate, Tower of Hanoi, Logic Puzzles, Pattern Recognition and more · gather under a new Puzzles section. A few games also moved to where you would actually look for them · Find Differences, Mosaic and Silhouette now sit under Observation. Nothing was removed; everything is just easier to find.
- improve Geo tells you something about every place you learn. Each city, mountain, river and lake now carries its own little fact and a matching emoji · so when you place Stockholm you see the crown 👑 and learn it is built on 14 islands, and the same is true for every place across all the countries. The facts read in your own language, in every one of the 25 languages, and the map now shows the right symbol for each place instead of a generic pin.
Fixed
- fix Article titles and descriptions read correctly in every language again. A large batch of non-English blog and game-roundup articles had shipped with garbled, mis-encoded titles and search descriptions · some even cut off mid-sentence · so page titles, search-engine snippets and shared links looked broken. Every affected title and description has been rewritten from the English source into proper, complete, native text across all 25 languages.
- fix Leftover English removed from translated articles. A few sections had slipped through untranslated · the "Music Lab · songs mode" entry in the memory-games roundup and the numbered Method labels in the Twemoji Ghost guide · and now appear in each language.
- fix Geography guides now read in the right language. The per-city and per-river fact lines and country names across the "memorise the top cities / rivers / mountains" guides were leaking English in many languages · these are now localized, with grammar fixes for Russian and Portuguese and the correct Polish spelling of Warszawa.
- fix Spanish Twemoji Ghost guide has its accents back. The whole article had lost its diacritics (guia, mnemotecnicas, Observacion …); every accent is restored without touching the wording.
- fix The reasoning-games roundup reads cleanly. A garbled "Stroop and train this directly" line and a mismatched game count were fixed in English and across the translated versions.
- fix The "all games" roundup guides are complete in every language. Many translated category guides had drifted from the English originals · some had lost whole tip and strategy boxes along the way · so a few read as thinner than the English version. Every translation in all 24 languages has been rebuilt to match the English guide box-for-box, so each reads as a complete, native-language tour.
- fix Games featured in a guide that can't be played inline now show a "Play" card instead of an error. A handful of roundup guides embedded Fast Typing and Crossword, which run on their own pages rather than inline · those spots showed a small error box. They now show a tidy card that links straight to the game.
- fix The "Report a bug" button now stays on the games where it belongs. The floating report button had been turning up in the corner of the home page, the blog and other reading pages, where there is no game to report on. It now appears only on game pages, and the footer sits a little tighter to the content above it.
June 13, 2026
New
- new Traveling Salesman (beta) · find the shortest loop through every city. A handful of cities sit on a map and you start at home · tap them in the order you'd visit them and the route draws itself, with a live distance counter. Plan the loop that visits every city once and returns home on the shortest possible route. Match the true optimum and you win; come up longer and the game reveals the best route over your own. The map gains a city as your streak climbs, and the controls are translated into all 25 languages.
- new Robot Builder · design your own robot character. Pick its body, two colours, eyes, an antenna and a mouth, and watch it come together in a live preview. The robot you build becomes your personal logo · it appears as your avatar in the account menu · and it is the very piece you play with: the robot you program through the maze in Robot Programmer, and the runaway piece in Catch the Cat. Redesign it any time and every game picks up the new look at once.
Improved
- improve Robot Builder · earn gear by playing. Almost every game now grants its own bespoke head-piece your robot can wear · a checkmate crown for Chess Mate, headphones for Music Lab, cat ears for Catch the Cat, and dozens more. Play a game a little and its gear unlocks; keep playing across the whole catalogue and prestige pieces (laurels, a halo, gold crowns) open up. Locked gear is shown right in the builder with exactly what unlocks it, so you always see what to chase next, and a little pop-up celebrates the moment a new piece unlocks while you play. Whatever you put on follows your robot everywhere · the account menu and the character games.
- improve Who Painted This?, Who Wrote This?, Who Composed This? and Classify the Era have far more to ask. Each of these drew from a small handful of works, so a long streak kept circling back to the same paintings, books and pieces every few rounds. The shared library has more than doubled · the Mona Lisa, The Scream, The Great Wave and Water Lilies join the paintings; War and Peace, Hamlet, 1984 and Les Misérables join the writing; Beethoven's Fifth, Swan Lake, Clair de Lune and Ride of the Valkyries join the music · so you go much longer before seeing a repeat, and the era quiz spans more periods.
- improve Fun Facts and Useful Facts have many more questions. Both fact pools grew from 20 to 35 in every one of the 25 languages · new fun ones (how many arms an octopus has, keys on a piano, legs on a spider, rings on the Olympic flag) and new useful ones (chambers in the human heart, planets in the Solar System, squares on a chessboard, sides of a hexagon), so a long streak runs much further before a fact comes round again.
- improve Robot Programmer gets harder one step at a time. The goal now sits exactly one extra move from the start on every round, so the route you have to program grows by a single step each time you win instead of jumping a whole maze size every few rounds. The board only grows once a longer path no longer fits, making the climb smooth and steady from the very first round.
- improve Robot Programmer crashes are unmistakable now. When a programmed move drives the robot into a wall, it visibly lunges into the wall and turns red instead of stopping quietly in place · a wrong program now reads clearly as a crash.
- improve Measure It's shapes are cleaner. Each figure now shows just the shape and its measurement lines · the little icon that used to sit inside has been dropped, so nothing competes with the geometry you are reading.
- improve Decay Time's "what to study" menu is simpler. Instead of a separate "Everything" button, you just switch Nature & food and Human-made on or off · leaving both on studies everything, exactly like the picker in Measure It.
- improve Traveling Salesman gives you time to learn from a miss. When your loop comes up longer than the best one, the round no longer rushes on · it draws the shortest route in green over your own, sums up your length against the optimum, and explains that the shortest loop visits every city once and returns home with the least total distance. It waits for you to press Continue, so you can study the route you missed before the next round begins.
Fixed
- fix Name the Shape and the other "spot the one" games stop handing you the same answer twice in a row. The shape you have to name could turn up again immediately · a hexagon, then another hexagon · because reshuffling the answer buttons made each round look brand new to the no-repeat logic. Now every shape (and every item in Decay Time, Comparisons and Market Health) is shown once before any of them comes round again.
- fix Gear Train's spin arrows now show the real direction. Every gear drew the same circular mark, so you couldn't tell clockwise from counter-clockwise · the puzzle's one visual clue was useless and the reveal looked like it disagreed with itself, even though the graded answer was right all along. The arrows are now drawn as proper curved arrows that mirror each other, so you can trace the alternation from the first gear to the last and see why the answer is what it is.
- fix Your stats page counts games you've tried correctly. The "games tried" tile could read more games than exist (an impossible "82 / 80") because it was also counting retired and behind-the-scenes game ids that are no longer in the catalogue, and the wide number could crowd the corner icon. It now counts only the games you can actually play, can never exceed the total, and sits cleanly in its tile.
- fix Load Bearer never shows two identical options. A round could occasionally deal two cards with the very same numbers (for example two footings of 400 over 5×5), which left no single right answer. Every option in a round is now guaranteed to differ from the others.
- fix Load Bearer's beam and arch rounds show what you need to answer. The "which beam bends least" round now draws the load pressing down from above, so you can see which way each beam bends · and the arch round prints its deck load next to the span and rise, so the thrust is actually readable from the card.
- fix Odd One Out's shapes round has one clear answer. The "find the one that doesn't belong" round for coloured shapes could offer a star, a heart, two triangles or a circle as the odd one · all of them shapes themselves, so the puzzle had no single right answer. The odd ones are now plain marks and symbols that clearly stand apart from the coloured tiles.
- fix Nurikabe boards can always be solved. The puzzle is built water-first now, so every board obeys its own rules · one connected stream, no 2×2 pools · and a clean solution is guaranteed. Before, most boards (and nearly all of the larger ones) had no rule-correct solution at all.
- fix Riddles · the "I argue / I propel a boat" wordplay riddle now reads right. It called itself a four-letter word when the answer, row, has three, and claimed the two readings "sound the same" when the whole trick is that they sound different. The clue now matches its own answer.
- fix How Many Fit? spells out the puzzle. The small piece and the big block used to sit either side of a bare "× ?", which read like a stray "x?" and meant nothing on its own. It is now a proper fill-in-the-blank equation · the small piece, times an empty answer box, equals the big block · so it is clear you are solving for how many pieces build it.
- fix The "New high score!" line and other win messages are readable again. At the end of a run, the new-high-score note and a few games' victory headers were a pale mint that all but vanished on the cream background. They now use a deeper green that reads clearly, and the Play Again button matches the Start button instead of a faint outline.
June 12, 2026
New
- new Logic Puzzles (beta) · six classic grid puzzles in one place. Akari, Shikaku, Nurikabe, Slitherlink, Bridges, and Infinity Loop, each generated fresh every round and growing with your streak. Pick your puzzle before you start · light every cell, cut the grid into rectangles, wall off the islands, close the single loop, connect the islands with bridges, or rotate the pipes until everything links up.
- new Follow the Chain (beta) · trace cause and effect to the end of the line. Two machines, one skill: in Gears, watch the first wheel turn and work out which way the last one spins; in Circuits, follow the signal through AND, OR, XOR and NOT gates to the output. Pick gears or circuits before you start, and the chains grow longer as your streak climbs. (Later split into the standalone Circuit Breaker and Gear Train games.)
- new Heavy Friction (beta) · the idle game where the work feels heavy. Drag industrial sliders against constant friction to produce, ship to the warehouse, sell, and reinvest · less friction, auto-sliding handles, more sliders. A tactile factory line that runs at your pace, in all 25 languages.
- new Decay Time at
/decay· guess how long everyday things take to break down in nature, from a banana peel (about a month) to a glass bottle (about a million years). Filter to nature & food or human-made materials, and the wrong answers close in on the truth as your streak grows. Translated into all 25 languages, printable as a worksheet. - new Measure It at
/measure· geometry with real objects and real numbers. A pizza 30 cm across, a door 90 × 200 cm, a football 22 cm in diameter · calculate the circumference, perimeter, area, volume, radius or diameter. Pick which quantities to study, and every reveal shows the worked formula. Translated into all 25 languages, printable as a worksheet.
Improved
- improve Laser Bounce is simpler and sharper · spin a mirror, then fire. The grid of four-way mirrors is gone. A laser now fires from the left and you aim it by spinning mirrors freely: tap a mirror to pick it, turn it ten degrees at a time with the left and right buttons · the beam re-aims live and shows you the angle · then fire when it lines up on the goal. Easy starts with a single mirror; clear the shot and the next board adds one more, so the beam threads more bounces the longer your streak runs. The shot only counts when the beam has bounced off every mirror · a live counter shows how many you are using, and reaching the goal while skipping one does not win. Choose your difficulty first · easy opens with one mirror, medium with three, hard with five.
Fixed
- fix Nurikabe boards finally play by the rules. Most generated boards quietly merged two numbered islands into one, so the numbers on the grid contradicted the board you were solving. Every board's islands now match their numbers · and if you find a different layout that satisfies all the Nurikabe rules, it counts as a win instead of being rejected.
- fix Chess Mate knows all the pawn moves. The board didn't allow a pawn's opening two-square advance, so puzzles whose mating move was a double-step couldn't be won, and a rare en-passant position played out from a corrupted board. Both rules are in place now, and every puzzle served is checked to be winnable.
- fix Hashi islands can always be connected. Some boards shipped with island groups that had no way to bridge to each other (impossible to finish), and a few collapsed to an empty board that declared victory on its own. Every board now has at least two islands and a reachable solution.
- fix Infinity Loop never starts already solved. Now and then the scramble landed back on the solved picture and the round won itself before you touched a tile · there is now always at least one move to make.
- fix Minesweeper Flagging never starts fully revealed. A small share of boards opened with every safe square already shown, leaving mines as the only thing left to click. At least one safe square now always remains for you.
- fix Wordle's missing-letter round accepts every real word. If the blank could be filled two ways (BOL_ can be BOLT or BOLD), picking the other valid word was marked wrong. Letters that complete a different word from the round's own list no longer appear as traps.
- fix Red Day stops calling right answers wrong. Asking where a holiday is celebrated could offer a country that genuinely celebrates it as a "wrong" option. Every country that observes the holiday is now kept out of the decoys.
- fix Find the Free Slot accepts every slot that fits. One of the calendar constraints didn't actually rule anything out, so a second time slot could satisfy every clue yet still be graded as wrong. The constraints now pin down exactly one valid answer.
- fix Fun Facts, Useful Facts and Did You Know dig deeper. A levelling bug kept the deepest 40% of each fact collection permanently out of rotation · long streaks now unlock the whole pool the way the level system always intended.
- fix Polymath modes recover instead of spinning forever. If a mini-game failed to load on a flaky connection, the loading spinner never gave way to the retry panel, and "Try another" could silently do nothing. Both now work, so a bad load costs you a tap, not the run.
- fix Finance keeps at least one topic selected. The topic chips could all be switched off at once, leaving the menu claiming nothing was selected while the game quietly played everything anyway. The last active topic now stays locked on, like every other picker on the site.
- fix Heavy Friction keeps your factory when you come back. Leaving the tab and returning later could wipe the whole run back to a single lever · the saved game was being overwritten during the away-time catch-up. Your goods, money, workers, and upgrades now survive every reload and return visit.
June 11, 2026
New
- new Inference · the opposite of deduction. A new Inference game asks you to reason backward from evidence to its most likely cause. A handful of coloured tokens is drawn from one of several hidden bags, each with its mix on show · rule out any bag missing a colour you drew, then pick the bag whose mix best explains the handful. Where our deduction puzzles force one certain answer, Inference is the everyday logic of doctors, detectives, and scientists: weighing which cause best fits what you see.
- new Whodunit · the detective's version of the same idea. A new Whodunit game gives you clues found at the scene and a line-up of suspects, each with the marks they leave. Rule out anyone who is missing even one clue, and the suspect who explains every clue is your answer. It is the coverage form of Inference · best-explanation reasoning resolved by who fits all the evidence rather than by likelihood · and it prints as a worksheet too.
- new Robot Programmer (beta) · code a path through the maze. Line up a program of turn and move steps, then press Run and watch the robot follow it through the maze to the goal. Drive into a wall and it crashes · so plan the whole route before you run it. The maze grows bigger and more tangled the further your streak climbs. The controls are translated into all 25 languages.
- new Load Bearer · which structure holds the weight? A bridge beam, a leaning tower of blocks, a crane, a dam, an arch · each round shows one and asks which one carries the load, or whether it stands at all. Every answer is settled by the real engineering formula, and the reveal works the numbers through so you see exactly why · the depth of a beam, the centre of mass of a stack, the moment on a lever. Ten kinds of question, drawn fresh every round, so it rarely repeats.
June 9, 2026
New
- new A "New games" shelf in the library. The library now opens with the ten most recently added games, newest first, so it's easy to see what just landed.
- new A Beta shelf for games still in the workshop. Games we're still building now sit together in their own Beta section · each one badged · so you can try the works-in-progress without them getting mixed up with the finished games. Finished games are marked Live.
- new Vector Arrows (beta) · add the arrows in your head. Several arrows fan out from one point, each a different length and direction. Add them tip to tail and judge which way the combined arrow points · the everyday intuition behind forces, currents, and the arrows in trigonometry. No reading required; the arrows and the answers are just pictures.
- new Name the Shape (beta) · geometry vocabulary. A shape is drawn · circle, hexagon, rhombus, trapezoid · and you pick its name. Easy rounds stick to the everyday shapes; harder ones bring in the trickier polygons. The shape names are translated into all 25 languages.
- new Deduction (beta) · find the number by elimination. A few clues describe one secret number · "it is even", "greater than 30", "its digits add up to 9" · and you cross out every option that breaks a clue until one is left. Prints as a worksheet too, and the clues are translated into all 25 languages.
- new Mixing (beta) · what do you get? Combine two things and pick the result · red and blue make purple, blue and yellow make green, grapes become wine, milk becomes cheese. All pictures, so it plays the same in every language. (The Emotions game already covers mixing feelings.)
- new Market Health (beta) · read the market gauges. An indicator investors watch · the Shiller PE, the VIX, the yield curve, unemployment · is shown at a high or low reading, and you judge whether that is good or bad for the market. The reveal explains the rule both ways, so a wrong guess still teaches you. An extension of the finance hub, printable as a worksheet too.
- new How Many Fit? (beta) · count the cube pieces. A small piece of unit cubes and a bigger block built from copies of it are drawn in 3D · work out how many pieces fill the block. Count the cubes along each side and divide by the piece. All pictures, so it plays the same in every language.
Improved
- improve A reading-progress bar on every blog article. A slim line across the top of the page fills as you scroll, so you can see at a glance how far through an article you are · and how much is left. It tucks itself away once you reach the end and never shows up when you print.
June 5, 2026
Fixed
- fix The memory cues in the "memorise the top cities" geography guides start with the right letter in every language. Each guide pegs a place to a cue word that should share its first letter · "New York" cues a word starting with N · so the cues spell a phrase you can replay. Across the 25 languages many had drifted: a wrong starting letter (one Swedish guide cued New York with "Frihetsgudinnan", an F), the place's own name standing in as its own cue, or a cue left in English inside a non-English guide. Every cue in every language now starts with the same letter as the place it stands for, written in that language.
June 3, 2026
Fixed
- fix The Pi menu works in every language again. When you played Pi in a language other than English, the menu links · How to memorise, Explore, Flashcards, and the other constants like e, tau and phi · all led to error pages. Each one now opens the right localised page.
June 1, 2026
New
- new Badges, on their own page. A new Badges page collects every milestone you have earned and, up top, the goals you are working on right now. Badges come in tiered stacks · only your next goal sits on top of the pile, with the tougher tiers tucked behind it · hover or tap a stack and the next one peeks out, so the page stays calm when you start and grows as you climb. Translated into all 25 languages.
- new Per-game badges in the Stats panel. Open Stats under any game and you now see that game's own badge stacks · what you have collected and the next rung within reach · right beside your rounds, accuracy, and best streak. It loads only when you open the panel, so it never slows the game down.
Improved
- improve Sudoku Force worksheets are a real puzzle now. The printable used to hand you the answer · it showed the fully solved grid with a single blank, so any one row, column or box already spelled out the missing digit. Now it hides a spread of cells around the marked square and leaves just one clue for each of the other digits, split across the row, column and box · the digit is still forced, but you have to read all three and combine them instead of glancing at one almost-full row.
Fixed
- fix Crazy Comparisons now opens in your language. Its per-language pages used to fall back to English, and the footer language picker sent you to addresses that weren't there. Each language now loads its own Crazy Comparisons page · with the matching about text and FAQ · and the picker links straight to it.
May 31, 2026
New
- new A home for the silly ones. Scratch Card, Crocodile Dentist, and Bubble Wrap now live together in a new Silly category · the no-pressure, just-for-fun corner of the catalogue. You'll find them grouped on the home page and in the library menu.
Improved
- improve Laser Bounce is now a real mirror-routing puzzle. Instead of placing a single mirror on a tiny board, you now rotate a grid of mirrors · each snaps to a flat or 45-degree angle (| _ / \) · through empty squares and walls. The beam is drawn live and bends as you turn each mirror, so you can watch it snake toward the target and see the moment it lands.
- improve Gear Train finally looks like a gear train. The row of loose, floating cogs is gone · the gears now interlock as a proper meshed block that winds across rows, and the puzzle grows from a short chain into a multi-row gearbox as the difficulty climbs. The driving gear shows its spin direction and the gear in question is marked, so the "which way does it turn?" call is clear.
- improve Light Up now explains its clues and tells you what is wrong. A short rule line spells out that a number on a black square is exactly how many neighbouring bulbs it needs. Clue numbers turn green the instant they are satisfied (and orange if you over-fill them), and the status line now says whether bulbs are shining on each other, a clue is not met, or cells are still dark · so a fully-lit board that "won't finish" finally tells you why.
- improve Who Made This? now shows the art and plays the music. The painting round draws the actual masterpiece on screen · a Hokusai wave, a Munch scream, a Van Gogh night · and asks who painted it. The music round plays the melody on a piano, keys lighting up as it goes (you listen · you don't have to play it back), then asks who composed it · from Beethoven's Ode to Joy to Mozart, Bach, Chopin and Satie. Pick a topic · Paintings, Music, or Literature · and your best streak is kept per topic. Creator names are translated across all 25 languages.
- improve The Dice Roller now rolls. Tap Roll and every die tumbles through random faces and shakes before landing · and, like a real handful of dice, some come to rest sooner than others instead of all snapping to their number at once. The running total and average count along as the dice settle. (If you prefer reduced motion, it still shows the result instantly.)
- improve Cleaner answer colours in the cognitive games. In Schedule Conflict, Fold-Out, Pattern Recognition and the rest of the reasoning set, the answer cards used to be tinted by their position in the grid · two of them always came out blue for no reason, and one always looked "correct" green. Cards are now plain while you choose, and colour only appears at the reveal: green on the right answer, red on a wrong pick.
- improve Right-sized choice buttons in Pattern Recognition and Spatial Rotation. The little shape and rotated-grid answers no longer sit inside a full-width bar built for long text · they're now compact tiles laid out in a tidy row.
- improve The game library is easier to browse · two new categories. As the catalogue grew, the Reasoning shelf had quietly turned into a catch-all. We split it up: Spatial now gathers rotation, layout and geometry games (Rubik's, Laser Bounce, Mirror Symmetry, Pathfinder…), and Observation collects the attention and perception games (Stroop, Spot the Difference, Where's MemPi, Cups, Whack-a-Mole…). Reasoning keeps the true logic and deduction puzzles. A few games also moved to a clearer home · "Which Philosophy?", Mosaic and Silhouette now sit under Knowledge.
- improve Mirror Symmetry is far more varied. The puzzle used to be the same eight-tile row mirrored left-to-right every single time. Now the grid changes shape and the mirror runs in different directions · two- and four-tile squares, a 3×3, two rows of six, up to a 5×5, reflected left-to-right, top-to-bottom, on both axes at once, or across the diagonal. A faint line shows you which way the grid is meant to be symmetric, and the layouts get bigger and busier as the difficulty climbs.
- improve Every game's pre-start menu now looks the same. The difficulty, topic, and mode pickers you see before pressing Start (on Ordering, History Quiz, Finance, Music, Chess Mate, Sudoku Force and the rest) used to each be styled a little differently · some were rounded chips, some were plain buttons. They now all render through one shared control, so the buttons, spacing, and the way the active choice highlights are identical on every game.
- improve One Settings menu on the Pi game, not two. The digit game used to show its own "Settings" dropdown stacked right above the standard Settings bar. The Pincode-path and Major-system toggles, Sound and Restart now live in the one canonical Settings panel · and your path/major choices now stay set instead of resetting every group.
- improve The Labyrinth's Restart and New-Journey controls moved to the standard Settings panel too. Same story · the labyrinth had its own second "Settings" dropdown. Restart-Level and the Easy/Medium/Hard New-Journey buttons now sit in the one canonical Settings menu.
- improve Circle Puzzle is now a little Swiss-watch movement. The rings became meshed gears: tap the right half of a wheel to turn it clockwise, the left half to turn it counter-clockwise · and every wheel it meshes with turns too, each by a different, hidden amount. The puzzle is now two puzzles · first work out how the wheels drive each other (the ratios change every round), then trade the markers back and forth along the chain until they all line up at the top.
- improve Cups gets one step harder every time you win. The shuffle now adds exactly one more swap after each correct guess, so a streak ramps up smoothly · the cups get harder to track the longer you keep up.
- improve Multitask is now a survival run. Instead of one bell and one sum, you keep both plates spinning at once: solve sums as fast as they appear and tap every bell before the next one rings. Each sum you clear tightens the tempo, so the pressure ramps until you can no longer juggle both · your score is how many you cleared.
- improve Fuller reveals across the reasoning games. Prime Time now explains a composite answer with its factorisation (12 = 2 × 2 × 3) and adds a line of history for notable numbers · perfect numbers, Mersenne primes, Fibonacci numbers, and the only even prime. Trig Drills, the facts quiz and the rest of the set give a real why on both right and wrong answers, not just the bare solution.
- improve Feeling Circle is more exact, and the long names fit. The quiz is now anchored to Plutchik's wheel with a short intro line, so a combo like "Sadness + Anger → Envy" reads as that model's answer rather than an absolute truth, and every dyad reveal gives two or three sentences on why the two feelings combine. Long emotion names (Anticipation, Apprehension) no longer overflow their badge and push the prompt off-screen · the badges grow into pills and wrap.
- improve The "I disagree · skip ahead" button lives in Settings now. The report-a-question shortcut used to sit under every quiz, right below the answer choices. It now lives in the shared Settings menu like every other game control, so the playing area stays clean · open Settings on a question to skip one you think is wrong.
Fixed
- fix Guess the Country shows the shared green win reveal. A correct guess on the standalone game used a lilac panel instead of the green success styling every other game uses · it now reads green and consistent with the rest of the catalogue.
- fix Your Rubik's Cube solves now count. Solving the freeplay cube wasn't being recorded, so the Stats panel never registered it · every genuine solve now counts as a play.
- fix Card Counting accepts a negative count. The answer box used the number-only keyboard, which hides the minus key on phones · it now uses the normal keyboard so you can type a leading "-".
- fix Pathfinder now accepts the path you memorised. The game showed you a route, then asked you to re-enter it after an invisible 90° rotation · so recreating the exact path you just memorised was marked wrong. Pathfinder is now a straight memory game: study the arrows, then play them back as you saw them.
- fix Akari puzzles are always solvable. A wall on the left or right edge could be given a clue number higher than the lights around it could ever satisfy, leaving some boards impossible to finish. Edge clues now count their neighbours correctly.
- fix Odds Guessing always has a correct answer. On a small share of rounds the right percentage could be dropped from the four choices, or two choices could both count as correct. Every round now shows exactly one correct, clearly distinct answer.
- fix Crossword clues match their squares. Four puzzles had a clue whose length or word disagreed with the actual run of squares (a word ran into its neighbour, or the clue named a different word than the grid held). All four now line up.
- fix Hash now asks the right question. The logic black-box used to show you an input and ask for its output · but you could just type that input into the probe box and read the answer straight off, so there was nothing to deduce. It now shows you a target output and asks which input produces it, so probing genuinely tests your theory of the hidden rule instead of handing you the answer.
- fix Your Pi stats now count every run. Finishing the Pi (and e, tau, primes…) digit game on its own page wasn't being recorded, so the Stats panel could sit at "Plays 1" no matter how many times you completed it. Each completed recital now counts.
- fix The Date, Time-Zone and Unit-Converter tools no longer flicker on load. The date and clock tools were drawing the server's time for a split second before snapping to yours, and the converter could briefly show the wrong category before restoring your last selection. They now settle on the correct values cleanly as the page becomes interactive.
- fix The home-page headline types again. The animated "Level up your mind" headline (and the manifesto line lower down the home page) had stopped cycling and sat frozen on the first word · the typewriter now types, erases and rolls through its words again.
- fix No more stray line under the Memory board. A thin dark line appeared beneath the cards before a game began · it was the progress bar drawn at full strength with nothing to show yet. The bar now stays hidden until you start matching and rests on a soft, faint track.
May 30, 2026
New
- new Wordle, Hangman, and Word Square now share one Word Games card. The three word puzzles are grouped under a single Word Games page · pick a tab to play the full game (nothing has been trimmed to a mini-round), and your old
/wordle,/hangman, and/wordsquarelinks still work · they open the hub on the matching tab. - new Register to play ad-free. Games now show a single ad slot below the play area for visitors who aren't signed in. Create a free account and it disappears · tap the × on the ad to jump straight to sign-up. Registered players never see it.
Improved
- improve Printable worksheets now cover eight more games. The worksheet generator can now build sheets for Chess Mate (a printed board diagram where you name the square the mating piece moves to, like D4), History Quiz, Ordering, Name Rarity, Proverbs (fill in the missing word), Silhouette, Where's MemPi, and Spot the Difference · the three visual games print as smaller find-it grids, and every sheet still ends with a numbered answer key.
- improve The Library menu shows every game. The header's Library dropdown was only listing the first few games in each family · it now lists all of them, with the long lists scrolling inside the panel.
- improve Pick an age, land on the worksheet. Choosing an age in the header's Worksheets menu now builds the sheet and scrolls you straight down to it, instead of leaving you at the top of the page.
- improve Consistent option menus across games. The row of option pills above each game (topic, difficulty, grid size, number of choices, and so on) now shares one look site-wide, matching the Memory game · so Color, Sequences and the rest no longer each have their own slightly different control style.
Fixed
- fix Buttons and menus respond again across the whole site. A configuration problem was stopping the site's interactive code from starting on some visits · the Sign in button, the Pi digit pad, game Start buttons, and the full-screen Game Mode toggle all rendered but ignored taps. The page now boots its interactive code on every visit, on every device.
- fix The full site footer is back on the game library. The library had been showing a stripped-down footer with no navigation and no language picker · you couldn't change language or jump to another section from the bottom of the page. It now uses the same footer as the rest of the site, so every link and the language switcher are there. The "page not found" screen gained the same footer too.
- fix Dice Roller and City Defense respond to taps again. Both games rendered but ignored clicks on Roll / Pull · they now work on first load, on every device.
- fix Hangman shows the puzzle. The word blanks and the stickman drawing were missing from the middle of the board · they're back.
- fix The Rubik's Cube is a real 3D cube again. The Rubik's page had flattened into a 2D unfolded diagram · it's back to an interactive 3D cube you rotate with the camera arrows, with every face turn animating in place and a readable "Solved!" badge.
- fix Tower of Hanoi loads again. The puzzle was showing the error card instead of the pegs and disks on first open.
- fix Labyrinth opens to the maze. The cognitive maze was rendering blank for some visitors; it now drops you straight into the board.
May 29, 2026
Improved
- improve Faster first paint on the home page. The mascot tile, the lower "manifesto" headline, and the account badge in the header now wait for the browser's first idle moment to load their interactive code instead of competing with the page render. The hero headline and copy paint as quickly as before · there's just less script in the way of it.
- improve Less layout shift in Memory and Polyglot. Emoji images now reserve their space before they finish loading, so cards and word rows no longer nudge sideways as the little pictures pop in.
- improve Analytics now wait for your consent. Google Analytics, our own usage analytics, performance metrics, and ads no longer load until you choose "Accept" on the cookie banner · and if your browser sends a Global Privacy Control or Do Not Track signal, we treat that as an opt-out automatically and skip the banner entirely.
- improve Keyboard play now works everywhere. The number row already answered the math-style games; it now also answers the quiz games (History Quiz, Name Rarity, Riddles and the rest) and the ordering games (Ordering, Sort 'Em Up) · press 1-9 to pick or place, then Enter or Space to continue. Every game now responds to the same keys, so you can blast through a streak without touching the mouse.
- improve Tone Knowledge instruments now sound like real instruments. Every note used to play the same plain sine "beep" no matter which surface you were on. The audio engine was rebuilt around a small synthesiser: a piano round is now a struck-string voice (stacked inharmonic partials with a fast attack and a natural decay) and a guitar round is a plucked-string voice (a bright pluck that a moving filter rounds off as the note rings). The staff stays piano-voiced. Wondrous Shannon's melodies are voiced on the same piano so the song you hear matches the keyboard you play.
- improve Audio stays clean and even during fast streaks. All game sound now runs through a shared limiter, so rapid-fire rounds (Tone Knowledge replays, Simon sequences, digit-memory playback) no longer crackle or pile up when several notes overlap. Notes also trigger the instant you press a key, scheduled straight on the audio clock so nothing waits on the main thread.
- improve Periodic Table, Leadership Timeline, and Red Day Match now scale with labyrinth level. These three quiz games previously showed the same handful of answer choices no matter how deep into the labyrinth you were · level 50 played exactly like level 5. They now add more distractor options as the level climbs (capped so the choice grid stays readable), so the polymath gauntlet keeps getting harder instead of flatlining.
- improve Sudoku Force generates instantly, even at Hard. The forced-digit solver was rebuilt on a flat bitmask board with naked-single propagation, so the Hard tier (and high-level Labyrinth runs) build a fresh uniquely-solvable grid in about 2 ms instead of up to 220 ms. Same puzzles, no more hitch between rounds during a 60-second streak.
- improve Mastermind Deduce gets genuinely harder at high difficulty. Hard rounds now draw from the full code space where colours can repeat (1296 possible codes, up from 360), so the white-peg feedback takes real deduction to untangle. Easy and Medium keep the no-repeats space.
- improve More of the site reads in your language. The About and FAQ sections on the most recently added games, the in-game Learn pages, and thousands of geography guides covering cities, mountains, rivers and lakes are now available across all 25 languages.
New
- new Your level, on one calm bar. The My progress page now opens with The Path · a single overall level that grows as you play, with a milestone ladder and an honest "X rounds to the next level" so you always see how close the next rung is. It only ever goes up · taking a break never costs you anything, and there are no popups · it waits for you on the page. Translated into all 25 languages.
- new Cookie controls in the footer. A new
Cookie Policypage, a Cookie Settings link to change your choice at any time, and aDo Not Sell or Share My Infopage for your CCPA privacy rights. - new Report a bug or send feedback from any page. A discrete button now sits next to the Game Mode toggle (and in its spot elsewhere). Tap it and we capture a snapshot of your current view · your email is masked out before the snapshot is taken · so you can show us exactly what you saw and add a note. It goes straight to the development team.
May 28, 2026
Improved
- improve Periodic Table game now shows a compact periodic table below the question. The element you're being asked about is removed from its spot, so you can also learn where it sits in the table - not just its symbol or name.
Fixed
- fix Emdashes removed from player-facing strings. Game descriptions, translated UI strings, fact-frame sentences, and game-component messages across Russian, Ukrainian, Swedish, French, German, Spanish, Portuguese, Bengali, Indonesian, and other locales contained emdashes (the "--" dash character) in violation of the site-wide content rule. All replaced with hyphens or middots. Affected files: game catalog description for Trig Drills, i18n/games.ts locale overrides, i18n/ui.ts translated strings, i18n/components for Crocodile, Cups, Circle Puzzle, Euler's Identity, Memorise, Whack-a-Mole, Historical Events, page-meta locale JSON files, game-faqs copy for Akari and Hashiwokakero, geo-seo Russian heading, and worksheet registry reason text in several game manifests. Generated platform snapshots regenerated from fixed sources.
New
- new Who Made This? at
/whomade· whopainted, whowrote, and whocomposed merged into one creator-recognition game. A top-of-page filter picks Art, Literature, or Music; all three modes share the same QuizMini engine. Old URLs (/whopainted,/whowrote,/whocomposed) redirect. - new Did You Know? at
/didyouknow· usefulfact, funfact, and butwhy merged into one fill-in-the-blank trivia game. Filter tabs for Useful Facts, Fun Facts, and How It Works. Old URLs redirect. - new Estimation at
/estimation· crazy-comparisons, estimation-engine, and volume-estimate merged into one estimation game. Filter tabs for Comparisons, Products, and Volumes. Old URLs redirect. - new Spatial Reasoning at
/spatial-reasoning· spatial, fold-out, and shadow-cast merged into one spatial game. Filter tabs for Rotation, Nets, and Shadows. Old URLs redirect. - new Follow the Chain at
/circuit-breaker· gear-train and circuit-breaker merged into one cause-and-effect game. Filter tabs for Gears and Circuits. Old URLs redirect. - new Logic Puzzles at
/logic-puzzles· akari, shikaku, nurikabe, slitherlink, hashiwokakero, and infinityloop merged into one hub. Filter tabs for each puzzle type. Old URLs redirect. - new Pattern Recognition at
/patterns· matrix, odd-one-out, and rule-induction merged into one pattern game. Filter tabs for Matrix, Odd One Out, and Rule Induction. Old URLs redirect. - new Finance Lab expanded · compound interest and probability topics added alongside the existing candlestick, Greeks, and valuation modes.
- new History Quiz at
/history· When Did, Who Did, and He Did What?! merged into one surface. Three question modes on the same historical dataset: pick the year an event happened, who was responsible, or which deed belongs to a given person and year. Enable any combination of modes via the chip picker on the idle panel. Old URLs (/whendid,/whodid,/he-did-what) redirect. - new Finance Lab at
/finance· candlestick patterns, options Greeks, and stock valuation in one place with a top-of-page topic filter. Pick all three for the full gauntlet, or drill one topic at a time. - new Ordering at
/ordering· historical events by date, planets and animals by size, and rank-by-numeric-property in one place with the same topic-filter chips. One streak across whichever topics you enable. - new Music Lab at
/music· ear-training random tone sequences and famous-melody segment learning, picked via a mode toggle at the top of the page. Each mode keeps its own high streak. - new Unit Converter moved into the Tools section.
/convertis now a dedicated converter without the quiz half · type a value, pick the units, the conversion appears instantly. - new "18+" age tier on the By-age dropdown. The dropdown stopped at 15-18 before; an adult who wanted "every game, tuned hard" had to fall through to the full Library. There is now an explicit 18+ tier that surfaces every catalogued game (tools and meta-hubs included) at peak difficulty + level, on the same dropdown as the children's tiers.
Improved
- improve Sudoku worksheets now print the real puzzle. Sudoku Force is back in the worksheet generator: each problem prints the actual 9×9 grid in its exact state · givens filled, one cell marked, and you pick the digit that must go there. The printed sheet is the same deduction as the live game, with an answer key on the last page.
- improve Every round now tells you what happened · not just "Not quite." The cognitive games (Card Count, Multi-Tasker, Prime Time, Gear Train and the rest) used to end a round with a bare "Correct!" or "Not quite." with no detail. They now show the correct answer, what you picked, and the working behind it (the running card total, the bell catch, the exact product) on wins and misses alike · translated across all 25 languages.
- improve The newest games now look like the rest of the site. Those games shipped with their own red feedback bar and off-palette buttons. They now use the same result panel, mascot, colours, and Continue button as every other game, so the whole catalogue feels like one product.
- improve Card Count has Easy / Medium / Hard. The game flashed cards at a fixed fast tempo that was punishing from the first round. You can now pick a difficulty: Easy deals 4 cards of ±1 at a readable pace, Hard ramps to 9 cards of ±3 at speed. Each level is age-graded so the gentle version is offered to younger players and the brutal one to teens.
- improve Labyrinth is cleaner. The maze now auto-saves your spot silently, so the save-code chip you had to copy is gone, and the little mascot that sat in the board's top-right corner has been removed. Refresh the page and you pick up exactly where you left off.
- improve Pathfinder has Easy / Medium / Hard. The path was long and the look-time fixed, so it played far too hard. You can now pick a difficulty, paths are shorter, and you get more time to memorise longer ones. Each level is age-graded.
- fix Every game's Start button is readable. The big Start button used each game's pastel accent with white text, which on light themes (like lilac) was nearly invisible. It now uses the standard high-contrast button on every game, so the call-to-action looks the same site-wide.
- improve Hangman keyboard · on-screen QWERTY keys now resize to fit any screen width without overflowing; wrong/correct key colors align with other word games (grey for guessed-wrong, green for guessed-right). Physical keyboard typing was already supported but is now more reliable across all focus states. Wrong-guess counter turns red instead of pink.
- improve Word Square · PARENTING grid · added "parent", "parting", and "repaint" to the accepted word list. All three are buildable from the grid letters and are common enough that players should not be surprised to find them rejected.
Fixed
- fix Quiz games stop re-asking a question you just saw. Games that draw from a fixed pool of questions · Proverbs, Fun Facts, Useful Facts, Eras, Periodic Table, Heads of State, Which Philosophy, Mosaic, and the Who Painted / Who Composed / Who Wrote recognisers · could repeat a question within three or four rounds. Two things were quietly defeating the built-in "don't repeat until the pool is exhausted" guarantee: each round's identity included its random seed (so every round looked brand-new to the de-duplicator), and the streak loop was wiping its memory on every win as the difficulty ramped. Both are fixed · each of these games now walks through its whole pool before any question can come back.
- fix Wordle input now works reliably. Clicking anywhere on the game immediately enables typing. The next empty tile is now white with a blinking cursor so it is clear where the next letter will land.
- fix Emailed worksheets keep the exact layout you chose. "Email worksheet to me" now sends a short cover note with the worksheet as an attachment, instead of dumping it inline where email clients stripped the styling and collapsed your two-column sheet into one mangled column. Open the attached file and it renders in the precise layout you picked, ready for Print · Save as PDF. The "Email worksheet to me" button also shows a sending spinner and a 20-second cooldown so a slow send can't be double-fired.
- fix Worksheet "Save as PDF" button no longer surprises you. The button is now labelled "Print / Save as PDF" because it opens the browser's print dialog (where you pick Save as PDF) rather than saving a PDF directly · the old label promised a one-click PDF download and broke that promise on every click. Now translated into all 25 locales.
- fix Pricing and sign-in copy refreshed. The pricing page and sign-in modal now focus on what the catalogue and your account give you, and the copy reads correctly across all 25 locales.
- fix Sign-in modal headline matches the button that opened it. Tapping "Sign in" in the header used to open a modal headlined "Save your streak" with sign-up value props · the wrong context for returning users. The modal now reads "Sign in" when opened from the header, "Save your streak" only when reached from explicit sign-up entry points.
- fix Sign-out really cleans up after you on shared devices. The sign-out flow used to drop the server session but leave round history, badge state, favourites, and the engagement cache in localStorage · the next person to use the phone or kiosk could read it all. Now sign-out also clears the per-user keys (round buffers, seen-badges, favourites, /me sort preference) while leaving device-level settings like sound and language alone.
- fix Consent banner now lets you reject as easily as accept. The banner shipped with only an "Accept" button and a "Manage" link that navigated to the policy page · the privacy policy promised "you can opt out of non-essential analytics via the consent banner" but there was no way to. There's now a "No thanks" button next to "OK"; both are translated into all 25 locales.
- fix Sign-up perks list speaks your language. The four-bullet "what an account unlocks" list inside the sign-in modal was hardcoded English in every locale. It now reads in the page's locale and describes what an account unlocks (sync, leaderboard, badges, and offline play).
- fix Sound toggle reads in your language. The "Sound: On" / "Sound: Off" pill in every game's settings panel was rendering in English on Swedish, French, Arabic, Korean and every other locale. Now uses translated strings everywhere.
- fix Privacy policy mentions the self-service delete button. The text still told visitors to "request deletion by emailing hello@playmemorize.com" even though /me has had a working Delete-account button for months. The policy now points at the button (and keeps the email address as a fallback).
- fix Crash screens read in your language. The full-page error boundary ("Something went wrong"), the per-game island boundary ("This game hit a snag"), and the 404 page ("Page not found") all rendered English on every locale · the very moment users most need clear text. All three now translate via 25-locale UI keys.
- fix Account-service retry button reads in your language. When the account API briefly 5xx'd, the header showed a ⟳ Retry button with an English title and aria-label on every locale · now uses translated copy.
- fix Quiz games no longer show contradictory verdicts on fast double-clicks. When a player tapped two answer choices in the same frame, the second tap could overwrite the displayed "your answer" while the underlying win/lose verdict was locked to the first tap · so the reveal said "you picked B" and "✓" (because A was correct) at the same time. The chosen answer is now locked the moment the verdict is, matching the verdict-latching shared lifecycle hook does for the phase.
- fix "Adults / all challenges" worksheet button matches the 18+ age button. The button hardcoded
difficulty: 8and skipped every per-game param override · so it generated a strictly weaker worksheet than the new 18+ age tier right next to it (which uses the documented adult tuning · difficulty 10 plus per-band caps like Math's hardest number range). The button now delegates to the 18+ preset so the two adult entry points produce identical worksheets. - fix Stock Valuation stops calling 10x vs 9x "Fairly Valued". Analysts call a 10% premium "in line"; players don't · seeing two different numbers labelled "fair" reads as a bug. The engine now requires the displayed integers to actually be equal for the "fair" verdict to fire, and tightens the under/over bands so they always show a real gap. The reveal also now explains why · e.g. "Brightline Mobility trades at 11x, 2x above the 9x peer-group benchmark · investors pay more per unit of value than for its peers, so it looks overvalued on EV/EBITDA".
- fix Changelog page builds again. An unescaped
{name}token in a recent entry was being parsed by Astro as a JSX expression instead of literal text, crashing the build at the changelog page and aborting every page after it.
Improved
- improve Proverbs has more, and more authentic, sayings. Each language's pool grew from 9 to 15, and the new ones are genuine native proverbs rather than translations of the English set: Swedish gets "Borta bra men hemma bäst" and "Många bäckar små gör en stor å", Japanese "猿も木から落ちる", Arabic "الصبر مفتاح الفرج", and so on across all 25 languages, each with its meaning explained in that language. Two old entries that accidentally showed the answer inside the sentence (Hindi and Thai "better late than never") were also fixed.
- improve Volume Estimate now draws the boxes. The three containers used to be plain text dimensions ("7 × 7 × 6"); you can now see each one as an isometric 3D box. The boxes share one scale across the round, so the largest volume really does look the biggest · the projection is parallel (no perspective foreshortening), which keeps the visual comparison honest. Each answer is colour-coded (peach / blue / lilac), and the exact volume is revealed under every box once you pick.
- improve MemPi can no longer hop outside its box. The bouncing mascot on the home page could occasionally leap outside its little cream panel; it now stays neatly inside it.
- improve Wordle reveals its row. Submitting a guess now flips each tile in sequence (80ms stagger, 360ms each), matching the mainline Wordle's "row tells you what just happened" feel. Honours
prefers-reduced-motion. - improve Memory cards turn properly. The labyrinth memory cards no longer hard-swap their background · they rotate 180° on the Y axis with two backface-hidden faces, and a matched pair pulses briefly. The "canonical memory feel" that older players were missing.
- improve Bigger keys on small phones. Wordle and Hangman on-screen keys are now 44px tall (Apple HIG / WCAG 2.5.5 touch-target minimum) · they used to sit just under the line at 40-42px on mobile.
- improve Keyboard players can see where they are. Hanoi pegs and Whack-a-Mole holes now show a brand-coloured focus ring · transparent SVG rects and dark backgrounds were swallowing the default browser ring, so keyboard players had no signal which element was focused.
- improve Word Square stops congratulating you for duplicates. Re-submitting a word you already found used to flash a green "info" toast that read like a win. It's now a neutral blue note.
Fixed
- fix Hashiwokakero now rejects crossing bridges. The win check verified bridge counts and connectivity but didn't enforce the canonical no-crossing rule. That rule is now enforced, so it can't quietly come back.
- fix Polyglot can't show two identical emoji buttons. Two distinct words sharing the same emoji (e.g. cat / kitten both → 🐈) used to slip past the dedupe filter. The dedup logic is now in a tested helper (
buildPolyglotChoices). - fix Chess Mate accepts mate-by-promotion. A pawn reaching its last rank now auto-promotes to queen in both the mate verdict and the reveal board · the dataset includes mate-in-1 puzzles that needed promotion and were being silently mis-graded.
- fix Compound Interest never ships an unanswerable round. When two options happened to tie at the same final value, the unique-max guarantee was bumping the wrong option. The fix bumps the actually-tied option (and falls back to maxing its rate if needed).
- fix Circuit Breaker grades behaviour, not the gate id. The prompt reads "pick the gate so OUTPUT equals TARGET", but the verdict checked which gate was picked. When the two inputs were equal, multiple gates yielded the target · the player satisfied the visible condition and got marked wrong. Now grades
output === target. - fix Eras stops asking you to distinguish "Romantic" from "Romanticism". The painting catalog had four near-identical era slugs (
romantic,romanticism,romantic-opera,classical-romantic) that all rendered as separate buttons. Collapsed into a singleromanticism; same treatment forrenaissance-literature→renaissance. A regression test keeps the retired slugs out for good. - fix Poker odds are correct. Pair successCount was 352 (didn't match any poker hand); straight-flush shipped with the royal-flush math under a normalised denominator. Both corrected to canonical 5-card poker combinatorics, pinned by tests that cross-check the displayed "1 in N" against the derived ratio.
- fix Heads of State date fixes. Tokugawa Ieyasu now ends in 1616 (he ruled as Ōgosho through his death; the previous 1605 was the formal Shogun retirement); Lula's first two terms end 2010, not 2011. Pinned by regression tests.
- fix No more duplicate paintings or musical works. Vermeer's Girl with a Pearl Earring and Botticelli's Birth of Venus each shipped under two different ids with conflicting metadata · removed. Beethoven's 9th Symphony was in the events list twice. A dataset hygiene test now catches duplicate ids.
- fix Title translations cleaned up. Raft of the Medusa had Chinese-character mojibake in its Arabic and Thai titles. Star-Spangled Banner had broken renderings in Swedish, Dutch and Polish, AND was mis-categorised as a composition · Francis Scott Key wrote the lyrics, the melody is John Stafford Smith. Mozart's Requiem had a meaningless Arabic title, a Hindi title that translated to "Protection Music", and a Thai title that meant "Haunting-ghost song for the deceased". Nighthawks was being literally translated to bird species across most locales (Hopper's title is slang for nocturnal humans, not the bird).
- fix Korean and Bengali proverbs no longer reveal the answer. The "actions speak louder than words" entry in both locales had the word above the blank visible in the prompt above the blank. Reframed to the "one action is better than a hundred words" variant where the answer doesn't appear in the prompt.
- fix Czech proverbs · "grass-is-greener" stops meaning the opposite. The slot held "Všude dobře, doma nejlíp" ("no place like home"), which inverts the intended concept. Replaced with the correct Czech rendering.
- fix Which Philosophy stops calling Nietzsche a nihilist. Nietzsche diagnosed nihilism as a threat to overcome, not a doctrine to embrace. The entry's
philosophylabel was changed from "Nihilism" to "Death of God" (the actual theme of the famous quote), with an explanation that flags the distinction. - fix Catch the Cat is actually winnable now. The board was radius 3 (cat reaches the edge in 3 steps, faster than any wall can be built) and pre-block density was 4-13%, which a solver simulation showed was effectively unwinnable at every difficulty. The board is now radius 4-6 with 20-36% density, spanning a real easy / medium / hard spectrum. A regression test plays each difficulty with a greedy bot (a lower bound on human skill) and asserts real win floors so the unwinnable params can't quietly come back.
New
- new Heavy Friction · the city now stops when you leave. The idle game lived up to its title only halfway · resources still ticked while the tab was hidden. They no longer do. The city only advances while you're actively here, or while a hired Admin is on shift (each hire grants 30 minutes of background coverage). When you come back to find your Admin shift expired, the world plays a short comedic "rebuilding" cinematic · pieces tumble back onto the map, status messages cycle ("Catching a fleeing goat…", "Convincing the farmer to return from the pub…", "Reissuing tax forms · the originals dissolved…") and the footnote reminds you that nothing actually progressed while you were away. The first 30 seconds after a tab-switch are always free, and the first 5 minutes of Admin coverage are granted automatically so an honest tab-flip never costs anything.
Improved
- improve Heavy Friction · defending a wave now restocks Admin coverage. A player who fights well but is broke used to deadlock against the rebuild loop · no money to hire Admins, no Admins to skip the rebuild. Each defended wave now grants a free minute of coverage on top of the cash bounty, so combat keeps you in the game even when the treasury is empty. The wave event log shows both rewards together.
- improve Heavy Friction · Admin coverage HUD warns before it runs out. The coverage row was previously binary · "5m 0s" or "No coverage". It now slides through a low-coverage state (warm butter background, soft pulse) when under a minute, so you have time to defend a wave or hire before the next rebuild. The meta text changes with it: "spent while tab is closed" → "topping up · defend a wave or hire" → "city falls apart while you're away". The footer also tallies how many times you've been rebuilt · 🚧 Rebuilt 7×.
- improve Heavy Friction · the rebuild cinematic has more visual life. The card now wears a hazard-tape stripe at the top, the stage has a faint ground hatch, eight building icons tumble in with staggered timing and each one kicks up a dust puff as it lands, and a tiny hammer swings in the corner while the work proceeds. The cycling messages also feed an aria-live region so screen-reader users hear the same beats. Every motion layer respects
prefers-reduced-motion: the pieces, dust, hammer, fades and pulses all settle into static layouts when the OS opts out. - improve Heavy Friction · Escape closes the rebuild card. The Skip button now also reads "Skip (Esc)" and auto-focuses when the cinematic opens, so a keyboard user can dismiss in one keystroke instead of tabbing through. Tabbing during the rebuild stays on the dismiss button.
- improve Heavy Friction · event log shows when Admins saved you. Resume after a long absence with coverage to spare and the event log now records "📋 Admin held the fort for 12m · 18m coverage left", so the hires you made stop feeling like a hidden state delta and start feeling like staff you can see working.
- improve Blog articles open with a clear TLDR box. Every blog article now starts with a green summary box (two to four sentences) so you can quickly decide whether to read on. The summaries are accurate extracts of the full article and are translated across all 25 locales. Estimated reading times were also corrected to match the actual word count at 200 words per minute.
May 27, 2026
Improved
- improve Every emoji in every box is sized to fit. Game-tile badges on the home page and library now render through the shared Twemoji component at 75% of the tile box, instead of relying on the OS emoji font that left some glyphs visibly smaller than others. The same rule was applied to badge-grid icons, the streak flame, the Memory fallback layer, Major-system pair strips, every game's "you finished" reveal, and the periodic-table element card. The library dropdown game-icons were also nudged up to match.
- improve MemPi lands where he jumps to, even on resize. The strolling MemPi on the manifesto rail used to capture his hop coordinates in pixels at takeoff, so if web fonts or the typewriter line reflowed the rail mid-jump, he'd land in the pre-resize spot before snapping. The hop now recomputes the rail position every frame and scales the arc height with the rail itself, so he always touches down inside the box.
- improve Site footer reads as a passion project. The footer copyright line dropped the "free brain gym, built in Stockholm" tagline in favour of "© 2026 · A passion project from Christoffer De Geer." in every one of the 25 locales. The library footer reverts to "Hand-built by Christoffer De Geer."
- improve One Settings menu per game, not two. Every game page already shows the canonical Settings / Stats / FAQ panel below the round chrome (rendered once from the shared landing layout). About 20 games were also rendering a second per-game settings collapsible that duplicated the same Sound toggle. The duplicate is gone everywhere; per-game knobs (Simon speed, Convert category, Geo "Study" link, Crazy Comparisons stop) now sit inline next to the round chrome as their own quiet utility row.
- improve By-age dropdown 15-18 now means "every game". The top age band always included games down to 4-7, but creator tools and meta hubs (Dice, Emoji Text, Faktageneratorn, Polymath, Heavy Friction, All) carried no age tag at all and stayed hidden from every band. They now show up at 15-18, so an 18-year-old finds the full library where they expect it.
- improve Emotions game mixes both directions from the first round. The game has two complementary tasks ·pick the two primary emotions that combine to form a complex one, and pick the complex emotion that comes from a given pair. They used to be gated separately by difficulty (one alone at d ≤ 3, both at d ≤ 6, intensity ladder at d > 6); now both combo directions mix at every difficulty so the brain practises the relationship both ways from the start.
- improve Localised game names now cover the puzzle catalogue. Hanoi, Infinity Loop, Akari, Shikaku, Nurikabe, Slitherlink, Hashiwokakero and Emotions previously fell back to English on every non-Swedish locale's home page tile and header dropdown. They now ship native labels and one-line descriptions across all 25 locales (Swedish is now at full 103/103 coverage; the other 24 locales gained 8 entries each ·see
src/i18n/games.ts). - improve Ordering-game emoji glyphs use Twemoji. Order Em Up's and Sort Em Up's per-card emoji used to render via the OS emoji font, which made some cells visibly larger than others (Apple vs Twemoji renders the same character at different cap heights). They now render through the shared
<Emoji>component, so every card carries an identically-sized Twemoji SVG. - improve Leaderboard "You" row hydrates from the cloud before painting. Signed-in players who landed on the Leaderboard directly (e.g. from the footer) sometimes saw themselves with 0 rounds because the row was built from whatever was already cached in localStorage ·sparse or empty on a recently-signed-in browser. The component now also pulls the cloud history first, so the You row reflects the full account.
- improve Chess Mate plays from a 9,796-puzzle bench. The mate-in-one pool grew from a handful of curated positions to nearly ten thousand, so you can play hundreds of rounds before a position repeats. Difficulty ramps with level: easier mating patterns up front, busier middlegame mates further in.
- improve Riddles got 105 prompts in English (×25 languages). The Riddles pool expanded across classic, wordplay, math and lateral-thinking categories. Each riddle now ships with a one-paragraph explanation so the "why" lands even when you guessed wrong.
- improve Which Philosophy now spans 67 statements. The famous-quote / pick-the-philosophy pool more than doubled - Plato, Aristotle, Stoics, Kant, Mill, Marx, Nietzsche, Sartre, Camus, Confucius, contemporary names - across ethics, epistemology, metaphysics, politics, philosophy of mind.
- improve Three more history events. When Did, Who Did, He Did What, and Order When now include Hamlet (1609), Newton's Principia (1687), and Darwin's Origin of Species (1859) - the actors were already in the pool, the events themselves were not.
- improve Infinity Loop rounds are tighter. Pipe-loop generator widened its solvable position space, so two rounds at the same difficulty no longer feel like the same board with a few rotations.
Fixed
- fix Polymath now plays the same round on the same seed. A non-determinism bug let the same seed produce different challenges across runs, which broke fair head-to-head scores in labyrinth and replay-from-history. Polymath's generator is now strictly deterministic in line with every other module.
- fix No more duplicate riddles in a session. The Riddles pool had a handful of entries with identical answers and near-identical wording sitting under different IDs, so the same puzzle could appear twice in a single sitting. Removed the duplicates and tightened the data check so this can't slip back in.
- fix Who Painted / Who Wrote / Who Composed never repeat a creator in the choices. When two artworks by the same artist (e.g. two Botticellis) ended up as a target + distractor, the player saw two buttons labelled "Sandro Botticelli" with no way to tell them apart. Distractors are now deduplicated by creator so every choice shows a distinct name.
- fix Periodic Table no longer leaks the answer. The element card was showing the atomic number on every round; in "atomic number → symbol" mode that's part of the prompt, but in the other two modes a quick glance at the corner gave the answer away. The number now appears only when the prompt actually asks for it.
- fix Tower of Hanoi gives you room to think. The move budget was set to the exact theoretical minimum (2^n − 1), so a single fumbled move lost the round. Players now get a difficulty-aware margin that shrinks as their level rises.
- fix Proverbs · no more duplicate-word choices. In Spanish, Dutch and Japanese a handful of proverbs share the same blank-word ("oro", "goud", "金"), so two buttons could show the same answer. The distractor pool now deduplicates by the rendered label so every choice is visually distinct.
- fix Red Day never freezes the tab. Picking the "buddhist" religion filter (only 3 holidays in the dataset) sent the choice loop spinning forever trying to find a fourth unique date. The round now adapts to small pools and ships ≤ pool size choices instead of hanging.
- fix Odd One Out · "vehicles" and "insects" are no longer ambiguous. The vehicles group was "road vehicles" but the odd pool included other vehicles (plane, train, boat). The insects group included spiders and scorpions, which are arachnids. Both categories are now tightened so the "odd" item is unambiguously the wrong fit.
- fix Whack-a-Mole resolves the moment you hit the target. Previously a clear run made you wait out the rest of the timer before the round ended. It now snaps to "You won" the instant you reach the score target.
- fix Color sequences keep growing past level 13. The mini-game capped the sequence at 16 colours even though the schema allowed 50, so high-streak runs plateaued. The cap now matches the schema.
- fix Mastermind Deduce rounds always have a unique answer. Earlier rounds could stop with multiple codes still consistent with the feedback shown, so a deducing player legitimately picked a code that wasn't graded as the answer. The generator now keeps adding discriminating guesses until exactly one solution remains, and distractors are drawn from outside the survivor set.
- fix Schedule Conflict no longer has two valid answers. When the puzzle picked the latest time slot (15:30), one of the time constraints fell back to a narrative phrase that didn't actually ban any specific time, leaving a second slot logically valid. The target time is now restricted to the interior of the day so every round resolves to one answer.
- fix Shadow Cast shows the light source. The "pick the shadow" round used the same static block glyph regardless of seed, so the player couldn't actually use any visual reasoning. A sun glyph now sits in the corner that matches the round's light direction.
- fix Player-facing strings in Candlestick, Greeks, Valuation, Which Philosophy, Heads of State, Country and Odds now flow through the translation layer. These games previously hardcoded English prompts and labels in JSX; they now resolve through
useTranslations(lang). - fix Historical events dataset no longer has duplicate IDs. Three events (Hamlet, Newton's Principia, Darwin's Origin) were entered twice in the events list, which broke the integrity test and could surface the same actor twice in Who Did rounds.
- fix Vermeer's Girl with a Pearl Earring + Botticelli's Birth of Venus appear once. Both paintings shipped under two different ids in the catalogue, so Who Painted and Eras quiz rounds could show the same painting twice in one choice grid (and Girl with a Pearl Earring was classified as both 'baroque' and 'dutch-golden-age' depending on which copy the round picked).
- fix Beethoven's 9th Symphony appears once in history rounds. The event was listed twice (
beethoven-ninthandbeethoven-9th), so When Did / Order When pools could show "Ninth Symphony premiered" and "9th Symphony premieres" as separate distractors for the same year. - fix Poker pair odds are now correct. The "what are the odds of a pair in 5-card poker" round shipped with the wrong success count (352 instead of 1,098,240), so the percentage option the player was supposed to pick didn't match the explainer text "1 in 2.37".
- fix Sun Yat-sen is named correctly in Swedish. The Heads of State dataset had translated the surname as "Sol Yat-sen" · a machine translation of "Sun" as the Swedish word for the sun.
- fix Name Rarity replaces four fictional / placeholder entries. The data sheet for Luke, Logan, Layla and Luna pointed at Star Wars / X-Men / Harry Potter / a song; Mateo had a "(sic)" debug note in the player-visible row. All five now name a real public figure (Luke Bryan, Logan Paul, Layla Moran, Luna Mijović, Mateo Kovačić).
- fix Hashiwokakero, Slitherlink, Nurikabe and Hanoi prompts now translate. The four puzzles shipped a hardcoded English prompt/won/lost trio inside the MiniGame, so every non-English locale fell back to English text. They now read through
useTranslations(lang). - fix Akari translates its bulb / lit / empty cell labels. Screen-reader users on Russian, Hindi, Bengali, Indonesian, Hebrew and Thai now hear native words instead of English "bulb / lit / empty". Removed six locale entries that weren't part of the active 25 locales.
- fix Bubble Wrap timing is robust to clock changes. The win/loss check measured elapsed time with
Date.now(), which follows wall-clock time and can flip the outcome if the system clock jumps mid-round (NTP sync, manual change). Switched toperformance.now(). - fix Tower of Hanoi pegs are keyboard-accessible. Pegs had a click handler but no keyboard support, so a tab-traversing player couldn't select or move disks. Added focus + Enter/Space handlers.
- fix Polyglot / Odd One Out / Ghost emoji choices announce themselves. The three games' choice buttons rendered only the emoji glyph (decorative), so screen readers said nothing useful when focused. Each button now carries the emoji as an
aria-label. - fix Stale riddle id renamed. The "cl-cloud" riddle id pointed at a riddle whose answer is "A joke" · the id had stuck around when the riddle content changed. Renamed to "cl-joke".
- fix Eras game no longer asks you to distinguish "Romantic" from "Romanticism". The painting catalog had four near-identical era slugs (
romantic,romanticism,romantic-opera,classical-romantic) and Eras built its distractor pool from the slug list. Picking the right one was often impossible because two or three buttons read as the same era. Collapsed into a singleromanticismslug (per-locale titles preserved). Same treatment forrenaissance-literature→renaissance. - fix Straight Flush odds are now right. The "what are the odds of a straight flush?" round shipped with the royal-flush success count (4) under a normalised 649,740 denominator. The picker grid and the explainer disagreed. Corrected to 36 / 2,598,960 = 1 in 72,193.
- fix Tokugawa Ieyasu's reign spans his full Ōgosho years (1603-1616). The Heads of State dataset stopped his entry at 1605, the year he formally retired the Shogun title to his son · but he held actual power until his death in 1616. The 1603-1605 range confused anyone who knows him as the founder of the 250-year Tokugawa shogunate.
- fix Lula's first term ended in 2010, not 2011. Heads of State endYear corrected · his second presidency ended 31 December 2010.
- fix Compound Interest puzzle is no longer unanswerable. When two of the three options happened to tie at the same final value, the unique-max guarantee bumped the wrong option · the tie remained and the round had no correct answer. The fix now bumps the actually-tied option and falls back to maxing its rate if the year extension still doesn't strictly dominate.
- fix Schedule Conflict, Periodic Table, Candlestick, Valuation, Greeks, Odd One Out, Sudoku Force, Mastermind Deduce, Chess Mate, Finn Femfel, Crazy Comparisons and Minesweeper Flag now run in 25 languages. A pass through every `i18n-pending` marker in src/games/. Schedule Conflict's five-person constraints, day names, Periodic Table's "Symbol for {name}?" prompts, Candlestick's pattern labels (Hammer / Doji / ...), Valuation's verdict labels, Greeks' descriptions, Odd One Out's category reveal, Sudoku Force's explainer, Mastermind Deduce's colour-name screen-reader labels, Chess Mate's piece names + selection announcement, Finn Femfel's per-cell announcements, and Minesweeper Flag's mines-remaining label all now flow through `useTranslations(lang)`.
- fix Crossword auto-advances and obeys arrow keys. Typing a letter now jumps to the next cell, Backspace on an empty cell jumps back, Arrow keys navigate, and the first non-blocked cell takes focus on mount. Mobile play used to require a tap per letter.
- fix Typing can't be paste-cheated. A single input event that grows the value by more than 5 characters is rejected · pasting the full prompt no longer counts as a finish.
- fix Wordle and Hangman keyboard handlers stop at editable focus. The global
keydownlistener used to fire letter guesses while focus sat in any input on the same page. It now bails whene.targetis an input / textarea / select / contenteditable element. - fix Hash double-submit guard. A rapid Enter + click could submit the same Hash round twice and bump the streak by two. Guarded.
- fix Red Day focus moves to "Next round" after picking. The just-pressed answer button kept focus while it was disabled, leaving the focus ring on a non-interactive control until the player tapped again.
- fix Polyglot, Akari, Circle Puzzle and Catch the Cat are keyboard-playable. The SVG cells / rings / hexes had click handlers but no
tabIndexoronKeyDown· a tab-traversing player could not interact. Added Enter/Space activation and focus management. (Hanoi and Infinity Loop got the same treatment in an earlier pass.) - fix Polyglot no longer offers two visually identical emoji buttons. Two distinct words sharing the same emoji (e.g. cat / kitten both → 🐈) used to slip past the dedupe filter, leaving the player to guess between two buttons that looked the same. Now deduped on the rendered glyph.
- fix Tones / Wondrous Shannon highlight timer is round-safe. The 180ms highlight-clear
setTimeoutwasn't tracked, so a round re-key during the window firedsetHiagainst torn-down state. Now tracked inplayTimersRefand cancelled on cleanup. - fix Mosaic / Scratch Card / Where's MemPi reset on seed change. The three games relied on the host remounting via
key={seed}to clear theirfiredRef+ per-round state. Reused hosts (e.g. polymath cycling) carried stale "round already fired" flags into the next round, making it unresolvable. Added defensive seed-reset effects. - fix Tomato-origin fact is no longer subtly wrong. The frame asked "Tomatoes were first cultivated in 0" with answer "South America", but tomatoes were first cultivated in Mesoamerica · only their wild origin is South American. Reworded to "Tomatoes originally grew wild in 0" across all 25 locales.
- fix Multi-Tasker space-to-catch is round-safe. The Space keydown listener used to bypass the resolved state and could re-toggle the bell visual after the round was already scored. It also re-registered on every animation frame during the 2.6s descent. Now reads via refs (no re-register) and bails when the round has resolved.
- fix Circuit Breaker now grades the behaviour, not the gate id. The prompt reads "Pick the gate so OUTPUT equals TARGET" but the verdict checked which gate was picked. When the two inputs happen to be equal, every gate produces the same boolean · the player satisfied the visible condition and still got marked wrong. Now grades on whether OUTPUT actually equals TARGET.
- fix Hashiwokakero rejects crossing bridges. The win check verified bridge counts and connectivity but didn't enforce the canonical no-crossing rule, so a player could "solve" any board with crossing bridges even when the generator's intended solution had none.
- fix Chess Mate handles pawn promotion. Mate-by-promotion puzzles (a7-a8=Q#) were either falsely rejected (the engine kept the pawn as a pawn for the mate check) or falsely accepted (mate without the queen's attack pattern). Pawns reaching the last rank now auto-promote to queen in both the verdict and the reveal board.
- fix Convert keeps decoy values integer. The decoy generator used `factor/10` which produced 2.4 for factor=24 (day → hours), displaying a non-integer next to integer answer options · a visual tell that revealed the wrong answer.
- fix Analogies always shows four buttons. When a relation pool was pathologically thin (one item after the p1 filter), the fallback shipped a single-button choice list · trivially correct but breaking streak meaning. Now pads with three distinct b-values from other relations.
May 26, 2026
New
- new 16 new cognitive games. Fold-Out, Pathfinder, Shadow Cast, Mirror Symmetry, Volume Estimate, Circuit Breaker, Gear Train, Rule Induction, Schedule Conflict, Laser Bounce, Multi-Tasker, Card Count, Prime Time, Fractions Faster, Estimation Engine, and Compound Interest. Short rounds, age-aware difficulty, full GameModule conformance.
- new Email a worksheet to yourself. The worksheet generator now has an “Email to me” button that sends the HTML to your account email. Requires sign-in with a verified address.
Improved
- improve Simpler header. The three menu items are now Library, By age, and Worksheets · each opens with a click on its own label. By topic was retired; the same browse-by-skill flow now lives inside the Library dropdown.
- improve Worksheets in your language. The generated worksheet, the per-game labels, and the “N problems / N games” chrome now follow the active site language end to end. The page no longer ships English copy on a translated locale.
- improve Worksheets look like worksheets. Stronger borders, hard shadows, monospace numbers, tinted FAQ cards · a sheet a teacher would put on a classroom wall.
- improve Activity board: recent only. Your activity heatmap now shows 7 days for new accounts and 30 days from there on, instead of a sparse year-long grid.
- improve Younger-friendly age coverage. Odd One Out and Backwards moved into the 4–7 band so the youngest filter has more to play.
- improve Bigger emoji on game cards. Home-page game tiles now show the emoji 50% larger and vertically centred with the title block.
- improve Thicker writing cursor. The hero typewriter cursor on the front page is now 7px wide so the “mid-sentence” rhythm reads from a distance.
- improve Calmer mascot bubbles. The green/blue/yellow bubbles around MemPi drift on a slow 22–26 second cycle instead of darting.
- improve Game-mode sits at the top. Entering full-screen game mode now snaps the game to the top of the viewport rather than leaving the old header gap behind.
- improve Passion-project framing. The home page manifesto, the library footer, and the per-game About copy now lead with “A passion project from Christoffer De Geer” and explicitly describe what is stored, what is exportable, and what you can ask to be deleted.
Fixed
- fix Lucktexten / Minnesluckan no longer leak into English. The two Swedish breadcrumb names were appearing as the English-locale About heading for Fun Fact and Useful Fact. Now both English-localised copies use English names and only the Swedish locale shows the Swedish ones.
- fix Hangman and Ghost out of worksheets. Both games rely on timed or turn-by-turn interaction that has no paper analogue; they are now documented as “not worksheet-suitable” and excluded from the generator instead of producing low-quality static sheets.
May 25, 2026
New
- new Tower of Hanoi at
/hanoi- move all disks from peg 1 to peg 3 using the fewest moves. Scales from 3 to 7 disks. - new Infinity Loop at
/infinityloop- rotate pipe tiles to form one seamless connected loop with no open ends. - new Akari (Light Up) at
/akari- place lightbulbs on a grid to illuminate every white cell without any two bulbs shining at each other. - new Shikaku at
/shikaku- divide a grid into rectangles so each rectangle contains exactly one number equal to its area. - new Nurikabe at
/nurikabe- shade cells to form rivers while leaving numbered island groups of exactly the right size. Classic Nikoli logic puzzle. - new Slitherlink at
/slitherlink- draw one single closed loop between dots. Numbers say how many sides of that cell the loop uses. Classic Nikoli puzzle. - new Hashiwokakero (Bridges) at
/hashiwokakero- connect numbered island circles with bridges (1 or 2) so every island is reachable and totals match. - new Feeling Circle at
/emotions- learn Plutchik's Wheel of Emotions: match complex feelings to their primary components and explore intensity levels. - new City Defense overhaul. The Heavy Friction idle at
/heavy-frictionis now a full city-defense strategy game with 10 technology eras (Stone Age to Digital), exponential wave scaling, and 8 city buildings including the Riksbank, Warehouse, and Citadel.
Improved
- improve Simpler header menus. By topic now lists the games themselves, grouped by skill, with each game opening its own page · and every menu (By topic · By age · Worksheet) opens with a single click on its name. Your starred games sit pinned at the top of the By topic menu, and "All games" is one click away from any menu.
- improve Clearer leaderboard. The country leaderboard now shows the real average study time per player instead of a percentile, and the "worksheets downloaded by country" board ranks each country by position rather than a raw download count.
May 21, 2026
New
- new One-click worksheets by age. Pick an age in the header's Worksheet menu and a full, age-appropriate practice worksheet is generated instantly · numbered questions, lettered choices, and an answer key on the last page. You're greeted by the worksheet itself; print it, save it as a PDF, or download the HTML.
- new Tweak the worksheet without leaving the page. A Settings / Stats / FAQ bar now sits under every worksheet (just like the games). Add or remove games, change difficulty, or set the number of problems and the worksheet above updates as you go. Click an age again for a fresh set.
- new Browse games by topic or by age. The header now has By topic and By age dropdowns alongside Library · browse games grouped by skill (the way the blog roundups are organised) or by the age each game suits, with every game opening pre-tuned for that age.
Improved
- improve Worksheets count toward your progress. Every worksheet you download now appears on your profile under "your stats" and adds to your country's place on the leaderboard, including a new "worksheets downloaded by country" ranking.
May 20, 2026
New
- new Favorites pin to the top. Star a game (☆) and it jumps to a "Favorites" row at the top of both the Library menu and the All games page, so your go-to games are always one tap away.
Fixed
- fix Removed two games that weren't pulling their weight. Ice Cream and the Mosaic Maker tool have been retired so the catalogue stays tight and every game on it is one we stand behind.
- fix The animated headline now types in every language. The front-page headline used to freeze on a static word in every language except English. It now types, pauses and retypes in all 25 languages, with the same blinking cursor everywhere.
- fix Time spent now counts real play time. The "Time memorising" tile on your profile and the "Study time" column on the leaderboard recorded zero for everyone. They now track active on-screen time and pause when you switch tabs or step away.
- fix Leaderboard "Longest streak" shows the actual number. It was showing a percentage instead of your best run in a row.
- fix Facts and Crazy Comparisons show the result before moving on. Both games now highlight right vs. wrong and wait for you to continue, instead of jumping straight to the next question, and their answer buttons match the rest of the site.
- fix Emoji Typewriter looks and reads right. The preview no longer renders on a black background, and its buttons and helper text are translated instead of showing raw text labels.
- fix Help "?" tips open on tap. Tapping a help "?" now pins its explanation open on touch screens (tap again, tap away, or press Esc to close).
- fix Sign-in box always fits the screen. The "Save your streak" sign-in card now centres when it fits and scrolls when it's taller than the screen, so the email field and button are never cut off on small phones.
- fix Library menu fits on phones. The game menu no longer runs off the edge of the screen and now scrolls inside the menu so you can reach every game.
- fix Game pages no longer sit flush against the top menu on phones. Every page now leaves a clear gap below the floating menu bar, so the first row of controls (like the country / topic pickers in the geography game) isn't cramped right under it.
Improved
- improve The landing page comes alive. MemPi now reacts when the falling pi digits splash on it, glances at drops before they land, walks along the manifesto band, and peeks in from the edge now and then; game cards give a little nudge as you browse. All of it respects "reduce motion" and pauses when the tab is in the background.
- improve Consistent in-game menus everywhere. The in-game Settings panel and the topic / option dropdowns now share one design across every game (geography, Simon, unit converter and more) instead of slightly different per-game versions.
- improve Livelier landing headline. The "Level up your ..." headline now types and backspaces with a human rhythm - pausing on punctuation, hesitating mid-word, speeding through double letters, only rewriting the part of the word that changes, and rotating through more words plus the occasional surprise trivia question.
- improve Cleaner in-game toolbar. The Settings / Stats / Help bar under each game is lighter and quieter, so it stays out of the way of the game itself.
- improve One Random Facts tool. The two separate fact spinners are now a single Random Facts tool that draws from the whole pack · practical and fun facts together.
- new Browse and learn by age. The Library now has a "By age" filter (4-7, 8-11, 11-15, 15-18) that shows only age-appropriate games and opens each one tuned for that age · and the worksheet generator can fill a sheet for an age in one tap.
May 19, 2026
Fixed
- fix Front page no longer jumps when the headline word changes. "Level up your math / memory / focus" now reserves enough horizontal space for the longest word, and every rotating word renders in the same fat Manrope as the rest of the headline (in brand pink) instead of the previous serif italic.
- fix "Best in each game" column headers line up with the values. The table now uses fixed column widths so Plays / Accuracy / Best streak / Last played / Time always sit directly above the numbers they label.
- fix Game column no longer reads "me.col.game". The header label is properly translated.
- fix Devices panel no longer shows "Unknown device". Sessions without parsed User-Agent data now fall back to Desktop / Mobile / Tablet instead of the literal "Unknown" string.
Improved
- improve Activity heatmap grows with your tenure. Brand-new players see the past 7 days (instead of 358 empty cells), 30-day veterans see the past 30 days, and only players with a year of plays see the full 365-day GitHub-style grid.
- improve MemPi mascot on the front page is friendlier. Smaller tile, white background (was a heavy ink block), so the mascot sits next to the headline as a companion instead of competing with it.
- improve Header pill is cozier. Tighter max-width and reduced gaps so brand, nav, and the streak / sign-in cluster sit close together on laptop screens instead of stretching across the viewport.
- improve Sign-in modal refreshed. Replaced the generic "P" logo with MemPi, removed the duplicate "Sign in to sync across devices" line, dropped the extra Close button at the bottom, and moved the close × to a discreet 28 px chip inside the top-right corner of the card.
- improve Leaderboard explainer text quieter. The "every country gets a composite score..." paragraph is now a short single line under the title in a lighter weight.
New
- new Country rankings on the Leaderboard. New "By country" tab shows every country's participation share, rounds played, win rate, average score, average time per round, Pi rounds, and best streak - all sortable by clicking any column header. Percentages compare each country against the global total so you can see at a glance which countries play the most and which score highest.
- new Leaderboard is now a country-vs-country contest. The dashboard is one page with one ranking: every country gets a composite 0-100 score from five percentage-style sub-scores (win rate, performance, efficiency, engagement intensity, consistency), each percentile-mapped against the rest of the population. Small countries with sharp play can outrank large ones. Game and language tabs are gone; click any column header to re-sort.
Improved
- improve Hangman wins and losses now count. Every finished word records a round to your stats and to the leaderboard, including losses. The game also tracks how long each word took so the time-spent metric finally moves when you play.
- improve Profile page reordered. "Best in each game" now sits above Badges so the concrete results land before the gamified chrome. The Devices panel moves to second-last (just above Delete data). The sort dropdown was replaced with sortable column headers - click a column name like in a spreadsheet to re-sort.
- improve Streak badges differentiated. Ember, Blaze, and Inferno used to all show the same flame. They now read as a progression: candle (Ember, 7 days), flame (Blaze, 30 days), volcano (Inferno, 100 days).
- improve Devices panel uses friendlier labels. Sessions where the User-Agent didn't parse cleanly used to show "?, ?" - they now fall back to the device category (Mobile / Tablet / Desktop) or "Unknown device".
- improve Game page chrome simplified. "In-game settings" is now just "Settings"; "About this page & FAQ" is now "FAQ"; the stats collapsible is now "Stats". All three labels translated across 25 locales.
- improve Stats panel always starts closed. The per-game Stats collapsible no longer auto-opens after a round - players who don't want their results in their face can keep it tucked away.
- improve Help tooltips no longer get clipped. The "?" bubble now renders via a portal at a fixed position above the trigger, so it can never be cropped by an ancestor's overflow:hidden (which is what happened inside the Stats collapsible).
- improve "Almost there" badge ribbon fully visible. The corner ribbon that highlights your next badge used to be clipped by the badge tile - it's now a centered pill at the top of the tile so the full label shows.
- improve Header pill snugger on laptops. Max width 980 px (down from 1180 px) and the Library nav no longer stretches into the middle, so the streak chip and account badge sit close to the nav instead of floating with empty space between them.
- improve Pi page chrome tightened. The "How to play" helper above the numpad is gone - the numpad sits directly under the constant-mode nav now. The constant-mode nav itself has a touch more breathing room below the floating header.
- improve Sign-in modal explains what you get. The OTP form now leads with four short benefits (cloud sync, country leaderboard, badges, offline play) so visitors know what an account unlocks before typing their email.
- improve Streak number consistent between dropdown and header. The account dropdown's mini-streak chip now pulls the authoritative cloud value the same way the header streak chip does, so signed-in players don't see two different numbers ("2-day fire" inside the dropdown, "3-day fire" on the header pill).
Improved
- improve Pop color palette applied site-wide. Updated design tokens: ink is now deep indigo-purple, the page background is warmer cream, coral red replaces the previous pink accent, and sun yellow becomes the primary call-to-action color. All game tiles now show white cards with a color-tinted icon box instead of a fully tinted card background, making the game name and description easier to read at a glance.
- improve Header wordmark updated. "Play" renders in ink and "memorize" in italic coral red, matching the refreshed brand identity.
- improve Footer redesigned with dark background. The site footer now uses a deep ink background with light-on-dark text, giving the page a clear visual end-cap and improving contrast.
May 18, 2026
New
- new Hundreds of new geography guides. Every country with at least a couple of notable cities, mountains, rivers or lakes now has its own step-by-step memorisation guide · in English and in several more languages · each with a playable round embedded right in the article and a ready-made mnemonic to hang the places on.
- new Top game pages now read in your language below the fold. The "About this page" and FAQ sections on the most-played games (Labyrinth, Polymath, Pi, Memory and Geography) used to fall back to English · they now render in your language, matching the rest of the page.
Improved
- improve A refreshed look across the whole site. Every game, button, card and menu moved to one cleaner visual language · thinner borders, pill-shaped buttons and chips, calmer pastel colours for game feedback, rounder cards, and the same shadows and focus outlines everywhere. The blog's tip, warning and key-point boxes and the library tiles now share that frame too, spacing tightens neatly on phones, and printing any page or worksheet comes out clean.
- improve Pricing, Schools and Library pages now speak every language. These pages used to show English copy below a localised header; every line now reads in your language across all 25.
- improve Install the app in your language and it stays in your language offline. The offline app now keeps your language's home and game pages cached, so opening it with no connection lands you on the right page instead of the English one.
Fixed
- fix Rounds you finish offline no longer count twice. When a round saved while you were offline and synced later, a flaky connection could occasionally record it more than once and inflate your counts. Each round now lands exactly once.
- fix Optional analytics now follow your cookie choice. Page-view, performance and error reporting only run once you have accepted analytics; the basics the site needs to work are unaffected.
- fix Periodic Table labels the lanthanide and actinide rows by name instead of the internal "Group L" / "Group A" codes.
May 17, 2026
New
- new More to play across the catalogue. Riddles gained 15 new puzzles, Which Philosophy four more positions, Order by Size 13 new items, Tone Knowledge eight more melodies (all traditional or public-domain), Fast Typing 29 new sentences and stanzas, and Word Square three new grids · so long streaks run further before anything repeats.
- new A richer progress page. Your stats page now leads with the game you are strongest at and the badge you are closest to earning, groups your badges by category with "almost there" and "recently earned" ribbons, lets you sort your per-game list, and labels the activity heatmap by month and weekday in your language.
- new A smoother sign-in. The code step now shows a live "expires in" countdown, a Resend button, and a spam-folder hint.
Improved
- improve The app is ready to play offline in seconds. Installing now caches a small core straight away and warms the rest in the background, so the offline-ready state shows up almost at once instead of after a long wait.
- improve Every country guide has the same helpful callouts. Every "memorise the top cities of X" article now carries the same tip, strategy, key-point and warning boxes as the original Sweden guide · on time-boxing, mnemonics, clustering, active recall and spaced repetition · kept in parity across all 25 languages.
- improve German articles read in German again. The geography series had shipped with ASCII stand-ins ("groessten Staedte"); the umlauts are back ("größten Städte").
- improve The stats page reads better on touch. Help tooltips open on tap, the heatmap scrolls to your most recent activity, and the most motivating numbers · current streak and accuracy · now read first.
Fixed
- fix Taps no longer count twice on phones. Whack-a-Mole, Circle Puzzle, Cups, Catch the Cat, Bubble Wrap and Scratch Card registered a single touch as two, so scores and move budgets were off · each now counts one tap as one.
- fix The mobile menu closes when you tap a link, press Escape, or tap outside it, returning focus to the button · and the install strip no longer hides the footer.
- fix In-game buttons and reveals now read in your language. The Continue and skip-question buttons, and the post-answer reveals in Hangman, Wordle and Geography, were stuck in English on some pages · they now match the page language across all 25 locales.
- fix Better screen-reader support in Wordle and Hangman, with proper spoken names for the keyboard keys, the gallows and the word area.
- fix The "Sign in" button works from the first moment you see it, and the blog header no longer mislabels itself as "Pi".
- fix Bubble Wrap and Scratch Card match the flat design, dropping their gradient fills for solid colours.
May 13, 2026
New
- new But Why Though at /butwhy · real "how does it work?" explanations with the key words missing. The answer types itself out across the screen and pauses on each blank for you to pick the right word from three options · get every blank right to clear the round. Launch pool covers seventy questions across appliances, transport, technology, the body, nature, food chemistry, space and physics. Worksheet-supported. Plays offline.
- new Which Philosophy? at /whichphilosophy. A famous philosophical statement appears (“I think, therefore I am.”, “Existence precedes essence.”) and you pick the philosophy or movement it represents. The pool covers 30+ canonical statements across ethics, epistemology, metaphysics, politics, philosophy of mind, and existence (Plato, Aristotle, Descartes, Kant, Mill, Marx, Nietzsche, Sartre, Camus, Beauvoir, Confucius and others). Worksheet-supported.
- new Wordle mini-game variant. The full multi-attempt Wordle still lives at /wordle; the labyrinth and Polymath now also draw a single-round “find the missing letter” round from the same word lists. One letter of a real Wordle word is blanked and you pick the missing letter from four choices. Difficulty 1-3 draws from the easy (4-letter) pool, 4-7 from medium (5-letter), 8-10 from hard (6+).
- new Curated name facts in Name Rarity. When the reveal panel shows the two names, names in the curated set (~65 well-known names so far) get an extra card with the name’s origin and a famous bearer (e.g. “Andie · Scottish, diminutive of Andrew. Andie MacDowell, American actress in ‘Groundhog Day’.”). Set will grow.
- new Storybook tool at /storybook · read Aesop’s “The Tortoise and the Hare” and “The Lion and the Mouse” in any of the 25 PlayMemorize languages, then print on paper or save as PDF for the bookshelf. The reader picks a letter case (Normal or ALL CAPS, shown only where the script has cases) and a font from a 10-face picker · every option previews in its own typeface, with accessibility-focused choices like OpenDyslexic, Atkinson Hyperlegible, Lexend, and Andika, plus Comic Neue, Patrick Hand, Caveat, IBM Plex Mono, Fraunces and the default Manrope. Plays offline as part of the PWA.
Fixed
- fix Recent games (proverbs, butwhy, whichphilosophy, every educational-suite game, the classic-toy batch and the cloze-fact pair) no longer crash on Start. The shared
GameModuleAppwrapper used to take the GameModule as a prop, which Astro’sclient:loadboundary silently JSON-serialised · stripping theMiniGame/generate/paramsFromDifficultyfunctions. Pressing Start mounted<MiniGame />with a null type and React threw "Element type is invalid". The wrapper now loads the module itself vialoadModule(gameId)so the function references never have to cross the boundary, and all 24 affected games are playable again. - fix Sign-in popup is easier to see and the Cancel button no longer points off-screen. The modal gained a hairline border and a soft shadow so it can’t blend into the page behind it, and the rogue
→arrow that the ghost-button CSS appended to every Cancel button across the site is gone. - fix Footer language picker is clickable on every page. The dropdown script only loaded on pages that used the old SiteNav, so on content pages and game pages the “Language” button in the footer did nothing. The script is now bundled with the footer and runs once site-wide.
- fix Color mini-game grows one tile per win like Simon. The labyrinth and Polymath versions used to draw a brand-new random sequence every round; they now extend the previous sequence with one new colour, matching the standalone game. The countdown digit also sits on a contrasting ink-bordered disc so it can’t disappear into the board background.
- fix Nuance mini-game no longer flashes the answer between rounds. The 60 ms colour transition on the glyph could leak the previous round’s peak-contrast reveal for a single frame as the next round mounted. The transition is now suppressed while the round is in the asking phase.
- fix Geo mini-game shows where the answer was when you miss. A wrong tap used to instantly swap the country, which felt like the game changed under the player. It now flashes the wrong cell red, highlights the correct one with the feature name, and pauses for a beat before handing control back to the host.
- fix Country game no longer hands you the answer. Several country facts named the country adjective in the currency (“Turkish lira”, “Swiss franc”, “Egyptian pound”). Those are rewritten so the fact still tells you the currency without giving the country away.
- fix Find the difference starts small and grows. The mini-game began at a 4×4 wall (16 cells); it now starts at 3×3 and adds a row+column every two wins, matching the “one step harder per success” cadence the rest of the catalogue uses.
- fix Streak hosts never serve the same question twice in a row. Both
ModuleStreakGameandMiniGameStreakAppnow compare the next round’s prompt key against the last three rounds and re-derive the seed up to six times if it matches.
Improved
- improve Library header dropdown shows the current game name. The “Library” link in the top bar is now a dropdown of every game grouped by category, and on a game page the trigger label flips from “Library” to that game’s name so you always know where you are without scrolling.
- improve Quiz warm-up uses an OTP-style number. The five-digit memorise step is now six digits rendered as
BOX BOX BOX – BOX BOX BOX, matching the sign-in code shape, and waits for a Next tap before switching to the input view instead of auto-advancing on a timer.
Removed
- fix Retired the /paths pages. The course-style learning paths had fabricated instructor names and enrolment counts and didn’t reflect the catalogue.
/pathsand/paths/<slug>now 301-redirect to the matching library group (so links like /paths/memory open the library at the Memory section).
May 12, 2026
New
- new Scratch Card at /scratchcard · scratch off a grid of foil cells one tap at a time and try to uncover enough of the prize symbol before you reveal too many blanks. A quick game of nerve and luck; the layout is fixed by the round seed. Plays offline as part of the PWA.
- new Ice Cream · a customer's cone of scoops flashes on screen, then hides; tap the flavours to rebuild it in the same order, bottom scoop first. A quick visual-memory game · the cone is fixed by the round seed. Plays offline.
- new Cups at /cups · the classic shell game. Watch which cup hides the ball, follow it through a quick shuffle of swaps, then tap the right one. Harder rounds add more cups and more swaps; the whole shuffle is fixed by the round seed. Plays offline.
- new Circle Puzzle at /circlepuzzle · tap concentric rings to rotate them and line up every marker with the guide before your move budget runs out. Harder rounds add more rings, finer notches, and fewer taps. Plays offline.
- new Whack-a-Mole at /whackamole · moles pop up around the grid on a fixed seeded schedule; tap them before they duck back down and hit the target before the timer ends. Harder rounds get faster and bigger. Plays offline.
- new Catch the Cat at /catchthecat · block cells on a hex board to wall the cat in before it slips off the edge. A pure logic puzzle · the cat always takes the shortest path to the boundary, so every round is deterministic. Harder rounds use a bigger board and fewer head-start walls. Plays offline.
- new Minnesluckan at /usefulfact · a fill-in-the-blank quiz over a pack of practical facts (boiling points, distances, dates, body trivia). One word is blanked; pick the option that completes it. Difficulty sets the number of choices, level widens the fact pool. The pack is translated into all 25 languages; worksheet-supported.
- new Lucktexten at /funfact · the playful sibling of Minnesluckan · same fill-in-the-blank shape, but the facts are the quirky kind (cube-pooping wombats, three-hearted octopuses, the weight of a cloud). Separate pool from Minnesluckan; translated into all 25 languages; worksheet-supported.
- new Faktageneratorn tool at /faktageneratorn · tap for a random practical fact in your language, roll another, or copy the one you like. No scoring · just the fact-pack on a spinner. Works offline.
- new Fakta-snurran tool · the fun-fact counterpart of Faktageneratorn · spins through the surprising-trivia slice of the same pack, one fact at a time. Works offline.
Fixed
- fix "I disagree · skip ahead" button is now translated everywhere. The skip-ahead button, its tooltip, and the thank-you confirmation were shipping as English placeholder text in all 24 non-English locales. They are now translated into every PlayMemorize language.
Improved
- improve Trig Drills and the Rubik’s notation quiz now show the answer before moving on. Both games jumped to the next round the instant you tapped a choice. They now pause on a ✓/✗ panel with what the answer was ·
tan(45°) = 1, orR′spelled out as “right face · counter-clockwise” · and wait for a Continue tap, matching the post-answer reveal the rest of the catalogue already has. - improve More of the home page now shows in your language. The “Finance” and “Tools” section headings on the home tile grid, and the banner’s “60+ games · 50+ countries · 25 languages” stats line, were still rendering in English on every locale. All three now carry translations for the full 25-language set.
- improve Heavy Friction moved to /heavy-friction. The tactile idle game previously lived at
/paperclip· that address now redirects to the new one, and any in-progress factory state carries over automatically on first load. Bookmarks and home-screen shortcuts keep working.
May 11, 2026
New
- new Crocodile Dentist at /crocodile. Tap a tooth to check it · most are safe, one or more are traps. Hit a trap and the croc snaps shut. Difficulty scales the trap count (one trap at easy, four at hard) and the mouth grows wider with the streak. First of a small classic-toy batch.
- new Proverbs at /proverbs. A classic saying appears in your language with one word missing · pick the word that completes it (“Don’t cry over spilled ___”, “Better late than ___”). Each locale plays its own sayings; the wrong options are real words from the other sayings so the choice isn’t trivial. Starts with a small pool, meant to grow.
- new Bubble Wrap at /bubblewrap. A digital sheet of bubble wrap with a clock · tap every un-popped bubble before time runs out. Some start flattened; harder rounds leave fewer pre-popped, give a tighter budget, and grow the sheet. Made for touch.
- new Dice Roller at /dice. Roll 1 to 100 six-sided dice at once · big visual grid, running total and average, instant re-roll. Works offline. Handy for board games, tabletop RPGs, and probability experiments.
- new Print / Save as PDF on every blog article. A button at the end of every article opens the browser print dialog with a stylesheet that drops the navigation, footer, install banner, action buttons, and the “more on this game” cross-links. Background tints on the styled boxes flatten to thin outlines so the article reads cleanly on paper or in a PDF reader.
- new View as Markdown source on every blog article. A link beside the print button dumps the raw Markdown of the article so it can be copied into notes or another editor.
Fixed
- fix Finance games now make sense. Candlestick Patterns, Options Greeks, and Stock Valuation were showing prompts whose “correct” answer didn’t follow from what was on screen · a random price bar paired with a random pattern name, a fixed scenario paired with a random Greek, an always-“fairly valued” verdict regardless of the numbers. Each round is now built answer-first: Candlestick draws an OHLC bar that genuinely forms the pattern, Options Greeks pairs a concrete scenario with the Greek it actually describes, and Stock Valuation derives the verdict from the metric versus its benchmark.
- fix Wordle now only accepts real words. A guess used to be graded as long as it had the right number of letters · you could type
ZZZZZand burn an attempt on it. Guesses are now checked against the word list for the difficulty; an unknown word shakes the row and shows “Not in the word list” instead of using up a turn.
Improved
- improve A game error no longer takes over the page. If a game throws an error mid-round it now shows a compact “try again” card in place · the header, footer, and the rest of the page stay usable. In Polymath, a flaky sub-game skips that round instead of ending the run. A new automated check also presses Start on every game on each release, so a crash-after-Start regression is caught before it ships.
- improve Plainer product copy. Removed lingering absolute claims (“forever”, “ever”, “always”) from the pricing and schools pages and from every game’s “Is it free?” answer, and toned down the homepage badge.
May 9, 2026
Fixed
- fix Every mini-game now gets harder by exactly one step per win. All 35 games in the mini-game pool (Memory, Sequences, Stroop, Color, Pi, Ghost, Analogies, Define, Polyglot, Matrix, Spatial, Tones, Backwards, and more) used to require 2–10 consecutive wins before difficulty increased at all. Each game now adds exactly one unit after every win: one more digit of pi, one more card pair, one more colour in the Simon sequence, one more term in the sequence, one more round of Stroop, and so on up to the game’s cap.
- fix Footer missing from home page. The site footer (Changelog, Privacy, Terms, contact) was absent from the home page. It is now shown.
- fix Category cards no longer jump during mobile scroll. The hover-lift effect on the Numbers / Memory / Knowledge / Reasoning / Polymath path cards was triggering on touch devices mid-scroll, causing a distracting pop. The lift is now gated to pointer devices only (
@media (hover: hover)).
New
- new Library page at /library. Browse all 60+ games grouped by category with inline SVG illustrations and tinted cards.
- new Paths pages at /paths. Four learning paths (Numbers, Memory, Knowledge, Reasoning) with recommended game sequences.
- new Quiz flow at /quiz. 60-second quiz that matches you to the right games based on your learning goals.
- new Schools page at /schools. Information for educators using PlayMemorize in classrooms.
- new Pricing page at /pricing.
Improved
- improve Full site redesigned with Edtech v2 design system. New palette (flame/emerald-ink on warm cream), new fonts (Manrope body, Fraunces display, IBM Plex Mono), and 33 hand-authored SVG game decorations. Homepage gets an animated Pi orbit hero, category path tiles that jump to the right library section, and a 2-column responsive game grid.
- improve Navigation redesigned. New top bar with Library, Paths, Quiz, Pricing, and Login links. Responsive mobile menu. Footer restructured with cleaner column layout.
- improve Homepage redesigned. A category path strip (Numbers, Memory, Knowledge, Reasoning) sits between the hero and the game grid so you can jump straight to a category without scrolling.
- improve Neutral product language. Removed “forever free”, “no ads”, and similar absolute commitments from game descriptions and FAQ answers across the site.
- improve Privacy and Terms updated to reflect optional account creation, email storage, session cookies, and the Resend email delivery provider.
May 8, 2026
Fixed
- fix Every mini-game now gets harder by exactly one step per win. All 35 games in the mini-game pool (Memory, Sequences, Stroop, Color, Pi, Ghost, Analogies, Define, Polyglot, Matrix, Spatial, Tones, Backwards, and more) used to require 2–10 consecutive wins before difficulty increased at all. Each game now adds exactly one unit after every win: one more digit of pi, one more card pair, one more colour in the Simon sequence, one more term in the sequence, one more round of Stroop, and so on up to the game’s cap.
- fix Footer missing from home page. The site footer (Changelog, Privacy, Terms, contact) was absent from the home page. It is now shown.
- fix Category cards no longer jump during mobile scroll. The hover-lift effect on the Numbers / Memory / Knowledge / Reasoning / Polymath path cards was triggering on touch devices mid-scroll, causing a distracting pop. The lift is now gated to pointer devices only (
@media (hover: hover)).
New
- new OTP sign-in. Passwordless login now uses a 6-digit code emailed to you instead of a magic link. Enter the code directly in the sign-in modal · no redirects, no tab-switching. Code expires in 5 minutes; 5 wrong guesses invalidate it.
Improved
- improve Wordle word list expanded from ~280 to 700+ entries; removed invalid words (EAGL, JESTY, ZOMBI); removed share button.
- improve Crossword now has 4 puzzles per difficulty tier instead of 1, so the same puzzle no longer repeats on every session.
- improve Finance group on the home page. Candlestick Patterns, Options Greeks, and Stock Valuation are now grouped under Finance instead of Numbers for clearer navigation.
Fixed
- fix Red Day Match date labels no longer contain emdashes; replaced with hyphens throughout.
May 7, 2026
New
- new Wordle at /wordle. Iterative-deduction word game with green/yellow/grey tile feedback. Easy 4-letter, medium 5-letter, hard 6+ letter modes; 5-7 attempts depending on difficulty.
- new Word Square at /wordsquare. Anagram-pool puzzle · form words using only the letters in the grid. Every grid contains a pangram that uses every letter. 3x3, 4x4, and 5x5 sizes.
- new Crossword at /crossword. Small intersecting-word grids with Across and Down clues. Easy direct definitions, medium synonyms, hard cryptic-flavoured clues.
- new Hash at /hash. The logic-black-box game · probe inputs, watch outputs, deduce the hidden function. Linear shifts on Easy, character-type rules on Medium, positional math on Hard.
- new Fast Typing at /typing. Real-time WPM and accuracy with a 200+ poem-excerpt library. Single words, full sentences, or whole stanzas. Mobile and desktop both supported.
- new Guess the Country at /country. Three escalating facts narrow it down · geography, economy, landmark. Score higher the earlier you commit.
- new Red Day Match at /redday. Match public holidays to their date, religion, or country. Filter by Christian, Muslim, Jewish, Hindu, Buddhist, or Secular.
- new Conversion Tools section at /tools. Eleven mobile-first conversion utilities: Roman numerals, base converter, scientific notation, fractions, time zones (DST-aware), date calculator, distance between cities, coordinate converter, lat/long finder, temperature, cooking measurements.
- new Three Red Day articles. History of Red Days, Lunar vs Solar holidays, Global Work Cultures: Bank Holidays across 50 Countries.
- new Audiences · 100 role-based landing pages at
/roles/. Surgeons, pilots, toddlers, retirees, polyglots, detectives, and 94 more. Each page recommends 2–3 PlayMemorize games for that audience, explains why those games match the cognitive demands of the role, and embeds every recommended game inline so visitors can play them immediately. Localised in 25 languages with English fallback for the per-role descriptions while the translation pipeline catches up.
Improved
- improve History-game facts now ship in all 25 PlayMemorize languages. The two-to-four-sentence factual descriptions for every event in He Did What?!, Who Did, When Did, and Order by When are translated across all 25 locales · 115 events × 25 languages = 2,875 hand-crafted descriptions covering every Code of Hammurabi, Photo 51, and James Webb launch in Bengali, Czech, Greek, Hebrew, Hindi, and the rest of the catalog.
May 6, 2026
New
- new Mosaic Maker + Emoji Typewriter (creator tools). A Tools group on the home page collects browser-only utilities. Mosaic Maker drops the OKLab quantizer behind the Mosaic game in your hands · drag in any image and it comes back as a 100 000-cell hex mosaic painted from the same 45-chip palette the catalogue paintings use. Emoji Typewriter turns any letter, word, or sentence into a mosaic of random emojis spelling the text. Both run entirely in the browser · nothing leaves the device.
- new Name Rarity at /name-rarity. Type your first name to see its rank in the US top 1000 (boys + girls), with a "1 in N" denominator and a rarity bucket; then play a streak game guessing which of two names is rarer.
Improved
- improve History games now expand each event into a few-sentence fact. He Did What?!, Who Did, When Did, and Order by When now follow the "Correct answer:" line with two to four sentences explaining the deed, the people involved, and why it mattered. The historical-events dataset gained per-event factual descriptions covering all 115 events; the four games render them directly in their reveal panel so players who come for the facts actually leave with one.
May 5, 2026
New
- new Wondrous Shannon at /wondrous-shannon. Pick one of sixty famous public-domain melodies (Twinkle Twinkle, Ode to Joy, Greensleeves, Auld Lang Syne, Bach’s Prelude in C, Pachelbel’s Canon, Satie’s Gnossienne, Chopin’s Prélude in A, …) and learn to play it back on a seven-key piano, three notes at a time. Each successful round grows the segment by one note until the whole melody is in your fingers. Sister game to Tone Knowledge · the song picker replaces random sequences, and the white-key constraint replaces the chromatic table.
- new Worksheet generator at
/worksheets. Build a printable practice sheet from any combination of supported games. Pick games, tune per-game difficulty + parameters, choose 10–1000 problems, decide between grouped-by-topic or random order, and either Print/Save-as-PDF or Download HTML. Every sheet ships with numbered questions, lettered (A/B/C/D) choices, and an answer key on the last page. - new "Generate worksheet" button on every supported game. Math, Sequences, Define, Riddles, Analogies, Convert, Polyglot, Facts, Backwards, Odd One Out, Ghost, Geography, and Comparisons each carry a button that deep-links into the master generator pre-filtered to that game. Open it, set difficulty and problem count, hit print.
- new Tools group on the home page. A new section below the game catalog lists non-game utilities. The worksheet generator is the first one; the same group appears at the bottom of the game-switcher dropdown.
April 30, 2026
Improved
- improve Silhouette shows the full outline after you answer. Hard and Medium rounds clip the silhouette during the question (one half or one quadrant hidden). Once you pick an answer the full unclipped shape appears in the result panel so you can see what you were looking at before clicking Continue.
- improve Continue button is the same everywhere. Every game that ends a round with a Continue button (Who Did, When Did, He Did What, Silhouette, Order by When, Order by Size, Sort Em Up) now uses the same coral primary button, replacing the inline green / red styles that varied between games.
- improve Where's MemPi 16-piece grid no longer stacks cells. A CSS containment conflict between
container-type: inline-sizeon cells andaspect-ratio: 1caused the grid to collapse in some browsers at low counts. Removed the per-cell container context; the badge overlay now scales from the wall container instead. - improve Changelog, About, blog posts and other content pages no longer show the Pi game-switcher dropdown. The shared header on content pages was inheriting the Pi game context from the layout default. Content pages now render the clean wordmark-only header, matching the home page.
- improve Difficulty selectors read Easy / Medium / Hard. Order by When, Order by Size, Sort em Up, Who Did, When Did, He Did What, and Silhouette previously offered the difficulty knob as numeric tiers (3, 5, 7, 9). Each game now shows the same three named tiers as the rest of the catalogue, mapped to the underlying difficulty values 3, 6, and 9.
- improve Silhouette gets harder at higher tiers. Easy still shows the full silhouette. Medium randomly slices off one quadrant (a quarter of the outline). Hard slices off one half. The clip is part of the deterministic round seed so a shared link or replay shows the same partial silhouette every time.
- improve Where's MemPi greets you before the run. The idle panel now opens with MemPi waving and saying hello in your language, so the player knows what they are looking for before the wall of decoys appears. The "Find MemPi · tap his cell" line that used to sit above the wall is gone · the wall is the prompt.
- improve Where's MemPi wall spacing is consistent at every count. The wall now uses container-relative gaps (cqi units) so the visual breathing room between cells stays the same whether you pick 16, 36, 64, 100, 144, or 256. Previously the absolute 4-pixel gap looked tight at low counts and sparse at high counts.
- improve Polymath runs end with a panel, not a blink. Polymath, Math Polymath, Knowledge Polymath, Memory Polymath, and Reasoning Polymath now show a Lost panel after a wrong answer · MemPi reacts (happy on a personal best, sleepy otherwise), the final streak and best-streak are surfaced, and a Play Again button restarts the run. Previously the run flipped straight back to idle, which felt abrupt. The standalone-game lost panel now also includes MemPi for parity.
Fixed
- fix He Did What no longer leaks the answer. Events whose translated label mentions the actor's own name (or any other actor's name) are filtered out of both the truth pool and the decoy pool. So a prompt like "Andreas Vesalius · 1543" no longer surfaces "Vesalius publishes modern anatomy text" as a choice; the player has to know the deed, not pattern-match the surname.
April 29, 2026
Improved
- improve Silhouette · Normal and Hard finally feel different. Same-category distractors now kick in at difficulty 4 (was 6), so a Normal round puts a deer next to a horse, donkey, and llama instead of a deer next to pizza and Mount Fuji. Hard tier adds a famous-landmark pool (Eiffel Tower, Big Ben, Sydney Opera House, Pyramids of Giza, Leaning Tower of Pisa, Stonehenge, Taj Mahal, Empire State Building, Christ the Redeemer, Great Sphinx) rendered as inline SVG · the silhouettes mix into the choice grid at difficulty 7 and become the only options at difficulty 9. All ten landmarks ship translated into every PlayMemorize language.
New
- new Heavy Friction · a tactile idle game on PlayMemorize. A stack of industrial sliders, each with a constant snap-back force fighting your drag. Push a handle from 0% to 100% to produce one Resource. Resources accumulate in a Warehouse and the Auto-Seller drains them slowly into Money you reinvest in less Friction (Speed upgrades), Auto-Slide (the handle moves on its own), Auto-Seller (faster sales), and New Sliders (a fully independent rack of bars). Production is fast and manual; revenue is slow and automated · the bottleneck is the whole game. Plays offline as part of the PWA.
- new Idle · a new game category. The home page and the game-switcher dropdown now show a sixth group, Idle, alongside Memory, Knowledge, Numbers, Reasoning, and Polymath. Idle games are deliberately exempt from the labyrinth and Polymath roulette · their pacing doesn't fit the 30-second mini-game shape · so they live as standalone pages and the player chooses how long to stay.
- new "I disagree · skip ahead" button on every round. A small ghost button now sits next to the answer choices on every shell-driven game. Click it once and the round resolves as if you had answered correctly · for the rest of the day, the button is gone for that device. We use the report to recreate that exact question and fix it. Wired through every game that uses the shared MiniGame shell · adding a new game gets the affordance for free.
April 28, 2026
Fixed
- fix Flag a Mine verdict badge no longer reads as "exit Game Mode". The small red ✗ circle that used to overlay the prompt's top-right corner after a wrong answer was visually too close to the floating Exit-Game-Mode affordance · removed in favour of the existing tinted prompt panel + mascot reveal card. The hint copy across all 25 locales no longer references long-press, since flagging on touch goes through the dedicated flag-mode toggle, not a press-and-hold gesture.
Improved
- improve New homepage banner copy. The hero now reads "Level Up Your Mind" with "Free brain games for mental workouts" as the supporting line · sharper framing of what PlayMemorize is, translated into all 25 locales.
New
- new Sort em up · rank items by an unusual property. Three categories of ordering trivia in one game · animals by brain-cell neuron count (roundworm 302 → African elephant 257 billion), athletes by documented body weight (Simone Biles, Lionel Messi, Mike Tyson, LeBron James, Shaquille O'Neal, Yokozuna), and city pairs by great-circle distance (London ↔ Paris 344 km, New York ↔ Tokyo 10,870 km, Buenos Aires ↔ Tokyo 18,370 km). Pick a single category or leave it on Mixed and let the game roll a fresh one each round. Easy mode spreads picks across the full range; Hard mode bunches them so the absolute numbers actually matter. Reuses the shared OrderingMini chrome that Order by Size and Order by When already sit on. Translated into all 25 PlayMemorize languages and registered with the labyrinth so it appears in the polymath gauntlet.
- new Where's MemPi · a hidden-object streak game. Find the MemPi mascot hiding in a wall of coral, red, and pink decoy emojis · one tap to spot him, one wrong tap ends the run. Difficulty narrows the decoy pool from rainbow (MemPi pops by colour) through a coral / red / pink mix down to coral-only at hard, where every cell on the wall is in MemPi's exact shade and only shape gives him away. Wall sizes scale from 16 to 144 cells and ramp higher inside the labyrinth. Translated into all 25 locales.
- new Silhouette · name the black outline. A new outline-recognition streak game · 100 famous animals, foods, vehicles, places, and objects rendered as black-out Twemoji silhouettes. At low difficulty distractors come from any category and the silhouette alone gives the answer away; at higher difficulty distractors are pulled from the SAME category so a horse silhouette sits next to deer, llama, and donkey and the player has to discriminate fine outline differences. Subject names reuse the existing 25-locale emoji-name corpus, so the game ships fully translated on day one. Same deterministic-seed contract as the rest of the catalogue · the labyrinth, the standalone page, and "share this round" links all render byte-identical rounds.
- new He Did What?! · history deed quiz. The inverse of Who Did · the person and year are given, the deeds are the choices. Pick which one was actually theirs. Decoys come from other actors, with same-era preference at higher difficulty so a Newton round might sit next to Halley, Hooke, and Leibniz. Reuses the same hand-curated history dataset as When Did, Who Did, and Order by When. Translated into all 25 PlayMemorize languages, works offline.
- new Polymath roundup articles translated to 23 languages. The 20 tag-roundup blog posts (
/blog/all-{tag}-games-on-playmemorize) now ship in Arabic, Bengali, Czech, Dutch, French, German, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Romanian, Russian, Simplified Chinese, Spanish, Swedish, Thai, Turkish, and Ukrainian. Hungarian ships Attention and Auditory roundups for now; the remaining 18 are pending translation. Each translated article keeps the inline mini-game embeds for every game its tag covers, so readers can practise the exact game the surrounding paragraph just explained without leaving the article. - new Mosaic catalogue + resolution + palette expansion. The painting catalogue jumps from 10 to 30 canonical works spanning four centuries · the original ten figurative classics, eight further URL-fetched works (Composition VII, Guernica, La Muse, Portrait of Dora Maar, Hand with Reflecting Sphere, Rain Princess, Feathers, a Roman mosaic), and twelve hard-edge / colour-field icons that ship as inline SVG strings rasterised through sharp at build time so they never need a network fetch (Mondrian, Malevich, Rothko, Albers, Newman, Reinhardt, Kusama, Johns). Per-painting cell budget bumps from 5 000 to ~100 000 · twenty times the resolution, so silhouettes and brushwork survive quantisation rather than dissolving into a coarse grid. The palette grows from 9 Unicode colour-square emojis to 45 emoji-derived hex chips (moon-cream, stone-grey, terracotta, peach, night-blue, fir-green, …) so muted oil-paint mid-tones land on a faithful sibling instead of collapsing to black; the build verifies every chip is actually picked by at least one cell. Reveal order switches from top-down scanline to a deterministic random Fisher-Yates permutation, so the painting emerges from a sparse signal rather than line by line. Translated into all 25 PlayMemorize languages.
Improved
- improve Site-wide colour pass to the Pop palette. Every legacy semantic token (
--color-primary,--color-bg,--color-text, the spacing / radius / shadow scales, etc.) now resolves to a Pop token fromsrc/styles/tokens.css· cream#fff4e3backgrounds, inkvar(--ink)text, coralvar(--flame)primary CTAs, sun-yellow accents. The PWAtheme_colorand<meta name="theme-color">in the OS-level browser chrome match the new cream surface so the home screen icon and Safari address bar tint pick up the brand instead of the legacy off-white. The PlayMemorize wordmark on the home page now reads coral instead of the legacy blue, the streak chip and the install banner re-tinted to coral / cream, and the "Train your memory with free games" duplicate strap above the home banner was retired · the banner's own H1 already carries the marketing line. - improve Visual answer surfaces are now reachable by keyboard and screen reader across the catalog. Geography map cells are focusable buttons with feature names; Chess Mate squares carry algebraic notation + piece + state; Sudoku Force cells expose row, column, value, and target; Spatial, Matrix, and Odd One Out options have structural descriptions instead of empty
aria-labels; Spot the Difference cells announce row, column, and found state. Sighted play is unchanged; everyone else can finally play. - improve Wrong-answer feedback now reads aloud across every text-based game. Math shows the full equation with the answer; Backwards reveals the original word and its reverse; Stroop prints the expected color; Color prints the expected sequence; Mastermind Deduce spells out the unique code in color names instead of color circles only. Screen-reader users no longer have to infer the right answer from a green-highlighted button.
- improve Labyrinth announces every move outcome to assistive tech. A polite live region narrates direction (north / south / east / west), wall blocks, item pickups, encounter triggers, and level transitions so screen-reader users get the same feedback the visual board has always given sighted players.
- improve Polymath modes announce the rolled sub-game before input. The "Now playing: Math" label is now an assertive live region so screen readers say which game just rolled before the player is asked to answer.
- improve Polyglot now reveals the correct word + emoji pairing after a wrong answer and announces round status through a polite aria-live region so progress is audible, not just visual.
- improve Ghost now shows a numeric countdown during the memorise phase. The bar that already shrinks during memorisation now sits next to a "3s" / "2s" / "1s" chip, and the count is announced through a polite live region · no more silent dead air on slow speeds.
- improve Define prompt and choices now read clearly. Category-style rounds say "Pick the category that fits this word" instead of the generic prompt, and answer labels are formatted as "Category: Food & drink" instead of the all-caps "KIND Food & drink". Wrong answers now name the correct option in text.
- improve Mosaic reveals include a one-sentence description of every painting, and the scanline phase announces "Row N / M" via a polite live region so a screen-reader player knows the picture is still painting.
- improve Memory cards now have unique accessible names. Each card announces "Card row 1 column 2: Flag Kyrgyzstan" once revealed, instead of every hidden card sharing the generic "Hidden card" label.
- improve Comparisons shows the slot-machine spin progress in text ("Spinning slot 3 / 4") through a polite live region, so the multi-second spin animation isn't a silent dead zone.
- improve Spot the Difference now draws a divider between the reference wall and the spot-the-difference wall. Larger boards (300+ emojis) used to bleed into one continuous grid; the new horizontal rule with a magnifying-glass marker makes the boundary obvious so it's clear where one wall ends and the other begins.
- improve The PWA install banner now yields while a round is in progress. It used to pop in over the answer surface mid-round; it now hides while you're mid-game and re-appears once the round ends.
Fixed
- fix Flag a Mine in-game text trimmed. The board used to carry three lines of instructional text under it during play (a "tap to reveal · toggle flag mode" rules row, a redundant prompt, and the flag-mode hint). The rules row and the playing-state prompt are gone · the flag toggle button and the landing page's About / FAQ already explain how to play. Win and lose messages still appear after the round, and the flag-mode hint still shows during play.
- fix Comparisons singular/plural grammar. Explanations like "One nails is about 3 g" now read "One of these nails weighs about 3 g". Six explanation templates were rewritten to work with plural entity labels across every category.
- fix Who Did reveal copy. Wrong-answer text now reads "The correct answer is …" instead of "The correct actor is …", which was misleading for scientists, leaders, explorers, and other non-actor historical figures.
- fix Geography United States duplicate removed. Two separate "United States" / "USA" country entries pointed at the same map; they are now a single entry. Indonesian blog articles that linked to the dropped slug have been re-routed.
- fix Labyrinth quest-giver no longer shows "Help! Help!" twice in a row. The speech bubble now hides while the quest-giver modal is open, so the same line doesn't appear simultaneously on the board and in the modal.
New
- new Ten observational-cosmology firsts added to the history dataset.
historical-events-data.tspicks up Henrietta Leavitt's Cepheid period-luminosity relation (1912), Cecilia Payne-Gaposchkin's stars-are-hydrogen thesis (1925), Karl Jansky's discovery of cosmic radio waves (1932), the Penzias and Wilson cosmic-microwave-background detection (1965), Vera Rubin's galaxy rotation curves and dark matter (1978), the Hubble Space Telescope launch (1990, attributed to NASA), the first exoplanet around a sun-like star (Mayor and Queloz, 51 Pegasi b, 1995), the discovery of accelerating expansion / dark energy (Perlmutter, Riess, and Schmidt, 1998), the first direct gravitational-wave detection (the LIGO collaboration, 2015), and the first image of a black hole (the Event Horizon Telescope collaboration, M87*, 2019). Nine new actors join the table, two of them collaborations in the same shape as the existingcernentry. Together with the existing Hubble-1929 row, the modern-cosmology arc is now end-to-end from 1912 to 2019. When Did, Who Did, and Order by When all surface the new rows automatically. - new Cosmology's Century: Ten Discoveries from Cepheids to M87* · deep-dive article on the ten new history rows. Covers each discovery's date, named scientist (or collaboration), and the distractor traps players will hit (the 17-year Leavitt → Hubble causal chain, the 1965 collision between Leonov's spacewalk and the CMB detection in mixed-topic Order by When draws, why the EHT row is attributed to a collaboration rather than to Katie Bouman, and the rule that PlayMemorize stores the discovery year not the Nobel year).
April 27, 2026
Improved
- improve Mini-games ramp difficulty one step per win. Pi now starts at 3 digits and grows one digit per successful round (3 → 4 → 5 → …, capped at 100). Color, Memory, and every other module that exposed a level-scaled knob ramp the same way without each standalone page having to thread a difficulty function. Both the standalone streak host and the in-blog
InlineGameembeds derive params fromparamsFromDifficulty(d, streak), so a player practising in a roundup article gets the same step-by-step progression as on the dedicated game page. Tier-based games (Chess, Sudoku, Mastermind) keep their picker-driven preset. - improve Spot the Difference inline embeds shrink to ~4 rows total. Default emoji count is now 16 (4×4) instead of 36 (6×6) so the two stacked walls fit cleanly in a blog card without the cells collapsing into a single razor-thin strip. The labyrinth ramp now scales 16 → 100 (instead of 36 → 144), still progressively harder but readable at every level.
- improve Chess Mate prompt + hint clarify the click-to-move flow. The prompt now reads "White to move · find mate in one" and the hint says "Tap a white piece, then tap its destination square" so players who arrive on a chess InlineGame embed (no choice buttons; the board itself is the input) immediately know how to play.
New
- new MemPi · the PlayMemorize mascot. Pixel-art π glyph with two eyes and a half-smile. Ships with six poses (default, happy, wink, sleep, look-up, mono) and shows up on the home hero, the 404 page, the changelog, the blog empty state, the install banner (winking), the labyrinth corner, and after every mini-game round (happy when you got it right, look-up when you didn't). Also became the install icon on Android, iOS, and the home-screen shortcut tile (cream-tile maskable variant). One
<Mascot pose="…" />component drives every appearance · drop a new pose SVG into/public/images/mascot/and every placement picks it up. - new Mosaic · spot the famous painting as it paints itself row by row. Ten public-domain canvases (The Starry Night, The Great Wave, The Scream, The Shipwreck of the Minotaur, Composition VII, Picasso's Self-Portrait, Frida Kahlo's Self-Portrait, Woman with a Hat, Seated Nude, Udnie) downsampled to 50×100 and quantised to the Unicode 12 colour-square emoji palette (🟥 🟧 🟨 🟩 🟦 🟪 🟫 ⬛ ⬜). The mosaic reveals top-to-bottom on a single HTML5 Canvas via
ctx.fillText; pick the painting from a multi-choice list before the scanline finishes and you score (1 000 × rows-left / total). The artist, year, and art movement appear after every round, so the streak doubles as an art-history primer. No source images ship · the repo holds only 5 000 single-digit emoji indices per painting;scripts/build-mosaic-paintings.mjsregenerates the data from public neural-style-transfer reference URLs in a single command. Translated into all 25 locales.
Fixed
- fix Homepage banner no longer collapses on mobile. The Pop hero used a CSS container query (
@container (max-width: 640px)) to switch the banner from its 1456:360 leaderboard ratio toaspect-ratio:autoon small screens · but container queries only match descendants of the container, not the container itself. The rule never fired, so the strip stayed pinned at ~80 px tall on phones and the chip + H1 + tagline got crushed insideoverflow:hidden. The banner-self property change moved into a media query (descendant rules stay in the container query, where they work), and chip / streak-badge spacing tightened up at the same breakpoint. - fix Spot the Difference walls are always a perfect rectangle. The labyrinth count ramp produced primes like 41 / 46 / 51 / 61 / 71 between 36 and 144 · those have no good factorisation so the bottom row stuck out partial. Standalone presets 200 / 300 / 500 looked the same way because
colsForAspectroundedsqrt(n*aspect)to a non-divisor (200 → 14 cols → 14×14=196 + 4 left over). Two changes: the ramp now scales the wall dimension (6 → 12 over 24 levels) and squares it, so every level is a clean N×N.colsForAspectnow picks the divisor of n closest to the aspect-derived target, so 200 fills as 20×10 (or 10×20 in portrait), 300 as 20×15, and 500 as 25×20 · no row sticks out. - improve Spot the Difference is the English name; Finn fem fel stays the Swedish nickname. The catalog label, FAQ heading, page title, and roundup-article references now lead with Spot the Difference in English. The Swedish locale still renders Finn fem fel (via per-locale i18n strings and a Swedish-specific page title) and the FAQ keeps the etymology. URL slug renamed from
/finnfemfelto/spot-the-difference(sitemap, hreflang alternates, and PWA precache list all updated; internalgameIdstaysfinnfemfelso existing high scores and analytics events keep working).
New
- new Favorite games on the home page. Every game card on the landing page now carries a star button in its top-right corner. Tap the star to pin the game to a new "Favorites" strip that appears just below the banner · your most-loved games are one tap from the top of the page on every visit. Your favorites are saved on your device, stay in sync across tabs, and the card looks just like its catalog tile. Translated into all 25 locales.
- new MemPi the mascot debuts in a homepage hero banner. The site root now opens with a Pop-system hero strip · pixel-art π-shaped mascot whose eyes follow your cursor, animated mesh background, three sample game chips, and the value prop ("Free brain games. Daily streaks.") all translated into every supported locale. Built with system fonts, container queries, and
prefers-reduced-motionsupport, so the strip scales cleanly from a phone to the widest desktop and goes still for readers who ask it to. Banner only appears on/and/[lang]/· every other page keeps its existing header. - new Home page game cards now ship with bespoke per-game illustrations. Every card on the landing page has been redrawn as a "Pop tile" · square card with a CSS-only mini illustration on the top half (a simon-pad cluster for Color, a numpad strip for Math, a globe for Geography, a grid-with-a-gap for Ghost, a chronological strip for When Did, and so on across all 38 games) and the name + 1-line description below. Every illustration is pure CSS with no asset downloads, so the homepage stays under the existing performance budget while looking much richer at a glance. The full design package lives in
_handoff/as the handoff reference for the rest of the Pop migration. - new Spot the Difference · find every altered cell between two walls of Twemoji. (Known in Swedish as Finn fem fel.) The screen shows the same wall twice · top is the reference, bottom has been altered in K cells. Tap every changed cell on the bottom wall to clear the round. Pick 100 / 200 / 300 / 400 / 500 emojis and 1 / 5 / 10 / 20 differences from the start screen; the grid columns adjust to your screen aspect ratio so cells stay roughly square. Two trick types share one deterministic generator (
src/games/finnfemfel/generator.ts): visual replacement from a hand-curated cluster of look-alike emojis (smiley family, red fruits, coloured circles, numbered clocks, books) plus same-category fallback, and horizontal flip / 180° rotation gated to a curated list of emojis whose flipped form is plausibly different (animals, vehicles, tools · stars and hearts excluded because their flip is identical to the original). Reuses every emoji asset and helper the rest of the catalogue already ships ·emojiPool()from Ghost / Memory, the<Emoji>Twemoji wrapper,createRng,levelRamp, theIdlePanel/GameRoundIndicator/GameStopButtonshell, the unified game-analytics contract. Translated into all 25 locales. Also wired into the Labyrinth via the standardGameModulecontract ·paramsFromDifficulty(d, lvl)ramps wall size 36 → 144 and differences 1 → 12 across encounter levels. - new Twenty cross-game roundup articles. Every game now carries a set of cross-cutting tags (memory, spatial, deduction, attention, language, history, no-reading … 21 in total) on top of its existing landing-page group. Each tag has a dedicated long-form article that pulls its game roster from
getGamesByTag(tag)at build time, so adding a tag to a game automatically surfaces it in the roundup that should mention it. The first batch covers spatial, memory, numbers, reasoning, knowledge, language, history, pattern, deduction, attention, visual, auditory, verbal, estimation, ordering, sequence, classic-IQ-test, speed, no-reading, and trivia · twenty in-depth guides, each with every relevant game playable inline at the section that names it. Live at /blog/all-<tag>-games-on-playmemorize. - new /blog/topics · meta-index of every roundup article, grouped by category. Cognitive skills, subject knowledge, modality, and special formats. Each card shows the tag, the game count (live from
getGamesByTag(tag)), and a one-line description. The blog index now carries a "🗂️ Browse by topic" link near the top so readers can jump straight to the roundup grid.
Improved
- improve Polymath now lives at the bottom of the home page. The five game groups on the landing page (Memory · Knowledge · Numbers · Reasoning · Polymath) used to lead with Polymath because that's where the Labyrinth and the Polymath roulette live. New visitors landed on the cross-game gauntlet before they had played any individual game · backwards. The order in
GAME_GROUPSnow reads Memory → Knowledge → Numbers → Reasoning → Polymath, so the catalog opens with concrete one-skill games and the polymath gauntlet sits at the end as the natural graduation. The dropdown switchers and any other consumer ofgetGamesByGroup()follow the same order. - improve Inline game embeds in articles now hydrate on scroll, not on page load. All
<InlineGame>embeds across the 20 roundup articles switched fromclient:loadtoclient:visible. Articles like the reasoning roundup (which embeds 13 games) used to hydrate every React island on first paint; now each game module loads only when its section scrolls into view. Big LCP/TTI win on the longer roundups, no behaviour change for readers who scroll through. - improve Every blog article now surfaces related topic roundups in its CTA. The shared
BlogCTAfooter reads the article's primary game's tags and renders a "Topic roundups" section linking to up to three matching/blog/all-<tag>-games-on-playmemorizearticles. Memory-game articles point at the memory and visual roundups; geo articles point at spatial and knowledge. Cross-linking is automatic from the tag system · no per-article wiring. - improve Memory, Ghost, and Polyglot strategy guides now play the relevant mini-game inline. The three game-specific strategy articles (Master Emoji Memory Games, Master Your Visual Memory: Twemoji Ghost, Fast-Track Your Vocabulary: Twemoji Polyglot) used to read like a book · all prose, no practice. Each one now embeds three rounds of its own mini-game at progressively harder settings, so a reader can immediately try the technique the paragraph just explained without leaving the page. Embed structure is identical across all 25 locales; same source-of-truth game data and same in-language prompts as the standalone game pages, so translations come for free.
Improved
- improve Header and footer dropdowns now close on Escape and announce their open / closed state. The game-switcher and language-switcher menus close with Escape (focus returns to the button) and the buttons toggle
aria-expandedin sync with the panel so screen readers announce the state correctly. A focus ring is now visible on the dropdown buttons when tabbing through the page. - improve Geo pages render emoji faster. The Twemoji observer that swaps native emoji for cross-platform SVGs no longer reparses the whole page on every DOM change. It now parses only the subtree that actually mutated and coalesces bursts through
requestAnimationFrame, so a flurry of React re-renders inside the Geo mini-game doesn't trigger a full document reparse anymore. - improve Pi memorisation milestones and the crewed-spaceflight history article now embed their mini-game inline. The three Memorise the First N Digits of Pi articles (10, 50, 100) now render the Pi numpad trainer at the test-yourself step with
lengthmatching the article so readers can drill the exact digits they just learned. Pi-10's existing translations (id, nl, sv) all pick up the same embed in the same structural slot. The Six Crewed Spaceflight Firsts article embeds an Exploration-topic When Did round at the "drill these in PlayMemorize" section so the dataset additions the article describes are immediately testable. All embeds useclient:visibleso they hydrate only on scroll.
April 26, 2026
New
- new Six crewed-spaceflight firsts added to the history dataset.
historical-events-data.tspicks up Voskhod 2 spacewalk (1965, Alexei Leonov), Salyut 1 (1971, first crewed station, attributed to the Soviet Union), STS-1 Columbia (1981, John Young), STS-7 (1983, Sally Ride), Shenzhou 5 (2003, Yang Liwei), and Crew Dragon Demo-2 (2020, SpaceX). Five new actors (alexei-leonov,john-young,sally-ride,yang-liwei,spacex); two collective rows (salyut1-station,crew-dragon-demo2) hidden from Who Did viaexcludeFromWhodidso the four-way actor pool stays fair. Together with the existing Gagarin, Tereshkova, and Apollo 11 rows, the crewed-spaceflight arc is now end-to-end from 1961 to 2020. When Did, Who Did, and Order by When all surface the new rows automatically. - new Six Crewed Spaceflight Firsts: Voskhod 2 to Crew Dragon · deep-dive article on the six new history rows. Covers each mission's launch year, named astronaut, and the distractor traps players will hit (the symmetric April 12 anchor between Vostok 1 and STS-1, John Young as cross-era distractor for Apollo and Shuttle rows, the chronology of women in orbit from Tereshkova to Liu Yang, and why Salyut 1 plus Crew Dragon Demo-2 are excluded from Who Did).
Fixed
- fix Best-streak counter now refreshes when you switch a game's tier or surface. Tone Knowledge (Piano ↔ Notes), Chess Mate (easy / medium / hard), Sudoku Force, and Flag a Mine all swap the localStorage key under the hood when you change tier · but the displayed “Best” badge was frozen to whichever key was active at first mount. Switching to a new tier mid-session now reads the right high streak immediately, and personal-best events fire against the correct baseline.
- fix Flag a Mine: stale resolve timer no longer fires after Stop. The 120ms grace timer between the final tap and the win/lose reveal was untracked, so pressing Stop in that narrow window let the timer fire against the unmounted round and React would warn about state updates on an unmounted component. The timer is now cancelled on unmount and on the next round's mount.
- fix Tone Knowledge: Replay button now actually replays. Pressing “▶ Replay” mid-round used to play the audio sequence but skip the visual key-walk and leave the input cursor stranded wherever the player had got to · so the first note they tried after replaying was marked wrong because the game still expected note N, not note 1. Replay now resets the cursor to the start, walks the highlight along the surface (piano keys, fretboard, or staff) just like the first “Listen”, and cancels any in-flight timers from a prior press so mashing the button never queues stale highlights.
- fix Riddles
lg-doctor: removed a distractor that was also a valid answer. The classic surgeon riddle (“the surgeon says ‘he is my son’ · how?”) carried the distractor “The boy has two fathers,” which · with same-sex parents · is itself a perfectly logical resolution: the deceased was father #1 and the surgeon is father #2. A player picking it for the right reason was being marked wrong. Replaced with “The surgeon misread the chart” (clearly invalid · doesn’t explain “he is my son”) and shuffled in “The surgeon is his godfather” in place of the older “stepfather” entry. The intended answer (“The surgeon is the boy’s mother”) and explanation are unchanged. - fix History games: Hamlet event no longer mistimes Shakespeare’s writing year. The
shakespeare-hamletentry inhistorical-events-data.tswas labelled “Shakespeare writes Hamlet” with year 1603, but the play was written ~1599-1601 · 1603 is the date of the first quarto publication. The label is now “Shakespeare’s Hamlet first published,” which matches the year and reads correctly in Order by When, When Did, and Who Did. Actor (shakespeare) and year (1603) unchanged.
April 25, 2026
Improved
- improve Every game explains itself, then waits for you. Each game shows how to play before you press Start; after you answer, it shows what you picked, what the right answer was, and a one-line reason; and the next round only begins when you press Continue, so a reveal never flashes past. Consistent across every game, in all 25 languages.
New
- new “Select what to study” menu on every polymath game and the Labyrinth. Every Polymath variant (Polymath, Math, Knowledge, Memory, Reasoning) and the Labyrinth now share an identical collapsible “Game filter” widget so the player can pick which games are in the rotation before they start. Polymath ships with all of its mode-relevant games on by default; Math shows only math games; Labyrinth shows every game currently in its encounter pool. Selection persists in localStorage per game.
Fixed
- fix Geo article maps now show the city named in the heading. The Memorise Sweden's Top 10 Cities article placed each map one city behind: the section Where is Gothenburg? showed only Stockholm, the section Where is Malmö? showed Stockholm + Gothenburg, and so on. Every section now reveals the city its heading asks about, with an arrow connecting from the previous one so the route through Sweden builds up visually as the reader scrolls.
- fix Mnemonic phrase no longer overflows on mobile. The Sweden article's "Seven Good Men Usually Laugh, Very Often Having New Jokes" mnemonic rendered as one continuous run of letters with no spaces between the words on iOS Safari, spilling off the right edge of the viewport. Every word is now a separate visible token in every locale.
- fix "Open game" from a blog article now opens the game with the article's context. Tapping Open game → from the Sweden article used to drop the player on a generic Geography page; it now opens Geography pre-tuned to Sweden's cities. The dead "↻ New round" button in the inline preview is gone · the inline embed is a study illustration, not a game loop.
- fix Great Pyramid of Giza no longer credited to Qin Shi Huang.
historical-events-data.tsattributed thepyramids-gizaevent (year −2560) toqin-shi-huang, who lived ~2,300 years later and built the Great Wall (a separate event already correctly attributed to him). The pyramid event is hidden from Who Did viaexcludeFromWhodidso the wrong actor never surfaced as a question, but it polluted any join over the actor table. Added a newkhufuactor (“Pharaoh Khufu”) and reattributed the event correctly. - fix Labyrinth scaling for Facts, Geography, and Crazy Comparisons. Three modules’
paramsFromDifficultystill had the legacy single-arg signature and ignored the labyrinth’slevel, so deep gauntlet runs of those three games played exactly like level 5. Facts now rampsnumAnswerswithlevelRamp(3 → 6 across the climb). Geography now rampstopNfrom 5 → 10 so deeper runs cover more obscure cities/rivers/mountains. Crazy Comparisons accepts thelevelarg for API conformance (its only knob iscategory, which difficulty already widens). - fix Riddles
wp-silent: distractor letter counts now match the question. The riddle asks for a 9-letter word containing all five vowels in order (answer: Facetious), but two of its five distractors · Sequential and Courageous · were 10 letters long, letting savvy players eliminate them by length alone instead of by vowel order. Replaced with Ambitious (9 letters, vowels A·I·I·O·U · tantalisingly close to the rule but missing E) and Authority (9 letters, vowels A·U·O·I · same shape as the trap pattern). All five distractors are now 9-letter English words, restoring the puzzle's intended difficulty. - fix Screen-reader strings on Chess Mate, Flag a Mine, and Tone Knowledge are now translated. Eleven hardcoded English aria-labels were leaking out to non-English screen readers: chess piece descriptions (“white queen”, “black knight”, “legal move”), Flag-a-Mine cell states (“revealed N”, “flag”, “hidden X,Y”), and the three tone-surface containers (“Piano keyboard”, “Guitar fretboard”, “Treble-clef staff”) plus per-key “Play C4” labels. Added the keys to
ui.tsacross all 25 locales (English values shipped as the safe fallback, fully localised translations land in a follow-up). The piano / guitar / staff components now accept alangprop and calluseTranslationsinternally so the same surfaces can be reused in any future host without re-plumbing strings. - fix Home-page tagline + section labels are now translated. The site root’s “Train your memory with free games” tagline and the five
landing-group-labelheadings (Polymath, Memory, Knowledge, Numbers, Reasoning) were hardcoded English insrc/components/LandingPage.astro. Six new keys (home.taglineplushome.group.polymath,.memory,.knowledge,.numbers, and.reasoning) added to all 25 locales inui.tswith native translations for the major locales (sv, fr, de, es, pt, it, nl, pl, ro, cs, hu, el, uk, ru, ar, he, hi, bn, zh, ja, ko, tr, th, id) and English fallback for everything else. Per-game card label/desc translation is a separate pass. - fix Every blog article shows a reading-time estimate. Each article now displays a localised “N min read” next to its date, computed for the language it is written in.
Improved
- improve Standardised in-game header menus across every game. The "round · streak · best" indicator, the "↺ Stop" button, and the collapsible in-game settings panel are now three shared components (
GameRoundIndicator,GameStopButton,InGameSettings) insrc/components/game/GameControls.jsx, replacing 14 hand-rolled copies that had drifted apart in margins, font sizes, aria-live, and spacing. Translation keys also cleaned up:ghost.round/ghost.rounds/ghost.best/ghost.stopwere misnamed (every game used them) and have been renamed togame.round/game.rounds/game.best/game.stopacross all 25 locales. Visible result: every game now has the same chrome at the top and bottom of a round.
New
- new Four ordering / history games: Order by When (drop historical events into chronological order), Order by Size (sort planets, animals, mountains, countries, buildings, and bodies of water from smallest to largest), When Did (multiple-choice "pick the year"), and Who Did (multiple-choice "pick the person responsible"). All four share two new data files (
historical-events-data.ts,sized-items-data.ts), a sharedOrderingMiniclick-in-order component, and a sharedQuizMiniprompt + vertical-choice layout. Streak-based scoring per (count, difficulty) combination, full GameModule conformance, all 25 locales translated for the chrome strings (event descriptions and actor names ship in English with locale fallbacks).
Improved
- improve Tone Knowledge grows the sequence by one note per success. The standalone
/tonespage now plays Simon-style on both surfaces: round 1 asks for 3 notes back, round 2 asks for 4, round 3 asks for 5, … capped at 50 (the same ceiling Color uses). The first wrong note ends the run and the streak resets · how far you can climb is the streak. Implementation extendsModuleStreakGame’sparamsOverrideprop to accept a function ·(streak) => Partial<Params>· re-evaluated every round so params can ramp with the streak. Tier-picker games (Chess Mate, Sudoku Force, Mastermind Deduce, Flag a Mine) keep passing static objects and stay on their one-tier-per-run difficulty model. Tones’ ramp also nudgesdifficultyup by one every 5 rounds so the chromatic range widens and the tempo tightens as the streak climbs · the late-game challenge isn’t just “remember more notes,” it’s “remember more notes faster across more keys.” - improve Notes mode shows the letter under every notehead. The treble-clef staff used to render a parchment with bare noteheads only · learning to read the staff was harder than it needed to be because the player had no anchor for which dot was C, which was D, and so on. Each notehead now carries its letter label (C / C# / D / D# / …, octave digit dropped on purpose so the focus is the letter not the absolute pitch) anchored to the bottom edge of the parchment so the labels line up in a clean row regardless of staff-row height. The label tints amber when the note is highlighted during playback so the audio, the notehead, and the letter all light up together · same chromatic index drives all three so “the C you hear is the C you see is the C you read” is enforced by the same data, not by separate translations. Styled as a beginner aid, not as part of the notation. Real sheet music has no letters · pros read the notehead position against the clef. To respect that convention while still helping beginners, the labels are deliberately subtle: 10px italic serif (Georgia) at 45% opacity so they read as quiet reference text under the staff and never fight the noteheads themselves.
New
- new Labyrinth Easy/Medium/Hard new-journey tiers. The labyrinth’s in-game settings panel now exposes three tier buttons under Start a new journey at: 🟢 Easy · Lvl 0, 🟡 Medium · Lvl 25, 🔴 Hard · Lvl 50. Each rolls a fresh root seed and drops the player straight into the chosen level instead of always restarting at level 0. Hard mode is a real difficulty cliff because the per-game level scaling now caps much higher: Color asks for level colours back (3 → 50, 1:1 with the level), Memory grows to 12 pairs (24 cards) instead of capping at 6, Sequences grows to 16 elements instead of 8, and Sudoku Force’s noise scaling reaches its 60-blank ceiling well before level 25. Three new strings (
labyrinth.tier.new_journey_label,tier.easy,tier.medium,tier.hard,tier.easy_desc,tier.medium_desc,tier.hard_desc) propagated across all 25 locales.
Fixed
- fix Same streak-loop bug class swept across the rest of the engine. Followed the orderwhen / ordersize / whendid / whodid fix with a sweep of every place that had the same shape: a
useEffectkeyed on[phase, onWin, onFail]that schedules asetTimeout(... onWin/onFail, N ms). Root cause wasuseMiniGameAnalyticsinsrc/utils/gameAnalytics.js: the hook returned fresh closures every render, so every parent re-render handed down a newonWin/onFailidentity, which re-fired the resolve effect in every shared chrome below it (MiniGameShell, the labyrinth’sChallengeShell,PiEncounter,MemoryEncounter). Hook now captures the latest props in a ref and returnsuseCallback-stable wrappers so callback identity stays put across re-renders, and adds its own one-shotfiredRefso a single mount can only resolve once. Each downstream shell got its ownfiredRefas a second line of defence (seeMiniGameShell.tsx,ChallengeShell.tsx,PiEncounter.tsx,MemoryEncounter.tsx). Regression spec extended with mount-then-re-render checks forMiniGameShellandChallengeShellalongside the existingOrderingMini+QuizMiniones. - fix Streak loop on the four ordering / history games no longer auto-advances after one round. The shared
OrderingMini+QuizMinichrome (used by /orderwhen, /ordersize, /whendid, /whodid) had two interacting bugs in the way it dispatchedonWin/onFailback toMiniGameStreakApp.OrderingMinireset its ownpicks+phasestate on every change to a memoiseddisplayreference, but the upstreamitemsprop was rebuilt fresh on every parent render · so a parent re-render mid-resolve would silently flip the round back to "asking", cancelling the 1300 ms timer that was supposed to callonFail(). The streak loop never saw the wrong answer and rolled into the next round as if the round had been won, then auto-resolved again on the next render, and so on. Fixed three ways for defence in depth:MiniGameStreakAppnow mounts theMiniGamewithkey={seed}so each round gets a fresh component instance, holds a one-shotroundClosedRefthat preventshandleWin/handleFailfrom re-entering during a single round, and clears the "next-round" setTimeout on Stop / unmount.OrderingMini+QuizMinieach hold their own one-shotfiredRefon the resolve timer, andOrderingMini’s reset effect is now keyed onseed+items.lengthinstead of the churningdisplayreference. - fix Polymath rounds of Riddles now show the real options. A Polymath round of Riddles used to render the no-fail “Reveal” tour the labyrinth was using · question + a single primary button, no choices, never
onFail. Polymath players ended up clicking Reveal once per round and effectively answering nothing. The riddles MiniGame now renders the same multiple-choice card the standalone/riddlespage uses · question, N option buttons (ramped 3 → 6 with labyrinth level), correct/wrong styling, and the riddle’s explanation. Polymath, the labyrinth, andrequestMiniGame()all share this one rendering, so “NOW PLAYING: RIDDLES” finally plays a riddle. - fix Polyglot encounter defaults to the player’s own UI language. The hosted Polyglot encounter (Polymath, labyrinth,
requestMiniGame) used to forcibly exclude the player’s UI language from the rotation · so a Swedish speaker got Korean, Japanese, and Polish words with no way to opt down. The encounter now defaults to the player’s UI language so a Swede sees Swedish words and a German speaker sees German words. The standalone/polyglotpage still exposes a language picker for players who want to actually practice a foreign language. Falls back to the original foreign-language rotation only when the dataset somehow lacks the player’s UI language. - fix Piano + chess boards fit on mobile. Both surfaces used fixed pixel widths (40px white keys × up to 14, 44px chess cells × 8 + label gutters) which overflowed below ~420px viewports · the keyboard ran off the edge of the white card and the rook on the h-file was clipped in Game Mode. Both now scale: piano keys flex to share the container’s width with black keys positioned in percent so they track the white-key flexing exactly; chess cells use
clamp(30px, 10.5vw, 44px)with proportional label gutters and glyph sizes. The boards stay 44px on desktop and shrink smoothly to fit a 360px phone in Game Mode, no horizontal scroll. - fix Polymath wrapper stretches to its host’s width. The Polymath delegate’s root
<div>had no explicit width, so its sub-game inherited a content-shrunk box that rounded down further on every nested flex parent · noticeable in Game Mode where the chess / piano surface was rendered narrower than the surrounding card. Setwidth: 100%+display: flex; flex-direction: column; align-items: stretchon the Polymath wrapper so every hosted sub-game gets the full Polymath card width.
Improved
- improve Tone Knowledge picks Piano vs Notes up front. The standalone
/tonespage now opens with a two-tile surface picker · 🎹 Piano or 🎼 Notes · before the Start button. The selection persists in localStorage per surface and forks the high-streak board so each surface earns its own personal best. Notes mode runs the existing treble-clef staff with note-name labels off, so the goal is unambiguously “learn to read sheet music” not “match labels to dots.” The staff itself was redrawn as a parchment leaf · cream-to-amber paper gradient, ink-brown clef and noteheads, opening + closing bar lines, layered inset/drop shadows · so the page feels like a classical notebook rather than a flat svg. Guitar and mixed-instrument rounds still appear inside Polymath and the Labyrinth pool; the standalone page is the dedicated trainer for the two main shapes. Five new strings (games.tones.surface_picker,surface_piano,surface_notes,surface_piano_desc,surface_notes_desc) propagated across all 25 locales; the in-game label for the staff renamed from “Staff” to “Notes” so the chrome reads consistently with the picker.
April 24, 2026
New
- improve Geo articles embed the live Geo mini-game. The Memorise Sweden's Top 10 Cities guide (and every language of it) used to draw a static map for each city; each step is now a playable Geo round that builds up city by city, so the article always matches the real game.
- improve Strict per-locale blog filter. Non-English blog indexes (
/sv/blog,/de/blog, …) used to fall back to English articles when the locale lacked its own translation, and the English-only/what/explainers were unconditionally added to every locale’s feed. Both leaks are gone · each locale now only renders posts that have actually been translated into it. Untranslated slugs 404 instead of serving English markdown under a localised URL (the language-switcher footer still tells visitors which locales DO have a translation). - improve The PlayMemorize logo always takes you home. Clicking the logo in the game header used to point at the current game's own landing · a no-op when the player was already on it. It now points at the site root (locale-aware), so every game page has a one-tap way out to the catalogue.
- new Per-game filter on every Polymath variant. The idle panel of
/all,/polymath-math,/polymath-knowledge,/polymath-memory, and/polymath-reasoningnow shows a collapsible “Game filter” checkbox list of every game in that variant’s pool. All games are checked by default; uncheck the ones you find too hard or just don’t feel like playing today and they drop out of the rotation. The selection persists in localStorage per variant and is locked the moment a streak starts so you can’t accidentally change the pool mid-run. If everything is unchecked the full pool is silently used as a fallback so the game never deadlocks. Implemented as a singlepoolstring field on the sharedmakePolymathModule()schema ·chooseSubGameintersects the player’s allow-list withMODE_GAME_IDS[mode]and picks deterministically from the result. - new Tone Knowledge at
/tones. Free ear-training game · hear a sequence of 1–10 musical notes, then click them back in order on a virtual instrument. Three surfaces share one chromatic pitch pool: piano (white + black keys, mouse / touch / keyboard), guitar (six strings × twelve frets, correctness checked on pitch so any equivalent fingering counts), and treble-clef staff (click at the line or space height to pick a note). Difficulty scales four dimensions at once · sequence length grows with labyrinth level (3 → 10), pitch range widens with difficulty (white keys → diatonic → chromatic 1-octave → chromatic 2-octave), tempo shrinks (600 ms → 320 ms), and note-name labels disappear at d≥5 so expert mode tests pitch recall not reading. Roughly a quarter of low-difficulty rounds (rising to three-quarters at expert) are transposed snippets of recognisable folk and public-domain melodies (Twinkle Twinkle, Ode to Joy, Für Elise opening, Mary Had a Little Lamb, Jingle Bells, Frère Jacques, Hot Cross Buns, …). When the player misses, the explainer says exactly what they played, what the target was, and the interval between · “you played E4, one semitone below F4 (minor 2nd flat).” The shared 24-note frequency table moved out ofsimonAudio.jsintosrc/utils/toneAudio.jsso Color, Tone Knowledge, and any future music game pull from the same source. Auto-included in the Memory Polymath pool and the full Polymath pool. - new Chess Mate now plays like real chess. The old “pick a move from a shuffled list of UCI strings” input is gone. Click a white piece to select it · the board highlights the piece in gold and paints a green ring on every square it can legally move to. Click a destination to commit the move; click the same piece again to deselect; click another white piece to switch selection. The UI can never let the player try an illegal move because the legal-destination set comes from the same
legalMovesForhelper the solver uses. Works with mouse, touch, and keyboard (squares are now focusable buttons with Enter/Space). - new Polymath split into four themed standalone games. The
/allpage no longer hides four filter modes behind a tab bar · each mode now ships as its own landing page and its own entry in the site catalogue. Math Polymath, Knowledge Polymath, Memory Polymath, and Reasoning Polymath all live alongside the full-catalogue Polymath in the Polymath section, so the five streak variants read as one cohesive group on the home page instead of being scattered across Memory / Knowledge / Numbers / Reasoning. Memory Polymath replaces the earlier Numbers variant whose pool overlapped Math too heavily · the new pool draws cleanly from pi, memory, color, and ghost. Each variant keeps its own high streak and FAQ, works offline, and plays identically apart from its themed pool.
Fixed
- fix Odd One Out fruit + shape categories no longer rely on botany / geometry edge cases. The standalone
/odd-one-outgame and the labyrinth’sOddOneOutEncounterboth shipped emoji odd-pools that contained items belonging to the “wrong” group under a defensible reading. The fruits category mixed 🍅 (tomato), 🌽 (corn), and 🥒 (cucumber) into the “not a fruit” pool · all three are botanically fruits, so a botany-aware player could correctly identify them as belonging with the apple / banana / grape group. The squares category used 💠, 🔷, and 🔶 (diamonds) as the “not a square” pool · a diamond is mathematically a square rotated 45°, which a geometry-aware player would catch. Both pools now use unambiguous outliers: roots / tubers / bulbs / leaves / flower-heads / fungi for the not-fruit pool, and circles / triangles / stars for the not-square pool. - fix Analogies labyrinth encounter no longer offers a defensible second answer. The labyrinth’s
AnalogiesEncounterdistractor pool only excluded items whosebmatched the correct answer · thebfrom the SHOWN pair (e.g. “pup” in wolf : pup :: bear : ?) could still surface as a distractor. With the “young animal” relation containing multiplecub/pup/foal/calfentries, that left rounds where two on-screen options were colloquially correct. Encounter generation now mirrors the standalone Analogies game: pickp2with abdistinct fromp1.b, exclude bothp1.bandp2.bfrom the distractor pool, and de-duplicate bybso the same label can never appear twice. - fix Riddle distractors that fit the clues just as well as the answer were swapped. A second pass through the riddle pool caught four distractors with defensible alternative readings. “I have hands but cannot clap, a face but cannot smile” (
cl-clock) used to list A doll and A puppet · both have literal hands and a face that don’t clap or smile. “I have cities but no houses; forests, but no trees; water, but no fish” (cl-map) used to list A globe · a globe depicts the same things without containing them, exactly like a map. “I am always coming, but never arrive” (wa-future, answer: Tomorrow) used to list The horizon · a horizon also recedes as you approach it, which makes it a defensible answer. “The more of me you take, the more you leave behind” (cl-candle, answer: Footsteps) used to list A path · walking more of a path literally leaves more of it behind you. All four swapped for distractors that cleanly fail one of the riddle’s clues. - fix Polymath no longer strands the player on “Loading …”. A sub-module whose JS chunk failed to resolve (broken deploy, stale service worker, very slow network) could leave the Polymath shell spinning on “Loading sudokuforce…” forever with no exit. Added a 10 second timeout and a new “Try another” button that re-seeds the sub-game picker so the player can skip past a broken chunk without ending their streak. Translated across all 25 locales via the new
games.all.try_anotherkey. - fix Chess Mate / Mastermind Deduce / Sudoku Force explainers now translate. The post-answer verdict on all three games still read as hardcoded English (“Checkmate.”, “You pinned the unique code.”, “4 is the only digit that fits.” …) even in non-English locales. Added six new i18n keys (
games.chessmate.explain_won/explain_lost,games.masterminddeduce.explain_won/explain_lost,games.sudokuforce.explain_won/explain_lost) translated across all 25 locales, and wired the threeexplaincallbacks through the locale'st(). - fix Riddles no-fail encounter dedupes across rounds + keeps the explainer. Multi-round riddle encounters (L20+) could hand the player the same riddle twice in a row when the filtered pool was narrow. The pre-computation now tracks seen ids and retries up to 4× the requested round count before falling back to a repeat. The reveal card also paints the riddle's own “why the answer works” explanation below the answer line, so the guided-tour flow keeps the educational payoff the old options mode had.
- fix Goal marker label positioning stabilised. The badge under the 🏁 glyph used
position: absolutewithout an explicitleft, so the browser fell back to auto-placement and different engines drew the label in different spots. Now pinned atleft: cx; transform: translateX(-50%), which centres the badge under the flag deterministically on every engine. Marker icon + label now render as siblings instead of nested, so overflow can't clip one without the other. - fix Preloader skips hidden labyrinth encounters.
preloadAllAdapterswas iterating the fullADAPTERSmap after the catalog refactor, which meant it was burning bytes on Riddles / Polyglot chunks that the player would never meet in the maze. It now preloads onlyLABYRINTH_VISIBLE_GAME_IDS· hidden entries still load on demand vialazyAdapter.
April 23, 2026
New
- new Polymath game at
/all. Cross-game streak roulette that pulls random rounds from every PlayMemorize mini-game. Five themed modes filter the pool: All (full catalogue, labyrinth excluded), Math, Knowledge, Numbers, and Reasoning. Each mode keeps its own high streak. Built on the sharedModuleStreakGame+ theGameModuleAPI: a thinMiniGamedelegate dynamically loads whichever gamegenerate()picked and forwardsonWin/onFail/onAbortunchanged, so a Polymath round of Chess Mate plays byte-identically to a native Chess Mate round. Landing page, 25-locale i18n block, FAQ copy, precache entry, and a dedicated conformance test covering the mode pool references all land in the same pass.
Fixed
- fix Pi digit counter no longer desyncs on restart. "I know X digits" could show
0even when the stored group index was mid-run, and the first three taps of a new run silently no-op'd until the player hit Reset. Root cause: stalelocalStoragevalues could push the group index past the constant's last group, and the reset path conflated learn-mode and play-mode counters. Pure helpers (parseStoredGroupclamps to[0, totalGroups-1],buildResetSnapshotpreserves learn-mode taps, a new per-constant-best-tapslocalStorage key tracks personal bests) now back theGameCorestate machine with unit-test coverage. - fix Sequences “Descending” topic is now real. The standalone picker offered a descending filter but the dispatch table only referenced the built-in ascending generators, so selecting it silently fell back to whatever the difficulty pool produced. The generators were extracted to a pure
src/components/sequences/generators.jsmodule and the descending branch now dispatches to either a geometric divide-by-N pattern or a strict arithmetic decrease. Distractors can no longer be zero, negative, or match a value already visible in the shown prefix · the classic “81, 27, 9…” confusion is gone. - fix Crazy Comparisons clicks register again. A stale-closure race in the auto-spin → handleSpin flow could display round N's slot text while rendering round N+1's answer buttons, so clicks validated against the wrong
correctIdand the game felt dead.handleSpinandhandleAnswernow read the current round through auseRefso the slots and options always agree. - fix Crazy Comparisons: slot machine now visibly spins. The 4-slot blur was silent · tones played but the text never changed.
useTranslations()returns a newtfunction on every render, which cascaded through the memoizedgeneratorreference, and an effect keyed on[generator]fired every render · blankingslotTextsback to['','','','']and snappingphaseback toidlefaster than the 80 ms spin intervals could update them. Keyed the reset effect on the raw[lang, categoryFilter]inputs instead, so the slots blur through words again while the tick tones play. - fix Ghost Mini-Game shows the full board during recall. The labyrinth
GhostEncounterstripped the grid as soon as recall started, leaving only three choice buttons with no visible cue to which slot was empty. The recall view now keeps the original grid on screen with a 👻 placeholder where the removed emoji was, mirroring how the standalone Ghost game has always worked. - fix Memory now opens at 6 cards. The default Memory grid dropped to
3×2(3 pairs) so the matching mechanic is actually interesting from the first round. Larger grids remain available through the dropdown, and the labyrinth encounter's legacy pairs fallback clamps up to 3 so Memory in the maze is never a 4-card round. - fix No more unit abbreviations in mini-games. Crazy Comparisons explainers and the Stroop timer now spell out units (“kilograms”, “square meters”, “kubikmeter”, “sekunder”…) across all 25 locales instead of
kg/m³/ bares.
Improved
- improve Riddles is now a guided no-fail “think, then peek” flow. Inside the labyrinth and every other hosted mini-game slot, Riddles now follows the same flow: the teaser shows the question with a single Reveal primary button, the reveal shows the answer under a “The answer” heading, and the module always calls
onWinafter the final reveal · neveronFail. No more multiple-choice grading, no red/green chrome, no “The answer was” post-mortem. A newroundsparam ramps with labyrinth level (L0 = 1 riddle, L20+ = 3). The standalone/riddlespage still shows the options picker (it readsbuildRounddirectly for its own streak flow). Three new i18n keys (riddles.cta.reveal,riddles.cta.done,riddles.reveal.heading) translated across all 25 locales. - improve Visible “Mål” / “Goal” marker on the labyrinth board. The goal tile now paints a 🏁 checkered-flag glyph with a small localised text badge (Goal, Mål, 目标, Hedef, …) so the player can see the level exit from the moment the maze mounts, before they've walked close enough to fog-reveal that area. One new i18n key (
labyrinth.tile.goal) translated across all 25 locales; painted inIconOverlay.tsxin its own layer so it can't collide with NPCs, items, or the help bubble. - improve Single typed labyrinth encounter catalog. The per-level encounter pool, the adapter loaders, and the “is this game an encounter?” question now read from one source:
src/components/labyrinth/encounters/catalog.ts. Each entry carries anid, amoduleId, avisibleInLabyrinthflag, and a tier (1 / 2 / 3). Flipping a game tovisibleInLabyrinth: falsedrops it from the encounter pool without unregistering the module, sorequestMiniGame()and<InlineGame>keep working. Riddles is nowvisibleInLabyrinth: false: the no-fail tour does not gate progression.
April 21, 2026
Improved
- improve Chess Mate, Sudoku Force and Flag a Mine now spawn as labyrinth encounters. The three games already shipped as conformance-clean
GameModules (deterministicgenerate(params, seed), level-scalingparamsFromDifficulty(d, lvl), sharedMiniGame) but were missing from the labyrinth's encounter pool. Added them toGameId&SUPPORTED_GAMESinengine/types.tsand registered threeasAdapterLoaderentries in the encounterADAPTERSregistry. They join the top-tier pool (level 6+) with the same level-ramped difficulty knobs their standalone pages use · no per-encounter adapter code, the unified GameModule API carries them straight through. - improve Easy / Medium / Hard tier pickers for Chess Mate and Flag a Mine. Matches the pattern Sudoku Force already ships: a three-button row above the Start card sets the round difficulty. Chess tiers vary the candidate-move count (Easy 3 · Medium 4 · Hard 6 legal decoys). Mine tiers vary the board size & density (Easy 6×6 with 5 mines · Medium 7×7 with 10 · Hard 8×8 with 15). Each tier keeps its own high-streak in localStorage. Six new i18n keys per game × 25 locales · labels reuse each locale's Sudoku Easy/Medium/Hard translations, descriptions are translated for the top locales and fall back to English elsewhere.
- improve Game-switcher dropdown capped at 3/4 of the viewport. Lowered
max-heightfrom80vhto75vhon both the in-gameGameHeaderpanel and the site-wideSiteNavStaticpanel, so the dropdown never reaches all the way to the bottom edge of the screen · the remainder of the list scrolls inside the panel. - improve Flag a Mine is now a full playable minesweeper. Click-to-reveal with classic flood-fill on zero regions, right-click or a flag-mode toggle to plant flags, a running mine counter, and a guaranteed safe opening (the largest 0-region is auto-revealed so the first move is never a blind guess). Board scales 6×6 / 7×7 / 8×8 by difficulty and mine density ramps per labyrinth level. Old "guess the one guaranteed mine" single-pick mode retired.
- improve Mastermind Deduce: column-labelled feedback grid. Past guesses render in a four-column row (Guess N · pegs · black-dot count · white-dot count) with sticky column headers that spell out In position and Color only. A down-arrow between history and choices makes the "pick the surviving code" flow obvious for first-timers. Pegs use a radial-gradient 3D look; black / white feedback dots use the classic Mastermind styling. Translated across all 25 locales.
- improve Chess Mate: algebraic rank / file labels & harder mate-in-one patterns. Board now renders inside a 10×10 grid with a-h file letters on top and bottom and 1-8 rank numbers on both sides · matches how real chess boards read. Added two new tactical compositions to the pool: a smothered mate (Nh6 → f7#) and an Arabian mate (Rh1 → h7# defended by Nf6), so the puzzle set is no longer dominated by back-rank patterns.
- improve Home page scroll no longer clips the bottom cards.
.landing-containerusedjustify-content: centerwithmin-height: 100vh· now that the catalog has grown, flex centering pushed the first row above the scroll origin and the bottom rows became unreachable. Switched tojustify-content: safe centerso short pages still center vertically and tall pages scroll normally. - improve The board stays on screen when you answer. In reveal mode the
MiniGameShellno longer collapses the prompt into a big ✓/✗ · the chess position / Sudoku grid / mine board / Rush Hour layout / Mastermind log all stay rendered while a circular ✓/✗ verdict floats at the top-right corner of the prompt. Players can now compare their pick against the correct answer directly on the original board before pressing Continue. - improve Sudoku Force: Easy / Medium / Hard tier buttons. Easy seeds a near-solved grid with a single blank (the target); Medium sprinkles ~16 extra blanks around the target; Hard leaves only the target's row, column and 3×3 block filled in, mirroring a real late-game Sudoku. Each tier keeps its own high-streak and the target's forced digit is always uniquely determined. Powered by a new
TIER_PARAMSpreset and aparamsOverride+preStartslot on the sharedModuleStreakGameso future games can expose tier pickers the same way. - improve Flag a Mine is readable for kids. Hidden cells are now labelled tactile slate tiles (A, B, C, …) with a raised 3D bevel; revealed zeros render as dug brown “holes”; revealed numbers keep the classic minesweeper palette on a beige surface. On reveal the target cell shows a 💣 and a wrong pick shows a 🚩, and a new legend row spells out what hidden / dug / numbered cells mean. Three new i18n keys (
legend_hidden,legend_dug,legend_num) translated across every supported locale. - improve Chess Mate pieces are bigger and crisper. Board cells bumped from 32 px to 44 px; piece glyph size raised to 34 px. Both colours now render from the same solid-silhouette Unicode set (U+265A–F) so CSS
color+ a bold textShadow outline distinguishes white from black; the thin-line outlined glyphs (U+2654–9) that rendered as unreadable scribbles on several platforms are no longer used. The board also has a subtle drop-shadow and a softer border. - improve Round-to-round transitions feel snappier. Legacy auto-advance flash trimmed from 700 ms to 420 ms in both
MiniGameShelland the labyrinthChallengeShell. Games with anexplaincallback are unaffected · those already advance on Continue.
Fixed
- fix Rush Hour Escape removed. The sliding-block mini-game's single-move oracle couldn't be disambiguated from a quick glance at the board · players reported that even after reading the rules it was unclear which tap did what. Pulled the game, its module, its landing pages, its 150 i18n strings, its FAQ copy, its precache entry, and its catalog row. Will revisit as a full 10-move puzzle when the shell supports multi-step encounters.
- fix Sudoku Force explainer no longer shipped an emdash. The "chained deductions" copy and the fallback-value glyph used
—/'·'which slipped past the content linter becauseF-11only scanned.astro/src/components. Extended the check to cover.tsx/.jsxundersrc/gamestoo, so user-facing JSX prose (explainers, hints, prompts) can't regress into emdash land. - fix Chess Mate: broken starting positions replaced. Two of the four frozen mate-in-one compositions were illegal (one started with Black already in check on White's turn; one had the winning rook move capturing the Black king itself). The pattern set was rebuilt with four verified mate-in-one positions (back-rank with pawn blockade, queen-in-corner, two-rook ladder, queen back-rank), so every round is now a legal position that resolves to exactly one mating move.
- fix Header game-switcher dropdown is now scrollable. With 26 games registered, the panel overflowed the viewport on short screens. Matched the behaviour of the language picker (
max-height: 80vh; overflow-y: auto; overscroll-behavior: contain) for both the in-gameGameHeaderand the site-wideSiteNavStatic. - fix Flag a Mine visual polish. Unrevealed cells now read as tactile hidden tiles (raised slate shading with letter label), revealed zeros render as clean blank cells, and revealed numbers use the classic minesweeper palette (1 blue, 2 green, 3 red, 4 navy, …). The board no longer looks like a purple name tag grid.
- fix Rush Hour Escape: clearer controls + rules. Slide buttons now describe the move as direction + cell count (Red car → 1 square) instead of raw
(x,y)coordinates. The board shows a coral → exit marker on row 3 and a one-line rules tip ("The red car exits right. Slide any car along its lane if the path is clear"). Works in all 25 locales. - fix Mastermind Deduce: in-game legend for the peg feedback. A small legend panel now explains ● = right colour + right position, ○ = right colour but wrong position, and the feedback row is rendered as actual black/white dot pegs next to the text fallback. Translated into all 25 locales.
- fix Every round of the five new games now explains itself. After picking an answer, the shell shows ✓/✗ plus a short explainer ("Queen a7 → h7 delivers mate · the black king has no legal escape", "Row already contains 5, 3, 6, 7, 8, 9, 1, 2 so only 4 fits here", "The revealed 1 at row 2 touches exactly one hidden cell, so that cell must be the mine", …) and a Continue button. Implemented generically via the shared
MiniGameShellexplainprop so any future game can opt in with a single callback.
April 20, 2026
New
- new Five new reasoning games. Chess Mate (mate-in-one picker), Sudoku Force (forced-digit Sudoku micro-puzzles), Flag a Mine (guaranteed-mine constraint deduction), Rush Hour Escape (winning-slide sliding-block puzzle, later retired), andMastermind Deduce (unique-code deduction from peg feedback). Each round is deterministic (pure
generate(params, seed)) and validated by a cheat-proof oracle ·evaluateMateInOne,verifyForcedNumber,verifyGuaranteedMine,isWinningSlide,verifyFinalDeduction· with no preset "correct" flag to tamper with. All five ship asGameModuleentries so they double as Labyrinth encounters and inline blog embeds.
Fixed
- fix Header game-switcher dropdown no longer renders behind inline game cards. The header's
backdrop-filter: blur()had created a new stacking context that trapped the dropdown below any later-painted page sibling. Header is nowposition: sticky; z-index: 1000; isolation: isolate, so the game-switcher panel paints above every page element (except modals). - fix Simon Says fully translated in 11 locales. The
simon.*i18n block had been left as English in Czech, Greek, Hebrew, Hungarian, Italian, Dutch, Polish, Romanian, Thai, Turkish and Ukrainian · 17 strings × 11 locales = 187 keys now properly translated (title, colors, players, start, round, watch, your turn, correct, game over, score, best, new high score, play again, player turn, winner, speed, idle description). Translations reuse each locale'sghost.*vocabulary where the phrase is identical (Correct!, Game over!, Score, Best, Play again, etc.) so the two games feel consistent. "Simon Says" retained as a brand name in every locale. - fix Geography game: removed remaining Turkish place-name suffixes across 48 country files. Mechanical transform "X Dağı" → "Mount X" (~60 mountains), "X Gölü" → "Lake X" (~66 lakes), "X Rezervuarı" → "X Reservoir" (8 reservoirs). Danube renamed per country (Tuna → Donau/Dunărea/Duna/Dunav/Dunaj/Dunay depending on language). Compound names fixed by hand: Lake Büyük Ayı → Great Bear Lake, Lake Büyük Köle → Great Slave Lake, Lake Büyük Tuz → Great Salt Lake, Lake Urmiye → Lake Urmia, Lake İşkodra → Lake Skadar, Şattülarap → Shatt al-Arab, Şeria → Jordan, Trablus → Tripoli, Bingazi → Benghazi (Libya), Barselona → Barcelona (Venezuela).
turkey.jscorrectly retains its 5 native Dağı/Gölü entries. - fix Geography game: replaced Turkish place names that had bled into 26 country files. Capitals and major cities that had been seeded from a Turkish dataset now use the native or English exonym matching the rest of each file: Moskova → Moscow, Atina → Athína, Viyana → Wien, Varşova → Warszawa, Lahey → Den Haag, Brüksel → Brussels, Lizbon → Lisboa, Budapeşte → Budapest, Sofya → Sofia, Belgrad → Beograd, Bükreş → București, Tiflis → Tbilisi, Pekin → Beijing, Prag → Praha, Kopenhag → København, Tahran → Tehran, Bağdat → Baghdad, Meksiko → Ciudad de México, Seul → Seoul, Barselona → Barcelona, Münih → München, Küdüs → Jerusalem (+ Hayfa, Riyad, Cidde, Mekke, Medine, Halep, Şam, Trablus). Also the German rivers Ren → Rhein and Tuna → Donau, and two French rivers missing their accents Rhone → Rhône, Saone → Saône, plus Ecrins → Écrins. A systemic data-quality issue remains in the lake dataset: 27 country files still use Turkish "Gölü" (lake) in their lake names (e.g. Huron Gölü in
canada.js) and many more mountain / river / secondary-city names are likely sourced from the same Turkish dataset · tracked for a separate regeneration pass. - fix Swedish UI strings: restored missing diacritics.
explore.descandconstants.deschad "pa" where Swedish needs "på" (meaning "on"), andconstants.descmisspelled "Bläddra" ("browse") as "Bladddra".simon.game_overandghost.game_overwere left as the English "Game over!" · now "Spelet slut!". Fixed insrc/i18n/ui.ts. - fix Define (word meaning) no longer asks misleading "Activities vs Objects" questions. CLDR files many clearly-object emoji (paintings, medals, balls, gifts, tickets, game pieces, ski gear, kites) under its Activities group via the arts & crafts, award-medal, event, sport and game subgroups, which made puzzles like "Tavla" (Swedish for painting) correctly mark Objekt as wrong. The Define game now skips the Activities category entirely and draws from the 5 remaining categories (people & body, animals & nature, food & drink, travel & places, objects). Affects all 25 locales.
Improved
- improve Euler's Identity explainer now renders in every site language. The
/learn/pi/eulers-identitycomponent bundle gainedit,tr,ro,hu,cs,el,he,thanduklocales (29 keys each · headings, constant descriptions, step labels, unit-circle copy, the Feynman quote, and the 1748 Introductio historical note). Bundle went from 17 to 25 of 25 supported locales · no more English fallback on the Euler page. - improve Major Pincode System guide now renders in Italian. The
memorise-body.jsoncomponent bundle gained anitlocale (97 keys · the whole write-up of the muscle-memory + Major System method, from core idea through numpad paths, the 10-rule reference, a worked example on pi's first six digits, practice guidance, and the full footer). English words that are part of the mnemonic (Mitt, Road, Lip, Tomb, Comb…) are preserved as-is · translating them would break the system. Italian is at 15 of 25 locales.
New
- new Riddles game at /riddles. Text riddles with multiple-choice answers. Pick difficulty (easy / medium / hard or all), pick a type (classic, what-am-I, wordplay, logic, math, or all), and pick how many answer choices you want to see (2–6). Each round is a deterministic pull from a themed pool: distractors are drawn from the riddle's own trap bag first, then from sibling riddles of the same type, so the choices stay topic-coherent instead of degenerating into random nouns. Endless streak mode with per-filter best score, so changing any dial starts a fresh target. Ships as a GameModule, so it doubles as a labyrinth encounter. UI strings translated into all 25 locales; riddle content itself is English-only in v1 with a documented fallback path for future locale packs.
- new Polymath category on the home page. Labyrinth moves out of the “Reasoning” group into its own top-of-page “Polymath” section · the message is now explicit: this is the gauntlet you beat to prove you're good at a bit of everything. Game-card description updated to reflect the per-level difficulty ramp.
- new Every game scales with labyrinth depth. Deeper labyrinth levels now make each game genuinely harder · more digits to memorise, more pairs to match, bigger numbers to compute, more options to tell apart · instead of level 50 playing exactly like level 5.
Improved
- improve Stop a game → Game Mode exits in the same gesture. Tapping any game's Stop button used to leave the player in distraction-free Game Mode and force a second tap on the floating Exit pill to return to the page chrome. Every game's Stop handler now dispatches a
pm:game:stopevent that the GameModeToggle listens for; if Game Mode is active, it deactivates immediately. Also addedsrc/utils/gameMode.jsas the cross-component event bus · React game islands and the inline Astro toggle script now talk through one documented contract. - improve Riddles: every riddle now explains itself after you answer. All 41 riddles carry a written-out one-to-three sentence “why the answer works” that unfolds on both correct and wrong. For the classic “bat and ball” puzzle you get the algebra; for “what 9-letter word contains all five vowels in order?” you get f-A-c-E-t-I-O-U-s spelt out; for “smallest whole number equal to 7 times the sum of its digits” you get the check that n=7 and n=14 fail. Correct answers no longer auto-advance · you read the explanation and tap “Next riddle” when you're ready. The “Correct!” label, the “Next riddle” button text and the “The answer was” label are translated across all 25 locales.
- improve Labyrinth: quest-giver now hides the reward until you've heard the brief. Previously the giver's speech-bubble spelled out what they'd lost and what they'd trade, and the lost item sat visible on the map from the moment the level loaded · there was no moment of discovery. The flow is now three beats: the giver yells “Help! Help!” from their tile, walking up to them opens a pop-up with the full quest (lost glyph → reward → obstacle) and a single “Okay” button, and dismissing the pop-up is the first time the lost item becomes visible on the map. Revisits before fetching the item are silent reminders (breathing templated bubble); revisits with the item in hand still trigger the exchange and clear the giver tile. Translated into all 25 locales.
- improve Labyrinth: pi-recall memorisation now has a visible study countdown. The memorise screen shows a shrinking green→amber→red progress bar and a whole-second readout so the player knows exactly how long they have to study before the digits vanish and the numpad appears.
- improve Labyrinth: maze is tighter and the solution path longer. The generator used to braid away every dead end, which carved so many shortcuts that the route from start to goal often skipped most puzzle tiles · you could finish a level without answering more than one or two questions. It now braids only ~25% of dead ends, so the solution path stays winding. Scattered puzzle-tile density also bumped (~1/5 of eligible cells instead of ~1/8, cap 18 instead of 12), so you actually have to work your way through a gauntlet of challenges on the way up.
April 19, 2026
Fixed
- fix Game language persistence: site language now dictates game language. Starting a game in Swedish, failing, and restarting would sometimes render the new game in English · the root cause was Stroop's own language picker persisting a
stroop-langkey in localStorage that could drift from the site locale. Removed the in-game picker entirely (Stroop now uses thelangprop from the URL, no exceptions), wiped the legacy key on load, pruned Geo's deadgeo-lang-change/geo-lang-setevent listeners so the app always reflects the URL, and taught Polyglot to reject stored target-languages that equal the site locale (you can't "learn" your own language). Polyglot's idle description and “not enough words” hint are now translated across all 25 locales instead of hardcoded English. - fix Labyrinth pi-recall now asks for the first N digits every time. Higher-level encounters were rotating through a random 100-digit window of pi, so the player would face “…35897” or “…82097” rather than the leading digits they had actually been memorising. The “level N = know the first N digits of pi” contract is now honoured for all levels, not just 0 and 1.
- fix Labyrinth pi-recall progress counter now substitutes every placeholder. The progress line read “Type the 7 digits (0/{n})” because the translation helper only replaced the first occurrence of a named placeholder, so the second
{n}leaked through unrendered. The helper now replaces every occurrence. - fix Labyrinth: tapping a far-away puzzle piece or the quest-giver now routes the hero there. The BFS previously refused to plot any path that crossed an uncleared encounter or question-tile, which made most long clicks silently do nothing. The router now treats only walls (and roadblocks the player doesn't have the item for) as hard blockers · givers and puzzle-tiles along the way trigger their own modal, the queue drains cleanly, and play resumes with a second tap.
- improve Labyrinth: quest speech-bubble sits above the giver and breathes. The bubble was anchored to the giver's side in a wide rectangle that often covered adjacent tiles. It now sits directly above the giver in a more compact, squarer box clamped to the grid, and fades out briefly every eight seconds so it doesn't permanently occupy the map while the player is navigating.
New
- new Game Mode: distraction-free focus mode on every game. A floating “Game Mode” pill sits at the bottom-right of every game landing page (Memory, Ghost, Polyglot, Geo, Pi, and the rest). Tapping it hides the header, sub-nav, footer and install banner, locks page scroll, and lifts the game to fill the viewport on the normal surface colour. Exit with the floating X button (same bottom-right slot as the toggle) or Escape · scroll position is preserved on exit. Game Mode is independent of gameplay: starting or losing a game never enters or exits it. Translated into all 25 locales.
Improved
- improve Analogies & Define: pool expanded from ~250 to 471 items. New high-quality pairs added across all 14 relations · more capitals (New Zealand, Israel, Pakistan, Qatar, Baltic states …), continents, young animals (tiger, giraffe, zebra, llama …), habitats (koala, octopus, mole …), tool functions (magnet, calculator, binoculars …), workplaces (firefighter, blacksmith, astronomer …), producers (composer, architect, journalist …), categories (guitar, gold, hydrogen, tulip …), antonyms, synonyms, part-whole pairs, tool users, characteristics, and degree intensifiers. Because the game generates A:B pairings combinatorially (N×(N−1) per relation), the distinct-round count grew from ~5,000 to 17,470 · players see far fewer repeats per session.
- improve Card-based games: every emoji card now sizes like Memory. Memory has always rendered emojis at 75% of a square card via Twemoji SVGs and container-query sizing. That same pattern ·
aspectRatio: 1,container-type: inline-size, and an<Emoji size="75%">Twemoji · is now applied across Odd One Out (emoji puzzles), Ghost (recall grid + answer buttons), Polyglot (word-to-emoji options), and the Labyrinth Memory / Odd One Out / Polyglot / Ghost popup encounters. The sharedEmojicomponent was extended to accept any CSS length (percent, cqi, px) for itssizeprop. - improve Odd One Out: removed all letter puzzles. Single-letter rounds ("all others are consonants / vowels / letters in PLAYGROUND / in the first half of the alphabet") were effectively unsolvable for non-English speakers and ambiguous even for English speakers · a letter can legitimately belong to several rules at once. The Letters category is gone, the generators (vowels, consonants, alphabet halves, word-letter lookup) are deleted, and the difficulty pools no longer include them. FAQ copy updated to match.
- improve Odd One Out: localized category filter. The "All / Emoji / Numbers / Shapes / Math" picker on the idle screen now renders in every UI language instead of hardcoded English, and your choice persists between sessions like the difficulty picker.
Fixed
- fix Labyrinth: every level now actually requires the quest. The maze generator carves a perfect (single-path) maze and then braids it to break up long dead ends · but braiding occasionally opened an alternate route around the roadblock, so the player could reach the goal without delivering the ring or picking up the right item. The roadblock cell is now verified to be a real bridge between start and goal (removing it must disconnect them); if it isn't, the generator slides it along the solution path, falls back to a whole-maze bridge scan, or re-seeds. Verified across 3,000 (level × seed) combinations with zero bypasses.
- fix Labyrinth: player no longer spawns next to a puzzle piece. Question tiles were placed anywhere on the walkable grid, so on some seeds a puzzle sat one step (or zero) from the start and the player opened a puzzle modal before they'd even moved. Placement now excludes every cell within BFS distance 4 of the start · the first few steps are always free so the player can orient.
- fix Labyrinth: quest-giver's speech bubble stays visible. The bubble used to fade in and out on a 5s loop, so when a player walked onto the NPC during the "invisible" window the quest looked like nothing had happened. It now bounces in once on level start and stays pinned above the giver until the ring is delivered.
- fix Labyrinth: tapping a puzzle piece behind another puzzle now walks you there. The click-to-walk BFS treated every uncleared obstacle as impassable, so if another puzzle sat between the player and the tapped one, nothing happened. When the tap target is itself a puzzle, other puzzles are now passable as intermediates · you walk to the first puzzle, solve it (the queue drains on phase change), then tap again to continue.
- fix Labyrinth: Analogies encounter no longer shows English words in non-English UIs. The analogies relation pool only ships English for v1; every other locale fell back to it, producing "Swenglish" rounds (Swedish rule label, English option words). Analogies are now excluded from the maze's encounter pool for any locale without a translated pool · affected players see other encounter types instead until localised analogy pools land.
Improved
- improve Define: cross-category ambiguity filter plus Cyrillic 3-char handling. A third quality pass drops any word whose string contains a token from any other surviving category's label, not just its own · catches real compound-semantic overlaps like Swedish "Skaldjursspett" (contains
djur= animal), German "Feuerwerkskörper" (containskörper= body), Italian "Cercapersone" (containspersone= people), Romanian "Scorpion" (containscorp), and German "Torte" (containsorte= places). The language-class minimum-token length was also lowered to 3 for Russian and Ukrainian so Cyrillic 3-char food tokens (еда,їжа) are recognised · five Russian medal words and the Ukrainian hedgehog no longer slip past the filter.
April 18, 2026
Improved
- improve Backwards: distractors are now misspellings of the same word. Rounds used to mix the correct reversal with reverses of three unrelated words · easy to spot because only one "looked right". Every option now comes from the same word, differing only by letter swaps or substitutions, so players actually have to verify the reversal character-by-character. Works in all 25 languages · swaps operate on Unicode code points, preserving combining marks and CJK characters.
- improve Define: dropped self-explanatory word categories, expanded the pool. The Flags, Smileys & emotion, and Symbols emoji categories produced trivial rounds where the word itself gave the category away (e.g. "Flag: Comoros" under a "Flags" label). All three are now excluded. The country-to-continent pool grew from ~53 to ~90 countries across every locale, and the English analogies pool gained ~45 new items (more capitals, young animals, habitats, workplaces, tool functions, categories, antonyms, synonyms).
- improve Define: recursive scan across all 25 languages, plus analogy-pair filter. A second pass caught 72 more self-explanatory words where a word contained a token from its category label · "Canned food" under "Food & drink", "Matlagning" under "Mat & dryck", "Hot drink", "Pot of food", "Cooking food", etc. The filter now tokenises compound labels, drops language connectives / articles (and, or, the, les, और, और, 및, …), and lowers the minimum-token-length for compound-heavy Swedish and CJK scripts so short root words like "mat" (food) still register. On the analogies side, pairs where the question word trivially gives the answer away ("pig" → "piglet", "baker" → "bakery", "Mexico" → "Mexico City", 11 total) are now hidden from Define while remaining available to the Analogies game (where the a₁:b₁ :: a₂:b? format obscures the giveaway). Another ~20 good analogy items added to keep the pool deep after the filter.
Fixed
- fix Define: equal coverage across all 25 languages. Non-English locales were falling back to the English-only analogies pool, so Swedish / French / Japanese players saw English option words like "doctor" or "astronomer" under localised rule labels. Non-English rounds now draw only from fully-localised sources · the 1,400-word CLDR emoji vocabulary and a new country-to-continent pool resolved natively via
Intl.DisplayNames. - fix Define: question word could appear as a wrong answer. On the synonym / antonym relations the distractor loop didn't exclude the prompt word itself, so the very word being asked about could show up as an option labelled "wrong". Both buckets are now filtered.
New
- new Define: country-to-continent rounds in every language. A new source built on
Intl.DisplayNameswith UN M.49 region codes adds ~60 countries × 5 continents, rendered natively in the player's locale. No translation tables · every one of the 25 site locales gets the same variety.
Improved
- improve Game pages: merged "About this page" and "FAQ" into a single collapsible. Every game landing now has one "About this page & FAQ" accordion at the bottom instead of two separate ones, so readers don't have to open two toggles to see the full SEO footer content.
- improve Stroop: in-game language picker. Choose the display language for the color words (25 locales) directly from the idle panel, independent of the site locale. Your choice is saved locally, so a Swede can practice on `blå/röd/grön` even while browsing an English URL.
- improve Ghost: memorize time no longer shrinks as you advance. The game was already hard enough · round decay is gone, so memorize time depends only on grid size and tempo. The selected tempo (Slow / Normal / Fast) determines the pace for the whole session.
New
- new Define · a new vocabulary game at /define. See a word, pick its meaning from 2-6 options. Rounds are generated combinatorially from two shared pools · the Unicode CLDR emoji category vocabulary (fully localised in all 25 languages) and a hand-curated pool of 14 semantic relations (capital-of, young-of, antonym, synonym, habitat, function, part-whole, and more). Distractors are always other correct members of the same category or relation, never random words. Define is also wired into the Labyrinth mini-game pool from level 3 upward.
- new Backwards game at
/backwards. See a word, pick it spelled backwards from the list before the millisecond timer catches up. DOG → GOD, BEAR → RAEB. Ships in all 25 languages, drawing its word pool from the same Unicode CLDR source as Memory and Polyglot, and also appears as a Labyrinth encounter from tier 2 onwards. Best streak and fastest reaction time saved per difficulty. - new New Learn pages. Short "how it works and why it helps" guides now sit alongside the games · the first cover Memory, Pi, Geography and Ghost.
- new Reasoning games now show reaction time. Matrix, Odd One Out, Spatial, and Analogies now measure per-round reaction time in milliseconds (matching the pattern from Stroop). Each correct answer shows your response time, and your fastest-ever answer per difficulty is saved locally and shown on the game-over screen.
- new Labyrinth: scattered ❓ challenge tiles. Every level now sprinkles question-mark tiles across the maze. Walking onto one opens a short mini-game picked from the level's encounter pool. Each tile's question is pinned to its coordinates · re-visiting the same tile asks the same question, so memory pays off. Cleared tiles turn back into plain path.
- new Labyrinth: soft-fail teleport. Answering a challenge wrong (or abandoning it) no longer drops you a level. You're teleported back to the level's start instead, keeping every tile you've already cleared and every item you've picked up. Retry by walking back.
Fixed
- fix Header drop-down and footer on the home page. The home page was missing
SiteFooter, which is where the nav drop-down's toggle script lives · so the "Reasoning / Memory / Words …" menu wouldn't open and the footer itself was absent. Labyrinth now shows in the drop-down under Reasoning on every page including Home. - fix Polyglot encounter prompt now names the language. The prompt previously just said “Foreign word” with the word and no language context, which was confusing when the word (e.g. “casa”) exists in multiple Romance languages. Prompts now lead with “Spanish word” / “French word” / “German word” / “Italian word” above the word itself, and the hint reads “Pick the emoji this {language} word means.” Analogies also switched from “A : B :: C : ?” notation to plain English (“A is to B as C is to ?”) with an explicit hint.
Improved
- improve Labyrinth: full three-beat quest chain with a visible pickup. Every level now lays out the whole quest on the map: quest-giver (mini-game) → the ring you fetch (tool pickup on the solution path) → the obstacle (hole / fire / wall / door). The perfect-maze property forces the order · you can't reach the pickup without beating the giver and you can't reach the goal without using the pickup on the obstacle. Winning the mini-game no longer silently hands you the tool; you have to go get it. Player glyph changed from a neutral person to a 🦸 hero. Quest-givers now show a pulsing “Help!” speech bubble above the tile so they're easy to spot when a new level appears.
- improve Labyrinth: smaller 12×12 grid, tighter top layout. Grid dropped from 24×30 to 12×12 cells so every emoji tile is twice as large and legible on a phone. The top of the page was also too busy · the subtitle paragraph is gone, the hero title is compact, and the level title / HUD row is tighter, so the maze sits near the top of the viewport. Smaller grid also eliminates the long horizontal black stripes that sometimes formed on bigger mazes (long even-row wall runs with subpixel rounding).
- improve Labyrinth: thin walls, open exit, emoji player. Walls are now thin black lines between big walkable cells (alternating
1fr / 5frgrid template), the goal is an empty opening in the top wall above a blank cell (no more emoji on the goal tile), and the player is a 🧑 twemoji sized to fill the cell. The board stretches to fill the viewport width almost edge-to-edge; the page container opens up to 1100px so the maze breathes on desktop too. - improve Labyrinth: bigger map, full-view, homepage header. Grid jumps to 24×30 cells (taller than wide so it fits portrait mobile without scrolling). Fog of war is gone · the entire maze is visible up front. Walls are solid black, paths are white, every feature tile (quest-giver, obstacle, goal) renders its twemoji glyph at all times so the run reads like a classic hand-drawn labyrinth. The home page now uses the same shared
GameHeaderas every other page for consistent navigation. - improve Labyrinth now has a Diablo 2 quest flavour. Each level opens with a named locale (The Blood Moor, Cold Plains, Stony Field … sixteen in total) and a one-line quest subtitle (“Quest · Descend the pit”) that flashes above the board and fades out. Palette switched from paper to torchlight: warm parchment where the light reaches, dim tan at the fog edge, near-black void beyond, dark iron walls, gold-trimmed frame. Quest-givers rotate through twelve robed glyphs and the goal tile rotates through twelve destinations (waygate, shrine, tome, portal, crown …) so repeating a level twice is visually distinct. Player marker is a warm red orb with a soft torch halo.
- improve Labyrinth redesigned as a classic paper-maze. Fixed 12×12 cell grid, white paths with crisp black walls, start at the bottom, goal at the top · no instructions, no tutorial, no toasts, no legend. The player figures it out by moving. Fog now reveals only the cell you stand on and the four walkable neighbours, one step deep in each direction; no trail, no memory · you navigate by the light in front of you.
- improve Labyrinth quest structure. Each level is now a small story: walk into the 🧙 quest-giver on the solution path, beat their short mini-game, collect the item they hand you (🪢 rope / 🪣 bucket / 🪜 ladder / 🗝 key), then use it to clear the one roadblock (🕳 hole / 🔥 fire / 🧱 wall-block / 🚪 door) blocking your way to the goal. Replaces the previous multi-encounter layout with a single self-explanatory chain.
- improve Silent level transitions. Reaching the goal auto-advances; failing the challenge auto-drops a level. The maze simply changes; there is no celebration or failure screen in the way.
- improve Removed the Labyrinth tutorial, onboarding coach-marks, event flashes, toasts, in-game settings drawer, legend, and save-code entry form. All of it: gone. Roughly −1k lines of UI chrome and three dead files so new work is cheaper to reason about.
New
- new Labyrinth. A fog-of-war maze game and the new front-page hero. Walk a top-down grid, see only adjacent tiles, beat short challenges drawn from 13 of the existing mini-games (encounters), and climb level by level. Deterministic maze generation: every level is fully reproducible from a short retro save code like
LVL15-X9B2QK4-7. No accounts, no email; bookmark or paste the code to resume any time. Failing an encounter drops you one level back to the same maze you cleared on the way up · spatial memory pays off. - new Items & roadblocks (L1+). Every level above the floor has a second route to the goal, gated by a thematic obstacle (🕳 hole / 🔥 fire / 🧱 wall-block / 🚪 door). The matching item (🪢 rope / 🪣 bucket / 🪜 ladder / 🗝 key) is hidden elsewhere on the maze. Strategic choice each level: take the long encounter-laden main path, or detour to grab the item and use the shortcut.
- new Pi & Color encounters scale to your level. Reach level 15? You must recall 15 digits of pi or repeat 15 colours in a row. The challenge length is your level number, capped at 100 (pi) and 16 (color).
- new Onboarding tutorial. First-time visitors get a guided 5x5 walk-through of movement, fog of war, encounters, drop-down failure, and the save-code system. Returning players skip straight to play; "Replay tutorial" is in the in-game settings.
- new Animated retro fog. Fogged tiles render with three drifting cloud puffs that pulse softly, each with a per-tile phase so the board never breathes in lockstep. Honours
prefers-reduced-motion. - new Facts game at
/facts. Spot the one true statement among several. Statements are generated on the fly from a pool of schemas (primes, perfect squares, divisibility, arithmetic, month lengths, country flags) so there are no hand-written questions to run out of. Country names resolve viaIntl.DisplayNamesand month names viaIntl.DateTimeFormat, so the game speaks all 25 site locales natively without a translated question bank. - new Emoji mode for Analogies. Toggle between word and emoji analogies on the /analogies landing. Emoji puzzles pair symbols like cow:milk :: chicken:egg, rendered with Twemoji so they look identical on every device.
- new Multilingual parity across Memory, Ghost, Polyglot, Convert, and Pi. Memory, Ghost, and Polyglot now ship emoji labels for all 25 site locales by sourcing names from CLDR annotations (previously 14 locales, the rest fell back to English). Convert's 11 categories and ~90 unit names are i18n-keyed. Pi's 38 constant names and descriptions are i18n-keyed via a new
getConstantMeta(slug, t)helper.
Improved
- improve Home page. Now leads with the playable Labyrinth above the fold; the existing 14-game grid is below in a "Browse the practice games" collapsible. The dedicated
/labyrinthpage also exists for direct linking. - improve Mobile controls. Four-arrow horizontal D-pad below the board, plus swipe-on-board input for the maze itself. Pointerdown for instant tap response with active-state colour feedback.
- improve Matrix game is significantly harder. Medium now starts at 2 rules (ramping to 4), Hard starts at 3 and ramps to 4, and Easy ramps from 1 to 2 as streak grows.
- improve Analogies is now truly infinite. Rewrote the data layer from 64 hand-written A:B::C:D rows into 14 relations × ~12-35 items (country→capital, animal→young, tool→function, antonyms, continents, part-whole, and 8 more). Each round picks a relation and two random pairs from it, so the puzzle space is thousands of combinations instead of 64. Distractors are now drawn from the same relation's other b-values, so wrong options stay on-topic (a capital question offers other capitals, not random words like "Gale" or "Huge").
- improve Removed the Difficulty picker from Memory, Color (Simon), Ghost, Geography, Polyglot, Math, Converter, Crazy Comparisons, Analogies, and Stroop. Players had no reliable intuition for what easy/medium/hard meant per game, and per-difficulty high-score keys fragmented personal bests. Each game's underlying behaviour is pinned to the old "medium" defaults (or a sensible replacement: Geo Top-N = 10, Simon base tempo, Math ±30% distractor range, Converter plausibility spread, Polyglot same-category distractors). A one-shot migration on each game collapses any legacy per-difficulty high scores into the unified key so players keep their bests.
- improve Hot streak badge now renders inline inside the game header next to the logo and game switcher, instead of floating fixed in the top-right corner. Also shown inline with the logo on the home page.
- improve Shared matching engine under
src/lib/matching-engine/: generator-driven rounds, sliding anti-repeat window, magnitude distractor helper, and locale-aware compact number formatting. Crazy Comparisons is the first game migrated to it; other matching games will follow. - improve Crazy Comparisons data model is now language-neutral: numeric facts live in
src/data/crazy-comparisons/facts.jsand all display text routes through the site-widesrc/i18n/ui.tsundercomparisons.*keys (25-locale parity). 25 hand-maintained per-locale question files were removed, so numeric fixes no longer need to be applied in 25 places.
Fixed
- fix Facts: February/29-days ambiguity. The lie generator could produce "February has 29 days" - true in leap years - as a supposedly false statement. 29 is now excluded from month-length distractors so every claim is unambiguous.
- fix Facts: round-level uniqueness for months and flags. In small-pool categories (Calendar, Geography) a round could contain two statements about the same month ("March has 31 days" vs "March has 30 days") or reuse a country's flag as a lie for another country's name, letting players solve by elimination instead of by knowledge. Generators now track used months / countries and avoid repeating.
- fix Facts: high score now saved when you press STOP (not only on a wrong answer), so ending a long streak manually no longer discards the best.
- fix Facts: NaN-safe state initialisation. Corrupted localStorage values for answer count or high score used to render the game unplayable; parsing now falls back to defaults on any non-finite input.
- fix Facts: honours
prefers-reduced-motion. The correct-answer scale animation and 150 ms transitions are disabled for users who have asked the OS for reduced motion. - fix Facts: copy no longer claims "out of four" since 2-6 answers are selectable. Landing description, noscript, FAQ and home-page card all updated across all 25 locales.
- fix UI:
game.categorylabel translated into 24 non-English locales (was hard-coded "Category" everywhere). Used by the Facts and other games' category picker. - fix Memory cards wouldn't flip. A Start overlay sat on top of the grid and swallowed taps, so first-time players tapping cards saw nothing happen. Removed the gate · cards are clickable immediately and the timer starts on the first flip, like a classic memory game.
- fix Analogies repeating questions. With the old 64-question pool and pure-random picking, duplicates started appearing within ~10 rounds (birthday paradox). The new combinatorial engine plus a recent-seen buffer on item ids means the same pair won't resurface for at least ~20 rounds.
- fix Odd One Out: ambiguous puzzles eliminated. A puzzle like
[8, 21, 2, 4]with the answer "4 (only non-Fibonacci)" was broken because 21 is also the only odd number / only non-power-of-2, and 2 is the only prime - multiple defensible answers. A validator now rejects any puzzle where a non-target item is also a unique outlier under common rules (parity, primality, squares, cubes, powers of 2, Fibonacci, multiples of 3/4/5, digit count). The Fibonacci, prime, square, cube, and powers-of-2 generators were also tightened to drop multi-distinctive items (1, 2, 8, 144) that overlapped across categories. - fix Odd One Out: math addition generator infinite loop. When the random target landed at 10 or below, the generator looped forever trying to produce 10 unique
a + b = targetpairs from a pool smaller than 10. Target range now starts at 11 so the loop is always satisfiable. - fix Odd One Out: retry-budget fallback. When the validator exhausted its 80 retry attempts (extremely rare), the old code returned the last rejected puzzle - defeating the validator. The fallback now generates an emoji/shape puzzle instead (unambiguous by construction) so a user is never shown an ambiguous puzzle, even in the worst case.
- fix Matrix answer options no longer look identical. Previously distractors could differ from the answer only in size/fill/rotation, producing choice tiles that were visually indistinguishable (e.g. three "blue +++" options at different sizes). Every option now has a unique (shape, color, count) tuple, so distinctions are always obvious at a glance.
- fix Matrix high score is now saved when you press STOP (and on every correct answer), not only on a wrong answer. Players ending a long streak manually no longer lose their best.
- fix Matrix rotation rules removed. Circle, square, diamond and cross are 4-fold symmetric, so rotation patterns were invisible for half the shape pool and made puzzles unsolvable when they fired.
- fix Matrix double-tap race. A rapid second tap between the click and the next render could slip past the play-phase guard and register two answers for one puzzle. Fixed with a synchronous ref lock.
- fix Matrix "new high" false positive. The end-of-run screen showed the trophy and "New high score!" whenever
round >= highScore, which also fires on a tie with the previous best. Now only shows when the run genuinely beat the saved high. - fix Memory game render loop.
ALL_CATwas rebuilt every render, invalidatingbuildDeck'suseCallback, re-firing the build effect, callingsetCardsagain · an infinite setState loop at ~28k mutations/sec. WrappedALL_CATandcategoryinuseMemo. No more runaway rerenders; the flip handler now commits state reliably.
April 17, 2026
New
- new Hot streak site-wide. A flame badge in the top-right tracks days in a row. Play any game once a day to keep the streak going; miss a day and it resets. Click the badge for your personal best and how it works. Localised across all 25 languages.
Fixed
- fix Polyglot high-score key mismatch. Initial high-score read used a key without
categoryId, while writes (and the post-mount sync effect) used a key that included it. The inconsistency caused the best-streak badge to briefly show 0 on first render. - fix BlogPost schema.org author. Blog post
sameAshardcoded the X/Twitter URL instead of readingAUTHOR_TWITTERfromconstants.ts, so any future handle change would have left blog schema out of date. - fix Emdash in install banner. The iOS "Add to Home Screen" banner's subtitle contained an emdash (slipped past verify because it's assigned inside a script block). Replaced with a middot per F-01 style.
Improved
- improve Stroop game is harder and deeper: answer buttons no longer show a matching color dot (that shortcut bypassed the interference), and a new Mode setting adds a reverse variant where you read the word instead of naming the ink. High score and fastest time are tracked per mode so the easier reverse variant no longer masks your Normal-mode best, and the idle description swaps to match the selected mode.
- improve Games grouped by family. Home page and the game switcher dropdown now cluster games under Memory, Knowledge, Numbers, and Reasoning headings instead of showing one flat list. Each entry in
src/lib/games.tsgained agroupfield;GAME_GROUPSdrives the display order. - improve Removed N-back game. The
/nbacklanding and all locale variants are gone, along with its registry entry, FAQ copy, service-worker precache slot, and translation keys across all 25 locales. - improve Accessibility in quiz games. Memory game dropdowns are now proper
<button>elements witharia-haspopup/aria-expandedand Escape-to-close. Polyglot, Analogies, and Matrix gainrole="group"on their answer sets; Polyglot answer buttons expose the target word viaaria-label(screen readers can now read emoji-only options); Analogies announces the rule viarole="status"; Matrix labels the pattern grid and answer options. - improve Install banner load. The home-screen install banner icon uses
loading="lazy"anddecoding="async", so it no longer competes with above-the-fold content on first paint. - improve First-time player onboarding. Pi and Geography games now show a short how-to-play banner when a new user lands on them, so it's clear what to tap and why.
- improve Geo intro text localised across all 25 locales (previously the map loaded with a raw question and no context).
New
- new Difficulty settings on every game (except Pi). Added Easy/Medium/Hard pickers to Analogies, Polyglot, Converter, Crazy Comparisons, Stroop, Geo, Memory, Ghost, Math, and Simon. Each setting tunes the game in a sensible way: distractor closeness (Converter, Polyglot, Analogies, Math), option count (Crazy Comparisons, Ghost), congruent-word rate (Stroop), top-N depth (Geo, 5/10/20), sequence tempo (Simon), and preset grid size (Memory). High scores are now segmented by difficulty so a streak on hard stays separate from one on easy. Difficulty labels localize across all 25 site locales.
- new Install to Home Screen prompt with "Play on your next flight - works offline" pitch. Android/Chromium captures
beforeinstallprompt; iOS Safari users see Share → Add to Home Screen instructions. Dismissals are remembered for 30 days. - new Verbal Analogies game at /analogies - complete word-pair analogies across function, location, part-whole, cause-effect, synonyms, antonyms and more.
- new Stroop Test game at /stroop - the classic color-word interference test. Pick the ink color while ignoring what the word says. Measures reaction time.
Improved
- improve Service worker pre-cache now covers every game landing (was 9/13). The offline "play on your next flight" promise now holds for Sequences, Matrix, Odd One Out, and Spatial too.
- improve manifest.json adds
display_override,prefer_related_applications,lang, anddir. Description now leads with offline / flight use case. - improve Analogies / Stroop localized: all interface strings and Stroop color words (RED/BLUE/GREEN...) now translate per locale. Stroop color words are shown in the player's language so the interference effect actually works; analogy content sits in a locale-keyed data file ready to grow beyond English.
Fixed
- fix Blank page on return to browser (iOS Safari). Tabs restored from the back-forward cache with a service worker registered occasionally came back visually empty.
Base.astronow reloads onpageshow/visibilitychangewhen the main element measures zero height, so the content recovers instead of showing an empty viewport. - fix Odd One Out: the game could get stuck on the correct-answer screen without advancing. Auto-advance is now scheduled via a
useEffectkeyed onphase === 'correct', removing a stale-ref race that could swallow the timer between rounds. - fix Sitemap: URLs now use the correct
/{game}/{locale}ordering (matching canonical URLs) instead of/{locale}/{game}, and game prefixes are auto-discovered fromgames.tsso new games appear insitemap.xmlautomatically. Previously all non-EN game locale variants were absent from the sitemap. - fix Browser-language auto-redirect in
Base.astrohad a hardcoded 4-prefix list (/color /memory /geo /pi) so the redirect silently skipped 12 of 16 games. Now injectsGAME_PREFIXESfromgames.tsat build time. - fix Game page copy accuracy in
game-faqs.ts: Memory grids (6×10 max, not 8×8), Convert categories (11, not 8), Polyglot languages list (added English; FAQ now reflects actual 14 supported languages), Math operations (now mentions squares and square roots). - fix Copy accuracy (round 2): Color Memory (added missing 24-color option to meta descriptions + FAQ); Memory (claimed 10 fictional categories incl. "medical", corrected to the actual 9 Unicode categories); Matrix (claimed 5 shapes, there are 8); Sequences (claimed 8 pattern types, code has 14); Polyglot (removed false "spaced repetition" FAQ - the game uses random shuffle); Analogies (removed false "progressive difficulty" claim - the pool is flat).
- fix Matrix half-fill rendering. SVG shapes (hexagon, star, cross, arrow, triangle) rendered the "half" fill as a uniformly 50%-opaque shape while div-based shapes (circle, square, diamond) rendered it as a crisp left-colored / right-transparent split. Players could see a "correct" answer that looked like it did not match its row. All shapes now use the same left-half-filled rendering, and triangle is now an SVG polygon for consistency.
April 16, 2026
New
- new Number Sequences game at /sequences - find the next number in arithmetic, geometric, Fibonacci, prime, and other sequences.
- new Matrix Reasoning game at /matrix - Raven's Progressive Matrices style pattern completion with shapes, colors, and sizes.
- new Odd One Out game at /odd-one-out - spot the item that doesn't belong across numbers, emojis, letters, shapes, and math expressions.
- new Spatial Rotation game at /spatial - find the rotated match among mirrored distractors. Trains mental rotation ability.
Improved
- improve Uniform game UI all game selection controls (difficulty, topic, category, answers) now use shared dropdown components. Selectors appear above the start box for a consistent layout across all 11 games.
- improve Shared GameControls new
GameSelectandIdlePanelcomponents insrc/components/game/GameControls.jsxreplace per-game inline button groups with uniform dropdowns and start boxes. - improve Per-game theme colors each game's Start button now uses its registry theme color from
games.tsinstead of a generic blue. - improve All games now show a one-sentence explanation of the game while the Start button is visible, so new players know what to do.
- improve Sequences, Matrix, Spatial, Odd One Out now have configurable difficulty levels (easy, medium, hard) and answer count selectors.
- improve Sequences added topic selector to practice specific sequence types (arithmetic, geometric, Fibonacci, primes, powers, triangular).
- improve Odd One Out added category selector (emoji, numbers, letters, shapes, math) so players can focus on specific puzzle types.
- improve All games now display translated UI strings for non-English users (stop button, settings, round counter, etc.).
- improve Ghost game wrong-answer screen now shows answer options with green/red highlighting and highlights the removed emoji in the grid, so you can see what you picked vs the correct answer.
- improve Polyglot game category selector replaced with a compact dropdown instead of a row of buttons.
- improve Design system added semantic color aliases, spacing scale, type scale and shadow scale as CSS custom properties in
global.css. Site-wide visual changes now require editing one file. - improve Button system added
.btnbase class with--primary,--secondary,--ghost,--danger,--successvariants and--sm/--lg/--blockmodifiers. Replaces ad-hoc inline button styles. - improve Game registry now carries a
themeobject per game. Adding a new game auto-themes its landing card with no CSS edits needed. - fix Canonical URLs normalized across all 7 game landing pages to match the site's
trailingSlash: 'never'policy and sitemap. - fix Crazy Comparisons title trimmed from 62 to 55 characters and normalised double spaces.
Fixed
- fix Odd One Out expanded all item pools to support 10 answer choices: powers-of-2 (added 256-1024), cubes (added 216-1000), all 12 emoji groups, letter generators (longer words: PLAYGROUND, KEYBOARDS, BIRTHDAYS, SOMETHING). Depth fallback no longer silently resets answer count.
- fix Spatial added safety guard to polyomino generation preventing rare infinite loops.
- fix Odd One Out removed font-dependent letter classifications (curved/straight, symmetry, enclosed spaces) and replaced with unambiguous rules (vowels/consonants, alphabet halves, letters in words).
- fix Simon Says color flashes no longer disappear at 300% speed. Fixed timing overlap where the off-timer from one flash killed the next flash's visual.
- fix Simon Says audio now pre-scheduled via Web Audio clock instead of setTimeout callbacks, fixing silent playback on iOS after speed changes.
- fix Crazy Comparisons correct-answer celebration tone now reliable on iOS (was using nested setTimeout).
- fix All games Play Again buttons now use each game's theme color instead of generic blue, matching the Start button for visual consistency.
- fix Polyglot dropdown selectors now use the shared gameSelectStyle with custom arrow, matching all other games.
- fix Math removed empty in-game settings panel that opened to show nothing.
- fix Site-wide internal links all 170,475 internal links across 5,811 pages now resolve correctly. Build-time link checker enforces zero broken links going forward.
- fix Geo blog Indonesian articles had inverted
/{lang}/geo/path · fixed across all 176 articles to/geo/{lang}/. - fix Geo SEO footer "Blog" and "Privacy" links now point to global routes rather than non-existent
/geo/{lang}/blog. - fix Constants page cards now link to the new blog "What is X?" articles (which exist) instead of legacy
/pi/{slug}hub URLs. - fix Pi hub page primary "Play" CTA now goes to
/pidirectly (was broken/pi/pi/play). - fix Major system component step-list links now respect the active locale, no longer producing broken English-only URLs in non-English builds.
- fix Memorise CTA button on the localized memorise pages now points to the global blog article (which exists).
- fix Language switcher EN-only learn pages now fall back to home for unsupported locales instead of emitting 404 links.
- fix Geo game "Study" blog link now uses site-wide
/blog/path instead of broken/geo/blog/path, and only appears when the article actually exists for the current locale.
April 15, 2026
New
- new Unit Converter game at /convert with 11 categories (Length, Weight, Volume, Temperature, Area, Speed, Time, Digital Storage, Pressure, Energy, Fuel Economy). Includes both a converter tool and a quiz-style game mode.
- new Ghost and Polyglot blog articles in 25 languages with full color-box styling and memory technique guides.
- new /about page with author photo, bio, game grid, and design principles.
- new /accessibility page detailing WCAG compliance and accessibility features.
- new /changelog page (this page) for tracking all site updates.
- new FAQ sections on all game pages.
- new Author bylines on all blog posts with photo, name linking to /about, and localized dates.
Improved
- improve Landing page uses 4x2 CSS grid on desktop for consistent card sizing and centering. Game cards wrap and center properly on desktop.
- improve Unit Converter formula explanations and question text now use full unit names instead of abbreviations ("500 Milliseconds" vs "500 ms"). Mobile-first stacked layout with category dropdown.
- improve About blog article in cs, pl, hu, ro, tr, nl now has proper Unicode characters.
- improve Memory blog articles in all 24 non-English languages now have full color-box styling (tip-box, warn-box, key-point, strategy-card, step-badge).
- improve Geo blog Swedish cities article now available in all 25 languages (added cs, el, he, hu, it, nl, pl, ro, th, tr, uk).
- improve Math game operation buttons and settings now centered to match other games.
- improve Footer link labels now fully translated via i18n in all 25 languages. Copyright uses AUTHOR constant. Footer now includes About link, LinkedIn/X social links, and copyright notice.
- improve Blog bylines use AUTHOR constant and i18n for "Back to blog" text across all locales.
- improve Blog index game labels now come from the centralized game registry instead of hardcoded strings.
- improve No more scientific notation anywhere. Large/small numbers displayed in full decimal with commas.
- improve No emdashes anywhere on the site. Replaced with middots for cleaner display.
Fixed
- fix Language selector on English-only pages (About, Changelog, Accessibility) no longer produces broken URLs. Redirects to locale home instead.
- fix Distractor generation for extreme values (electronvolts, very small/large numbers) now stays in the correct order of magnitude.
- fix Zero-answer edge case in converter game no longer causes infinite loop.
April 14, 2026
New
- new Speed Math game at /math with configurable operations, number ranges, and difficulty.
- new Twemoji Ghost game (Kim's Game) at /ghost with 2-40 emoji grids, adjustable tempo, and smart distractors.
- new Twemoji Polyglot game at /polyglot supporting 14 languages with emoji-word association.
- new "Why I Built PlayMemorize" article published in 25 languages.
- new Memory blog articles with cognitive science techniques in 25 languages.
- new Pi blog posts for all 24 non-English languages.
- new Unified blog at /blog aggregating articles from all games.
- new Offline mode with service worker, install prompt, and PWA manifest.
- new 24-color mode for Color Memory game.
- new Auto-detect browser language and set locale defaults.
Improved
- improve SEO: canonical URLs, schema.org markup, meta descriptions, and sitemap across all pages.
- improve Consistent schema across all localized game pages.
- improve Uniform header design across all games with dark menu background.
- improve In-game settings collapsible on all games to reduce visual clutter.
- improve Ghost: preload all emoji SVGs before showing grid to prevent flicker.
- improve Polyglot: all languages loaded from emoji data, bigger emojis, portrait-friendly grids.
- improve SEO "About this page" sections added to all game pages.
- improve Human Timer: enhanced CAPTCHA with visual noise, jitter, and variable weights to improve robot-resistance.
Fixed
- fix Memory game: fixed card flip dependency causing missed clicks.
- fix Ghost: capped cell size and scaled grid to fit mobile screens.
- fix Polyglot: fixed crash on language switch and emoji sizing issues.
- fix Timer leaks and React performance issues across all games.
- fix Broken links, header layout, and excess spacing throughout.
- fix Color game: speed always starts at 100% now.