- KiDoom, 1993 tarihli klasik nişancı oyunu DOOM’u KiCad PCB editörü içinde vektör tabanlı olarak render eden bir proje
- Grafik çıktı yolu olarak PCB devre izlerini (
trace) kullanıyor ve saniyede 10~25 kare hızında çalışıyor
- Aynı geliştirici, ScopeDoom ile DOOM’u bir osiloskopta da çalıştırdı; burada MacBook kulaklık jakını DAC olarak kullanıyor
- Bunun dışında CircuitSnips.com, yapay zeka sohbet uygulaması, MQTT tabanlı tetikleyici, motor simülatörü gibi çeşitli elektronik ve yazılım projeleri de yürütüyor
- Donanım tasarımı ile yazılım yaratıcılığını birleştiren, elektronik mühendisliği temelli etkileşimli deney projesi olarak dikkat çekiyor
Başlıca proje özeti
- KiDoom, KiCad PCB editöründe DOOM’u vektör yöntemiyle render eden deneysel bir uygulama
- Grafik çıktı yolu olarak PCB devre izlerini kullanıyor
- Yaklaşık 10~25 FPS hızında çalışıyor
- ScopeDoom, DOOM’un osiloskopta çalışan sürümü
- Vektör grafikleri 4~8Hz’de göstermek için MacBook kulaklık jakını çift kanallı DAC olarak kullanıyor
Diğer açık projeler
- CircuitSnips.com: KiCad alt devrelerini paylaşma platformu; Thingiverse’in devre sürümü gibi
- HIT Impact Android App: Travmatik beyin hasarı sensörü için Kotlin tabanlı Android uygulaması
- MQTT Duration Trigger: Home Assistant için MQTT tabanlı süre tetikleyici entegrasyon aracı
- TheDuck.chat: T3 Cloneathon için geliştirilen yapay zeka tabanlı sohbet uygulaması
- bitwise-mcp: Gömülü geliştiriciler için MCP dokümantasyon sunucusu; PDF RM’den register tanımlarını çıkarıp hızlı anlamsal arama sağlıyor
- KiCad Netlist Tool: KiCad SCH dosyalarının LLM token sayısını azaltarak otomatik dokümantasyonu destekleyen araç
- Claude Code Comm Bot: VS Code entegrasyonu için Discord iletişim botu
- Agent Tool (deprecated): CLI araçları ve LLM web servisleri için gerçek zamanlı akış sunan web ön yüzü
- Engine Simulator [WIP]: Dizel 6 silindirli motoru fizik hesaplarıyla simüle eden proje
- Vitamin/Supplement Price Comparison [WIP]: Markalı takviyeler ile jenerik ürünlerin fiyat karşılaştırma sitesi
- Fuel Injector Characterizer: Arduino ve Webserial kullanan yakıt enjektörü performans doğrulama sistemi
Kişisel geliştirme ortamı
- VS Code Server: Tailscale VPN üzerinden uzak geliştirme ortamı
- Home Assistant: Kimlik doğrulama gerektiren akıllı ev otomasyon platformu
Kariyer özeti
- 3 ECU geliştirme, 10 yılı aşkın deneyim, 28,5 milyon milden fazla sürüş verisi tabanlı proje deneyimi
1 yorum
Hacker News görüşleri
Bu projede meme kısmından çok uygulama şekli daha ilginç.
Etkileyici olan şey DOOM’u render etmesi değil, PCB editörünün render pipeline’ını ele geçirip onu gerçek zamanlı bir vektör motoru gibi çalıştırması.
DOOM’un iç yapısından geometry doğrudan çıkarılıyor, sprite’lar gerçek bileşen footprint’lerine eşleniyor ve KiCad’in nesne modeli tam yeniden hesaplama olmadan gerçek zamanlı güncelleniyor.
Hatta aynı vektör akışını osiloskobun ses DAC’ine gönderme fikri bile var.
Bu tür, “araçları asıl amaçlarının dışında kullanma” şeklindeki yaratıcı bağlantılar çok hoş.
İleride ScopeDoom yönü daha da ilginç olabilir. Vektör ekranlar render etme biçimini tamamen değiştiriyor ve DOOM’un analog voltaj sinyalleriyle çizilmesi şiirsel hissettiriyor.
Daha da ileri gidip hızlı DAC’ler, analog kalıcılığa sahip osiloskoplar ve dinamik sprite sadeleştirmesi birleştirilirse akıcı bir vektör shooter estetiğine yaklaşılabilir gibi görünüyor.
Çizimi kâğıda basıp flipbook gibi çevirmek mümkün olur mu diye düşündüm.
Böyle giderse bir gün PowerPoint sunumuna da dönüşebilir.
Gerçekten inanılmaz bir proje. Sanki tom7 ya da onun YouTube kanalı tarafından yapılmış bir iş gibi hissettiriyor.
“Motordan vektör verisini doğrudan çıkarma” kısmını görünce bunun osiloskopta yapılmış bir örneği var mı diye merak ettim.
DOOM sprite tabanlı olduğu için sınırlamalar var ama en azından arka plan render edilebilir gibi duruyor.
Yüksek hızlı osiloskopların düşük çözünürlüklü siyah-beyaz raster ekran olarak kullanıldığı örnekler vardı.
Quake’in osiloskopta çalıştırıldığı videoyu buldum; 3D model olduğu için derinlik hissi daha iyi veriliyor.
Düzeltme: Yazının sonlarına doğru ScopeDoom’u görünce şaşırdım. Böyle denemelerin daha önce yapılmış olmasını beklerdim ama şaşırtıcı şekilde bulması zor.
Keysight MXA gibi cihazlarda DOOM çalıştıran örnek çok, ama bu sadece onu PC olarak kullanmak demek.
Spectrum DOOM nasıl olur diye düşündüm. waterfall plot snapshot’larıyla belki mümkün olabilir.
Bir sonraki adım belki de DOOM’u gerçekten PCB olarak render edip oynanabilir hale getirmek olur.
Her kareyi sipariş edip, 2 hafta sonra gelen kartları tek tek takarken hayatını sorgulayan bir oyuncu gözümde canlanıyor.
Kısa süre önce KiCad öğrenmeye başladım ve bir oyun geliştirme ortak çalışma alanında çalışıyorum; yani iki dünyanın kusursuz biçimde buluşmuş hali gibi. Harika.
Bunun dünyayı neden daha iyi bir yer yaptığını bilmiyorum ama öyle hissettiriyor.
Bir genişleme fikri olarak, çip tasarımı CAD dosyalarını temel alan yeni haritalar eklemek eğlenceli olabilir.
Çipler oda olur, lehim hatları da koridorlara dönüşür.
Bir gün yapmak istediğim projelerden biri, mikrodenetleyici tabanlı bir ses jakı ekran sistemi kurmaktı.
XY sinyallerini doğrudan mı kullansam, yoksa yazılımsal modemle web üzerinden mi decode etsem diye düşünüyordum.
Apollo görevlerinde de TV görüntüleri böyle iletilmişti.
Modern SSTV birkaç yüz Hz bant genişliğinde bile çalışıyor ama ses kanalının tüm 20kHz’ini kullanırsanız yaklaşık 100x100 piksel çözünürlükte 1fps aktarım mümkün olabilir.
Acaba bu, KiCad v9’un yeni socket API’sini kullanıyor mu diye merak ettim.
Ben footprint ve symbol enjekte etmek için doğrudan bir s-expr kütüphanesi yazmıştım ama çok hatalı ve kararsızdı.
Daha resmi ve kararlı bir yönteme geçmek istiyorum.
s-expr kütüphanen ilgimi çekti. Diğer projem CircuitSnips ile örtüşen tarafları olabilir.
CircuitSnips, elektronik devreler için bir çeşit Thingiverse hizmeti ve tam sheet’i KiCanvas renderer’a verme yöntemini kendim uyguladım.
Bunu KiCad Discord’da paylaştığımda, KiCad 9+ içindeki Design Block özelliğinin bununla ilgili olabileceği yönünde geri bildirim de almıştım.