Langue: FR (Français)
Marc Cerutti

Enchanté, je suis

Marc Cerutti


Mes passions : créer des mondes virtuels, automatiser des processus, et ces gros boutons rouges qui cassent tout. C'est ce qui m'a amené à concevoir des systèmes complexes comme programmeur outils / moteur dans le jeu vidéo, puis à explorer la qualité logicielle comme ingénieur QA / testeur logiciel, avec un solide bagage technique.
Je suis toujours ravi d'échanger sur la création de jeux vidéo, la qualité logicielle ou les systèmes à casser intelligemment.

CV

Téléchargements de CV par profil, langue et format
Programmeur outils FR Humain CV ATS CV EN Humain CV ATS CV
Programmeur moteur FR Humain CV ATS CV EN Humain CV ATS CV
Ingénieur QA FR Humain CV ATS CV EN Humain CV ATS CV
Programmeur gameplay FR Humain CV ATS CV EN Humain CV ATS CV
Développeur logiciel FR Humain CV ATS CV EN Humain CV ATS CV

FR: Français / EN: Anglais
Humain: Mise en page graphique / ATS: Lisible par les logiciels de recrutement

/ Carrière

Tous les diplômes et emplois que j'ai accumulés depuis le lycée

mai 2025 - mars 2026 Alternance

Ingénieur en test logiciel

Testeur logiciel · Ingénieur en automatisation des tests · Apprenti

M2I Formation & SOGETI (CAPGEMINI) — Mérignac

Testeur logiciel intervenant sur plusieurs projets de courte durée (2 à 3 semaines), en tests manuels et automatisés. Client : LBP, équipe CDS.

Communication
Microsoft Office
Squash
Excel avancé
Jira
Gestion des défauts
Automatisation des tests
UFT
Reporting de tests
Tests E2E
Tests manuels
Gestion des données de test
Optimisation des performances
sept. 2023 - août 2024 CDD

Ubisoft - Outils de tests automatisés

Programmeur moteur · Programmeur C++ · Programmeur C#

Ubisoft — Bordeaux

Programmation moteur axée sur le développement d'outils modulaires pour le moteur de jeu interne Anvil, en C⁠+⁠+⁠/⁠C⁠#, afin de capturer les performances finales des jeux avec des bots, sur plusieurs productions dont Assassin's Creed Shadows. Travail principal sur le pathfinding, le prétraitement des scénarios de test et les outils de rapport (heatmap, chronologie, vidéo, etc.).

C#
C++
Git
Débogage
Automatisation des tests
Perforce
Conception d'architecture
Développement de frameworks
Xray (Jira)
.NET
Analyse de performances
Optimisation
Tests E2E
Visualisation de données
mars 2023 - août 2023 Stage

Ubisoft - Équipe Anvil

Programmeur outils · Programmeur C++ · Programmeur C#

Ubisoft — Bordeaux

Développement de frameworks de tests automatisés et d'outils internes pour analyser la performance des jeux et optimiser les pipelines de production sur plusieurs plateformes.

C#
C++
Git
Débogage
Automatisation des tests
Perforce
Conception d'architecture
Développement de frameworks
.NET
Analyse de performances
Optimisation
Tests E2E
Visualisation de données
sept. 2021 - août 2023 Master

Master Jeux et Médias Interactifs Numériques (JMIN)

Étudiant

Cnam / ENJMIN — Angoulême

Formation couvrant la conception de jeu, la programmation de jeu et de moteur, les fondamentaux UX, le pitching, la conception sonore et la création graphique, le tout pratiqué dans des équipes multidisciplinaires sur des projets concrets.

C++
C#
Programmation d'UI
Gestion de projet
Programmation gameplay
Rendu temps réel
Développement d'outils
GitLab CI/CD
Perforce
Leadership technique
Développement de prototypes
Game Design
Level Design
UX
FMOD
Arduino
Design narratif
Sound Design
Design graphique
juil. 2022 - août 2022 Stage

Sportagogie

Programmeur de jeux · Game designer · Pixel artist · Ingénieur R&D

Sport Management Pedagogy (S-M-P) — Angoulême

Recherche et développement d'un prototype de serious game pour enseigner la gestion financière sur le thème d'un club sportif. Analyse du jeu de société initial et des besoins du client, analyse de marché et faisabilité, prototypage. Le prototype final propose un gameplay inspiré du jeu Reigns jouant sur l'équilibre entre gestion des sponsors, popularité auprès des fans et mécaniques comptables.

C#
Unity3D
Programmation gameplay
Développement d'outils
Analyse des spécifications
Game Design
Serious Games
Développement de prototypes
Design d'UI
Pixel Art
ANTLR4
Modélisation financière
Systèmes de stratégie
Design UX
Design narratif
avr. 2021 - août 2021 Stage

Athena Volumetric Viewer

Programmeur généraliste · Programmeur full-stack

Thermo Fisher Scientific — Bordeaux

Amélioration de l'Athena Volumetric Viewer, un outil full-stack pour explorer de très grands ensembles de données scientifiques volumétriques. Ajout de fonctionnalités de mesure et de lisibilité sur le rendu de voxels, telles que la sélection d'orthoslice, les mesures de distance et d'angle et une légende de palette de couleurs, sur un frontend Angular et un backend OpenInventor C⁠+⁠+ communiquant via Protobuf.

C++
TypeScript
OpenInventor
Rendu temps réel
Conception de systèmes d'UI
Dear ImGui
Angular
Protobuf
Visualisation volumétrique
Imagerie scientifique
Gestion des données
Visualisation de données
Optimisation des performances
Opérations sur voxels
Mesures 2D
Analyse 3D
Scénarios utilisateur
Cypress
sept. 2019 - août 2021 Master

Master en informatique - Image et Son (IIS)

Étudiant

Université de Bordeaux — Bordeaux

