{"slug": "dawn", "name": "Dawn", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 8, "warners": 2, "score": 1.026, "rising": -0.98, "first": "2025-11-10", "latest": "2026-05-28", "why": "Here's a dawn implementation with support for ray tracing", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 3, "compare": 0, "warn": 2}, "spark": [1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Here's a dawn implementation with support for ray tracing", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/berlin-open-wireless-lab/dawn", "official_url": "https://github.com/berlin-open-wireless-lab/DAWN", "pricing": "", "aliases": ["Dawn", "DAWN"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 769134992, "item_id": 48070937, "url": "https://news.ycombinator.com/item?id=48070937", "by": "jauntywundrkind", "date": "2026-05-08", "stance": "recommend", "quote": "On openwrt, DAWN or usteer can both help your APs", "excerpt": "There's band steering. You absolutely do have control, if you opt to do so. On openwrt, DAWN or usteer can both help your APs to get sounding maps from clients and to tell them which AP to join. Looking at the sounding maps is very fun data to see: highly tecommend! The settings aren't the world's greatest but they are pretty good starts! https://github.com/berlin-open-wireless-lab/DAWN https://openwrt.org/docs/guide", "context": "", "use_case": "", "switched_from": "", "story": "Wi is Fi: Understanding Wi-Fi 4/5/6/6E/7/8 (802.11 n/AC/ax/be/bn)"}, {"id": 749417472, "item_id": 46838592, "url": "https://news.ycombinator.com/item?id=46838592", "by": "danjl", "date": "2026-01-31", "stance": "recommend", "quote": "Here's a dawn implementation with support for ray tracing", "excerpt": "Here's a dawn implementation with support for ray tracing that was implemented a number of years ago but never integrated into browsers. Perhaps it will help? https://github.com/maierfelix/dawn-ray-tracing Yes, chessboard3d.app is written with raw JS APIs and raw WebGPU. It does use the rapier physics library, which uses WASM, which might be an issue? It implements its own ray tracing but would probably run 10x faste", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Mystral Native \u2013 Run JavaScript games natively with WebGPU (no browser)"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 749435217, "item_id": 46839701, "url": "https://news.ycombinator.com/item?id=46839701", "by": "Flux159", "date": "2026-01-31", "stance": "warn", "quote": "Dawn builds are slow, 1-2 hours on CI", "excerpt": "WASM shouldn't be an issue since the draco decoder uses it - but it may only work with V8 (for quickjs builds it wouldn't work, but the default builds use V8+dawn). Obviously with an alpha runtime, there may be bugs. I think it would be super cool to have some sort of extension before WebGPU (web) has it. I was taking a look at the prior example & it seems like there's good ongoing discussion linked here about it: ht", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Mystral Native \u2013 Run JavaScript games natively with WebGPU (no browser)"}, {"id": 734123168, "item_id": 45882698, "url": "https://news.ycombinator.com/item?id=45882698", "by": "fngjdflmdflg", "date": "2025-11-10", "stance": "warn", "quote": "WebGPU (via dawn at least) is rather large.", "excerpt": "Fascinating project. Based on section 3.9, it seems the output is in the form of a bitmap. So I assume you have to do a full memory copy to the GPU to display the image in the end. With skia moving to WebGPU[0] and with WebGPU supporting compute shaders, I feel that 2D graphics is slowly becoming a solved problem in terms of portability and performance. Of course there are cases where you would a want a CPU renderer.", "context": "", "use_case": "", "switched_from": "", "story": "High-performance 2D graphics rendering on the CPU using sparse strips [pdf]"}]}], "who": [], "tags": [], "use_cases": ["band steering and roaming"], "compared": [{"slug": "usteer", "name": "usteer", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "vulkan", "name": "Vulkan", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46784221", "title": "Show HN: Mystral Native \u2013 Run JavaScript games natively with WebGPU (no browser)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48282180", "title": "Indoor Wi-Fi Roaming with OpenWRT", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48037760", "title": "Wi is Fi: Understanding Wi-Fi 4/5/6/6E/7/8 (802.11 n/AC/ax/be/bn)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47300934", "title": "Neural Boids", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46959418", "title": "Simplifying Vulkan One Subsystem at a Time", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46010329", "title": "How I learned Vulkan and wrote a small game engine with it (2024)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"warn": 1, "recommend": 1, "neutral": 1}, "2025-12": {}, "2026-01": {"recommend": 1, "warn": 1}, "2026-02": {"neutral": 1}, "2026-03": {"neutral": 1}, "2026-04": {}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 772961072, "item_id": 48310067, "url": "https://news.ycombinator.com/item?id=48310067", "by": "jauntywundrkind", "date": "2026-05-28", "stance": "neutral", "quote": "I'd used DAWN for band steering/roaming at my last place, which worked ok.", "excerpt": "I'd used DAWN for band steering/roaming at my last place, which worked ok. uSteer is a little newer & is an official openwrt project. https://github.com/berlin-open-wireless-lab/DAWN https://openwrt.org/docs/guide-user/network/wifi/dawn DAWN has a wild amount of knobs to tune, which aren't super well described. I haven't been running it since a single AP covers my current place very well. But it would be interesting ", "context": "", "use_case": "Band steering and roaming", "switched_from": "", "story": "Indoor Wi-Fi Roaming with OpenWRT"}, {"id": 769134992, "item_id": 48070937, "url": "https://news.ycombinator.com/item?id=48070937", "by": "jauntywundrkind", "date": "2026-05-08", "stance": "recommend", "quote": "On openwrt, DAWN or usteer can both help your APs", "excerpt": "There's band steering. You absolutely do have control, if you opt to do so. On openwrt, DAWN or usteer can both help your APs to get sounding maps from clients and to tell them which AP to join. Looking at the sounding maps is very fun data to see: highly tecommend! The settings aren't the world's greatest but they are pretty good starts! https://github.com/berlin-open-wireless-lab/DAWN https://openwrt.org/docs/guide", "context": "", "use_case": "", "switched_from": "", "story": "Wi is Fi: Understanding Wi-Fi 4/5/6/6E/7/8 (802.11 n/AC/ax/be/bn)"}, {"id": 756849264, "item_id": 47303079, "url": "https://news.ycombinator.com/item?id=47303079", "by": "fc417fc802", "date": "2026-03-08", "stance": "neutral", "quote": "GPU accelerated boids is even one of the sample programs provided for testing Dawn", "excerpt": "You sure about that answer? Variants of boids have been implemented to leverage the GPU many times. I'm unclear how far typical GPU based examples deviate but then yours doesn't precisely imitate the original either. GPU accelerated boids is even one of the sample programs provided for testing Dawn when you compile it. [0] Aside from \"look ma, machine learning!\" I noticed exactly one thing that sets your implementati", "context": "", "use_case": "", "switched_from": "", "story": "Neural Boids"}, {"id": 751890369, "item_id": 46993148, "url": "https://news.ycombinator.com/item?id=46993148", "by": "socalgal2", "date": "2026-02-12", "stance": "neutral", "quote": "Whole native like apps are being written using WGPU and Dawn", "excerpt": "WebGPU is not just JavaScript + WebGPU. Whole native like apps are being written using WGPU and Dawn which then can be compiled for the Web. Here's one: https://unity.com/products/unity-studio Here's another https://www.adobe.com/products/photoshop/online.html They shipped. So I guess waiting tools wasn't required", "context": "", "use_case": "", "switched_from": "", "story": "Simplifying Vulkan One Subsystem at a Time"}, {"id": 749435217, "item_id": 46839701, "url": "https://news.ycombinator.com/item?id=46839701", "by": "Flux159", "date": "2026-01-31", "stance": "warn", "quote": "Dawn builds are slow, 1-2 hours on CI", "excerpt": "WASM shouldn't be an issue since the draco decoder uses it - but it may only work with V8 (for quickjs builds it wouldn't work, but the default builds use V8+dawn). Obviously with an alpha runtime, there may be bugs. I think it would be super cool to have some sort of extension before WebGPU (web) has it. I was taking a look at the prior example & it seems like there's good ongoing discussion linked here about it: ht", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Mystral Native \u2013 Run JavaScript games natively with WebGPU (no browser)"}, {"id": 749417472, "item_id": 46838592, "url": "https://news.ycombinator.com/item?id=46838592", "by": "danjl", "date": "2026-01-31", "stance": "recommend", "quote": "Here's a dawn implementation with support for ray tracing", "excerpt": "Here's a dawn implementation with support for ray tracing that was implemented a number of years ago but never integrated into browsers. Perhaps it will help? https://github.com/maierfelix/dawn-ray-tracing Yes, chessboard3d.app is written with raw JS APIs and raw WebGPU. It does use the rapier physics library, which uses WASM, which might be an issue? It implements its own ray tracing but would probably run 10x faste", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Mystral Native \u2013 Run JavaScript games natively with WebGPU (no browser)"}, {"id": 736258643, "item_id": 46016165, "url": "https://news.ycombinator.com/item?id=46016165", "by": "hutao", "date": "2025-11-22", "stance": "neutral", "quote": "via the Google Dawn implementation", "excerpt": "When I first tried to learn Vulkan, I felt the exact same way. As I was following the various Vulkan tutorials online, I felt that I was just copying the code, without understanding any of it and internalizing the concepts. So, I decided to learn WebGPU (via the Google Dawn implementation), which has a similar \"modern\" API to Vulkan, but much more simplified. The commonalities to both are: - Instances and devices - S", "context": "", "use_case": "", "switched_from": "", "story": "How I learned Vulkan and wrote a small game engine with it (2024)"}, {"id": 734133344, "item_id": 45883334, "url": "https://news.ycombinator.com/item?id=45883334", "by": "pyrolistical", "date": "2025-11-10", "stance": "recommend", "quote": "", "excerpt": "Check out dawn. It\u2019s what chrome implemented for webgpu. It uses the available hardware/api for the local hardware. So while most systems will be using Vulkan, macOS will be using metal.", "context": "", "use_case": "", "switched_from": "", "story": "Sysgpu \u2013 Experimental descendant of WebGPU written in Zig"}, {"id": 734123168, "item_id": 45882698, "url": "https://news.ycombinator.com/item?id=45882698", "by": "fngjdflmdflg", "date": "2025-11-10", "stance": "warn", "quote": "WebGPU (via dawn at least) is rather large.", "excerpt": "Fascinating project. Based on section 3.9, it seems the output is in the form of a bitmap. So I assume you have to do a full memory copy to the GPU to display the image in the end. With skia moving to WebGPU[0] and with WebGPU supporting compute shaders, I feel that 2D graphics is slowly becoming a solved problem in terms of portability and performance. Of course there are cases where you would a want a CPU renderer.", "context": "", "use_case": "", "switched_from": "", "story": "High-performance 2D graphics rendering on the CPU using sparse strips [pdf]"}]}