1 ポイント 投稿者 GN⁺ 2025-11-27 | 1件のコメント | WhatsAppで共有
  • KiDoomは、1993年のクラシックシューティングゲームDOOMをKiCad PCBエディタ内でベクターベースにレンダリングするプロジェクト
  • PCBの配線(trace)をグラフィック出力経路として使用し、毎秒10〜25フレームの速度で動作
  • 同じ開発者はScopeDoomを通じてオシロスコープ上でもDOOMを実行しており、MacBookのヘッドホンジャックをDACとして活用
  • このほかにもCircuitSnips.comAIチャットアプリMQTTベースのトリガーエンジンシミュレーターなど、さまざまな電子・ソフトウェアプロジェクトを進行
  • ハードウェア設計とソフトウェアの創造性を組み合わせた電子工学ベースのインタラクティブ実験プロジェクトとして注目

主なプロジェクト概要

  • KiDoomは、KiCad PCBエディタでDOOMをベクター方式でレンダリングする実験的実装
    • PCB配線をグラフィック出力経路として使用
    • 10〜25 FPSの速度で動作
  • ScopeDoomは、オシロスコープでDOOMを動作させるバージョン
    • MacBookのヘッドホンジャックをデュアルチャネルDACとして使い、ベクターグラフィックスを4〜8Hzで表示

その他の公開プロジェクト

  • CircuitSnips.com: KiCadサブ回路を共有するプラットフォームで、Thingiverseの回路版のような存在
  • HIT Impact Android App: 外傷性脳損傷センサー向けのKotlinベースAndroidアプリ
  • MQTT Duration Trigger: Home Assistant向けのMQTTベース持続時間トリガー統合ツール
  • TheDuck.chat: T3 Cloneathon向けに開発されたAIベースのチャットアプリケーション
  • bitwise-mcp: 組み込み開発者向けのMCPドキュメントサーバーで、PDF RMからレジスタ定義を抽出し高速な意味検索を提供
  • KiCad Netlist Tool: KiCad SCHファイルのLLMトークン数を減らし、自動ドキュメント化を支援するツール
  • Claude Code Comm Bot: VS Code統合向けのDiscordコミュニケーションボット
  • Agent Tool (deprecated) : CLIツールおよびLLM Webサービス向けのリアルタイムストリーミングWebフロントエンド
  • Engine Simulator [WIP] : ディーゼル6気筒エンジンを物理計算でシミュレーションするプロジェクト
  • Vitamin/Supplement Price Comparison [WIP] : ブランド製サプリメントと一般製品の価格比較サイト
  • Fuel Injector Characterizer: ArduinoとWebserialを用いた燃料インジェクター性能検証システム

個人開発環境

  • VS Code Server: Tailscale VPNを通じたリモート開発環境
  • Home Assistant: 認証が必要なスマートホーム自動化プラットフォーム

経歴要約

  • 3件のECU開発10年以上の経験2,850万マイル以上の走行データに基づくプロジェクト経験を保有

1件のコメント

 
GN⁺ 2025-11-27
Hacker Newsのコメント
  • このプロジェクトはミーム性よりも実装方法のほうがずっと興味深い
    DOOMをレンダリングしていること自体がすごいのではなく、PCBエディタのレンダリングパイプラインをハイジャックして、リアルタイムのベクターエンジンのように動作させている点が印象的
    DOOMの内部構造からgeometryを直接抽出し、スプライトを実際の部品フットプリントにマッピングし、KiCadのオブジェクトモデルを全体再計算なしでリアルタイム更新している
    さらに同じベクターストリームをオシロスコープのオーディオDACに送るアイデアまである
    こうした「ツールを本来の目的とは違う形で使う」創造的なつながりがすばらしい
    今後はScopeDoomの方向性のほうがさらに面白いかもしれない。ベクターディスプレイはレンダリングの発想そのものを完全に変えるし、DOOMがアナログ電圧信号で描かれるというのは詩的ですらある
    さらに高速DAC、残光のあるアナログスコープ、動的なスプライト簡略化などを組み合わせれば、滑らかなベクターシューターの美学に近づきそう

  • 図面を紙に印刷して、フリップブックのようにパラパラめくれないだろうかと考えた
    そうしているうちに、いつかPowerPointプレゼンテーションになるのかもしれない

  • 本当に驚くべきプロジェクト。まるでtom7彼のYouTubeチャンネルの作品のように感じる

    • そう言ってもらえるのは光栄
  • 「エンジンからベクターデータを直接抽出する」という部分を見て、オシロスコープで実装した例があるのか気になった
    DOOMはスプライトベースなので限界はあるが、背景くらいならレンダリングできそう
    高速スコープを低解像度の白黒ラスターディスプレイとして使う例はあった
    Quakeをオシロスコープで実装した動画を見つけたが、3Dモデルなので立体感が生きている
    修正: 記事の後半でScopeDoomを見て驚いた。こういう試みはもっと以前からあったと思っていたが、意外と見つけにくい

    • 作者です。Vectrexポート動画に着想を得た
      Keysight MXAのような機器でDOOMを動かした例は多いが、それは単にPCとして使っているにすぎない
      Spectrum DOOMはどうだろう。waterfall plotのスナップショットを使えば可能かもしれない
  • 次の段階は、DOOMを実際にPCBとしてレンダリングしてプレイすることかもしれない
    各フレームを発注し、2週間後に届いたボードを差し込みながら人生を振り返るプレイヤーの姿が目に浮かぶ

    • 投機的実行(speculative execution) を導入すれば高速化できる。ただし優れた分岐予測器が必要
    • 15 FPSなら1秒あたりおよそ80〜100ユーロかかり、ほとんどのPCB工場は最小注文数が5枚なので5倍速プレイが可能
  • 最近KiCadを学び始めたばかりだが、ゲーム開発のコワーキングスペースで働いているので、2つの世界が完璧に出会った感じがする。すばらしい

  • なぜこれが世界をより良い場所にするのかは分からないが、ただそう感じる

  • 拡張アイデアとして、チップ設計CADファイルをもとに新しいマップを追加したら面白そう
    チップが部屋になり、ソルダーのラインが通路になるような感じ

  • いつかやってみたいプロジェクトとして、マイクロコントローラベースのオーディオジャック表示システムを作りたいと思っていた
    XY信号を直接使うか、ソフトモデムでWebからデコードするかで悩んでいた

    • それならアナログのラスタースキャン、つまりSlow-scan TV(SSTV)を使ってみてはどうだろう
      アポロミッションでもこうした方式でTV映像を送っていた
      現代のSSTVは数百Hz帯域でも動作するが、オーディオチャンネルの20kHzをすべて使えば、100x100ピクセル程度の解像度で1fps送信できる
  • これがKiCad v9の新しいソケットAPIを使ったものなのか気になる
    自分はs-exprライブラリを直接作ってフットプリントとシンボルを注入したが、バグが多く不安定だった
    もっと公式で安定した方法に移行したい

    • ソケットAPIは使っていない。v6以上で動く通常のプラグイン
      あなたのs-exprライブラリには興味がある。自分の別プロジェクトであるCircuitSnipsと重なる部分がありそう
      CircuitSnipsは電子回路向けのThingiverseのようなサービスで、KiCanvasレンダラーにシート全体を供給する方法を自前で実装した
      KiCad Discordで共有したとき、KiCad 9+のDesign Block機能が関連しているかもしれないというフィードバックももらった