KiDoom – DOOM yang Berjalan di Atas Jalur Sirkuit PCB
(mikeayles.com)- KiDoom adalah proyek yang merender game tembak-menembak klasik DOOM dari tahun 1993 secara berbasis vektor di dalam editor PCB KiCad
- Menggunakan jalur sirkuit PCB (trace) sebagai lintasan output grafis, dan berjalan pada kecepatan 10–25 frame per detik
- Pengembang yang sama juga menjalankan DOOM di osiloskop melalui ScopeDoom, dengan memanfaatkan jack headphone MacBook sebagai DAC
- Selain itu juga mengerjakan berbagai proyek elektronik dan perangkat lunak seperti CircuitSnips.com, aplikasi chat AI, trigger berbasis MQTT, dan simulator mesin
- Menarik perhatian sebagai proyek eksperimen interaktif berbasis rekayasa elektronika yang menggabungkan desain perangkat keras dan kreativitas perangkat lunak
Ikhtisar Proyek Utama
- KiDoom adalah implementasi eksperimental yang merender DOOM secara vektor di editor PCB KiCad
- Menggunakan jalur sirkuit PCB sebagai lintasan output grafis
- Berjalan pada kecepatan sekitar 10–25 FPS
- ScopeDoom adalah versi yang menjalankan DOOM di osiloskop
- Menggunakan jack headphone MacBook sebagai DAC dua kanal untuk menampilkan grafis vektor pada 4–8Hz
Proyek Publik Lainnya
- CircuitSnips.com: platform untuk berbagi sub-sirkuit KiCad, semacam versi rangkaian dari Thingiverse
- HIT Impact Android App: aplikasi Android berbasis Kotlin untuk sensor cedera otak traumatis
- MQTT Duration Trigger: alat integrasi trigger durasi berbasis MQTT untuk Home Assistant
- TheDuck.chat: aplikasi chat berbasis AI yang dikembangkan untuk T3 Cloneathon
- bitwise-mcp: server dokumentasi MCP untuk pengembang embedded, mengekstrak definisi register dari PDF RM untuk menyediakan pencarian semantik cepat
- KiCad Netlist Tool: alat yang mendukung dokumentasi otomatis dengan mengurangi jumlah token LLM pada file KiCad SCH
- Claude Code Comm Bot: bot komunikasi Discord untuk integrasi VS Code
- Agent Tool (deprecated): frontend web streaming real-time untuk alat CLI dan layanan web LLM
- Engine Simulator [WIP]: proyek yang mensimulasikan mesin diesel 6 silinder dengan perhitungan fisika
- Vitamin/Supplement Price Comparison [WIP]: situs perbandingan harga suplemen bermerek dan produk generik
- Fuel Injector Characterizer: sistem verifikasi performa injektor bahan bakar menggunakan Arduino dan Webserial
Lingkungan Pengembangan Pribadi
- VS Code Server: lingkungan pengembangan jarak jauh melalui Tailscale VPN
- Home Assistant: platform otomasi rumah pintar yang memerlukan autentikasi
Ringkasan Karier
- Memiliki pengalaman proyek berbasis 3 pengembangan ECU, lebih dari 10 tahun pengalaman, dan lebih dari 28,5 juta mil data berkendara
1 komentar
Komentar Hacker News
Proyek ini jauh lebih menarik dari sekadar meme karena cara implementasinya
Yang hebat bukan hanya menjalankan DOOM, tetapi fakta bahwa proyek ini membajak pipeline rendering editor PCB agar bekerja seperti mesin vektor real-time
Geometri diekstrak langsung dari struktur internal DOOM, sprite dipetakan ke footprint komponen nyata, dan model objek KiCad diperbarui secara real-time tanpa rekalkulasi penuh
Bahkan ada ide untuk mengirim aliran vektor yang sama ke audio DAC osiloskop
Koneksi kreatif seperti ini—"menggunakan alat di luar tujuan aslinya"—terasa sangat keren
Ke depannya, arah ScopeDoom mungkin malah lebih menarik. Layar vektor benar-benar mengubah cara berpikir tentang rendering, dan DOOM yang digambar sebagai sinyal tegangan analog terasa puitis
Lebih jauh lagi, jika digabungkan dengan DAC yang cepat, osiloskop analog dengan phosphor persistence, dan penyederhanaan sprite dinamis, hasilnya mungkin akan mendekati estetika shooter vektor yang mulus
Jadi terpikir apakah gambar skematiknya bisa dicetak di kertas lalu dibalik-balik seperti flipbook
Lama-lama mungkin bisa berubah jadi presentasi PowerPoint
Ini benar-benar proyek yang luar biasa. Rasanya seperti karya tom7 atau channel YouTube-nya
Saat membaca bagian "mengekstrak data vektor langsung dari engine", saya jadi penasaran apakah sudah pernah ada implementasi di osiloskop
DOOM berbasis sprite jadi memang ada batasannya, tetapi setidaknya latar belakangnya sepertinya bisa dirender
Saya pernah melihat contoh penggunaan osiloskop berkecepatan tinggi sebagai layar raster hitam-putih beresolusi rendah
Saya menemukan video Quake di osiloskop, dan karena memakai model 3D, kesan kedalamannya terasa hidup
Edit: Saya kaget saat melihat ScopeDoom di bagian akhir tulisan. Saya kira percobaan seperti ini pasti sudah lebih dulu ada, tetapi ternyata cukup sulit ditemukan
Ada banyak contoh menjalankan DOOM di perangkat seperti Keysight MXA, tetapi itu pada dasarnya cuma memakainya sebagai PC biasa
Saya jadi berpikir tentang Spectrum DOOM. Mungkin bisa dilakukan dengan memanfaatkan snapshot waterfall plot
Langkah berikutnya mungkin adalah merender DOOM sebagai PCB sungguhan lalu memainkannya
Terbayang pemain yang memesan setiap frame secara khusus, lalu dua minggu kemudian memasang board yang baru datang sambil merenungkan hidupnya
Saya baru mulai belajar KiCad belakangan ini, dan karena saya bekerja di coworking space pengembangan game, rasanya seperti dua dunia bertemu dengan sempurna. Keren
Saya tidak tahu kenapa, tetapi rasanya ini membuat dunia jadi tempat yang lebih baik
Sebagai ide pengembangan, akan seru kalau menambahkan map baru berdasarkan file CAD desain chip
Chip menjadi ruangan, dan jalur solder menjadi koridor
Proyek yang suatu hari ingin saya coba adalah membuat sistem tampilan berbasis jack audio dengan mikrokontroler
Saya sempat mempertimbangkan apakah akan menulis sinyal XY secara langsung, atau mendekodenya dari web lewat soft modem
Misi Apollo juga mengirim gambar TV dengan cara seperti ini
SSTV modern bisa berjalan hanya dengan bandwidth ratusan Hz, tetapi jika memakai penuh kanal audio 20kHz, mungkin saja mengirim sekitar 1fps pada resolusi 100x100 piksel
Saya penasaran apakah ini menggunakan socket API baru di KiCad v9
Saya pernah membuat sendiri library s-expr untuk menyuntikkan footprint dan simbol, tetapi penuh bug dan tidak stabil
Saya ingin pindah ke cara yang lebih resmi dan stabil
Saya tertarik dengan library s-expr milikmu. Sepertinya ada irisan dengan proyek saya yang lain, CircuitSnips
CircuitSnips adalah layanan semacam Thingiverse untuk rangkaian elektronik, dan saya mengimplementasikan sendiri cara memberi seluruh sheet ke renderer KiCanvas
Saat saya membagikannya di Discord KiCad, saya juga mendapat masukan bahwa fitur Design Block di KiCad 9+ mungkin relevan