← Tutte le idee Studio e formazione

Dental Scope

L'anatomia dei denti in 3D, interattiva

Cosa fa

Un modello 3D interattivo dei denti e della bocca, utile a studenti di odontoiatria e a dentisti per spiegare le cure ai pazienti.

Come guadagna

Presentato su Hacker News dal suo creatore, che non dichiara incassi. Idee nostre per guadagnare con un progetto simile: abbonamento per studi dentistici che lo usano con i pazienti, licenze per università.

Rendilo tuo

  • Lo stesso per altre parti del corpo, per fisioterapisti o osteopati che spiegano ai pazienti.
  • Versione semplice per i bambini, per spiegare come lavarsi i denti.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Bocca 3D": un modello 3D interattivo di denti e bocca per studenti di odontoiatria e per i dentisti, che lo usano alla poltrona per spiegare le cure ai pazienti. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con il modello da ruotare e i prezzi
2. Visualizzatore: arcate, singoli denti, sezioni (smalto, dentina, polpa, radici)
3. Modalità paziente: mostra una cura con animazione semplice (otturazione, devitalizzazione, impianto)
4. Quiz per studenti: riconosci il dente e la sua numerazione
5. Area dello studio: logo e note per i pazienti

Stile: medico e pulito: sfondo bianco, azzurro #0EA5E9, smalto bianco avorio, carattere "Inter", modello 3D al centro con i comandi grandi e chiari. Nessuna immagine generica di stock.

Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.

2. Database, account e sicurezza

Collega il progetto a Supabase e attiva la registrazione con email e password.

Crea queste tabelle:
- "denti": numero FDI, nome, arcata, tipo, numero di radici, descrizione
- "risultati_quiz": punteggio, errori per dente, data, collegati all'utente

Regole di sicurezza obbligatorie:
- le schede dei denti sono pubbliche
- ogni utente vede solo i suoi risultati
- nessun dato dei pazienti viene salvato

Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.

3. Toccare un dente e riconoscerlo

Il modello 3D (file glTF di arcate e denti, creato o acquistato con licenza commerciale) si carica con Three.js. Toccando un dente si evidenzia e compare la scheda con il numero FDI (es. 36 = primo molare inferiore sinistro), nome, radici e descrizione (codice nei Dettagli tecnici).

Comandi: ruota, zoom, apri/chiudi la bocca, nascondi gengive, sezione trasversale per vedere smalto, dentina e polpa.

Modalità paziente: grandi pulsanti con le cure più comuni e animazioni semplici, per spiegare in 30 secondi cosa si farà. Nessun dato del paziente viene inserito o salvato.

4. Quiz per studenti

Quiz: il dente si illumina e lo studente deve indicare numero FDI e nome; oppure si chiede un numero e lo studente lo tocca. Statistiche sugli errori più frequenti per ripassare.

Per gli studi: logo dello studio sull'interfaccia e la possibilità di mandare al paziente un link alla spiegazione della sua cura.

5. Pagamenti con Stripe

Aggiungi un abbonamento a 9 € al mese per studenti, 29 € al mese per studi. Gratis l'utente ha: visualizzatore delle arcate senza sezioni e senza modalità paziente. Con il piano Pro sblocca: sezioni, modalità paziente con le animazioni, quiz completi e personalizzazione dello studio.

A pagamento riuscito il webhook porta l'utente al piano Pro; se l'abbonamento viene disdetto o non rinnovato lo riporta al piano gratuito.

Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.

6. Controlli specifici di questo progetto

Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Correttezza: fai controllare numerazione FDI e nomi di tutti i 32 denti permanenti da un odontoiatra o da un docente prima del lancio.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Toccare un dente nel modello 3D

Un raggio parte dal punto toccato sullo schermo e trova il dente colpito; il nome dell'oggetto nel modello è il suo numero FDI.

import * as THREE from "three";

const NOMI: Record<number, string> = {
  1: "Incisivo centrale", 2: "Incisivo laterale", 3: "Canino", 4: "Primo premolare",
  5: "Secondo premolare", 6: "Primo molare", 7: "Secondo molare", 8: "Terzo molare (del giudizio)",
};
const QUADRANTI: Record<number, string> = {
  1: "superiore destro", 2: "superiore sinistro", 3: "inferiore sinistro", 4: "inferiore destro",
};

// Numero FDI: prima cifra il quadrante, seconda la posizione (es. 36)
export const nomeDente = (fdi: number) =>
  NOMI[fdi % 10] + " " + QUADRANTI[Math.floor(fdi / 10)];

export function attivaSelezione(
  canvas: HTMLCanvasElement, camera: THREE.Camera, denti: THREE.Object3D[],
  onDente: (fdi: number, oggetto: THREE.Mesh) => void,
) {
  const raggio = new THREE.Raycaster();
  const punto = new THREE.Vector2();

  canvas.addEventListener("pointerdown", (e) => {
    const r = canvas.getBoundingClientRect();
    punto.set(((e.clientX - r.left) / r.width) * 2 - 1, -((e.clientY - r.top) / r.height) * 2 + 1);
    raggio.setFromCamera(punto, camera);
    const colpito = raggio.intersectObjects(denti, true)[0];
    if (!colpito) return;
    const mesh = colpito.object as THREE.Mesh;
    const fdi = Number(mesh.name.replace(/\D/g, ""));    // nel modello i denti si chiamano "dente_36"
    if (fdi) onDente(fdi, mesh);
  });
}

Pezzi comuni a tutti i progetti

Glossario

Numerazione FDI
Il sistema internazionale per numerare i denti: la prima cifra indica il quadrante della bocca, la seconda la posizione.
glTF
Il formato più usato per i modelli 3D sul web, leggero e veloce da caricare.