AnkiWeb
- Rating
- 0 (π 0 Β· π 0)
- Updated
- 2026-09-21
- Anki versions
- unknown
- Description language
- en
AnkiWeb addon 941300810
Enables tracing symbols, Kanji, Kana, and letters on Anki cards with stroke-accuracy scoring, visual feedback, batch image importing, and mastery-based guide fading.
Open on AnkiWeb GitHub Ask about alternatives
active
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.0 | β | 2026-09-21 |
Loadingβ¦
Synchronises WaniKani kanji and vocabulary up to your passed level into Anki decks, requiring an APIv2 key and adding new notes on reruns.
Bulk-inserts color-coded static SVG stroke order diagrams from a chosen source field into a target field, with KanjiVG data, optional kana, filters, and dark mode support.
Lets users practice Japanese handwriting by drawing hiragana, katakana, or kanji in Anki, recognizing input and checking kanji against references with feedback.
Automatically adds colored stroke order diagrams to kanji cards as media, working even without the addon on AnkiWeb, with customizable fields and generation options.
Creates an ordered photo deck pairing consecutive images as flashcards to build an autobiographical memory chain and improve episodic memory, with PyQt5, Python3.7, and file-management improvements.
Uses Pygame to let Anki users practice writing Japanese kanji, grading stroke order and balance with hints and saved scores for about 6,500 characters.
Addon for Anki Desktop that teaches the writing of symbols (alphabets, kana, devanagari, etc.) through tactile tracing on a template derived from a real image. The guide fades progressively as your spaced repetition score for each symbol improves.
The addon computes a mastery level (0β100%) for each symbol based on your review history:
mastery = max(0, min(100, round(100 Γ min(reps β lapses, 5) / 5)))
guide_alpha = 15 + (mastery / 100) Γ 90
reps β lapses, lowering mastery and lightening the guide β inspired by
programmed instruction (Skinner): the prompt is withdrawn as the response consolidates,
and restored when a failure is recorded.Edit addon/config.json to adjust defaults:
{
"tolerance": 10,
"binarization_threshold": 128
}
| Key | Default | Description |
|---|---|---|
tolerance |
10 px | Radius around your stroke considered a "hit" (compensates for touch tremor) |
binarization_threshold |
128 | Luminance threshold for separating guide pixels from background (0β255) |
Note: After changing
config.json, you must also update the matching values inaddon/card_template/front.html(theCONFIGvariable in the inline script), because the card template JavaScript cannot read the Python config file at runtime.
Important β read before installing
Add-ons only run on Anki Desktop. If you review exclusively on AnkiDroid or AnkiMobile, the guide opacity is not updated in real time. It is recalculated the next time you open or sync Anki Desktop.
The tracing canvas and miss detection do work natively on AnkiDroid and AnkiMobile, because they are standard HTML/JS in the card template, not add-on code.
cd ~/Projects/learn-to-write
python -m pytest tests/ -v
Tests for mastery.py have no Anki dependency.
Tests for deck_builder.py use a mocked col object.
learn-to-write/
βββ addon/
β βββ __init__.py # Menu setup and hook registration
β βββ import_dialog.py # Symbol import dialog (QDialog)
β βββ deck_builder.py # Note type and deck creation (idempotent)
β βββ mastery.py # Mastery formula and batch recompute
β βββ hooks.py # Anki GUI hook registration
β βββ card_template/
β β βββ front.html # Card front: guide + tracing canvas
β β βββ back.html # Card back: score overlay
β β βββ trace_widget.js # Tracing, binarization, dilation, scoring
β βββ manifest.json # Addon metadata
β βββ config.json # Default configuration
βββ tests/
β βββ test_mastery.py
β βββ test_deck_builder.py
βββ docs/
β βββ README.md # This file
β βββ ankiweb_listing.md # AnkiWeb public listing text
βββ LICENSE # AGPL-3.0
βββ .github/workflows/ci.yml # Lint + tests on push
AGPL-3.0 β see LICENSE.