Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
Printable dot-to-dot pictures for young kids
Translation pending
EducationHTML · JavaScriptGitHub @tb-xOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A maker for printable dot-to-dot puzzles for young kids (around age 5). Each puzzle is a hidden picture drawn as numbered dots: the child joins them in order with a pencil, and a fish, a rocket or a teddy bear appears. It's counting practice, and with the numbers going up in 2s, 5s or 10s it's skip-counting practice for bigger kids. The sheets have no words, so they work for kids who can't read yet, and they're made for a black-and-white printer. The answer is hidden in a QR code: scan it with a phone camera to watch the picture being drawn.
Live at https://tb-x.github.io/dot-to-dot/
The dots are picked from each picture's outline by the computer: it samples the outline finely, then keeps the points that matter most for the shape (Visvalingam–Whyatt simplification, so corners stay), and spaces out the dots along straight edges. The numbers go just outside the outline, at whichever spot keeps them clear of the other numbers, the dots, the printed lines and the line the child will draw.
The QR code holds only the picture, the number of dots and what the numbers count by, e.g. #p3n20s1 (the
fish, 20 dots, counting in 1s); the answer page works the dots out again the same way. Nothing is stored
anywhere, so a printed sheet keeps working for as long as this page is online. The QR always points at the
published page on GitHub Pages, even when the maker runs on a local server.
| # | Picture | Fewest dots |
|---|---|---|
| 0 | Star | 10 |
| 1 | Heart | 10 |
| 2 | House | 10 |
| 3 | Fish | 10 |
| 4 | Sailboat | 10 |
| 5 | Rocket | 15 |
| 6 | Crown | 10 |
| 7 | Christmas tree | 15 |
| 8 | Apple | 10 |
| 9 | Cat | 15 |
| 10 | Butterfly | 20 |
| 11 | Umbrella | 10 |
| 12 | Whale | 15 |
| 13 | Bird | 15 |
| 14 | Car | 15 |
| 15 | Teddy bear | 15 |
| 16 | Dinosaur | 20 |
| 17 | Bunny | 15 |
| 18 | Elephant | 20 |
The number is the p in the answer link, so new pictures only ever go on the end of the list.
It's a single index.html with no build step. Serve the folder and open it:
python -m http.server 5220
Then go to http://localhost:5220/. Opening index.html straight from disk works too. The QR codes are made
by qrcode-generator 1.4.4 (MIT), loaded from cdnjs.
After the first visit the page also works offline and can be added to a phone's Home Screen.
Named constants at the top of the script in index.html:
| Constant | Default | What it does |
|---|---|---|
DEFAULTS | 20 dots, counting in 1s, Surprise me, 1 a page, 1 page | Starting settings |
DOTS | 10, 15, 20, 30, 50 | The choices in the Dots list |
STEPS | 1, 2, 5, 10 | The choices under "Count by" |
SHEETS_MAX | 20 | Most pages printed at once |
GRID | 1, 2 (one above the other) | How the puzzles sit on a page |
DIGITS | 3.6 / 3.4 / 3.2 / 2.9 / 2.5 mm | How tall the numbers' digits are at 10 / 15 / 20 / 30 / 50 dots, 1 a page |
DIGITS_2UP, DIGITS_MIN | 0.85, 2.8 mm | Numbers a bit smaller with 2 a page, but never under 2.8 mm at 20 dots or fewer |
NUM_INK | #8d93a1 | The numbers' grey: lighter than the dots, so the picture stands out more than the numbers |
DOT_R / START_R | 1.15 / 3.4 mm | Size of a dot, and of the star around dot 1 |
LINE | 0.75 mm | Thickness of the lines printed from the start |
MAX_PIC | 168 mm | The biggest a picture gets |
QR | 20 mm | Size of the answer QR code |
LEN_W | 0.06 | Picking dots: higher spreads them more evenly, lower keeps more small bends |
CORNER_BONUS | 3 | Picking dots: how much more a sharp corner counts than a gentle bend |
RELAX | 6 | Picking dots: rounds of evening out the gaps along straight edges |
PUBLIC_URL | https://tb-x.github.io/dot-to-dot/ | Where the QR codes point |
Changing LEN_W, CORNER_BONUS or RELAX moves the dots, so a sheet printed before the change no longer
matches its answer page exactly (the picture is the same, but the dots sit in slightly different places).