Inspiration
Most people find out what a dental visit costs after it's done. Deductibles, coinsurance, annual maximums and in- versus out-of-network pricing all change the answer, and plan documents explain none of it in plain language. We wanted employees to know what they'll owe before they sit in the chair, and to understand why.
What it does
Molarity is a dental benefits guide you walk through like a real office. Every page is a room, and the camera moves through the doors as you go.
- Reception: check in as an employee. Molarity loads their plan, what they've used this year and their deductible from the member database.
- Decode your plan: ask a chatbot what a deductible or coinsurance means and get a plain-English answer. Personal questions like "Have I met my deductible?" are answered from the employee's own plan.
- Add planned care: describe care in your own words ("a crown on tooth 19") or pick a tooth on the chart. Molarity compares in network and out of network: what the plan pays, what you pay, how much of the deductible applies, and anything past the annual maximum.
- Timing advice: when planned care would exceed this year's maximum, it shows how much plan payment you'd lose and suggests scheduling part of the work after the plan year resets.
- Find a dentist: filter in-network dentists and see them on a map.
- Two ways to view it: the 3D office, or a Traditional view that is a plain, accessible document with no motion.
How we built it
- Frontend: React 19, TypeScript, Vite, Tailwind CSS v4 and Zustand. The 3D office uses Three.js, React Three Fiber and GSAP. All nine rooms are built in code, with textures drawn on canvases, so there are no model files to download. The dentist map uses Mapbox GL.
- Backend: Java 21 and Spring Boot 3.5, with PostgreSQL on Neon for plans, coverage rules, procedures, usage and appointments.
- AI: Amazon Bedrock (Amazon Nova 2 Lite through the Converse API). Its job is deliberately narrow. It reads the question into a structured intent, then narrates numbers that were already computed. It never produces a price.
- The money: every dollar comes from the database and a calculator that uses exact decimal arithmetic. It applies the deductible, then coinsurance, then the annual-maximum cap, and plan pays plus you pay always equals the fee. The procedure is matched against the catalog, never the AI's guess. A claimed "my dentist recommended it" is checked against appointment history. Any chatbot rewrite that introduces a dollar amount not in the verified facts is thrown away.
- Resilience: if Bedrock is unavailable, a keyword fallback reads the question, so estimates keep working.
Challenges we ran into
- Keeping the AI out of the math while still letting people type naturally.
- Making the site show the same plan the backend priced on. Early on, the screen could show a sample plan while estimates used a different member.
- Treating the annual maximum as one shared pot across networks. Before we fixed it, the out-of-network estimate ignored everything already used in network.
- Multi-turn chat: a tooth number in an earlier message, or even the "1" in "$1,110.00", must not be read as the tooth for a new question.
- Smooth 3D transitions. We prepare the next room before the camera reaches the door, so it doesn't stall mid-flight.
- Making a 3D interface accessible. The scene is decoration and hidden from screen readers, every page works as a document, and reduced motion is respected.
Accomplishments that we're proud of
- A full walk-through dental office built entirely in code.
- Numbers you can trust. We checked 90 in- and out-of-network estimates (5 employees × 9 procedures) against hand calculations from each plan's terms, and every one matched.
- It degrades gracefully: without the AI it still estimates, and without the database it says what's missing instead of guessing.
- An accessible Traditional view alongside the 3D experience.
What we learned
Language models are very good at understanding what someone is asking and bad at money, so the design gives each part the job it's good at. We also learned to plan for the AI being unavailable from the start, and that accessibility is far easier to build in than to add at the end.
What's next for Molarity
- Real sign-in and member lookup in place of the front-desk picker.
- Real fee schedules and carrier data in place of the placeholder amounts.
- Reading a plan's summary-of-benefits PDF to set up coverage automatically.
- More procedures, and a hosted demo.
All people, dentists and dollar amounts in the demo are fictional.
Built With
- amazon-bedrock
- amazon-web-services
- gsap
- java
- mapbox
- neon
- postgresql
- react
- react-three-fiber
- spring-boot
- tailwindcss
- three.js
- typescript
- vite
- zustand
Log in or sign up for Devpost to join the conversation.