1 pontos por GN⁺ 2025-11-27 | 1 comentários | Compartilhar no WhatsApp
  • KiDoom é um projeto que renderiza de forma vetorial o clássico jogo de tiro DOOM, de 1993, dentro do editor de PCB KiCad
  • Usa as trilhas de circuito da PCB (trace) como caminho de saída gráfica e roda a 10–25 quadros por segundo
  • O mesmo desenvolvedor também executou DOOM em um osciloscópio com o ScopeDoom, usando a saída de fone de ouvido do MacBook como DAC
  • Além disso, desenvolve vários projetos de eletrônica e software, como CircuitSnips.com, app de chat com IA, gatilhos baseados em MQTT e simulador de motor
  • Chama atenção como um projeto de experimento interativo baseado em engenharia eletrônica que combina design de hardware e criatividade em software

Visão geral dos principais projetos

  • KiDoom é uma implementação experimental que renderiza DOOM de forma vetorial no editor de PCB KiCad
    • Usa as trilhas de circuito da PCB como caminho de saída gráfica
    • Funciona a cerca de 10–25 FPS
  • ScopeDoom é uma versão que executa DOOM em um osciloscópio
    • Usa a saída de fone de ouvido do MacBook como um DAC de dois canais para exibir gráficos vetoriais a 4–8Hz

Outros projetos públicos

  • CircuitSnips.com: plataforma para compartilhar subcircuitos do KiCad, como uma versão de circuitos do Thingiverse
  • HIT Impact Android App: aplicativo Android em Kotlin para sensor de lesão cerebral traumática
  • MQTT Duration Trigger: ferramenta de integração de gatilho por duração baseada em MQTT para o Home Assistant
  • TheDuck.chat: aplicativo de chat com IA desenvolvido para o T3 Cloneathon
  • bitwise-mcp: servidor de documentação MCP para desenvolvedores embarcados, que extrai definições de registradores de PDFs de RM para oferecer busca semântica rápida
  • KiCad Netlist Tool: ferramenta que reduz a contagem de tokens de LLM em arquivos SCH do KiCad para apoiar documentação automatizada
  • Claude Code Comm Bot: bot de comunicação para Discord com integração ao VS Code
  • Agent Tool (deprecated): frontend web com streaming em tempo real para ferramentas CLI e serviços web de LLM
  • Engine Simulator [WIP]: projeto que simula um motor diesel de 6 cilindros com cálculos físicos
  • Vitamin/Supplement Price Comparison [WIP]: site de comparação de preços entre suplementos de marca e produtos genéricos
  • Fuel Injector Characterizer: sistema de validação de desempenho de injetores de combustível usando Arduino e Webserial

Ambiente pessoal de desenvolvimento

  • VS Code Server: ambiente de desenvolvimento remoto via VPN Tailscale
  • Home Assistant: plataforma de automação residencial inteligente que exige autenticação

Resumo da carreira

  • Experiência em projetos com base em 3 desenvolvimentos de ECU, mais de 10 anos de experiência e mais de 28,5 milhões de milhas de dados de condução

