Noah LamontMe contacter
Retour aux projets
2024·Web · 3D·Stage 6 mois — solo, DevOps + 3D

SmileWeb 3D

Éditeur 3D embarqué dans une plateforme orthodontique — les praticiens proposent leurs ajustements de traitement directement dans le navigateur, en synchro avec le logiciel du laboratoire.

Three.jsWebGLNode.jsPostgreSQLDocker
SmileWeb 3D
SmileWeb 3D · case study
01

Contexte

Stage de 6 mois chez C4W — éditeur du logiciel professionnel Orth'Up utilisé par les laboratoires orthodontiques. Mission en solo sur SmileWeb, leur plateforme web qui permet aux praticiens orthodontistes de consulter en 3D les plans de traitement transmis par les laboratoires depuis Orth'Up.

02

Problème

Pour proposer le moindre ajustement, les praticiens devaient repasser par le laboratoire et le logiciel lourd Orth'Up — process à rallonge avec allers-retours par mail. Côté tech, l'application était répartie sur 2 VMs avec une stack Docker complexe, sans aucune documentation laissée par l'ancien développeur — impossible à reprendre en l'état.

03

Solution

Deux phases. (1) Reverse engineering complet de l'infrastructure existante puis consolidation vers un environnement local unique, exploitable par toute l'équipe. (2) Intégration d'un éditeur 3D dans l'application existante : Three.js + calculs matriciels 4x4 pour permettre aux praticiens de proposer rotations et translations précises, avec API de synchronisation vers Orth'Up pour transmettre la proposition au laboratoire.

04

Défis techniques

Défi 1

Reverse engineering d'une infra sans documentation

Aucune doc laissée par l'ancien dev. Analyse à froid des docker-compose, configurations réseau, volumes persistants et dépendances inter-services. Reconstruction d'un environnement local unique à partir de la cartographie obtenue — et documentation propre pour l'équipe suivante.

Défi 2

Calculs matriciels 3D en contexte médical

Les transformations proposées doivent rester anatomiquement valides. Matrices 4x4 composées avec préservation de précision, gizmos personnalisés, raycasting pour la sélection, validation des contraintes médicales avant envoi de la proposition au laboratoire.

Défi 3

Greffer du 3D sur du legacy

Embarquer un viewer Three.js dans une app web qui n'avait pas été conçue pour, sans contrôle sur l'API Orth'Up côté laboratoire. Respect du code existant, des patterns d'état déjà en place, et communication stable entre les deux systèmes.

05

Apprentissages

  • Première expérience pro : face à du legacy sans doc, la patience d'investiguer compte plus que la vitesse de coder.
  • Sans environnement de dev sain, rien d'autre n'avance — le DevOps n'est pas un bonus.
  • Le contexte médical impose sa discipline : précision et validation passent avant le ressenti UX.