1,000,000 digits · search, jump to any position & test your memory

Pi Memory Training with π — 1,000,000 Digits to Search & Practice

Most pi references are just a wall of text to scroll through. This one's built for practice: search for any sequence to see exactly where it falls, or jump straight to a specific position to test how far your memory really goes. A genuine training tool for memorizing pi, not just a reference to browse.

Pi (π) is the ratio of every circle's circumference to its diameter — an ancient, endless constant mathematicians have chased since Archimedes bounded it by hand over 2,200 years ago. The computer era began in 1949, when the ENIAC calculated π to 2,037 digits in 70 hours; the current record, set in November 2025 by StorageReview and Micron Technology, stands at 314 trillion digits.

1,000,000
digits — browse the full dataset
314 trillion
digit world record — StorageReview & Micron, Nov 2025
70,000
digits recited from memory — Rajveer Meena, 2015
π Digit Browser
×
digit 0 scroll ↓
Account settings
×
Code: How this works
Current performance
This is what loads in automatically every time you log in with this code — it stays set until you change it below and hit Save.
These settings belong to your peek screen itself, not any one mode — they stay exactly as saved no matter which mode above is active or how you switch between them.
A default background is already applied — replace it with your own anytime. If you use a home screen screenshot, crop out the top status bar (time, signal, battery) first using the Photos app's edit/crop tool, so it sits correctly behind the real status bar instead of showing a duplicate.
Your peek screen is at onemilliondigits.com/
Each search a spectator makes uses the next group below, in order. A 5th search onward behaves as a normal real search. Position 1 in each group is required — 2–4 are optional. The string box replaces whatever comes after the searched digits, both in the preview and in the database. Use X to repeat, Y to repeat reversed — see below.
Search 1
Search 2
Search 3
Search 4
Shorthand: X repeats what came before it; Y repeats it reversed.
1234X12341234 · 1234XXX1234123412341234 · 1234Y12344321
Activation code
×
Enter the activation code you received on purchase to unlock settings for code .
Settings PIN
×
Enter your 4-digit Settings PIN. First time here? Whatever you enter now becomes your PIN going forward — make sure you remember it.
Choose your number
×
Pick your 4-digit number to be yours. This is the code you will search to start each performance. This code cannot be changed once set. If your code is taken, please try another.
How this works
×
The full guide to running a routine end to end. Tap any mode below for its complete instructions — you can reopen this anytime from Settings.
Getting started
1. Activate. On any phone — go to onemilliondigits.com, type your code into the search box, and tap the very last result that appears. This opens the digit database showing where your number sits in pi — that's expected, and it's what activates the device. Tap the × in the top right to close it and land back on the homepage. Closing it this way never logs you out — that device stays logged in as you, in whatever mode you've set, for the rest of the routine.

2. Confirm privately. The moment you tap that × to close the database is exactly when the confirmation updates — so once you're back on the homepage, glance at the paragraph under the title. It normally reads "…calculated π to 2,037 digits…" — while a mode is actively running, that number quietly becomes your own code instead (e.g. "1,111"), then reverts to 2,037 the instant nothing's active. Nothing a spectator would ever notice or think twice about.

3. Your own phone never has to touch the search. This is the whole structure: hand a spectator your phone (or borrow theirs) already open to the homepage, and have them type your code in and tap the last result with you — completely natural, looks like nothing at all. From that moment, whatever they type next (their birthday, a chosen number, anything) is what gets forced or revealed. Your own phone is free to sit elsewhere entirely, doing nothing but quietly running your Peek Screen.

4. Set up your Peek Screen. On a second device — your own phone, kept out of sight — open:
onemilliondigits.com/XXXX
This is your private screen — it updates live the instant the spectator's device searches, showing exactly what's been forced or found, and which step of a Workflow you're on. Add it to your home screen for the most convincing look — opened that way it fills the whole screen with no browser visible at all.

5. Choose how it looks. In Settings, pick your Peek Screen's disguise before anything's revealed — Black Screen (plain), Image (your own home screen photo — a default is provided, or upload your own), or Notes Screen (disguised as a Notes app, iOS or Android style).

6. Settings PIN. The first time you ever open Settings, whatever 4-digit PIN you type becomes your PIN from then on — it protects your setup from anyone else who happens to know your code number.
Modes — tap for the full guide to each
None (Idle)
Nothing is active. Searches behave exactly like the ordinary public site — nothing forced, nothing sent anywhere.
Force Mode
Whatever a spectator types, the result shown is one you've set in advance — a real position in pi with your own text planted after it. You configure up to 4 searches in a row, each with its own forced position.
Real Mode
Nothing is forced — the real, genuine digits of pi are searched. But every digit typed, and the position it's found at, is quietly sent to your Peek Screen live as they type.
Workflow
Chain several steps together for a full routine — mix Force, Real, Birthday, and Normal blocks in any order. Each spectator search moves to the next block automatically.
None (Idle) — full guide
×
What it does. Nothing at all. Even while you're activated (logged in as your code on a device), leaving the mode as None means every search on that device behaves exactly like it would for any stranger visiting the site — genuinely real, nothing forced, nothing sent to your Peek Screen, and no silent confirmation text either.

