Terminé

Fonctionnalité 3D Interactive pour Plateforme Orthodontique SmileWeb

2024
3D Development
Fonctionnalité 3D Interactive pour Plateforme Orthodontique SmileWeb

À propos du projet

Fonctionnalité 3D Interactive pour Plateforme Orthodontique SmileWeb

Projet développé durant un stage de 6 mois chez C4W - Custom CAD Software & Components, visant à améliorer le workflow de communication entre praticiens orthodontistes et laboratoires.

Le contexte métier :

SmileWeb est une plateforme web permettant aux praticiens orthodontistes de consulter en 3D les plans de traitement que les laboratoires leur ont transmis depuis le logiciel professionnel Orth'Up. Lorsqu'un praticien souhaite proposer des ajustements au plan, le processus était lourd et nécessitait de multiples échanges.

Le défi :

Simplifier le processus de proposition de modifications par les praticiens au laboratoire, directement depuis l'interface web, sans nécessiter de retour dans le logiciel lourd Orth'Up.

Ma mission en deux phases :

Phase 1 - Reconstruction de l'environnement technique :

  • Défi initial : L'application était répartie sur 2 machines virtuelles avec des conteneurs Docker, sans documentation laissée par l'ancien développeur
  • Solution : Analyse complète de l'architecture existante et migration de l'infrastructure vers un environnement de développement local unique
  • Résultat : Environnement de développement simplifié et accessible à toute l'équipe

Phase 2 - Développement de la fonctionnalité de modification 3D :

  • Manipulation 3D intuitive : Ajout d'un système permettant aux praticiens de déplacer et faire pivoter précisément les éléments du traitement
  • Calcul matriciel avancé : Implémentation de transformations géométriques précises pour garantir la validité médicale des modifications
  • Synchronisation avec Orth'Up : Développement d'une API permettant la communication bidirectionnelle entre SmileWeb et le logiciel principal du laboratoire
  • Sauvegarde intelligente : Système complet de persistance des modifications proposées

Fonctionnalités développées :

  • Interface 3D interactive intégrée à l'application web existante
  • Contrôles précis de rotation, translation avec calculs matriciels 3D
  • Système de points et axes de référence personnalisables selon les besoins médicaux
  • API de communication avec Orth'Up pour transmission des modifications au laboratoire
  • Sauvegarde et récupération des propositions d'ajustement

Résultat : Simplification drastique du workflow de collaboration praticien-laboratoire. Les orthodontistes peuvent désormais proposer des ajustements précis directement depuis leur navigateur, réduisant les délais et améliorant la qualité de communication.

Contexte d'apprentissage : Première expérience professionnelle marquée par l'autonomie totale face à un environnement technique complexe sans documentation. J'ai dû faire preuve d'adaptation, d'analyse et de résolution de problèmes pour reconstruire l'infrastructure avant de développer la nouvelle fonctionnalité.

Technologies & Outils

Three.js
WebGL
JavaScript
Node.js
Express
PostgreSQL
Sequelize ORM
Docker
Docker Compose
REST API
Jest
JWT
Git
Calcul Matriciel 3D
DevOps
Reverse Engineering

Détails Techniques

Fonctionnalité 3D Interactive pour Plateforme Orthodontique SmileWeb

Contexte technique :

Projet full-stack réalisé durant 6 mois de stage chez C4W, comportant deux phases distinctes : refonte DevOps de l'infrastructure existante, puis développement d'une fonctionnalité de modification 3D avec calculs matriciels et intégration API avec le logiciel Orth'Up.

Phase 1 - Refonte DevOps et Migration d'Infrastructure :

  • Problématique initiale :
    • Application répartie sur 2 machines virtuelles distinctes
    • Architecture multi-conteneurs Docker complexe
    • Aucune documentation laissée par l'ancien développeur
    • Impossibilité de développer localement
  • Travail d'investigation :
    • Reverse engineering de l'architecture existante (analyse docker-compose, Dockerfiles, configurations réseau)
    • Cartographie des dépendances inter-services
    • Identification des volumes persistants et configurations critiques
  • Solution de migration :
    • Consolidation de l'architecture multi-VM vers environnement local unique
    • Refonte Docker Compose pour orchestration simplifiée
    • Configuration réseau Docker pour communication inter-conteneurs
    • Volumes persistants pour PostgreSQL et assets
    • Hot-reload pour développement rapide
    • Documentation complète de l'architecture reconstruite

Phase 2 - Développement Fonctionnalité 3D :

Architecture 3D et Calculs Matriciels :

  • Moteur de rendu : Three.js avec WebGL intégré à l'application existante
  • Transformations géométriques :
    • Calculs matriciels 4x4 pour rotations, translations, scales
    • Transformations composées avec préservation de précision
    • Système de coordonnées locales/globales
    • Validation des transformations selon contraintes médicales
  • Interactions 3D :
    • Raycasting pour sélection précise des objets orthodontiques
    • Gizmos de transformation personnalisés (translation, rotation, scale)
    • OrbitControls pour navigation caméra
    • Système de snap et grille magnétique

Backend et API d'intégration Orth'Up :

  • Stack : Node.js avec Express (intégré à l'API existante)
  • Base de données : PostgreSQL avec Sequelize ORM
  • Endpoints développés :
    • Sauvegarde des matrices de transformation
    • Récupération des modifications pour affichage
    • API de synchronisation avec Orth'Up (transmission des propositions au laboratoire)
    • Gestion du versioning des modifications
  • Sécurité :
    • Authentification JWT héritée de l'application existante
    • Validation métier des transformations (limites anatomiques)

Intégration avec l'Application Existante :

  • Modification de l'interface web existante pour intégration du viewer 3D
  • Respect de l'architecture frontend en place
  • Communication avec l'API backend existante
  • Gestion de l'état avec les patterns déjà utilisés

DevOps et Tooling :

  • Conteneurisation : Docker et Docker Compose refondus
  • Environnement : Migration de 2 VMs vers environnement local unique
  • Versioning : Git avec workflow feature branches

Défis techniques relevés :

  • Reconstruction d'une architecture sans documentation (reverse engineering)
  • Précision des calculs matriciels pour usage médical
  • Intégration avec API externe (Orth'Up) sans contrôle sur le format
  • Maintien des performances WebGL sur scènes complexes
  • Compatibilité avec le code legacy de l'application existante

Méthodologie :

Développement agile en autonomie avec sprints de 2 semaines, points réguliers avec l'équipe produit. Phase d'investigation et de reverse engineering suivie de développement itératif avec tests continus.

Ce projet démontre ma capacité à m'adapter à un environnement technique complexe sans documentation, à reconstruire une infrastructure DevOps, et à développer une fonctionnalité métier critique en intégration avec un système existant.