CALLIGRAPHY AI · COMPUTER VISION · 2025—2026
Can balance be measured?
We built a webcam prototype that scores individual Chinese characters and the composition of the entire page. The goal is faster, more explainable practice feedback, not a replacement for a calligraphy teacher.

Good individual characters do not always add up to a balanced page.
Calligraphy teachers read at two scales. They look at the form of each character, but they also read 章法: the spacing, rhythm, tilt, and balance of the complete page.
Previous research offers many ways to score an isolated character, but almost no comparable work examines the composition of an entire page. We wanted one camera frame to return both kinds of feedback while still showing the student what the score was based on.
Character quality
Visual form, ink density, and position inside each crop.
One score per characterPage composition
Rows, spacing, tilt, and size across the complete page.
One score for the layoutOne image, two kinds of feedback.
The detector finds the characters once. Their image crops feed the character model; their positions and sizes feed the page model.
- 01Capture
Webcam frame or uploaded page
- 02Detect
Find and crop each character
- 03Score twice
Character model + page geometry
- 04Return feedback
Color-coded characters + overall score
512 learned features + 4 explicit measurements
A grayscale ResNet18 describes the visual form. We append ink density, horizontal stroke gradient, and the x/y center of mass before the final 0–100 regression score.
512 + 4 = 516 dimensionsA label-free score built from visible geometry
Detected characters are grouped into rows. Four interpretable subscores measure row entropy, spacing, tilt, and size consistency.
40% entropy · 30% spacing · 20% tilt · 10% size

Feedback while the page is still in front of them
Green, orange, and red boxes point to stronger and weaker characters. A separate 章法 score keeps the page-level problem visible instead of hiding everything inside one number.
- Green
- score ≥ 70
- Orange
- 40 to 69
- Red
- below 40
- Runtime
- a few frames per second on laptop CPU
The useful experiments did not all make the model look good.
One test showed a very close fit, one made the prediction worse, and one checked whether the page score moved in the right direction.

MAE = 0.3457 across 1,386 validation instances. Because related augmentations can appear on both sides of the split, this is not new-writer performance.
The model closely reproduces labels inside the current augmented data distribution.
Rotation plus horizontal flipping made the error almost twenty times larger. A flipped stroke is not the same character, and the explicit features no longer match the CNN view.
Every transformed version of one original must stay on the same side of the evaluation.

Synthetic position noise, alternating row tilt, and size jitter all reduce the score. Correlations range from −0.78 to −0.99 across 20 trials per setting.
The per-character model closely reproduces the available expert-derived grading labels within the current augmented validation split.
That expert calligraphers would give the same scores to real student work.
Better evidence matters more than a larger model.
The current prototype is enough to reveal the important gaps. Each next experiment answers one of them directly.
It began as a Shanghai mathematical-modeling project, became an interactive science-fair prototype, and then developed into the current ACM manuscript. The model changed, but the original question stayed: how can a subjective judgment become more transparent without pretending it is objective?
Computing an aesthetic judgment does not make it objective. It forces us to state what we measured, so a teacher can see those assumptions and disagree.