Master d'informatique spécialité Image et Son : traitement d'images, réseaux de neurones (CNN), synthèse d'images (Monte-Carlo, anticrénelage, reconstruction 3D), interactions homme-machine (BCI, réalité virtuelle et hybride), traitement du son, IA symbolique et lecture d'articles scientifiques.

C++
Shaders
3D
OpenCV
Traitement d'images
Mathématiques
OpenGL
Pipeline de rendu
Vision par ordinateur
Stéréovision
Traitement numérique du signal
avr. 2020 - août 2020 Stage

Visite virtuelle 3D

Programmeur Unity

SQLI — Pessac

Adaptation d'une visite virtuelle en réalité augmentée vers une expérience web dans le navigateur pendant le confinement lié au Covid-19. Visite des locaux sous Unity et WebGL présentant les projets de l'entreprise à des clients distants, avec modélisation 3D des bureaux, diapositives (images et présentations audio enregistrées), un système de configuration du plan des bureaux pour les mainteneurs non-développeurs, et une recherche sur l'immersion.

Unity3D
Collaboration à distance
Développement d'outils
Blender
Modélisation / Texturing 3D
Optimisation des performances
Développement de prototypes
UX
WebGL

/ Projets

Un mélange de projets, des applications livrées aux game jams du week-end.

Capture d'écran 1 de AI Career Assistant Wiki
Outil · IA

AI Career Assistant Wiki

mai 2026 - aujourd'hui

Projet personnel - Assistant de carrière IA construit sur une base de connaissances markdown

Base de connaissances de carrière IA : un wiki markdown en français interrogé par RAG local (qmd via MCP), source de vérité de ce portfolio. Avec des modules pour rédiger CV et lettres et analyser les offres.

Markdown
Json
Git
Python
Documentation technique
Développement d'outils
OpenCode
LLM
LM Studio
MCP
Ingénierie de prompts
Gestion des données
Automatisation
RAG
Capture d'écran 1 de Site portfolio et déploiement automatisé sur VPS
Web

Site portfolio et déploiement automatisé sur VPS

mai 2025 - aujourd'hui

Projet personnel - Site portfolio personnel et son déploiement VPS automatisé

Site portfolio piloté par les données avec Astro, Vue et TypeScript : carrière, projets et compétences filtrables. Déployé sur un VPS auto-hébergé par un playbook Ansible lancé via GitLab CI.

Git
TypeScript
Astro
Vue
Tailwind CSS
HTML
CSS
Docker
GitLab CI/CD
CI/CD
DevOps
Automatisation des tests
Ansible
IaC
Playwright
Capture d'écran 1 de ComfyUI Align ShortcutsCapture d'écran 2 de ComfyUI Align ShortcutsCapture d'écran 3 de ComfyUI Align ShortcutsCapture d'écran 4 de ComfyUI Align ShortcutsCapture d'écran 5 de ComfyUI Align ShortcutsCapture d'écran 6 de ComfyUI Align Shortcuts
Outil · IA

ComfyUI Align Shortcuts

mai 2026

Projet personnel - Extension de nœud personnalisé ComfyUI

Extension ComfyUI ajoutant des raccourcis clavier pour aligner les nœuds sélectionnés dans l'éditeur de graphe. Plugin JavaScript publié sur ComfyUI Manager, qui remplace des alternatives abandonnées.

Programmation d'UI
Git
JavaScript
Python
ComfyUI
Développement d'outils
Scripting d'éditeur
Open Source
Capture d'écran 1 de DigitalBank — Étude de cas d'automatisation des testsCapture d'écran 2 de DigitalBank — Étude de cas d'automatisation des testsCapture d'écran 3 de DigitalBank — Étude de cas d'automatisation des tests
QA/Test

DigitalBank — Étude de cas d'automatisation des tests

sept. 2025 - mai 2026

M2i Formation (2i Academy by M2i) - Étude de cas d'examen

Stratégie d'automatisation des tests d'une application bancaire avec RobotFramework et GitHub Actions. Socle d'automatisation QA d'entreprise : CI/CD, documentation ADR et gestion complète des données de test.

Git
CI/CD
Documentation technique
Communication
RobotFramework
Tests E2E
Tests d'API
Conception de tests
GitHub Actions
Gestion des données de test
Stratégie QA
Processus QA
Capture d'écran 1 de Notion SystemCapture d'écran 2 de Notion System
Outil

Notion System

oct. 2024 - févr. 2025

Projet personnel - fait pendant la formation Atomic Skills Academy (certification Notion Business Plus, 27 h) et étendu en système personnel

Système de gestion personnel clé en main sous Notion pour piloter projets de jeu, contenu et vie quotidienne. Bases liées de la vision aux tâches, workflow de sprint, suivi du temps et des KPI.

Notion
Agile
Conception d'architecture
Gestion de projet
Documentation technique
Bases de données
Gestion des tâches
Analyse de données
Capture d'écran 1 de PNGTube CavalryCapture d'écran 2 de PNGTube CavalryCapture d'écran 3 de PNGTube CavalryCapture d'écran 4 de PNGTube CavalryCapture d'écran 5 de PNGTube CavalryCapture d'écran 6 de PNGTube CavalryCapture d'écran 7 de PNGTube CavalryCapture d'écran 8 de PNGTube CavalryCapture d'écran 9 de PNGTube CavalryCapture d'écran 10 de PNGTube Cavalry
Motion design

PNGTube Cavalry

nov. 2024 - févr. 2025

Projet personnel - Création d'avatar PNGTube pour une chaîne YouTube

Avatar vectoriel original pour une chaîne YouTube : 15 expressions dessinées sous Inkscape, animées sous Cavalry avec variantes de bouche et de clignement, puis configurées comme états dans veadotube mini.

Inkscape
Automatisation
Recherche
VTubing
Cavalry
Animation
Conception de personnages
Capture d'écran 1 de Small TalkCapture d'écran 2 de Small TalkCapture d'écran 3 de Small TalkCapture d'écran 4 de Small Talk
Jeu

Small Talk

janv. 2025

