- KiDoom est un projet qui restitue en vectoriel le jeu de tir classique DOOM de 1993 dans l’éditeur PCB KiCad
- Il utilise les pistes du circuit imprimé (
trace) comme chemin de sortie graphique et tourne à 10 à 25 images par seconde
- Le même développeur a aussi fait tourner DOOM sur un oscilloscope avec ScopeDoom, en utilisant la prise casque d’un MacBook comme DAC
- Il mène également divers projets en électronique et logiciel, dont CircuitSnips.com, une application de chat IA, des déclencheurs basés sur MQTT et un simulateur de moteur
- Le projet attire l’attention comme expérience interactive fondée sur l’ingénierie électronique, à la croisée de la conception matérielle et de la créativité logicielle
Aperçu des principaux projets
- KiDoom est une implémentation expérimentale qui restitue DOOM en vectoriel dans l’éditeur PCB KiCad
- Utilise les pistes du circuit imprimé comme chemin de sortie graphique
- Fonctionne à environ 10 à 25 FPS
- ScopeDoom est une version qui exécute DOOM sur un oscilloscope
- Utilise la prise casque d’un MacBook comme DAC double canal pour afficher des graphismes vectoriels à 4 à 8 Hz
Autres projets publics
- CircuitSnips.com : plateforme de partage de sous-circuits KiCad, une sorte de version circuits de Thingiverse
- HIT Impact Android App : application Android en Kotlin pour un capteur de traumatisme crânien
- MQTT Duration Trigger : outil d’intégration de déclencheurs à durée basée sur MQTT pour Home Assistant
- TheDuck.chat : application de chat basée sur l’IA développée pour le T3 Cloneathon
- bitwise-mcp : serveur de documentation MCP pour développeurs embarqués, qui extrait les définitions de registres depuis des PDF RM pour offrir une recherche sémantique rapide
- KiCad Netlist Tool : outil qui réduit le nombre de tokens LLM des fichiers SCH KiCad afin de faciliter la documentation automatisée
- Claude Code Comm Bot : bot de communication Discord pour l’intégration VS Code
- Agent Tool (deprecated) : frontend web à streaming en temps réel pour outils CLI et services web LLM
- Engine Simulator [WIP] : projet de simulation physique d’un moteur diesel 6 cylindres
- Vitamin/Supplement Price Comparison [WIP] : site de comparaison de prix entre compléments de marque et produits génériques
- Fuel Injector Characterizer : système de validation des performances d’injecteurs de carburant utilisant Arduino et Webserial
Environnement de développement personnel
- VS Code Server : environnement de développement distant via VPN Tailscale
- Home Assistant : plateforme domotique d’automatisation nécessitant une authentification
Résumé de carrière
- Expérience sur des projets fondés sur le développement de 3 ECU, plus de 10 ans d’expérience et plus de 28,5 millions de miles de données de conduite
1 commentaires
Avis Hacker News
Ce projet est bien plus intéressant par sa mise en œuvre que comme mème
Ce qui est impressionnant, ce n’est pas de faire tourner DOOM, mais d’avoir détourné le pipeline de rendu de l’éditeur PCB pour le faire fonctionner comme un moteur vectoriel en temps réel
Il extrait directement la géométrie de la structure interne de DOOM, mappe les sprites sur de vraies empreintes de composants, et met à jour le modèle d’objets de KiCad en temps réel sans tout recalculer
Il y a même l’idée d’envoyer le même flux vectoriel vers le DAC audio d’un oscilloscope
Ce type de connexion créative consistant à « utiliser un outil à contre-emploi » est remarquable
À l’avenir, la piste ScopeDoom pourrait être encore plus intéressante. Les affichages vectoriels changent complètement la manière de penser le rendu, et voir DOOM dessiné par des signaux de tension analogiques a quelque chose de poétique
En allant plus loin, en combinant un DAC rapide, un oscilloscope analogique à rémanence et une simplification dynamique des sprites, on pourrait se rapprocher d’une esthétique de shooter vectoriel fluide
Je me demande s’il serait possible d’imprimer les schémas sur papier et de les feuilleter comme un flipbook
À ce rythme, ça finira peut-être un jour en présentation PowerPoint
Projet vraiment stupéfiant. Ça donne l’impression d’une création de tom7 ou de sa chaîne YouTube
En lisant la partie sur le fait « d’extraire directement les données vectorielles du moteur », je me suis demandé s’il existait déjà des implémentations sur oscilloscope
DOOM étant basé sur des sprites, il y a des limites, mais au moins les arrière-plans semblent rendables
Il y a déjà eu des exemples où un oscilloscope rapide était utilisé comme écran raster monochrome basse résolution
J’ai trouvé une vidéo de Quake sur oscilloscope ; comme c’est un modèle 3D, la sensation de volume fonctionne bien
Édition : j’ai été impressionné de voir ScopeDoom dans la seconde moitié de l’article. J’aurais cru que ce genre d’essai existait depuis plus longtemps, mais étonnamment c’est difficile à trouver
Il existe beaucoup d’exemples de DOOM lancé sur du matériel comme le Keysight MXA, mais ce n’est au fond qu’un simple usage comme PC
Je me demande ce que donnerait Spectrum DOOM. Avec des instantanés de waterfall plot, ce serait peut-être possible
La prochaine étape sera peut-être de jouer à DOOM rendu sur de vrais PCB
J’imagine déjà le joueur commandant chaque frame sur mesure, puis insérant les cartes arrivées deux semaines plus tard tout en réfléchissant au sens de sa vie
J’ai récemment commencé à apprendre KiCad, et comme je travaille dans un espace de coworking orienté développement de jeux, j’ai l’impression de voir deux mondes se rencontrer parfaitement. Superbe
Je ne sais pas pourquoi, mais j’ai l’impression que ça rend le monde meilleur
Comme idée d’extension, ce serait amusant d’ajouter de nouvelles cartes à partir de fichiers CAD de conception de puces
La puce deviendrait une salle, et les lignes de soudure des couloirs
Parmi les projets que j’aimerais faire un jour, il y a un système d’affichage via prise audio basé sur microcontrôleur
Je me demandais s’il valait mieux utiliser directement des signaux XY ou faire un décodage web via soft modem
Les missions Apollo utilisaient aussi ce type de méthode pour transmettre l’image TV
Les systèmes SSTV modernes fonctionnent avec quelques centaines de Hz de bande passante, mais en exploitant toute la bande audio de 20 kHz, on pourrait transmettre du 100x100 pixels à environ 1 fps
Je me demande si cela utilise la nouvelle API socket de KiCad v9
J’ai développé moi-même une bibliothèque s-expr pour injecter des empreintes et des symboles, mais c’était très bogué et instable
J’aimerais passer à une méthode plus officielle et plus stable
Ta bibliothèque s-expr m’intéresse. Il y a probablement un recoupement avec mon autre projet, CircuitSnips
CircuitSnips est une sorte de Thingiverse pour les circuits électroniques, et j’ai implémenté moi-même une méthode pour fournir une feuille complète au moteur de rendu KiCanvas
Quand je l’ai partagé sur le Discord de KiCad, on m’a aussi répondu que la fonctionnalité Design Block de KiCad 9+ pouvait être pertinente