-
-
Professor View: The professor enlarges the 3D molecular model using hand gestures tracked by the pink hand skeleton.
-
Professor View: The professor rotates the 3D molecular model using hand movements tracked by the blue hand skeleton.
-
Student View: Watch live molecular demonstrations, explore 3D structures, and ask questions during class.
-
Student View: Watch live lectures and access materials while AI answers questions based on the professor’s lessons.
MolViz: an agent that gets the professor and the class to the same understanding
Inspiration
In any explanation, the explainer can't see who's lost. A professor can't tell which of 100 students are confused, and most students stay quiet instead of interrupting. The same gap exists in a sales call: the rep can't tell which doubts the client is sitting on. We wanted an agent that closes that gap, so the person explaining and the people listening end up with the same picture.
We built it for an organic-chemistry classroom first, because chemistry makes the problem easy to see. Students have to read 3D structure off a flat slide, and a wrong answer is easy to spot.
What it does
MolViz is a live classroom that runs in the browser, so the professor doesn't need Zoom. Slides, camera, questions and 3D molecules all live in one place.
- An answer agent for every student. A student asks a question, typed or dictated by voice. The agent searches the professor's own lessons and the live lecture transcript, and writes a short answer with quotes. The server checks that every quote appears word for word in the source. If the lesson doesn't cover the question, the agent says so and flags it to the professor, instead of guessing.
- It remembers the student. Each answer sees that student's earlier questions, so "explain that again" and "why is this group acidic?" work.
- It shows the professor where the class is lost. Similar questions are grouped into one card with a student count. Confused or understood votes are counted per slide.
- The professor stays in charge. A student who isn't satisfied can send an AI answer on to the professor, who can reply to that student directly. Nothing reaches the whole class unless the professor shares it.
- A live room. Students follow a PDF deck page by page, and watch the professor's camera over WebRTC, with a low-rate relay through Convex for networks that block it.
- AI-read slides. Claude reads each slide for the compounds on it, and the main molecule appears in 3D.
- Verified molecules. The professor can load any molecule by name or SMILES and highlight a functional group. RDKit finds 20 kinds of group, and it's the only source of atom positions, so the model never invents a highlight.
- Hand gestures. The professor can resize, rotate and move the molecule by hand, and students' views follow.
The principle: Claude proposes, code verifies, and the professor decides what the whole class sees.
The narrative: one workflow, two rooms
The goal is the same on both sides: everyone ends up with the same understanding. Swap the lessons for a product doc set and the student for a client, and the same agent is a sales call workflow. Answers come only from approved material, and every quote is checked, so the client is never told something the company didn't say. A "not covered" flag becomes a gap in the collateral, so the rep answers honestly instead of guessing. Votes show where the client got lost. The client leaves with their doubts cleared, and can decide yes or no with a clear picture of what the product does. Only the classroom version is built today.
How we built it
- Convex holds all shared state, runs the AI actions and the scheduler, and provides the vector index and live subscriptions.
- Claude (Sonnet 5.5) writes answers with structured output, and writes labels for question groups. Claude Opus 5.5 reads slides.
- Voyage AI embeddings (MongoDB Atlas keys supported) power retrieval and the grouping of similar questions.
- FastAPI, RDKit and PubChem make up the chemistry service.
- React, Vite, 3Dmol.js and pdf.js make up the web app, hosted on Vercel.
- MediaPipe handles hand tracking, and Chrome's speech recognition handles transcription and dictation.
The answer path is one Claude step inside a deterministic pipeline: embed the question, retrieve passages, answer, verify every quote. If the search finds nothing close enough, no model call is made at all. We measured the similarity thresholds with an evaluation script on a test lesson of 16 covered and 13 uncovered questions. All 16 covered questions were answered, and all 13 uncovered ones were refused.
Challenges we ran into
- Trusting the model's output: quote verification proves the quote exists, so we made "not covered" the default whenever a check fails.
- Keeping answers private: an answer can never mention another student's question, so only that student's own history goes into a prompt.
- Getting live video to every student: many networks block direct connections, so we built a relay fallback through Convex.
- Making the 3D highlight trustworthy: we kept the model out of atom positions entirely.
What we're proud of
An answer a student sees is always traceable to the professor's own words. The same pipeline also shows the professor exactly what the material couldn't answer.
What's next
- Test the live room on real classroom networks, and the hand gestures with real hands and lighting.
- Re-run the thresholds on a real lesson with real questions.
- More agents that make decisions: a router that classifies each question, a critic that checks an answer is really supported by its quotes, and a gap agent that drafts new lesson passages from uncovered questions.
- The sales-call version, with CRM and call-platform integration, SSO, approved-content governance and audit logs.
Built With
- claude
- javascript
- mana
- mediapipe
- node.js
- pubchem
- react
- three.js
- web
Log in or sign up for Devpost to join the conversation.