Paris

Des modèles qui doivent compiler. Des robots qui doivent tenir debout.

Piles d'inférence, accélérateurs photoniques, locomotion, et de la vision qui sort du notebook.

Projets

Un aperçu d’abord. La démo complète s’ouvre en dessous.

01

DropRL — une même pile d'entraînement pour plusieurs environnements

Les projets de RL mélangent souvent l'environnement et le code d'entraînement, ce qui oblige à tout recâbler pour chaque nouvelle tâche.

open source · apprentissage par renforcement · MuJoCo · Python · Ray RLlib

Voir sur GitHub →

Garder les tâches, la configuration et les checkpoints portables tout en prenant en charge un environnement complet de locomotion pour Cassie.

Ouvrir la démo
/ droprl · cassie · signaux de débogage RL synchronisés avec la vidéo t = 0.0s
/ droprl · snake-v0 · agent IA itération 0 · récompense 0.0 · score 0
★ étoile · politique π

02

Toucher affectif — VR

Faire coïncider un geste de pinceau en VR avec un dispositif robotique réel, assez précisément pour une étude de psychophysique.

projet de fin d'études · VR · robotique · Unity · Franka · Redis

Voir sur GitHub →

Synchroniser rendu, robotique/haptique et réponses subjectives sans briser l'illusion.

Ouvrir la démo

Unity · VR · Franka Emika · Redis · suivi des mains

Simulation tactile

Simulation du toucher affectif

Une caresse au pinceau sur une main virtuelle, stimulus principal de l'étude.

Protocole et interface

Calibration

Calibration du suivi des mains

Le participant confirme les poses, puis suit un compte à rebours avant le début des essais.

Évaluation en VR

Interface agréabilité & intensité

Les réponses sont données dans le casque, sans interrompre le déroulé des essais.

03

Jeu de puzzles pour une étude sur le TDAH

Dans le cadre d'un projet de recherche étudiant, construire un jeu pour observer comment des enfants ayant un TDAH passent de l'exploration à l'exploitation.

projet étudiant · Unity · TDAH · C# · Conception de jeu

Ouvrir le projet →

~200 heures seul sur la boucle de jeu, la conception des niveaux, les mécaniques, l'éclairage et la version de test utilisateur.

Ouvrir la démo

Monde central et choix du niveau

Un temple central avec statues repères et portails vers chaque mini-jeu.

Projet étudiant réalisé seul · ~200 heures · conçu pour des tests avec des enfants TDAH

4 mini-jeux

Puzzle de caisses colorées

Une salle façon Sokoban : pousser les caisses sur les dalles de la même couleur.

Pont fragile

Les chiffres sur les caisses indiquent combien de cases tiennent avant que le pont cède.

Glissade sur glace et pièges

La glace ne freine pas, les pics attendent au milieu, et l'erreur se paie vite.

Labyrinthe à la lampe torche

Un labyrinthe circulaire où le brouillard de guerre ne révèle que les cases proches du joueur.

04

Noine — Jeu du moulin

Coder le Jeu du moulin de bout en bout, avec une IA qui sait vraiment jouer.

IA de jeu · Pygame · Minimax · Python

Voir sur GitHub →

La génération des coups change entre placement, déplacement et vol ; la recherche doit donc suivre l'état exact de la partie.

Ouvrir la démo
/ noine — jeu du moulin ·

cliquez sur un point · formez un moulin pour capturer une pièce

version Pygame originale

Plateau Noine en milieu de partie avec pièces orange et blanches
Milieu de partie
Plateau Noine pendant la capture d'une pièce après un moulin
Phase des moulins

05

Distances de Wasserstein convolutives

Rendre les distances de transport optimal utilisables sur grilles et maillages.

géométrie · transport optimal · Python

Voir sur GitHub →

Utiliser des convolutions et des résolutions de l'équation de la chaleur plutôt que de matérialiser une matrice dense de coûts par paires.

Ouvrir la démo

Démonstrations de barycentres

Transition de formes 2D

Des points deviennent une étoile grâce à un barycentre de Wasserstein convolutif sur grille 2D.

Transition d'images RGB

Des barycentres calculés canal par canal mélangent deux photos couleur tout en conservant une structure lisible.

Transition 3D voxelisée

Un dinosaure voxelisé et un double tore interpolent par un barycentre 3D légèrement lissé.

Transport sur surface

Des gaussiennes à noyau de chaleur se mélangent sur un tore en 13 étapes, avec l'étalement visible.

Expérience

