Case Study

DentaSmart: Transforming Dental Care with AI and 3D Technology

Industry

Healthcare

Project Type

B2B - Full Development

Location

United States

Deliverable

iOS (Live)

The Problem

Most people do not go to the dentist until something hurts. By then, the problem is already serious and the treatment is expensive. The reason is not laziness, it is that people cannot see what is happening inside their own mouth, and when they do visit a dentist, the terminology and the X-rays make no sense to them. They leave confused, agree to whatever is recommended, and often feel they paid too much for something they did not understand.

Client wanted to build a product that gives people a way to understand their own dental health. The idea: a person takes a photo of their teeth or uploads an X-ray. An AI analyses the image and explains what it sees in plain language. The user gets an Oral Health Score, a list of things that need attention, and guidance on what to ask the dentist about. The app does not replace the dentist, it prepares the user for the visit so they are not walking in blind.

Three problems that made this
hard to build

First, the client wanted a 3D model of a full set of teeth, upper and lower jaw, that users could rotate, zoom, and tap on to select individual teeth or areas where they felt pain. Flutter does not have a built-in 3D rendering engine. There is no Flutter widget that draws a realistic 3D teeth model. This had to be built in native code.

AI that analyses dental photos and X-rays had to be trained on real dental data. The model needed to detect cavities, gum recession, discoloration, bone loss, and other conditions from a photo taken on a phone camera, not a clinical imaging device. Training this model was a separate ML engineering problem from building the app that uses it.

App needed to handle a situation that most health apps ignore: the line between AI and human. When should the AI give a direct answer, and when should it say ‘you need to see a dentist for this’? Getting this wrong in either direction is dangerous, too confident and the user skips a visit they needed, too cautious and the app feels useless.

What We Built

This project had two engineering teams working on different parts of the same product.

ML engineers trained the dental AI model. They worked with dental data, X-rays, intraoral photos, clinical annotations, to build the model that analyses images and returns findings. This is the intelligence behind the Oral Health Score, the cavity detection, the gum assessment, and the condition identification.

Engineers built everything else: the Flutter app for iOS and Android, the native 3D teeth model on both platforms, the integration layer that connects the Flutter app to the AI model, the Firebase backend, the user flows, the symptom checker, the Dr. Din AI chat assistant, and the subscription system.

The 3D Teeth Model, Built Natively, Connected to Flutter

The 3D teeth model is the first thing a user sees when they open DentaSmart. A full upper and lower jaw, rendered in 3D, that the user can rotate with their finger, zoom in on, and tap to select a specific tooth. The selected tooth highlights, and the app moves to the next step, describing the area, asking about symptoms, or starting an AI analysis.

Flutter cannot do this. Flutter draws 2D UI elements, text, buttons, cards, lists. It does not have a 3D rendering engine built in. There is no Flutter widget for rendering a detailed 3D dental model with per- tooth tap detection and smooth rotation.

Team built the 3D model natively. On Android, the model was built using SceneView, Android’s 3D rendering framework based on OpenGL ES. On iOS, the equivalent was built in Swift using SceneKit. Each tooth in the model is a separate selectable object. When a user taps a tooth, the native layer identifies which tooth was tapped, highlights it visually, and sends the tooth ID back to the Flutter layer through a Platform Channel.

The Flutter app receives the tooth ID and takes over from there, loading the relevant symptom flow, condition information, or AI analysis for that specific tooth. The 3D model handles the visual and interaction layer. Flutter handles everything after the selection.

SceneView on Android and SceneKit on iOS are platform-specific 3D frameworks. They do not share code. The 3D model, the tap detection logic, the rotation gestures, and the highlight animation had to be written twice, once in Kotlin for Android and once in Swift for iOS. Flutter’s Platform Channel connects both implementations to the same Dart code. When Flutter cannot do something natively, you write the missing piece in the platform’s own language and bridge it.

The AI What It Does and Where It Stops

Photo analysis