When to use it. This is your safe resting state between routines. Activate your code, leave the mode as None, and hand the phone around freely — there's zero risk of accidentally triggering a plant or a broadcast while you're just setting up or chatting. Switch to Force, Real, or Workflow in Settings only in the moment right before you actually want that behavior live.

Why the hero text doesn't change here. The private "2,037 → your code" confirmation (see Getting Started) only ever appears while an active phase is genuinely running. In None, it deliberately never shows — so idle browsing never risks tipping anything off, even to someone technically-minded enough to know to look for it.

Switching modes. Settings → choose your mode with the mode buttons at the top → Save. You don't need to reactivate afterward — the change applies the next time that device checks in.
Force Mode — full guide
×
What it does. Whatever digits a spectator's device searches, the result shown is one you've set in advance — a chosen position in pi, with your own text planted directly after it, so it reads as a completely genuine occurrence.

Setting it up. Settings → choose Force Mode → you'll see four groups, Search 1 through Search 4, one for each search the spectator makes in a row after you activate. Expand any group to reveal up to 4 rows, each with a Position box and a String box.

Position box. Type the exact digit position in pi you want this result anchored to. Leave it empty (it'll show a grey "POS" hint) and that row uses the spectator's real position instead — genuinely wherever their digits actually occur in pi, no configuration needed.

String box. Type the digits you want to appear directly after the spectator's search (numbers only, plus X and Y shorthand — see below). Leave it empty (grey "STRING" hint) and the row shows whatever digits genuinely follow that position in real pi instead.

Mix and match freely. Position and String are entirely independent per row — force the position but leave the string genuine, force the string at a real position, or leave both real. Any combination works.

Why 4 rows per Search. Row 1 is what's actually planted and shown as the main "found" result. Rows 2–4 are optional extra "also found at position…" cards shown underneath, for texture — genuinely useful if you want the sequence to appear to occur several times. Leave any of rows 2–4 completely empty and it's simply skipped.

X / Y shorthand in the String box. After some digits, X repeats what came immediately before it, and Y repeats it reversed. E.g. after matching "47", typing 47X gives "4747"; typing 47XX gives "474747"; typing 47Y gives "4774".

How it plays out live. Search 1 fires on the spectator's very first search after activation, Search 2 on their second, and so on. After all 4 have fired, searching automatically reverts to ordinary real behavior — no need to switch anything off manually.
Real Mode — full guide
×
What it does. Nothing is forced or planted — the search a spectator's device runs is completely genuine, real pi, start to finish. What makes it useful is that the position it's found at, and a run of digits continuing after it, are quietly sent to your Peek Screen live — as they type, before they've even pressed Search.

Setting it up. Settings → choose Real Mode → set Digits after, the number of continuing digits sent to your Peek Screen following the match (12 by default — raise or lower it to taste).

Why it's convincing. Because absolutely nothing is planted, there's no risk of a mismatch or a spectator double-checking and finding something odd — the underlying data is entirely legitimate. The effect comes purely from you appearing to know what's about to be found before it's revealed, which you genuinely can, by reading it off your own Peek Screen a moment beforehand.

Live-as-you-type detail. Unlike Force Mode, you don't need the spectator to finish typing or press Search at all — every keystroke updates your Peek Screen in real time, so you can start reacting the instant enough digits are in to be useful.
Workflow — full guide
×
What it does. Chains multiple steps into one continuous routine — mix Normal, Real, Birthday, and up to 4 different Force setups in any order you like. Each search the spectator's device makes advances automatically to the next step.

Building one. Settings → choose Workflow → New Workflow. Give it a name, set Digits after (used by any Real or Birthday steps in this workflow), then add steps in order using the block picker.

The four block types:
Normal — an ordinary genuine search, nothing sent anywhere. A breather step.
Real — same as Real Mode: live-streams the genuine position and continuing digits to your Peek Screen as they type.
Birthday — interprets a 6-digit search as DD/MM/YY and sends the date, day of the week, star sign, and days-until to your Peek Screen. If the digits genuinely aren't a valid calendar date, or don't occur in pi in exactly that form, it automatically falls back to a plain real reveal rather than failing outright.
Force 1–4 — each number is its own independent Position/String setup, configured right there in the workflow editor exactly like top-level Force Mode's Search groups (see the Force Mode guide for the full details on those fields).

Running it. Activate as normal — search your code, tap the bottom result. The workflow's steps run in the exact order you built them, one per spectator search, then automatically settles into Normal behavior once they've all run.

Choosing which workflow is live. Settings → select Workflow as your mode → pick the one you want from your saved workflows.
Customize Layout
×
Tap a field below to drop it onto your image, then drag it into place. Tap a placed field to remove it. This replaces the default peek text with your own layout on this background.

About this site

onemilliondigits.com presents the first one million decimal digits of π as an entertainment reference. The full dataset is free to browse in the digit viewer above.

As an additional feature, you can search the dataset for any sequence of digits — a birthday, an old phone number, anything you'd like to check for. Enter a string of digits above and we'll show you where it first appears, along with the surrounding digits for context.