Alternance - Section Technique de l'Armée de Terre
Développement d’un simulateur 3D temps réel pour l’entraînement des opérateurs du tourelleau Griffon (programme SCORPION), aujourd’hui utilisé par les forces armées.
Projet réalisé en C++ sur la plateforme Virtual Battle Space, avec refonte de l’architecture logicielle, ajout de nouvelles fonctionnalités, communication et callibrage du matériel physique.
Travail en méthodologie Agile, coordination régulière avec les clients et formation d’un stagiaire.
Projet réalisé en C++ sur la plateforme Virtual Battle Space, avec refonte de l’architecture logicielle, ajout de nouvelles fonctionnalités, communication et callibrage du matériel physique.
Travail en méthodologie Agile, coordination régulière avec les clients et formation d’un stagiaire.
Langages: C++, JavaScript, SQF
Projet mené au Détachement d'Appui à la SIMulation (Armée de Terre) dans le cadre du développement d'un, destiné à l’entraînement des opérateurs du tourelleau du véhicule Griffon (programme SCORPION).
Objectif: créer un environnement virtuel exactement conforme à la réalité permettant de former efficacement les soldats tout en réduisant coûts et risques liés aux entraînements réels. Le réalisme est primordial afin de limiter le back-training (apprentissage non-conforme à la réalité du terrain).
Fonctionnalités et apports techniques:
Méthodologie: travail en Agile, livraisons régulières et échanges directs avec les forces armées pour ajuster le simulateur à leurs besoins.
J'ai été durant un an le développeur principal du projet, ce qui m'a permi de prendre des décisions d'architecture logiciel importantes et d'avoir une vision globale du projet dans son ensemble. Enfin, une partie de mon travail sur ce projet a aussi consisté à encadrer un stagiaire et à créer une documentation pour les utilisateurs finaux.
Résultat: un simulateur opérationnel, désormais déployé et utilisé pour la formation des forces armées.
Objectif: créer un environnement virtuel exactement conforme à la réalité permettant de former efficacement les soldats tout en réduisant coûts et risques liés aux entraînements réels. Le réalisme est primordial afin de limiter le back-training (apprentissage non-conforme à la réalité du terrain).
Fonctionnalités et apports techniques:
- Refonte de l’architecture logicielle en C++ pour renforcer stabilité et performance.
- Développement d’une librairie d’armes intégrant comportements et effets balistiques.
- Mise en place d’un système de correction à l’impact et d’un suivi précis des projectiles.
- Calibrage des joysticks afin de reproduire fidèlement l’ergonomie du poste réel.
- Migration des outils de gestion de code de TFS vers Git, modernisant la collaboration.
Méthodologie: travail en Agile, livraisons régulières et échanges directs avec les forces armées pour ajuster le simulateur à leurs besoins.
J'ai été durant un an le développeur principal du projet, ce qui m'a permi de prendre des décisions d'architecture logiciel importantes et d'avoir une vision globale du projet dans son ensemble. Enfin, une partie de mon travail sur ce projet a aussi consisté à encadrer un stagiaire et à créer une documentation pour les utilisateurs finaux.
Résultat: un simulateur opérationnel, désormais déployé et utilisé pour la formation des forces armées.
Sportcooks.fr
Plateforme de nutrition sportive et application Android proposant le calcul automatique des macronutriments, le suivi complet de l’alimentation et le partage de recettes.
Développée en PHP, Angular et TypeScript, l’application intègre des optimisations SEO ayant généré plus de 250k impressions Google et une forte visibilité sur Pinterest.
Collaboration avec des sites partenaires pour enrichir le contenu et élargir la communauté.
Développée en PHP, Angular et TypeScript, l’application intègre des optimisations SEO ayant généré plus de 250k impressions Google et une forte visibilité sur Pinterest.
Collaboration avec des sites partenaires pour enrichir le contenu et élargir la communauté.
Langages et technologies: PHP, Angular, Typescript
Sportcooks.fr est une plateforme web et mobile dédiée à la nutrition sportive. Son objectif est de fournir un outil complet permettant aux utilisateurs d’analyser leurs recettes, de suivre leur apport nutritionnel et de partager leurs créations avec une communauté active.
Fonctionnalités principales:
Compétences mobilisées: développement fullstack, optimisation SEO, gestion de contenu, UI/UX responsive, déploiement web et mobile (Google Play store).
Fonctionnalités principales:
- Calcul automatique des macronutriments de chaque recette (protéines, glucides, lipides).
- Suivi nutritionnel personnalisé en fonction des objectifs sportifs.
- Partage et découverte de recettes, via une interface moderne et responsive.
- Application Android pour un suivi mobile au quotidien.
- Mise en place d’une architecture fullstack robuste en PHP (back-end) et Angular / TypeScript (front-end).
- Défis de référencement naturel (SEO) relevés grâce à l’optimisation technique et à la production de contenu ciblé: plus de 250k impressions Google et 100k impressions Pinterest avec un CTR > 5%.
- Collaboration avec des sites partenaires de cuisine pour enrichir la base de données de recettes et accroître la visibilité.
Compétences mobilisées: développement fullstack, optimisation SEO, gestion de contenu, UI/UX responsive, déploiement web et mobile (Google Play store).
Apprentissage par sélection naturelle et analyse de comportements émergents
Simulation évolutive en C++/SFML modélisant des entités dans un environnement circulaire avec nourriture aléatoire.
Chaque entité est dotée d’un réseau de neurones individuel lui permettant de décider lors des interactions (ignorer, combattre, partager, se reproduire).
Les dynamiques de population révèlent des comportements émergents (coopération, domination, endogamie).
Outils intégrés: collisions, vieillissement, mutations génétiques, visualisations temps réel et analyse graphique des comportements.
Chaque entité est dotée d’un réseau de neurones individuel lui permettant de décider lors des interactions (ignorer, combattre, partager, se reproduire).
Les dynamiques de population révèlent des comportements émergents (coopération, domination, endogamie).
Outils intégrés: collisions, vieillissement, mutations génétiques, visualisations temps réel et analyse graphique des comportements.
Technologies: C++, SFML, Linux
Projet de simulation évolutive reposant sur la modélisation d’entités autonomes dans un environnement virtuel. L’objectif est d’observer l’émergence spontanée de stratégies collectives à partir de règles simples et de réseaux de neurones individuels.
Les entités, représentées par des cercles en 2D via SFML, disposent de paramètres (position, orientation, âge, réserves, couleur, réseau de neurones). Elles se déplacent aléatoirement, consomment de l’énergie, vieillissent et meurent lorsqu’elles atteignent 0 ressources ou un âge limite.
Les collisions empêchent la superposition et permettent les interactions.
Des graphiques en temps réel permettent de suivre la taille des populations, révélant des cycles et équilibres dynamiques.
La reproduction intègre des mutations probabilistes (0,05 % à 50 % des poids modifiés) garantissant diversité et évolution.
La simulation met en évidence un mécanisme de sélection naturelle: les stratégies viables se propagent, les comportements défavorables disparaissent.
Ces résultats illustrent comment des mécanismes simples peuvent générer une diversité de comportements complexes et adaptatifs, ouvrant la voie à des applications en IA évolutive, simulation d’écosystèmes, et modélisation comportementale.
Si vous êtes intéressés, contactez moi par mail et je vous enverrai un rapport illustré complet sous format PDF.
Environnement et entités
L’environnement est circulaire et contient de la nourriture distribuée par échantillonnage par rejet, garantissant une répartition uniforme sans calculs coûteux.Les entités, représentées par des cercles en 2D via SFML, disposent de paramètres (position, orientation, âge, réserves, couleur, réseau de neurones). Elles se déplacent aléatoirement, consomment de l’énergie, vieillissent et meurent lorsqu’elles atteignent 0 ressources ou un âge limite.
Les collisions empêchent la superposition et permettent les interactions.
Des graphiques en temps réel permettent de suivre la taille des populations, révélant des cycles et équilibres dynamiques.
Interactions
Quatre comportements sont possibles:- Ignorer: pas d’action.
- Combattre: gain ou perte de ressources selon une probabilité liée à l’âge (faible à la naissance et lorsque l'entitée est agée).
- Partager: mise en commun et redistribution équitable des réserves de nourriture des deux entités.
- Reproduire: création d’un nouvel individu avec mutations aléatoires du réseau de neurones. Entraîne une perte de nourriture.
Sélection naturelle et génétique
La distance génétique entre deux réseaux est calculée à partir des poids et biais. Elle permet de définir des espèces et de visualiser leur compétition.La reproduction intègre des mutations probabilistes (0,05 % à 50 % des poids modifiés) garantissant diversité et évolution.
La simulation met en évidence un mécanisme de sélection naturelle: les stratégies viables se propagent, les comportements défavorables disparaissent.
Analyse des comportements
Des outils d’analyse ont été développés:- Courbes de score moyen selon un paramètre (âge, distance génétique, ressources).
- Heatmaps montrant l’impact de deux variables combinées sur une interaction. Par exemple, en étudiant l'entité 1, on va étudier l'effet des variables "mes réserves de nourriture" et "âge de l'entité 2" sur l'action privilégiée.
- Fréquence relative des comportements, facilitant la comparaison des stratégies.
- Non-agression: disparition progressive des comportements de combat.
- Domination: exploitation des adversaires faibles ou éloignés génétiquement.
- Endogamie agressive: coopération intra-espèce (partage, reproduction) et agressivité envers les autres.
Ces résultats illustrent comment des mécanismes simples peuvent générer une diversité de comportements complexes et adaptatifs, ouvrant la voie à des applications en IA évolutive, simulation d’écosystèmes, et modélisation comportementale.
Si vous êtes intéressés, contactez moi par mail et je vous enverrai un rapport illustré complet sous format PDF.
Concours - Algorithme Monte Carlo pour résoudre le jeu d'hex
Concours universitaire (1ère place)
Développement d'un algorithme Monte Carlo pour résoudre le jeu d'Hex dans le cadre d'un concours universitaire.
Optimisation des stratégies d'exploration de l'arbre de recheche, de la mémoire utilisée et de la vitesse d'exécution pour maximiser les chances de victoire malgré une puissance de calcul et un temps limité.
Développement d'un algorithme Monte Carlo pour résoudre le jeu d'Hex dans le cadre d'un concours universitaire.
Optimisation des stratégies d'exploration de l'arbre de recheche, de la mémoire utilisée et de la vitesse d'exécution pour maximiser les chances de victoire malgré une puissance de calcul et un temps limité.
Langage: C++
Générer des cartes avec des pays réalistes
Exploration de méthodes existantes permettant de générer des cartes et amélioration des résultats avec des méthodes personnelles.
Développement d'une méthode de bruit cellulaire en mixant notamment des diagrammes de Voronoi et du bruit de Perlin.
Création d'une interface en SFML permettant de visualiser l'évolution de la simulation et d'interagir avec.
Développement d'une méthode de bruit cellulaire en mixant notamment des diagrammes de Voronoi et du bruit de Perlin.
Création d'une interface en SFML permettant de visualiser l'évolution de la simulation et d'interagir avec.
Langage: C++
Réseau de neurones apprenant à conduire sur un circuit
Création de divers projets axés sur l'apprentissage petites voitures dans un circuit.
Les voitures apprennent à éviter les murs puis ensuite à optimiser leur trajet afin de finir le circuit le plus vite possible.
Réseau de neuronnes simple, testé sur différents langages pour faciliter le développement, améliorer les performances et tester mes compétences.
Les voitures apprennent à éviter les murs puis ensuite à optimiser leur trajet afin de finir le circuit le plus vite possible.
Réseau de neuronnes simple, testé sur différents langages pour faciliter le développement, améliorer les performances et tester mes compétences.
Langages: C++, Python, Scratch
Boids et Quad-Tree
Déplacement d'entités avec un résultat similaire à une "murmuration" (bande) d'étourneaux.
Développement et utilisation de quadtree afin d'optimiser les performances, ce qui nous permet de placer plusieurs centaines d'entités.
Développement et utilisation de quadtree afin d'optimiser les performances, ce qui nous permet de placer plusieurs centaines d'entités.
Langage: C++
Simulation d'objets mous avec le modèle masse-élastique
Simulation d'objets mous en python dans le but d'en faire un jeu dans lequel on doit envoyer une saucisse d'une poêle jusqu'à une cible.
Interface permettant d'interagir avec la simulation: pause, déplacer des objets et modifier leur vitesse.
Interface permettant d'interagir avec la simulation: pause, déplacer des objets et modifier leur vitesse.
Langage: Python
Divers projets accumulant un total de plus de 300k vues
Développement sur Scratch depuis 2013.
Apprentissage des bases de l'informatique jusqu'à la création de simulations 3D et d'apprentissage par réseaux de neuronnes en temps réel.
Malgré le fait que je ne poste plus mes projets sur la plateforme, je reste quand même parmi les 10 français les plus suivi de tous les temps.
Apprentissage des bases de l'informatique jusqu'à la création de simulations 3D et d'apprentissage par réseaux de neuronnes en temps réel.
Malgré le fait que je ne poste plus mes projets sur la plateforme, je reste quand même parmi les 10 français les plus suivi de tous les temps.
Langage: Scratch