Du code qui devait fonctionner ailleurs que dans un notebook.

  1. Août 2026 — Oct. 2026

    ZML

    Ingénieur logiciel · Paris

    • Portage de grands modèles d'IA vers la pile d'inférence de ZML, développée en Zig.
    • Adaptation des architectures et des opérateurs pour assurer une compilation et une exécution efficaces sur accélérateurs.
    • Travail sur toute la chaîne, du chargement des poids à la compilation et à l'inférence.
  2. Oct. 2024 — Juil. 2026

    Arago

    Ingénieur logiciel, accélérateurs IA · Paris

    • Un chemin PyTorch vers un accélérateur photonique : noyaux, placement du graphe et moteur d'exécution hôte.
    • Dispatch firmware, files de commandes, et le travail pilote qui porte ce chemin.
    Voir plus

    Une pile d'accélération pensée d'abord pour PyTorch et pour les habitudes réelles des équipes d'IA.

    Problème
    Une multiplication matricielle photonique n'est qu'un noyau. Le produit doit assurer tout le trajet : de PyTorch au moteur d'exécution et au firmware, puis de nouveau vers des tenseurs utilisables normalement.
    Ce que j'ai construit
    Abaissement par le compilateur, moteur d'exécution côté hôte, chemins pilotes, allocation rapide, transferts entre accélérateurs, files de lancement et dispatch firmware.
    Point délicat
    Des régions de graphe ou des opérations isolées partent sur les accélérateurs, se décomposent en graphes de primitives, s'exécutent sur les cœurs mono, puis reviennent à PyTorch via des événements. Le tout doit rester familier pour une pile d'accélération classique.

    PyTorch · Moteur d'exécution · Firmware · Accélérateurs

    Pourquoi il n'y a pas de dépôt →

    Schéma d'exécution

    Graphe PyTorch → découpage par le compilateur → exécution multi-accélérateur

    01

    Graphe de calcul PyTorch

    entrée aten.mm norm gelu copie aten.mm add sortie
    • Les opérations ATen forment un véritable graphe de dépendances
    • Les arêtes de tenseurs indiquent où placer le calcul
    • Les régions accélérables sont isolées avant l'exécution
    02

    Compilateur + moteur d'exécution hôte

    01 Abaisser le graphe
    02 Répartir le calcul
    03 Planifier les lancements et transferts
    03

    Exécution par accélérateur

    sous-graphe A

    Accélérateur 0

    région -> DAG de primitives

    Sessions d'exécution

    file 0 file 1 file 2

    Graphe primitif sur l'accélérateur

    Cœur de contrôle
    Unité de calcul laser
    Synchronisation + événements matériel
    PCIe / interconnexion des accélérateurs
    sous-graphe B

    Accélérateur 1

    nœud ou région -> DAG de primitives

    Sessions d'exécution

    file 0 file 1 file 2

    Graphe primitif sur l'accélérateur

    Cœur de contrôle
    Unité de calcul laser
    Synchronisation + événements matériel
    04

    Résultat

    • Un lancement peut être un sous-graphe compilé ou une opération PyTorch isolée
    • Le firmware le transforme en DAG de primitives pour les cœurs mono
    • Les tenseurs intermédiaires circulent via PCIe ou les liens entre accélérateurs

    Schéma simplifié — termes publics et génériques uniquement

  3. Sept. 2023 — Sept. 2024

    EyePick

    Ingénieur en apprentissage automatique · Paris

    • Développement de chaînes de vision par ordinateur pour l'automatisation robotique en temps réel : industrie, agriculture et cuisine.
    • Détection d'anomalies et classification d'images pour le contrôle qualité.
    • Adaptation de modèles ResNet lorsque les chaînes de type YOLO posaient des contraintes de licence.
  4. Mars 2023 — Sept. 2023

    Wandercraft

    Stagiaire en apprentissage par renforcement · Paris

    • Entraînement de politiques de contrôle par RL pour le robot bipède Cassie et l'exosquelette Eve.
    • NVIDIA Isaac Gym et Ray RLlib pour la simulation parallèle et l'entraînement distribué.
    • Transfert sim-to-real avec apprentissage par imitation, adaptation de domaine et adaptation visuelle.
  5. Juin 2022 — Sept. 2022

    Poppins (anciennement Mila)

    Stagiaire en algorithmes d'IA · Paris

    • Difficulté adaptative pour un jeu thérapeutique destiné aux enfants dyslexiques.
    • Clustering et métriques de jeu pour ajuster la difficulté sans retour explicite des enfants.
    • Travail sur l'algorithme et son intégration dans le jeu.

À propos

La version courte, avant les postes.

Portrait d'Alhussein Jamil
Alhussein Jamil IA, robotique et systèmes

Je suis ingénieur logiciel à Paris. J'aime les projets qui paraissent simples sur le papier, jusqu'à ce que les contraintes du réel s'en mêlent.

J'ai étudié à l'École polytechnique et à Sorbonne Université : mathématiques et physique, puis apprentissage automatique et robotique.

J'aime les logiciels qui doivent composer avec le matériel, la physique, la latence et les humains. En dehors du travail, je partage mon temps entre projets personnels, musique, escalade et énigmes que j'aurais parfois mieux fait de laisser de côté.

Compétences et parcours

Les outils que j'utilise, ma formation et mes activités d'enseignement

Compétences

Programmation

Python · Zig · C++ · C · OCaml · Java · C# · SQL

Systèmes d'IA

Pipelines d'inférence · Exécution PyTorch · Abaissement de graphes · Moteurs d'exécution · ISA sur mesure · Noyaux · Exécution multi-cœurs

Apprentissage automatique

Vision par ordinateur · Apprentissage par renforcement · Apprentissage par imitation · Transfert sim-to-real · Déploiement de modèles

Robotique

NVIDIA Isaac Gym · Ray RLlib · Contrôle robotique · Automatisation industrielle · Interfaces VR pour robotique

Outils

Linux · Git · Docker · Débogage · Intégration matériel/logiciel

Formation

  • École polytechnique Diplôme d'Ingénieur — équivalent master · 2020 — 2024
  • Sorbonne Université — UPMC Master 2 — Systèmes intelligents · 2023 — 2024
  • Lycées Buffon & Louis-le-Grand CPGE — MPSI → MP* · 2018 — 2020

Enseignement

  • Master X-HEC Intervenant invité en apprentissage automatique auprès d'étudiants en master.
  • Lycée Saint-Louis Examinateur oral (colleur) en mathématiques pour les étudiants en CPGE.

Langues

Français bilingue · Arabe langue maternelle · Anglais bilingue · Espagnol intermédiaire

Centres d’intérêt

MMA · Énigmes · Violon · Escalade

À côté

J'ai appris 3ds Max en autodidacte parce que je voulais créer des décors et des personnages à la Pixar. Ces rendus ont été mes premiers vrais projets créatifs sur ordinateur.

Contact

Un projet, un problème système ou un défi technique inhabituel ?