Inspiration

In Japanese calligraphy class, the teacher corrects your work with a red brush (shuhitsu) in vermilion ink. When you learn alone, that teacher becomes a video on a phone: you watch a stroke, look down at your paper, and by then the motion is gone. You keep looking up and down, losing your place, with a wet brush in one hand.

Brush calligraphy is about how a stroke moves: where the brush touches down, where it presses, where it gathers before a hook, how it lifts on a sweep. That motion belongs on the paper, not on a screen beside it. Spectacles can put it there while both hands stay on the brush and the sheet.

What it does

Red Brush teaches 永 (ei, "eternity"), the character used to learn the Eight Principles of Yong (永字八法): all eight basic brush techniques in one character.

  • A virtual desk and a real-size 24 × 33 cm practice sheet (hanshi) lie in front of you, with a faint grey 永 guide on the sheet.
  • Pinch Next and a vermilion stroke draws over the guide like a teacher's brush: a calligraphy brush comes down onto the start point, presses, slows where one technique hands off to the next, and lifts away at the end. The ink is deeper where the brush presses and lighter on the fast parts, with dry-brush streaks at the end of the sweeps.
  • A quiet brush-on-paper sound follows the speed of the brush, and a soft chime tells you the stroke is done, so you can look at your own paper instead of waiting.
  • A step card stands behind the sheet like a model sheet (tehon). It shows the stroke ("Stroke 2 / 5"), the techniques in it with kanji and romaji (勒 roku, 努 do, 趯 teki), highlights the current one, and gives one short tip.
  • Technique labels appear on the paper beside each part of the stroke as the brush passes, then fade so the paper stays clear.
  • Five steps, one per stroke, so connected techniques are never cut apart: the horizontal, vertical and hook of stroke 2 are one continuous movement.
  • Back, Replay and Next lie on the desk to the left of the sheet, where the free hand rests, away from the brush hand.
  • After stroke 5, the whole 永 shows in vermilion with all eight technique labels as a recap, and Start over begins a new round.
  • At start, a small line at eye level says "Look down at your desk ↓", because on the glasses' narrow view the desk sits below eye level.

How we built it

  • Planned with the Devpost Learn skill pack. The plan-lens interview produced the design brief in devpost/design-brief.md: the one spatial moment, why it belongs on glasses, where everything lives in centimeters, the five strokes, and the done criteria.
  • Built with CLAD and Lens Studio MCP. A coding agent (Claude Code) ran CLAD's Specs experience builder against Lens Studio 5.24.1 through the Lens Studio MCP server: scene construction, TypeScript components, and preview checks.
  • Everything is code-authored. The desk, the sheet, the 永 guide, the strokes and the brush are meshes built in TypeScript with MeshBuilder; no AI-generated or downloaded 3D assets. Each stroke is a ribbon whose width follows brush pressure along a hand-tuned path. The brush sound and the chime were generated in the project.
  • Spectacles Interaction Kit and UI Kit for every button, so the same controls work with a pinch on Spectacles and with the mouse in Interactive Preview.
  • Iterated with design notes, not code. After the first build we judged it in the preview and wrote devpost/design-notes-1.md (brush, ink, first look, sound, cleanup), then had the agent apply it and re-run every test.
  • Tested with LEAF. Seven scenarios run in the preview: the five done criteria from the brief, plus checks that the brush appears, follows the stroke and leaves, and that the "Look down" line shows at start and is gone after the first pinch. All seven pass.

Challenges we ran into

  • Stroke quality is the whole product. A stroke that is just a line teaches nothing. Getting the press at the corner of stroke 2, the gather before the hook, and the slow lift of the long sweep to read clearly took the most iteration.
  • An additive display. Black is transparent on Spectacles, so nothing can rely on dark shapes. The brush, ink, paper tone and text were all tuned to stay readable as light.
  • Where the eyes are. The sheet sits about 60 cm away and below eye level, so at start nothing on the desk was in view. The "Look down" line fixes the first moment without adding clutter later.
  • A test that measured the wrong thing. An extra reach test for the left hand kept timing out. Reading the interaction kit's source showed the test driver's hand correction never reached the contact check, so the test could not answer the question. We removed it and say so, instead of moving the buttons for a false reason.

Accomplishments that we're proud of

  • All eight techniques of 永 in five strokes, each drawn the way a teacher would show it.
  • The brush, ink and sound make the stroke feel like brushwork, not an animation of a line.
  • Everything is placed at real size, in centimeters, where a calligrapher actually looks.

What we learned

  • On glasses, the best place for instructions is the work itself.
  • Writing done criteria first, and turning each into an automated preview test, kept every change honest.

What's next

  • Find the real sheet of paper and align the guide to it, instead of the virtual stand-in.
  • Watch the learner's own ink and compare it with the model stroke.
  • More characters, and the stroke orders of kana.
  • Test on real Spectacles: guide visibility on white paper, comfort at 60 cm, and how a hand holding a brush reads to hand tracking.

Honest limits of this prototype

This runs in Lens Studio's preview. The desk and the sheet are virtual stand-ins for the real paper; the Lens does not detect paper or track the brush, and it has not been tried on Spectacles hardware.

Built With

  • clad
  • claude-code
  • leaf
  • lens-studio
  • lens-studio-mcp
  • spectacles
  • spectacles-interaction-kit
  • typescript
  • ui-kit
Share this project:

Updates

Submission history