1 comentários

 
GN⁺ 2025-11-27
Comentários do Hacker News
  • Este projeto é muito mais interessante pelo modo de implementação do que pelo meme em si
    O impressionante não é renderizar DOOM, mas sim sequestrar o pipeline de renderização do editor de PCB para fazê-lo funcionar como um motor vetorial em tempo real
    Ele extrai a geometria diretamente da estrutura interna do DOOM, mapeia sprites para footprints reais de componentes e atualiza o modelo de objetos do KiCad em tempo real sem recalcular tudo
    E ainda existe a ideia de enviar esse mesmo fluxo vetorial para o DAC de áudio de um osciloscópio
    Esse tipo de conexão criativa de “usar uma ferramenta de um jeito diferente do seu propósito original” é muito legal
    Daqui para frente, a direção do ScopeDoom talvez seja ainda mais interessante. Displays vetoriais mudam completamente a forma de pensar renderização, e ver o DOOM sendo desenhado como sinal de tensão analógico tem algo de poético
    Indo além, combinar DACs rápidos, osciloscópios analógicos com persistência e simplificação dinâmica de sprites talvez aproxime isso de uma estética fluida de shooter vetorial

  • Fiquei pensando se daria para imprimir os esquemáticos em papel e folheá-los como um flipbook
    Desse jeito, talvez um dia isso até vire uma apresentação em PowerPoint

  • Projeto realmente incrível. Passa muito a sensação de algo que o tom7 ou o canal dele no YouTube fariam

    • É uma honra ouvir isso
  • Quando vi a parte sobre “extrair dados vetoriais diretamente do motor”, fiquei curioso se já existia alguma implementação em osciloscópio
    O DOOM tem limitações por ser baseado em sprites, mas parece que pelo menos o cenário daria para renderizar
    Já houve exemplos de uso de osciloscópios rápidos como displays raster monocromáticos de baixa resolução
    Encontrei um vídeo de Quake rodando em um osciloscópio, e como é um modelo 3D a sensação de profundidade fica bem viva
    Edit: fiquei surpreso ao ver o ScopeDoom mais para o fim do texto. Eu imaginava que esse tipo de tentativa já teria existido antes, mas é surpreendentemente difícil de encontrar

    • Sou o autor. Tirei inspiração deste vídeo do port para Vectrex
      Há muitos exemplos de DOOM rodando em equipamentos como o Keysight MXA, mas isso é basicamente só usar o aparelho como um PC
      Fiquei pensando em Spectrum DOOM. Talvez desse para fazer usando snapshots de waterfall plot
  • O próximo passo talvez seja renderizar o DOOM em uma PCB de verdade e jogar assim
    Já consigo imaginar o jogador encomendando cada frame, encaixando a placa que chegou duas semanas depois e repensando a própria vida

    • Dá para acelerar isso com execução especulativa (speculative execution). Só vai precisar de um bom preditor de desvios
    • A 15 FPS, isso custaria algo como 80 a 100 euros por segundo, e como a maioria das fábricas de PCB tem pedido mínimo de 5 unidades, dá para jogar em 5x
  • Comecei a aprender KiCad recentemente e trabalho em um coworking de desenvolvimento de jogos, então parece que meus dois mundos se encontraram perfeitamente. Muito legal

  • Não sei exatamente por que isso faz do mundo um lugar melhor, mas sinto que faz

  • Como ideia de expansão, seria divertido adicionar novos mapas baseados em arquivos CAD de projeto de chips
    O chip viraria uma sala, e as trilhas de solda seriam os corredores

  • Um projeto que eu sempre quis fazer algum dia era criar um sistema de display baseado em entrada de áudio de microcontrolador
    Eu ainda estava pensando se usaria sinais XY diretos ou se decodificaria pela web com um soft modem

    • Nesse caso, talvez valha tentar varredura raster analógica, ou seja, Slow-scan TV (SSTV)
      Foi assim que as missões Apollo também transmitiram vídeo de TV
      O SSTV moderno funciona até com largura de banda de algumas centenas de Hz, mas se usar todos os 20 kHz de um canal de áudio, talvez seja possível transmitir algo como 100x100 pixels a 1 fps
  • Fiquei curioso se isso por acaso usou a nova socket API do KiCad v9
    Eu mesmo criei uma biblioteca s-expr para injetar footprints e símbolos, mas tinha muitos bugs e era instável
    Queria migrar para um método mais oficial e estável

    • Não usei a socket API. É um plugin comum que funciona no v6 ou superior
      Tenho interesse na sua biblioteca s-expr. Talvez haja alguma sobreposição com meu outro projeto, CircuitSnips
      O CircuitSnips é um serviço tipo Thingiverse para circuitos eletrônicos, e implementei por conta própria uma forma de alimentar folhas completas para o renderizador KiCanvas
      Quando compartilhei isso no Discord do KiCad, também recebi o feedback de que o recurso de Design Block do KiCad 9+ provavelmente tem relação com isso