Global Game Jam - Université de Bordeaux

Jeu de plateforme 3D où la voix, captée au microphone, crée les plateformes. Une mignonne créature cherche des amis dans un monde post-apocalyptique. Global Game Jam 2025.

Unity3D
C#
Programmation gameplay
Game Jam
Traitement audio
Game Design
Level Design
API microphone
Design UX
Capture d'écran 1 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 2 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 3 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 4 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 5 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 6 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 7 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 8 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 9 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 10 de Dulahan Plugin (Export par lot Inkscape)Capture d'écran 11 de Dulahan Plugin (Export par lot Inkscape)
Outil

Dulahan Plugin (Export par lot Inkscape)

nov. 2024 - janv. 2025

Projet personnel - Extension Inkscape pour pipelines PNGTube

Extension Inkscape en Python qui exporte chaque couche d'un SVG complexe dans son propre fichier, conçue pour accélérer les mises à jour de modèles PNGTube (export parallèle, manifeste JSON).

XML
Git
Python
Inkscape
SVG
Développement d'outils
Automatisation
Multithreading
Open Source
Capture d'écran 1 de MetaStreetArtCapture d'écran 2 de MetaStreetArtCapture d'écran 3 de MetaStreetArtCapture d'écran 4 de MetaStreetArtCapture d'écran 5 de MetaStreetArtCapture d'écran 6 de MetaStreetArt
Prototype

MetaStreetArt

févr. 2023

Cnam Enjmin - Projet étudiant M2 JMIN

Prototype multijoueur en réseau réalisé lors d'un atelier d'une semaine avec Unity et SmartFoxServer : les joueurs partagent un espace virtuel et font ensemble des graffitis (système de decals).

Unity3D
C#
Git
Multijoueur en réseau
Decals 3D
SmartFoxServer
Métavers
Capture d'écran 1 de Cold TrustCapture d'écran 2 de Cold TrustCapture d'écran 3 de Cold TrustCapture d'écran 4 de Cold TrustCapture d'écran 5 de Cold Trust
Jeu

Cold Trust

oct. 2022 - févr. 2023

Cnam Enjmin - Projet étudiant M2 JMIN

Jeu d'enquête narratif dans une station polaire. Vertical slice AAA sous Unreal 5 avec bibliothèque de blueprints, systèmes de dialogue et UI procédurale. Équipe de 12 personnes au Cnam Enjmin.

C++
Systèmes narratifs
CI/CD
Perforce
Python
Unreal Engine 5
Blueprint
UI procédurale
Jenkins
VFX
UX
Analyse de données
Capture d'écran 1 de Collab Maze
Expérience interactive

Collab Maze

sept. 2022

Cnam Enjmin - Projet étudiant M2 JMIN

Jeu à deux joueurs créé en une semaine par 11 étudiants. L'un explore un labyrinthe de corde au toucher et au son, l'autre le guide au talkie-walkie et reconstitue une carte numérique. Unity, FMOD, Arduino.

Unity3D
C#
Unity UI Toolkit
Impression 3D
Travail d'équipe
FMOD
Son spatial
Audio interactif
Bus d'événements / Système d'événements
Réseaux
Arduino
Capture d'écran 1 de Under the Sea
Expérience interactive

Under the Sea

sept. 2022

Cnam Enjmin - Projet étudiant M2 JMIN

Projet d'équipe d'une semaine (huit étudiants) sous Unity : une webcam et la détection de mouvement OpenCV font suivre les visiteurs par des bancs de poissons virtuels (flocking GPU).

Unity3D
C#
OpenCV
Traitement d'images
Webcam
GitLab CI/CD
Travail d'équipe
Vision par ordinateur
Multithreading
Boid
Capture d'écran 1 de SportagogieCapture d'écran 2 de SportagogieCapture d'écran 3 de SportagogieCapture d'écran 4 de SportagogieCapture d'écran 5 de SportagogieCapture d'écran 6 de Sportagogie
Prototype · Jeu · Serious game

Sportagogie

juil. 2022 - sept. 2022

Sport Management Pédagogie - Stage entre M1 et M2 (Cnam Enjmin)

Prototype de serious game enseignant la gestion financière via la simulation d'un club de football. Mécaniques inspirées de Reigns, scripts DSL ANTLR4, GitLab CI/CD, données de jeu Excel synchronisées.

Unity3D
C#
Programmation d'UI
2D
Programmation gameplay
Développement d'outils
GitLab CI/CD
CI/CD
Jira
Pixel Art
Game Design
ANTLR4
Shader Graph
Capture d'écran 1 de Clap Clap EventCapture d'écran 2 de Clap Clap EventCapture d'écran 3 de Clap Clap EventCapture d'écran 4 de Clap Clap EventCapture d'écran 5 de Clap Clap EventCapture d'écran 6 de Clap Clap EventCapture d'écran 7 de Clap Clap EventCapture d'écran 8 de Clap Clap EventCapture d'écran 9 de Clap Clap Event
Outil

Clap Clap Event

nov. 2021 - juil. 2022

Projet personnel - publié sur Unity Asset Store

Système d'événements personnalisés persistants pour Unity, publié sur l'Asset Store. Communication indépendante des scènes via le pattern Observer, avec fenêtre d'éditeur pour le debug et le suivi d'événements.

Unity3D
C#
Débogage
Git
Pattern Observer
Scripting d'éditeur
Outils sur mesure
Documentation technique
Bus d'événements / Système d'événements
Réflexion
Unity Asset Store
Open Source
Capture d'écran 1 de SubmergedCapture d'écran 2 de SubmergedCapture d'écran 3 de SubmergedCapture d'écran 4 de SubmergedCapture d'écran 5 de SubmergedCapture d'écran 6 de SubmergedCapture d'écran 7 de SubmergedCapture d'écran 8 de SubmergedCapture d'écran 9 de SubmergedCapture d'écran 10 de SubmergedCapture d'écran 11 de SubmergedCapture d'écran 12 de Submerged
Expérience interactive

