frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Reinventing how .NET builds and ships (again)

https://devblogs.microsoft.com/dotnet/reinventing-how-dotnet-builds-and-ships-again/
39•IcyWindows•2h ago•19 comments

A new bridge links the math of infinity to computer science

https://www.quantamagazine.org/a-new-bridge-links-the-strange-math-of-infinity-to-computer-scienc...
109•digital55•4h ago•17 comments

Unifying our mobile and desktop domains

https://techblog.wikimedia.org/2025/11/21/unifying-mobile-and-desktop-domains/
68•todsacerdoti•7h ago•18 comments

Show HN: We built an open source, zero webhooks payment processor

https://github.com/flowglad/flowglad
209•agreeahmed•7h ago•136 comments

What They Don't Tell You About Maintaining an Open Source Project

https://andrej.sh/blog/maintaining-open-source-project/
30•andrejsshell•2h ago•10 comments

Google Antigravity exfiltrates data via indirect prompt injection attack

https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data
535•jjmaxwell4•6h ago•146 comments

The fall of Labubus and the mush of modern internet trends

https://www.michigandaily.com/arts/digital-culture/the-fall-of-labubus-and-the-mush-of-modern-int...
26•gnabgib•2d ago•23 comments

The Generative Burrito Test

https://www.generativist.com/notes/2025/Nov/25/generative-burrito-test.html
59•pathdependent•1h ago•29 comments

Someone at YouTube Needs Glasses: The Prophecy Has Been Fulfilled

https://jayd.ml/2025/11/10/someone-at-youtube-needs-glasses-prophecy-fulfilled.html
222•jaydenmilne•2h ago•107 comments

How to repurpose your old phone into a web server

https://far.computer/how-to/
162•louismerlin•3d ago•67 comments

FLUX.2: Frontier Visual Intelligence

https://bfl.ai/blog/flux-2
222•meetpateltech•8h ago•68 comments

Ilya Sutskever: We're moving from the age of scaling to the age of research

https://www.dwarkesh.com/p/ilya-sutskever-2
165•piotrgrabowski•7h ago•140 comments

Trillions spent and big software projects are still failing

https://spectrum.ieee.org/it-management-software-failures
285•pseudolus•12h ago•260 comments

Launch HN: Onyx (YC W24) – Open-source chat UI

165•Weves•10h ago•115 comments

Jakarta is now the biggest city in the world

https://www.axios.com/2025/11/24/jakarta-tokyo-worlds-biggest-city-population
223•skx001•18h ago•134 comments

1,700-year-old Roman sarcophagus is unearthed in Budapest

https://apnews.com/article/hungary-roman-sarcophagus-discovery-budapest-77a41fe190bbcc167b43d0514...
14•gmays•1d ago•7 comments

LLVM Adds Constant-Time Support for Protecting Cryptographic Code

https://blog.trailofbits.com/2025/11/25/constant-time-support-lands-in-llvm-protecting-cryptograp...
10•birdculture•1h ago•3 comments

A DOOM vector engine for rendering in KiCad, and over an audio jack

https://www.mikeayles.com/#kidoom
26•mikeayles•2h ago•1 comments

Constant-time support coming to LLVM: Protecting cryptographic code

https://blog.trailofbits.com/2025/11/25/constant-time-support-coming-to-llvm-protecting-cryptogra...
36•ahlCVA•11h ago•14 comments

Notes on the Troubleshooting and Repair of Computer and Video Monitors

https://www.repairfaq.org/sam/monfaq.htm
10•WorldPeas•2h ago•0 comments

Python is not a great language for data science

https://blog.genesmindsmachines.com/p/python-is-not-a-great-language-for
116•speckx•8h ago•127 comments

The 101 of analog signal filtering (2024)

https://lcamtuf.substack.com/p/the-101-of-analog-signal-filtering
117•harperlee•4d ago•9 comments

Human brains are preconfigured with instructions for understanding the world

https://news.ucsc.edu/2025/11/sharf-preconfigured-brain/
415•XzetaU8•18h ago•284 comments

Google steers Americans looking for health care into "junk insurance"

https://pluralistic.net/2025/11/25/open-season/
52•hn_acker•3h ago•15 comments

Inflatable Space Stations

https://worksinprogress.co/issue/inflatable-space-stations/
61•bensouthwood•4d ago•25 comments

Unison 1.0

https://www.unison-lang.org/unison-1-0/
187•pchiusano•5h ago•58 comments

The gruesome new data on tech jobs

https://www.businessinsider.com/gruesome-tech-jobs-data-scientists-analytics-indeed-2025-11
10•pseudolus•31m ago•1 comments

Bad UX World Cup 2025

https://badux.lol/
117•CharlesW•6h ago•33 comments

3 things to know about Ironwood, our latest TPU

https://blog.google/products/google-cloud/ironwood-google-tpu-things-to-know/
8•zdw•2h ago•0 comments

Making Crash Bandicoot (2011)

https://all-things-andy-gavin.com/video-games/making-crash/
195•davikr•12h ago•33 comments
Open in hackernews

A DOOM vector engine for rendering in KiCad, and over an audio jack

https://www.mikeayles.com/#kidoom
26•mikeayles•2h ago

Comments

mikeayles•2h ago
I got DOOM running in KiCad by rendering it with PCB traces and footprints instead of pixels.

Walls are rendered as PCB_TRACK traces, and entities (enemies, items, player) are actual component footprints - SOT-23 for small items, SOIC-8 for decorations, QFP-64 for enemies and the player.

How I did it: Started by patching DOOM's source code to extract vector data directly from the engine. Instead of trying to render 64,000 pixels (which would be impossibly slow), I grab the geometry DOOM already calculates internally - the drawsegs[] array for walls and vissprites[] for entities.

Added a field to the vissprite_t structure to capture entity types (MT_SHOTGUY, MT_PLAYER, etc.) during R_ProjectSprite(). This lets me map 150+ entity types to appropriate footprint categories.

The DOOM engine sends this vector data over a Unix socket to a Python plugin running in KiCad. The plugin pre-allocates pools of traces and footprints at startup, then just updates their positions each frame instead of creating/destroying objects. Calls pcbnew.Refresh() to update the display.

Runs at 10-25 FPS depending on hardware. The bottleneck is KiCad's refresh, not DOOM or the data transfer.

Also renders to an SDL window (for actual gameplay) and a Python wireframe window (for debugging), so you get three views running simultaneously.

Follow-up: ScopeDoom

After getting the wireframe renderer working, I wanted to push it somewhere more physical. Oscilloscopes in X-Y mode are vector displays - feed X coordinates to one channel, Y to the other. I didn't have a function generator, so I used my MacBook's headphone jack instead.

The sound card is just a dual-channel DAC at 44.1kHz. Wired 3.5mm jack → 1kΩ resistors → scope CH1 (X) and CH2 (Y). Reused the same vector extraction from KiDoom, but the Python script converts coordinates to ±1V range and streams them as audio samples.

Each wall becomes a wireframe box, the scope traces along each line. With ~7,000 points per frame at 44.1kHz, refresh rate is about 6 Hz - slow enough to be a slideshow, but level geometry is clearly recognizable. A 96kHz audio interface or analog scope would improve it significantly (digital scopes do sample-and-hold instead of continuous beam tracing).

Links: KiDoom GitHub: https://github.com/MichaelAyles/KiDoom ScopeDoom GitHub: https://github.com/MichaelAyles/ScopeDoom KiDOOM Write-up: https://www.mikeayles.com/#kidoom ScopeDOOM Write-up: Https://www.mikeayles.com/#scopedoom