← Tous les projets
Systèmes
Bibliothèque C de maillages
Lecture et écriture OBJ/PLY, CLI, compilée en WebAssembly pour une démo dans le navigateur.
Terminé
Sprint S2-S6+S42 · 10 points
En bref, sans jargon pour les non-informaticiens Lire le résumé Refermer
Ce que c'est Une brique de base qui lit les fichiers 3D les plus courants, ceux des logiciels de modélisation et des imprimantes 3D, et en calcule les caractéristiques.
À quoi ça sert Plusieurs autres projets du portfolio s'appuient dessus : elle doit être rapide et ne jamais planter, même sur un fichier abîmé.
Ce que ça montre La rigueur sur du code proche de la machine, en langage C : des millions de fichiers abîmés essayés, aucune fuite de mémoire, le même résultat sous Windows, macOS et Linux.
Enseigné en L3 (programmation avancée en C)
Comment les morceaux tiennent ensemble
Schéma : Fichiers → Lecteurs (lus ligne à ligne) ; libFuzzer → Lecteurs (entrées aléatoires) ; Lecteurs → Maillage (construisent) ; Maillage → meshinfo ; Lecteurs → WebAssembly (compilés par Emscripten).
lus ligne à ligne
entrées aléatoires
construisent
compilés par Emscripten
Fichiers
OBJ, PLY, STL
Lecteurs
C11, sans dépendance
Maillage
sommets, triangles, arêtes
libFuzzer
ASan, UBSan
meshinfo
ligne de commande
WebAssembly
démo de la fiche
Fichiers (OBJ, PLY, STL) → Lecteurs (C11, sans dépendance) : lus ligne à ligne
libFuzzer (ASan, UBSan) → Lecteurs (C11, sans dépendance) : entrées aléatoires
Lecteurs (C11, sans dépendance) → Maillage (sommets, triangles, arêtes) : construisent
Maillage (sommets, triangles, arêtes) → meshinfo (ligne de commande)
Lecteurs (C11, sans dépendance) → WebAssembly (démo de la fiche) : compilés par Emscripten
Essayer lib-c dans le navigateur
Le fichier est lu par la bibliothèque C compilée en WebAssembly : il ne quitte pas votre navigateur.
Choisir un fichier OBJ, PLY ou STL
ou le déposer ici
Exemples : Cube (OBJ) Tétraèdre (PLY) Tore (OBJ)
La démo demande JavaScript et WebAssembly.
Technologies
Qui fait quoi
C Les lecteurs OBJ, PLY et STL et la topologie de base (arêtes, bords, χ), en C11, avec des erreurs typées et leur numéro de ligne. CMake La compilation et les tests sous GCC, Clang et MSVC ; le même lecteur est repris par les projets topologie, parallèle, Qt et lancer de rayons. Emscripten Compile la bibliothèque en WebAssembly pour la démo de la fiche : le fichier ne quitte pas le navigateur. Unity Les tests unitaires en C : chaque format, chaque erreur et sa ligne. Valgrind Vérifie l'absence de fuite et d'accès mémoire invalide sur les tests et la commande meshinfo. libFuzzer Envoie des millions d'entrées aléatoires aux lecteurs, avec ASan et UBSan, à chaque push en CI.
Definition of Done
Code relu, diff par diff Tests unitaires et d'intégration verts CI verte sur Linux, Windows et macOS si compilé README, REVIEW.md et DECISIONS.md à jour Textes en français et en anglais Démo déployée et testée sur mobile