Submerged

mars 2022 - juil. 2022

Cnam Enjmin - Projet étudiant M1 JMIN

Escape game interactif avec Kinect, NFC, Arduino et interface de maître de jeu. Les joueurs explorent une épave engloutie et interagissent avec une IA de sirène. Audio surround 5.1 et GitLab CI/CD.

Unity3D
C#
Programmation d'UI
Git
GitLab CI/CD
CI/CD
DevOps
Jira
Webcam
Traitement d'images
Multi-écrans
FMOD
Son spatial
Création d'accessoires
OBS
Kinect
NFC
Arduino
Arbre de comportement
Suivi corporel
Gestion des stocks
Capture d'écran 1 de Carcasse CityCapture d'écran 2 de Carcasse CityCapture d'écran 3 de Carcasse City
Prototype

Carcasse City

févr. 2022 - mai 2022

Cnam Enjmin - Projet étudiant M1 JMIN

Générateur de cartes 2D procédurales sous Godot : génération en couches avec textures de bruit, lacs et rivières tracés par descente de gradient gloutonne, routes en L-système, le tout piloté par l'interface.

C#
Développement d'outils
OpenCV
Godot
Génération procédurale
Bruit
Descente de gradient
Système de Lindenmayer (L-System)
Capture d'écran 1 de MinicraftCapture d'écran 2 de MinicraftCapture d'écran 3 de MinicraftCapture d'écran 4 de MinicraftCapture d'écran 5 de MinicraftCapture d'écran 6 de Minicraft
Prototype

Minicraft

févr. 2022 - avr. 2022

Cnam Enjmin - Projet étudiant M1 JMIN

Prototype voxel façon Minecraft en C⁠+⁠+ et OpenGL sur un moteur pédagogique : terrain en chunks, sélection de blocs, physique du joueur, rendu 3D (deferred shading), brouillard et post-traitement GPU (kernel).

C++
Git
3D
Shaders
Traitement d'images
OpenGL
GLSL
Pipeline de rendu
Post-traitement
Capture d'écran 1 de Halite AICapture d'écran 2 de Halite AICapture d'écran 3 de Halite AICapture d'écran 4 de Halite AICapture d'écran 5 de Halite AICapture d'écran 6 de Halite AICapture d'écran 7 de Halite AI
Prototype de recherche · IA

Halite AI

janv. 2022 - avr. 2022

Cnam Enjmin - Projet étudiant M1 JMIN (compétition IA)

Bot C⁠+⁠+ pour Halite III dont les vaisseaux suivent des behavior trees JSON, en quatre variantes d'une même base de code. Outils pour compiler, exécuter et visualiser les arbres (doc PlantUML automatique).

C++
Json
Python
Travail d'équipe
Arbre de comportement
Boost Preprocessor
CMake
Capture d'écran 1 de Level Design DoomCapture d'écran 2 de Level Design DoomCapture d'écran 3 de Level Design DoomCapture d'écran 4 de Level Design DoomCapture d'écran 5 de Level Design DoomCapture d'écran 6 de Level Design DoomCapture d'écran 7 de Level Design DoomCapture d'écran 8 de Level Design DoomCapture d'écran 9 de Level Design DoomCapture d'écran 10 de Level Design DoomCapture d'écran 11 de Level Design DoomCapture d'écran 12 de Level Design DoomCapture d'écran 13 de Level Design DoomCapture d'écran 14 de Level Design DoomCapture d'écran 15 de Level Design DoomCapture d'écran 16 de Level Design DoomCapture d'écran 17 de Level Design DoomCapture d'écran 18 de Level Design DoomCapture d'écran 19 de Level Design DoomCapture d'écran 20 de Level Design DoomCapture d'écran 21 de Level Design DoomCapture d'écran 22 de Level Design DoomCapture d'écran 23 de Level Design DoomCapture d'écran 24 de Level Design DoomCapture d'écran 25 de Level Design DoomCapture d'écran 26 de Level Design DoomCapture d'écran 27 de Level Design Doom
Prototype

Level Design Doom

oct. 2021 - janv. 2022

Cnam Enjmin - Projet étudiant M1 JMIN (exercice de design de niveau Doom II)

Niveau Doom II solo inspiré d'Indiana Jones et la Dernière Croisade (Doom Builder, GZDoom) : énigmes autour du Graal, ambiance, équilibrage de la difficulté et scripts ACS (pièges, dialogues).

Éclairage
Level Design
Conception d'énigmes
Design narratif
Scripting ACS
Équilibrage
Capture d'écran 1 de White MirrorCapture d'écran 2 de White MirrorCapture d'écran 3 de White MirrorCapture d'écran 4 de White MirrorCapture d'écran 5 de White MirrorCapture d'écran 6 de White Mirror
Jeu

White Mirror

janv. 2022

Global Game Jam - publié ultérieurement sur Steam

Jeu de plateforme 2D avec mécanique de dualité en écran partagé (mondes blanc/noir inversés) et rendu par shader. Réalisé en 48 h lors de la Global Game Jam 2022, publié sur Steam avec classement.

Unity3D
Programmation d'UI
C#
CI/CD
DevOps
Programmation gameplay
Shaders
Render Texture
Outils de level design
Steam
FMOD
Pipeline 3D
Automatisation
Capture d'écran 1 de Kitty Kat BoomCapture d'écran 2 de Kitty Kat BoomCapture d'écran 3 de Kitty Kat BoomCapture d'écran 4 de Kitty Kat BoomCapture d'écran 5 de Kitty Kat BoomCapture d'écran 6 de Kitty Kat BoomCapture d'écran 7 de Kitty Kat BoomCapture d'écran 8 de Kitty Kat BoomCapture d'écran 9 de Kitty Kat Boom
Jeu

Kitty Kat Boom

déc. 2021

Cnam Enjmin - Nano-projet M1

