1 पॉइंट द्वारा GN⁺ 2025-11-27 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • KiDoom 1993 के क्लासिक shooter गेम DOOM को KiCad PCB editor के भीतर vector-आधारित तरीके से render करने वाला एक प्रोजेक्ट है
  • यह PCB सर्किट ट्रेस को graphics output path के रूप में इस्तेमाल करता है, और प्रति सेकंड 10~25 फ्रेम की गति से चलता है
  • इसी डेवलपर ने ScopeDoom के जरिए oscilloscope पर भी DOOM चलाया, जिसमें MacBook headphone jack को DAC की तरह इस्तेमाल किया गया
  • इसके अलावा CircuitSnips.com, AI chat app, MQTT-आधारित trigger, engine simulator जैसे कई electronics और software प्रोजेक्ट भी बनाए गए हैं
  • यह electronics engineering-आधारित interactive experimental project के रूप में ध्यान आकर्षित कर रहा है, जो hardware design और software creativity को जोड़ता है

मुख्य प्रोजेक्ट अवलोकन

  • KiDoom KiCad PCB editor में DOOM को vector तरीके से render करने वाला एक experimental implementation है
    • PCB सर्किट ट्रेस को graphics output path के रूप में उपयोग करता है
    • लगभग 10~25 FPS की गति से चलता है
  • ScopeDoom oscilloscope पर DOOM चलाने वाला एक संस्करण है
    • MacBook headphone jack को dual-channel DAC की तरह उपयोग करके vector graphics को 4~8Hz पर दिखाता है

अन्य सार्वजनिक प्रोजेक्ट

  • CircuitSnips.com: KiCad subcircuits साझा करने का एक platform, जो circuit version of Thingiverse जैसा है
  • HIT Impact Android App: traumatic brain injury sensor के लिए Kotlin-आधारित Android app
  • MQTT Duration Trigger: Home Assistant के लिए MQTT-आधारित duration trigger integration tool
  • TheDuck.chat: T3 Cloneathon के लिए विकसित AI-आधारित chat application
  • bitwise-mcp: embedded developers के लिए MCP documentation server, जो PDF RM से register definitions निकालकर तेज semantic search देता है
  • KiCad Netlist Tool: KiCad SCH files के LLM token count को कम करके auto-documentation में मदद करने वाला tool
  • Claude Code Comm Bot: VS Code integration के लिए Discord communication bot
  • Agent Tool (deprecated): CLI tools और LLM web services के लिए real-time streaming web frontend
  • Engine Simulator [WIP]: physics calculation के जरिए diesel 6-cylinder engine को simulate करने वाला प्रोजेक्ट
  • Vitamin/Supplement Price Comparison [WIP]: branded supplements और generic products की price comparison site
  • Fuel Injector Characterizer: Arduino और Webserial का उपयोग करने वाली fuel injector performance validation system

व्यक्तिगत डेवलपमेंट वातावरण

  • VS Code Server: Tailscale VPN के जरिए remote development environment
  • Home Assistant: authentication की आवश्यकता वाला smart home automation platform

करियर सारांश

  • 3 ECU development, 10 साल से अधिक का अनुभव, और 2.85 करोड़ मील से अधिक driving data पर आधारित प्रोजेक्ट अनुभव

