Inspiration
Traditional STEM tools separate the explanation from the experience — you read that a projectile's horizontal and vertical motion are independent, then maybe watch a 2D animation of it. We wanted a VR space where the physics isn't illustrated, it's authored by the player's own hands — you draw a real bow, and the arrow's actual Rigidbody flight is the proof of the formula, not a diagram standing in for it.
What it does
A VR learning environment (Unity 6, XR Interaction Toolkit) covering Math, Physics, and Chemistry through hands-on minigames rather than menus and quizzes — archery for projectile motion, a two-handle cannon for trig, lever puzzles, molecule-building, a periodic-table hunt, and more. Each is wrapped in a Convai-driven AI tutor who narrates, answers questions grounded in the player's live in-game state, and adapts. A guided forest "World" strings several of these together as quests posed by NPCs, and per-user progress (mastery, difficulty level) persists across sessions.
How we built it
Every interactive object — the bow, the arrows, the target, the HUD — is built and self-heals via [ExecuteAlways] MonoBehaviours: they construct their own geometry the moment they're added to a scene (visible and editable before ever pressing Play), and "rediscover" their own children on reload instead of trusting cached references, since Unity's domain reload wipes plain private fields on every recompile and Play-mode entry. Real physics throughout — the arrow is a genuine Rigidbody under gravity, not a scripted curve, and score comes from where it actually lands.
Challenges we ran into
The subtlest bugs were never in the physics formulas — they were in the layers around them. An arrow that "wouldn't move forward" turned out to be Unity's XR Interaction Toolkit silently overwriting our launch velocity with its own throw-on-release physics a frame after we set it correctly. A target that rendered as a flat grey disc turned out to be a stray Renderer.sharedMaterial reassignment silently replacing a perfectly good textured material with a blank default. A progress bar that never filled turned out to be private fields reset by the exact same domain-reload behavior we'd already learned to guard against elsewhere — and hadn't yet applied to the new component. Each one needed live reflection into a running Editor to actually catch red-handed, not just code review.
Accomplishments that we're proud of
Getting real, ungimmicked physics (actual projectile motion, actual trigonometry) to feel teachable in VR without turning it into a worksheet — the tutorial sequence fires a real scripted shot and shows the U cosθ / U sinθ / range breakdown live, using the same trajectory dots and physics every real player shot uses, not a separate canned animation.
What we learned
In a live, hand-driven VR simulation, correctness bugs hide in the seams between systems — input, physics, and rendering each quietly assuming they own state the others also touch. The fix is almost never "the formula was wrong"; it's finding which system silently clobbered a value that was already correct.
What's next for AI Learning Ecosystem
Extending the adaptive difficulty and per-user mastery tracking to every minigame (currently only two read it back), building out the remaining quest-giver NPCs in the World scene, and closing the font-fidelity gap between the in-headset UI and the reference web app's real typography.
Built With
- ai
- unity
- vr



Log in or sign up for Devpost to join the conversation.