Jeu versus humoristique : des chats dans des fusées-poissons. Deux joueurs dos à dos, le plus rapide fait exploser l'autre par collision. Nano-projet M1 de 15 jours, écran partagé, gameplay 3C, audio Wwise.

Unity3D
C#
Programmation d'UI
Git
Programmation gameplay
Gameplay 3C
3D
Shader Graph
Wwise
Sound Design
Capture d'écran 1 de Hockey PongsciiCapture d'écran 2 de Hockey Pongscii
Jeu

Hockey Pongscii

sept. 2021 - oct. 2021

Cnam Enjmin - Projet étudiant M1 JMIN

Hockey façon Pong pour deux joueurs sur un clavier, affiché dans une console Windows avec C⁠+⁠+ et l'API Win32. Physique de collision sur mesure, buts, murs bonus et sons, réalisé en équipe de deux.

C++
Programmation gameplay
Travail d'équipe
JetBrains Rider / CLion
Programmation de jeux
Moteur physique
Physique et simulation
Eigen
Doxygen
CMake
Console Windows
Capture d'écran 1 de Eco+Capture d'écran 2 de Eco+Capture d'écran 3 de Eco+Capture d'écran 4 de Eco+Capture d'écran 5 de Eco+
Expérience interactive

Eco+

oct. 2021

Cnam Enjmin - Projet étudiant M1 JMIN

ECO (Emotional Coaching Object) : sac de frappe expérimental à capteurs de pression textiles, lumière et musique, qui répond et coache le joueur émotionnellement. Prototype d'une semaine, Arduino et Teensy.

C++
Arduino
Teensy
Tissu réactif
Capture d'écran 1 de A Game About MeCapture d'écran 2 de A Game About MeCapture d'écran 3 de A Game About Me
Jeu

A Game About Me

avr. 2021

ENJMIN Training Camp #2 (TRAIN-JAM) - game jam

Prototype de game jam pour apprendre Yarn Spinner et les systèmes de dialogue dans les jeux narratifs : jeu 2D pixel art en vue de dessus sous Unity, avec dialogues à embranchements.

Unity3D
C#
Programmation gameplay
Game Jam
Développement de prototypes
Narration interactive
Yarn Spinner
Capture d'écran 1 de CARDS DetectionCapture d'écran 2 de CARDS DetectionCapture d'écran 3 de CARDS DetectionCapture d'écran 4 de CARDS DetectionCapture d'écran 5 de CARDS Detection
Expérience interactive

CARDS Detection

janv. 2021 - mars 2021

Université de Bordeaux - Projet étudiant avec Inria Potioc

Suivi d'objets AR sans marqueurs, expérimentant plusieurs algorithmes (détection RGB, YOLO, filtres de Kalman, etc.) : plugin C⁠+⁠+/OpenCV chargé sous Unity, étendant le système AR spatial CARDS d'Inria Potioc.

C++
C#
Unity3D
Git
OpenCV
DLL / Paquets
Python
Vision par ordinateur
Suivi d'objets
RA
Capture d'écran 1 de Need A Needle (Candidature Cnam Enjmin)Capture d'écran 2 de Need A Needle (Candidature Cnam Enjmin)Capture d'écran 3 de Need A Needle (Candidature Cnam Enjmin)Capture d'écran 4 de Need A Needle (Candidature Cnam Enjmin)Capture d'écran 5 de Need A Needle (Candidature Cnam Enjmin)Capture d'écran 6 de Need A Needle (Candidature Cnam Enjmin)
Concept de jeu

Need A Needle (Candidature Cnam Enjmin)

janv. 2021 - mars 2021

Cnam Enjmin - Candidature Master JMIN (dossier créatif, admis)

Concept de jeu fondé sur la physique temps réel de fils, appuyé par des recherches techniques sur PBD/XPBD, softbodies, cordes et solveurs GPU, avec concept art et moodboard.

Documentation technique
Communication
Game Design
Physique de gameplay
Moteur physique
Physique et simulation
GPU
Recherche
Article scientifique
Moodboard
Concept de jeu
PBD/XPBD
Capture d'écran 1 de Map Tile Grid CreatorCapture d'écran 2 de Map Tile Grid CreatorCapture d'écran 3 de Map Tile Grid CreatorCapture d'écran 4 de Map Tile Grid CreatorCapture d'écran 5 de Map Tile Grid CreatorCapture d'écran 6 de Map Tile Grid CreatorCapture d'écran 7 de Map Tile Grid Creator
Outil

Map Tile Grid Creator

avr. 2020 - juin 2020

Projet personnel - publié sur Unity Asset Store

Extension d'éditeur Unity pour créer des tilemaps 3D sur grilles cubiques et hexagonales. Publiée sur l'Asset Store avec support du gameplay à l'exécution, undo/redo et génération procédurale.

Unity3D
C#
Git
Scripting d'éditeur
Outils sur mesure
3D
Documentation technique
Génération procédurale
Unity Asset Store
Open Source
Capture d'écran 1 de Sunset SkyboxCapture d'écran 2 de Sunset SkyboxCapture d'écran 3 de Sunset Skybox
Prototype

Sunset Skybox

mai 2020

Projet personnel

Prototype de skybox de coucher de soleil procédural réalisé avec Unity Shader Graph (URP) : soleil, nuages, étoiles et brouillard pilotés par des paramètres de matériau, affichés derrière un personnage de test.

Unity3D
Git
Shaders
3D
Shader Graph
URP
Génération procédurale
Capture d'écran 1 de Jupiter ProjectCapture d'écran 2 de Jupiter Project
Prototype

Jupiter Project

janv. 2020 - avr. 2020

Université de Bordeaux - M1 Informatique - Projet de programmation

Outil de génération procédurale de planètes en C⁠+⁠+ et OpenGL, projet d'informatique de M1. Génération de biomes par bruit avec LibNoise, paramétrage utilisateur du terrain.

