The glowing core is the generative-AI tutor; each orbiting sphere is a student. Every student periodically attempts a task whose difficulty the AI set for them personally. Success nudges mastery up and pulls the student's orbit inward toward the core; the AI then compares each student's rolling success rate to your target and nudges their next task's difficulty up or down — a live control loop, not a fixed test bank. A gap that stays too wide too long shows up as color: green means the task sits right in the student's zone of proximal development, amber means the AI is currently pitching tasks too hard (frustration risk), blue means too easy (boredom / disengagement risk).
success_prob = clamp(0.5 + 3·(ability − difficulty), 0.02, 0.98)
ability += learn_rate·(1 − ability) [only on success]
ema_success += (outcome − ema_success)·0.3
difficulty += adapt_speed·(ema_success − target_success)
- Students — how many independent learners the tutor is personalizing for at once.
- Target success rate — the win rate the AI is trying to hold each student at; too high and it undershoots difficulty (boredom), too low and it overshoots (frustration).
- Adaptation speed — how aggressively the tutor corrects difficulty after each attempt; too high overshoots and oscillates, too low reacts too slowly to a student's real progress.
- Task pace — how often tasks are attempted, i.e. how quickly the feedback loop runs.
Real-world relevance: this is the core mechanic behind adaptive practice in tools like Khanmigo or Duolingo Max — a generative model doesn't just answer questions, it continuously re-targets difficulty per learner so each student stays in a productive struggle zone instead of being bored or overwhelmed by a one-size-fits-all curriculum.