Yuya Asano日本語

AI learning companion

A 3D study partner designed to keep adults studying for professional exams through to test day

Role
Sole designer and engineer
When
2025 – now
Built with
React, Three.js, three-vrm
For
Adults preparing for licensing and certification exams
Teaching the companion while studying for a networking certification

    Illustrative conversation. Labels show the expression the 3D character plays on each line.

    The problem: people stop studying

    Adults preparing for professional licenses and certifications usually study alone, around full-time work, and many drop off long before the exam. For most of them, the material isn’t the hardest part. Staying with it is.

    This project is about retention. The companion is a study partner with its own character, who studies the same material alongside the learner and reacts to what they say. The goal is to make studying feel less solitary, so learners keep coming back.

    Teaching the companion, to learn more

    Inside each session, the learner teaches the companion. This is a feature for learning, not the reason the companion exists: people tend to learn material more deeply when they explain it to someone else, an effect known as the protégé effect. Drawing on my research on teachable agents, the companion states what confuses it, restates ideas in new examples, and occasionally makes a believable mistake for the learner to catch.

    Building it

    The companion is a 3D anime-style character that runs in the browser. Its facial expressions and gestures are driven by the dialogue, so it reacts to what the learner says rather than looping idle animations.

    Gestures that never pass through the body

    Expressive gestures create a hard problem: a hand raised to the chin or crossed over the chest can clip through the character’s own body, which instantly breaks the illusion. I built an inverse-kinematics layer that adjusts each gesture in real time to avoid self-collision, with strict guarantees rather than best-effort fixes, while keeping the animation smooth enough for a browser on an ordinary laptop.

    Side-by-side clip goes here: the same gesture with and without collision avoidance.