C++
Développement d'outils
OpenGL
LibNoise
Bruit
Eigen
Génération procédurale
SurfaceMesh
PugiXML
Tests de performance
Capture d'écran 1 de DarknestCapture d'écran 2 de DarknestCapture d'écran 3 de DarknestCapture d'écran 4 de DarknestCapture d'écran 5 de DarknestCapture d'écran 6 de DarknestCapture d'écran 7 de DarknestCapture d'écran 8 de Darknest
Jeu

Darknest

nov. 2019 - févr. 2020

Game Jam Label[i] - Lauréat (Prix Label[i])

Jeu de plateforme narratif en pixel art, sombre et nerveux. Sautez et dashez sur les ennemis pour avancer et percer le mystère de cette planète semblable à une caverne.

Unity3D
C#
Programmation d'UI
Gestion de projet
Programmation gameplay
Game Jam
Game Design
Direction technique
HDRP
FMOD
Shader Graph
Level Design
Design narratif
Capture d'écran 1 de HeartlessCapture d'écran 2 de HeartlessCapture d'écran 3 de Heartless
Jeu

Heartless

2020

FenrirStudio - Scientific Game Jam - Lauréat

Jeu de plateforme 2D lyrique sur les frontières entre soi et les autres. Changement de dimension (blanc/noir) et mécanique de miroir pour franchir les obstacles. Prix du public à la Scientific Game Jam.

Unity3D
C#
Débogage
Gestion de projet
Programmation gameplay
FMOD
Tests
Shader Graph
Capture d'écran 1 de AstronoidCapture d'écran 2 de AstronoidCapture d'écran 3 de AstronoidCapture d'écran 4 de AstronoidCapture d'écran 5 de Astronoid
Jeu

Astronoid

2020

AtlanGames - Scientific Game Jam

Jeu de tir 2D gravitationnel : visez avec précision et anticipez la gravité des astéroïdes et des planètes pour toucher les cibles, dans une ceinture d'astéroïdes colorée.

Unity3D
C#
Programmation d'UI
Gestion de projet
Programmation gameplay
Direction technique
Bus d'événements / Système d'événements
FMOD
Shader Graph
Capture d'écran 1 de Puddy's World AdventureCapture d'écran 2 de Puddy's World AdventureCapture d'écran 3 de Puddy's World AdventureCapture d'écran 4 de Puddy's World Adventure
Jeu

Puddy's World Adventure

nov. 2019

Fenrir Studio - Jamming Assembly

Jeu d'infiltration 2.5D réalisé en 48 h : incarnez un pudding dans un frigo, qui mange tout ce qu'il peut tout en évitant d'être capturé quand la porte s'ouvre.

Unity3D
C#
Game Jam
Direction technique
Gestion d'équipe
Capture d'écran 1 de Tisse Ta ToileCapture d'écran 2 de Tisse Ta ToileCapture d'écran 3 de Tisse Ta ToileCapture d'écran 4 de Tisse Ta ToileCapture d'écran 5 de Tisse Ta ToileCapture d'écran 6 de Tisse Ta ToileCapture d'écran 7 de Tisse Ta ToileCapture d'écran 8 de Tisse Ta ToileCapture d'écran 9 de Tisse Ta ToileCapture d'écran 10 de Tisse Ta Toile
Expérience interactive

Tisse Ta Toile

janv. 2019 - mai 2019

Bacchanight - Université de Bordeaux L3, semestre 6 (projet étudiant)

Stand de dessin collaboratif au musée des beaux-arts de Bordeaux : des tablettes Android (Java, application basée sur Markers) envoient des dessins modérés par TCP à un serveur d'affichage C⁠# Windows Forms.

C#
Travail d'équipe
Analyse des spécifications
Réseaux
Multithreading
.NET
Java
Android
Windows Forms
Capture d'écran 1 de Robot VisionCapture d'écran 2 de Robot VisionCapture d'écran 3 de Robot VisionCapture d'écran 4 de Robot VisionCapture d'écran 5 de Robot VisionCapture d'écran 6 de Robot VisionCapture d'écran 7 de Robot Vision
Prototype de recherche

Robot Vision

sept. 2018 - avr. 2019

Université de Bordeaux - Licence Informatique (L3, semestres 5 et 6) - Projet technologique (Projet Tech)

Projet de stéréovision pour un robot : outils C⁠+⁠+ Qt et OpenCV pour le calibrage stéréo et les cartes de profondeur (BM, SGBM), plus une simulation Unity du robot envoyant des images stéréo sur le réseau.

C++
Unity3D
C#
OpenCV
Qt
Stéréovision
Réseaux
Robotique
Capture d'écran 1 de BurandomeijiCapture d'écran 2 de BurandomeijiCapture d'écran 3 de BurandomeijiCapture d'écran 4 de BurandomeijiCapture d'écran 5 de BurandomeijiCapture d'écran 6 de BurandomeijiCapture d'écran 7 de BurandomeijiCapture d'écran 8 de BurandomeijiCapture d'écran 9 de BurandomeijiCapture d'écran 10 de BurandomeijiCapture d'écran 11 de BurandomeijiCapture d'écran 12 de BurandomeijiCapture d'écran 13 de BurandomeijiCapture d'écran 14 de BurandomeijiCapture d'écran 15 de Burandomeiji
Jeu

Burandomeiji

déc. 2018 - févr. 2019

Game Jam Label[i] - Concours de game design Université de Bordeaux

Jeu Unity 1v1 asymétrique : un joueur PC place des spawners d'ennemis pour attaquer un joueur VR qui se défend en lançant des sorts de feu, de glace, de vent et d'électricité.

Unity3D
C#
Git
3D
Programmation gameplay
Game Jam
Modélisation / Texturing 3D
Tech Art
Shader Graph
Concept de jeu
VR
Gameplay asymétrique
Capture d'écran 1 de BUBBLECapture d'écran 2 de BUBBLECapture d'écran 3 de BUBBLECapture d'écran 4 de BUBBLE
Expérience interactive

BUBBLE

sept. 2018 - déc. 2018

