REAL DATA • NO API
01 / INTERACTIVE WORKSPACE · DATA-DRIVEN LEARNING

Every digit tells
a bigger story.

A hands-on AI lab that recognizes handwritten numbers, surfaces uncertainty, and turns model mistakes into opportunities to learn.

TEST-SET ACCURACY ↗
—
On unseen historic digits
MACRO F1 SCORE ↗
—
Across all ten classes
REAL DIGIT SAMPLES ↗
1,797
Public research dataset
CLASSIFIER TYPE ↗
Logistic
Explainable multiclass model
LIVE INFERENCE

Draw a number.

Draw any digit from 0 to 9. The model will read it instantly.

A / 01
8 × 8 PIXEL INPUT
BRUSH TYPE
EXAMPLES
Interactive 8×8 handwriting canvasLOCAL • PRIVATE
MODEL OUTPUT

The model thinks...

Live confidence distribution with uncertainty-aware feedback.

B / 01
—
Draw or choose a sample
The prediction and supporting evidence will appear here.
TOP PREDICTIONSMODEL CONFIDENCE
✦
More than an answer

Explore which numbers get confused and what teachers can do about it.

Probabilities are model estimates, not proof of student ability.
02 / LOOK BENEATH THE SURFACE

Understand the misreads.

Prediction quality by digit

RECALL / 0–9

Where confusion happens

ACTUAL TEST ERRORS

Based on the fixed 360-sample holdout set, not on live learners.

02 / MODEL TRANSPARENCY

Evidence over
AI magic.

From raw pixel values to reproducible results. Inspect the same unseen examples used for evaluation.

HOLDOUT SAMPLES
360
20% stratified test split
LOGISTIC ACCURACY
—
Exported browser model
RF ACCURACY
—
Independent benchmark
MAJORITY BASELINE
—
Intentional naive baseline

Confusion matrix

ACTUAL → PREDICTED
Select any cell to inspect the outcome.

Reproducible evaluation

PROTOCOL
01

Authentic research data1,797 8×8 digit images from scikit-learn's copy of the UCI optical digits dataset.

02

Stratified holdout80% train / 20% test with fixed random seed 42. No test samples are used in fitting.

03

Standardization + logistic regressionMultinomial classifier trained in scikit-learn. Coefficients exported to the browser.

04

Independent comparisonsRandom forest and majority-class baseline evaluated on exactly the same test set.

Explore unseen data

REAL HOLDOUT SAMPLES
03 / HUMAN-CENTERED PRACTICE

Turn confusion
into curiosity.

Use this prototype to practice classifying real handwritten numbers and learn from cases the model finds challenging. This is not a learning-outcome study.

PRACTICE SESSION
QUESTION 1 / 10
Which number is written here?
Choose what you see, then compare your answer with the model.
LEARNING DESIGN

Review, don't label.

This activity explores model uncertainty. It does not evaluate or profile children.

01Review uncertain examples

Low-confidence cases deserve a second look, not automatic correction.

02Discuss similar shapes

Compare curves, strokes, and closure in commonly confused digits.

03Keep educators in control

Human review comes before any classroom use or intervention.

Practice score: 0 / 0. Responses remain in this browser session only.
04 / RESPONSIBLE DESIGN

Built to question
its own certainty.

This project is a technical demonstration. It is not certified for educational assessments or decision-making about students.

⌂

Privacy by default

Inference happens entirely in your browser. The drawing canvas, practice responses, and inputs are never sent to our servers. No accounts, tracking, or personal identifiers.

◎

Visible uncertainty

Top probabilities are displayed alongside the result. Ambiguous or unusual handwriting should prompt human review rather than automated grading.

≋

Known limitations

The 8×8 historical dataset is small and does not represent today's children, diverse writing tools, motor abilities, or classroom conditions. No subgroup fairness claim is made.

↗

Next validation step

With consent and appropriate safeguards: collect representative non-identifiable handwriting samples, measure subgroup performance, calibrate confidence, and conduct educator co-design.

Data provenance & implementation

Scikit-learn Optical recognition of handwritten digits dataset (UCI collection, E. Alpaydin, 1998), 1,797 samples, 64 pixels each. Training: StandardScaler + LogisticRegression, C=0.7, seed=42. Test protocol: stratified 20% holdout. Model operates with JavaScript math and standard browser APIs.