A user takes a photo of their teeth with their phone camera. The image is sent to the AI model running on Google Cloud. The model examines the photo and returns findings, visible cavities, gum discoloration, plaque buildup, signs of recession. The results come back in plain language, not dental terminology. Instead of ‘interproximal caries detected on tooth 14,’ the user sees something they can actually understand and act on.
X-ray analysis
A user uploads a dental X-ray, from a previous visit, from their dentist’s email, from a patient portal. The AI reads the X-ray and explains what it shows. Bone loss, root infections, impacted wisdom teeth, existing fillings, things a person normally has to wait for a dentist to explain are surfaced immediately with a written explanation.
Dr. Din the AI chat assistant
Dr. Din is an AI assistant inside the app that answers dental health questions. A user can ask ‘is it normal for my gums to bleed when I brush?’ or ‘what does a dark spot on my tooth mean?’ and get a direct, plain-language answer. Dr. Din draws from the indexed dental knowledge and from the user’s own scan history, if the user has previous scans, Dr. Din can reference them when answering a new question.

What the Product Does

Oral Health Score

After a scan, the user gets a score that reflects their overall oral health based on what the AI detected. The score gives them a starting point, something to track over time. A person who scans monthly can see whether their score is improving or declining, which tells them whether their dental care routine is working or not.

Symptom checker

The user selects a tooth on the 3D model or describes a symptom, pain when biting, sensitivity to cold, swelling around a specific area. The app walks them through a short set of questions and returns possible causes with an explanation of what each one means. The symptom checker does not give a diagnosis, it gives the user a list of things to ask their dentist about.

Technology Stack

Flutter

Cross-platform iOS app development

Swift

Native watchOS companion app, required because Flutter has no watchOS support

Kotlin

Native Android bridge code


Flutter

Cross-platform iOS app development

Swift

Native watchOS companion app, required because Flutter has no watchOS support

Kotlin

Native Android bridge code

Firebase

Auth, Firestore database, Cloud Messaging (push notifications)

TypeScript

Firebase Cloud Functions, persona identification, session triggers, notification logic

Google Cloud

Cloud infrastructure, function hosting, AI model serving

Firebase

Auth, Firestore database, Cloud Messaging (push notifications)

TypeScript

Firebase Cloud Functions, persona identification, session triggers, notification logic

Google Cloud

Cloud infrastructure, function hosting, AI model serving

What Was Delivered

50K+

Scans analyzed

5.0

App Store rating

Live

iOS App Store

DentaSmart launched on the iOS App Store in October 2025 and is now on version 1.7. The app holds a 5.0 rating on the App Store. The product’s own website reports more than 50,000 scans analysed and a 4.8 out of 5 average user rating. Android is in early access with a public waitlist.

User testimonials on the DentaSmart website describe the three outcomes the product was built to deliver: understanding what is happening before visiting the dentist, avoiding unnecessary procedures by getting a second perspective, and knowing costs before agreeing to treatment.

ETechViral delivered the complete app: the Flutter codebase for iOS and Android, the native 3D teeth model on both platforms with per-tooth selection, the integration of Zigron’s dental AI model into the Flutter app, the Dr. Din AI assistant, the symptom checker, the scan history and tracking system, the subscription and payment flow, the Firebase backend, and the App Store submission. Zigron’s ML team trained and maintained the dental AI model that powers the analysis.

Building a product that connects to third-party services and needs to work on mobile and web?

Building a product that connects to third-party services
and needs to work on mobile and web?

ETechViral builds Flutter apps for web and mobile with Firebase and Google Cloud backends. We handle complex integrations, native platform code, and production-ready deployments.

More Case Studies

CallHome: International Calls

Callhome A VoIP app for the African diaspora covering calls, SMS, mobile top-ups, and Mobile Money payments across 50+ countries, with transparent rates and no hidden fees.

Transparent Hands: Crowdfunding Platform

Transparent Hands Pakistan’s largest healthcare crowdfunding platform connecting global donors to patients who need free surgeries. Each donation is tied to one patient, with bills and documents uploaded after treatment for full verification.