Bacchanight - Université de Bordeaux L3, semestre 5 (projet étudiant)

Projet de communication Bacchanight 2019 pour le Musée des Beaux-Arts de Bordeaux : spécification de BUBBLE, une application mobile où les étudiants ajoutent des bulles de BD comiques aux œuvres.

Analyse des spécifications
Documentation technique
Analyse de systèmes
Conception d'architecture
Gestion de projet
Communication
Travail d'équipe
Design d'UI
Bases de données
Capture d'écran 1 de LabycardCapture d'écran 2 de LabycardCapture d'écran 3 de LabycardCapture d'écran 4 de LabycardCapture d'écran 5 de LabycardCapture d'écran 6 de Labycard
Jeu

Labycard

nov. 2018

Game Jam+

Party game 2D au tour par tour pour 2 à 4 joueurs sur un clavier, en Python et PyGame sans moteur de jeu : posez des cartes d'effet comme pièges sur une carte aléatoire, puis foncez vers l'arrivée.

Python
Conception d'architecture
Travail d'équipe
Game Jam
PyGame
MVC
Capture d'écran 1 de MediatokCapture d'écran 2 de MediatokCapture d'écran 3 de MediatokCapture d'écran 4 de MediatokCapture d'écran 5 de MediatokCapture d'écran 6 de Mediatok
Outil

Mediatok

août 2018 - oct. 2018

Projet personnel - projet d'apprentissage en C⁠+⁠+ et Qt : application de bureau pour gérer des listes personnelles de titres culturels

Application de bureau pour cataloguer anime, livres, films, jeux et musique dans des listes personnelles : tags, notes, filtres de recherche, import/export, thèmes et icône dans la zone de notification.

C++
Git
Génie logiciel
Documentation technique
Qt
Design d'UI
Doxygen
Capture d'écran 1 de Nuclear IssuesCapture d'écran 2 de Nuclear IssuesCapture d'écran 3 de Nuclear Issues
Jeu

Nuclear Issues

mai 2018

Game Jam + Link by Flatt226 - assets gratuits externalisés

Jeu de tir isométrique humoristique réalisé en 48 h : un scientifique nettoie la radioactivité nucléaire au lance-roquettes. Tirs synchronisés à la musique, difficulté progressive et level design.

Unity3D
C#
Programmation d'UI
Programmation gameplay
Gameplay 3C
Level Design
Game Design
Équilibrage
Capture d'écran 1 de Eagles Journey
Expérience interactive

Eagles Journey

mars 2018 - avr. 2018

Université de Bordeaux - L2 Création personnelle (option informatique, cours de théâtre)

Jeu de poursuite lyrique et relaxant dans l'espace cosmique. Incarnez un aigle qui suit son pendant rouge qui lui échappe. Projet solo d'un mois explorant particules VFX, culling et object pooling.

Unity3D
C#
VFX
Génération procédurale
Pooling d'objets
Modélisation / Texturing 3D
Rigging
Animation
Capture d'écran 1 de CyberHuntCapture d'écran 2 de CyberHunt
Jeu

CyberHunt

nov. 2017 - janv. 2018

Game Jam Label[i] - Lauréat (Prix Game Design)

Jeu multijoueur coopératif asymétrique sous Unity avec l'outil Photon : une héroïne et son fidèle compagnon affrontent un cyborg dans un combat de boss futuriste. Prix Game Design à la Game Jam Label[i] 2018.

Unity3D
C#
Programmation gameplay
Gameplay 3C
Game Jam
Multijoueur en réseau
Game Design
Photon
Capture d'écran 1 de Popcorn EscapeCapture d'écran 2 de Popcorn EscapeCapture d'écran 3 de Popcorn EscapeCapture d'écran 4 de Popcorn EscapeCapture d'écran 5 de Popcorn EscapeCapture d'écran 6 de Popcorn Escape
Jeu

Popcorn Escape

janv. 2017

Global Game Jam

Jeu de puzzle physique réalisé en 48 h sous Unity lors de la Global Game Jam 2017 : tirez des grains de pop-corn sur des panneaux pour résoudre les énigmes d'un four à micro-ondes devenu une escape room.

Unity3D
C#
Programmation d'UI
Git
Programmation gameplay
Travail d'équipe
Game Jam
Développement de prototypes
Capture d'écran 1 de Break the Rules
Jeu

Break the Rules

nov. 2016

Game Jam Bordeaux 4 (Flat226), thème : Break the rules

Première game jam et genèse de ma carrière dans le jeu : Game Jam Bordeaux 4, thème Break the Rules. Jeu de plateforme narratif et puzzle inspiré de The Stanley Parable, sous Unity, en équipe de neuf.

Git
Game Jam

/ Compétences

Mes compétences, organisées par domaine et niveau de maîtrise. Par défaut, seuls les niveaux Intermédiaire et supérieur sont affichés — utilisez le filtre pour la liste complète.

Langages de programmation

C++
C#
Python
TypeScript
JavaScript
Visual Basic / Macros Excel
HTML
CSS
C
ANTLR4
.NET
HLSL
GLSL

Moteurs de jeu

Unity3D
Anvil Engine
Unreal Engine 5
Godot
Unity Asset Store
Steam

Graphisme et 3D

OpenCV
OpenInventor
Rendu temps réel
Traitement d'images
2D
Shaders
Render Texture
3D
Inkscape
SVG
Éclairage
OpenGL
Blender
LibNoise
Eigen
SurfaceMesh
Optimisation des performances
Analyse de performances
Optimisation
Visualisation volumétrique
Opérations sur voxels
Mesures 2D
Analyse 3D
Pipeline de rendu
Stéréovision
VFX
Pixel Art
Création d'accessoires
Pipeline 3D
Génération procédurale
HDRP
Visualisation de données
Modélisation / Texturing 3D
Imagerie scientifique
Decals 3D
GPU
Shader Graph
URP
Système de Lindenmayer (L-System)
Suivi d'objets
Post-traitement
VTubing
Tech Art