1 टिप्पणियां

 
GN⁺ 2025-11-27
Hacker News राय
  • यह प्रोजेक्ट meme से कहीं ज़्यादा अपनी implementation approach की वजह से दिलचस्प है
    DOOM को render करना जितना प्रभावशाली नहीं है, उससे ज़्यादा प्रभावशाली यह है कि इसने PCB editor के rendering pipeline को hijack करके उसे real-time vector engine की तरह चलाया
    यह DOOM की internal structure से geometry को सीधे निकालता है, sprites को असली component footprints पर map करता है, और KiCad के object model को बिना पूरी recalculation के real-time में update करता है
    और उसी vector stream को oscilloscope के audio DAC पर भेजने का आइडिया भी है
    इस तरह “किसी tool को उसके मूल उद्देश्य से अलग इस्तेमाल करना” वाला creative connection बहुत शानदार है
    आगे चलकर ScopeDoom की दिशा शायद और भी दिलचस्प हो सकती है। vector display rendering के बारे में सोचने का तरीका ही बदल देता है, और analog voltage signal से DOOM को draw होते देखना लगभग काव्यात्मक लगता है
    इससे भी आगे, अगर fast DAC, analog persistence scopes, और dynamic sprite simplification को जोड़ा जाए, तो शायद यह smooth vector shooter aesthetics के और करीब पहुँच सकता है

  • यह सोचकर मज़ा आता है कि क्या schematic को कागज़ पर print करके flipbook की तरह पलटा जा सकता है
    फिर शायद किसी दिन यह PowerPoint presentation भी बन जाए

  • वाकई हैरान कर देने वाला प्रोजेक्ट है। बिल्कुल tom7 या उसके YouTube चैनल के काम जैसा एहसास देता है

    • ऐसा सुनकर सम्मानित महसूस हो रहा है
  • “engine से vector data को सीधे निकालना” पढ़कर जिज्ञासा हुई कि क्या इसे oscilloscope पर करने की कोई मिसाल है
    DOOM sprite-based है, इसलिए कुछ सीमाएँ होंगी, लेकिन कम-से-कम background तो render किया जा सकता है
    high-speed scope को low-resolution black-and-white raster display की तरह इस्तेमाल करने के उदाहरण पहले भी रहे हैं
    मुझे oscilloscope पर Quake चलाने का वीडियो मिला, और 3D model होने की वजह से उसमें depth का एहसास अच्छा आता है
    संपादन: लेख के बाद वाले हिस्से में ScopeDoom देखकर चकित रह गया। लगा था ऐसे प्रयोग पहले हुए होंगे, लेकिन आश्चर्यजनक रूप से ढूँढना मुश्किल है

    • मैं ही लेखक हूँ। प्रेरणा Vectrex port वीडियो से मिली थी
      Keysight MXA जैसी मशीनों पर DOOM चलाने के उदाहरण बहुत हैं, लेकिन वह तो बस उसे एक PC की तरह इस्तेमाल करना है
      Spectrum DOOM कैसा रहेगा? waterfall plot snapshots का उपयोग करके शायद यह संभव हो
  • अगला कदम शायद DOOM को सचमुच PCB पर render करके खेलना हो सकता है
    हर frame को custom order करना, और 2 हफ्ते बाद पहुँचे boards को लगाते हुए अपनी ज़िंदगी पर विचार करता खिलाड़ी आसानी से कल्पना में आता है

    • speculative execution जोड़ दी जाए तो गति बढ़ सकती है। बस एक अच्छी branch predictor चाहिए होगी
    • 15 FPS पर इसकी लागत लगभग 80~100 euro प्रति सेकंड पड़ेगी, और ज़्यादातर PCB factories की minimum order quantity 5 boards होती है, तो 5x speed play संभव होगा
  • मैंने हाल ही में KiCad सीखना शुरू किया है, और मैं game development coworking space में काम करता हूँ, इसलिए यह दो दुनियाओं के परफेक्ट मिलन जैसा लगता है। शानदार

  • पता नहीं यह दुनिया को बेहतर जगह क्यों बनाता है, लेकिन किसी तरह ऐसा महसूस होता है

  • एक विस्तार विचार के तौर पर, chip design CAD files के आधार पर नए maps जोड़ना मज़ेदार होगा
    chip कमरे बन जाएँ और solder lines गलियारे

  • एक ऐसा प्रोजेक्ट जिसे मैं कभी करना चाहता था, वह है microcontroller-based audio jack display system बनाना
    मैं सोच रहा था कि XY signals को सीधे इस्तेमाल करूँ या web से decode होने वाले software modem का रास्ता लूँ

    • उसके बजाय analog raster scan, यानी Slow-scan TV(SSTV) आज़माने के बारे में क्या ख्याल है
      Apollo missions के दौरान भी TV images इसी तरह transmit की गई थीं
      आधुनिक SSTV कुछ सौ Hz bandwidth पर भी काम कर लेता है, लेकिन अगर audio channel के पूरे 20kHz का उपयोग किया जाए, तो लगभग 100x100 pixels resolution पर 1fps transmission संभव हो सकती है
  • क्या यह KiCad v9 की नई socket API का उपयोग करता है, यह जानने की जिज्ञासा है
    मैंने खुद एक s-expr library बनाकर footprints और symbols inject किए थे, लेकिन उसमें bugs बहुत थे और वह unstable थी
    मैं किसी ज़्यादा official और stable तरीके पर जाना चाहता हूँ

    • socket API का उपयोग नहीं किया गया। यह एक सामान्य plugin है जो v6 और उसके बाद के versions पर चलता है
      तुम्हारी s-expr library में मेरी रुचि है। शायद यह मेरे दूसरे प्रोजेक्ट CircuitSnips से कुछ हद तक overlap करती हो
      CircuitSnips इलेक्ट्रॉनिक circuits के लिए Thingiverse जैसी service है, और मैंने KiCanvas renderer को पूरी sheet देने का तरीका खुद implement किया था
      जब मैंने इसे KiCad Discord में share किया, तो feedback मिला कि KiCad 9+ का Design Block feature इससे संबंधित हो सकता है