Audio et son

FMOD
Son spatial
Traitement audio
Audio interactif

Interface (UI)

Dear ImGui
Conception de systèmes d'UI
Astro
Vue
Tailwind CSS
Unity UI Toolkit
Godot UI
Qt
Angular
UI procédurale
Design d'UI
Unreal Engine UMG

DevOps et build

Git
Perforce
Docker
GitLab CI/CD
CI/CD
DevOps
Développement d'outils
Bash
PowerShell
Visual Studio
JetBrains Rider / CLion
CMake
Sharpmake
Jenkins
GitHub Actions
Automatisation
Boost Preprocessor
Ansible
IaC
Traefik
Fail2ban

QA et tests

UFT
Squash
Xray (Jira)
Automatisation des tests
Gestion des défauts
Selenium
Cypress
Playwright
RobotFramework
Jest / JUnit
Cucumber / Gherkin
Tests manuels
Tests E2E
Tests d'API
Tests de performance
Frameworks d'automatisation
Reporting de tests
Gestion des données de test
Planification des tests
Conception de tests
Outils d'automatisation
Stratégie QA
Processus QA
Tests
Postman
Bruno
Test de jeux
XPath
REST API
Vitest

Projet et collaboration

Collaboration à distance
Notion
Miro
Markdown
Jira
Confluence
Communication
Microsoft Office
Excel avancé
Gestion de projet
Documentation technique
Analyse des spécifications
Agile
Revue de code
OBS
Scénarios utilisateur
Gestion des données
Gestion des stocks
UX
Open Source
Gestion des tâches
Gestion d'équipe
ADR
Article scientifique
Doxygen

IA

ComfyUI
Génération d'images / audio / vidéo
Keras
Vision par ordinateur
Arbre de comportement
PyTorch
LLM
Boid
Machine à états finis
Logique floue
Apprentissage automatique
CNN (réseau de neurones convolutif)
OpenCode
LM Studio
Descente de gradient
Bruit
MCP
Ingénierie de prompts

E/S et matériel

Json
XML
Webcam
Impression 3D
NFC
Kinect
PugiXML
Traitement numérique du signal
Multi-écrans
Arduino
Teensy
Tissu réactif
Protobuf
Matériel de jeu
SQLite
Suivi corporel

Architecture du code

Pattern Observer
Conception d'architecture
Développement de frameworks
DLL / Paquets
Bus d'événements / Système d'événements
Réflexion
Pooling d'objets
Développement web
Pattern Visiteur
MVC

Fondamentaux de l'informatique

Débogage
Algorithmes
Logique
Bases de la programmation
Mathématiques
Structures de données
Systèmes d'exploitation
Analyse de systèmes
Génie logiciel
Réseaux
Bases de données
Multithreading

Compétences interpersonnelles

Curiosité
Exploration
Méthode scientifique
Souci du détail
Travail d'équipe
Résolution de problèmes
Innovation
Leadership technique
Observation professionnelle
Recherche

Développement de jeux

Programmation d'UI
Programmation gameplay
Programmation de jeux
Développement de jeux
Systèmes narratifs
Scripting d'éditeur
Outils sur mesure
Outils de level design
Game Jam
Gameplay 3C
UI/HUD
Développement de plugins de jeu
Physique et simulation
Moteur physique
Game Design
Serious Games
Développement de prototypes
Level Design
Mécaniques
Blueprint
Direction technique
Physique de gameplay
Narration interactive
Multijoueur en réseau
Moodboard
Concept de jeu
PyGame
Yarn Spinner

Langues

Français
Anglais

/ Qui suis-je ?

Qui suis-je, que fais-je, où vais-je : Gauguin a posé la question en premier, mais pas de peinture à l'huile ici.

? Qui suis-je en quelques mots ?

Créer, Coder et Casser : ce sont mes 3C. Je suis sincèrement passionné par la création — jeux, moteurs, programmes, outils —, par l'automatisation et par la remise en question des solutions. J'aime creuser des problèmes complexes, y répondre de façon créative, tester les solutions trouvées et échanger avec des personnes qui font de même.

? Comment j'aime travailler ?

J'aime faire partie des décisions de conception et travailler dans un périmètre bien défini que je peux comprendre et remettre en question si nécessaire. J'enquête sur les problèmes jusqu'à la cause racine et je partage mes conclusions, pour que nous puissions construire la solution ensemble. J'aime aussi les retours fréquents, positifs ou négatifs — c'est ce qui me pousse à progresser.

? Qu'est-ce qui me motive ?

Voir mes idées prendre vie dans un logiciel concret et interactif : un logiciel qui est utilisé, qui est mis à l'épreuve et qui offre la meilleure expérience possible. J'aime aussi les bonnes surprises qui viennent de mes collègues, la créativité qui émerge quand les gens sont véritablement inclus. Ce qui me dérange, en revanche, ce sont les décisions politiques et les compromis commerciaux qui dégradent discrètement l'expérience ou manquent de respect au travail des collaborateurs.

? Comment j'aborde un nouveau problème ?

D'abord, je m'assure que je comprends vraiment quel est le problème : je le questionne, et si c'est un bug, je le reproduis. Une fois qu'il est bien défini, je cherche s'il a déjà été résolu ailleurs, d'une autre manière. Ensuite, même avec plusieurs solutions sur la table, j'en choisis une en fonction des besoins actuels et des plans futurs — le résoudre de manière cohérente, dans les limites de budget, de temps, de ressources et de capacités humaines, c'est la partie que je trouve la plus exigeante.

? Quel rôle je prends naturellement dans une équipe ?

Je préfère les rôles de soutien : je démultiplie ce qu'une équipe fait déjà bien. Cela dit, je n'hésite pas à prendre l'initiative et à piloter des sujets, que ce soit en tant que développeur, testeur ou consultant technique — tant que l'équipe accepte quelqu'un qui aime automatiser les choses, reste curieux du processus global et participe aux discussions.