{"ok":true,"trend":{"id":445451,"platform":"hn","region":"global","key":"testing webgpu data layouts with facet","title":"Testing WebGPU data layouts with Facet","url":"https://www.mattkeeter.com/blog/2026-08-23-wgpu-facet/","first_seen":"2026-09-30T05:20:39.624952Z","last_seen":"2026-09-30T12:05:39.607247Z","last_rank":24,"peak_rank":4,"last_volume":52,"peak_volume":52,"seen_count":30,"score":54.45,"category_hint":"labor","section":"business","category":"labor","summary":"Developer Matt Keeter published a write-up on testing WebGPU data layouts using Facet, a Rust library for reflection over data structures. The post examines how to verify that CPU-side structs match the memory layouts GPU shaders expect, a common source of subtle bugs in graphics programming. It is being discussed by developers interested in Rust, WebGPU, and safer graphics tooling.","why":"The post is fresh on Hacker News and appeals to Rust and graphics programmers wrestling with WebGPU buffer layout pitfalls.","tone":"neutral","entities":["Matt Keeter","Facet","WebGPU","Rust"],"summarized_at":"2026-09-30T11:24:42.451028Z","meta":{"via":"scan","lang":"en","link":"https://www.mattkeeter.com/blog/2026-08-23-wgpu-facet/","term":"layoffs","hn_id":"49883913","comments":3},"nw":null,"promo":null,"kind":null,"importance":null,"hidden":false,"hide_reason":null,"judged_at":null,"title_en":"Testing WebGPU data layouts with Facet","section_name":"Business","category_name":"Labor","timeline":[{"captured_at":"2026-09-30T05:20:39.624952Z","rank":30,"volume":3},{"captured_at":"2026-09-30T05:35:39.663434Z","rank":30,"volume":5},{"captured_at":"2026-09-30T05:50:39.762768Z","rank":30,"volume":5},{"captured_at":"2026-09-30T06:00:52.237313Z","rank":8,"volume":7},{"captured_at":"2026-09-30T06:05:39.665677Z","rank":30,"volume":7},{"captured_at":"2026-09-30T06:20:39.752673Z","rank":29,"volume":10},{"captured_at":"2026-09-30T06:35:39.599915Z","rank":29,"volume":11},{"captured_at":"2026-09-30T06:50:39.729649Z","rank":30,"volume":13},{"captured_at":"2026-09-30T07:05:39.659450Z","rank":29,"volume":18},{"captured_at":"2026-09-30T07:20:39.671110Z","rank":27,"volume":21},{"captured_at":"2026-09-30T07:22:45.884409Z","rank":5,"volume":23},{"captured_at":"2026-09-30T07:35:39.652873Z","rank":29,"volume":24},{"captured_at":"2026-09-30T07:50:39.667233Z","rank":29,"volume":25},{"captured_at":"2026-09-30T08:05:39.652758Z","rank":30,"volume":25},{"captured_at":"2026-09-30T08:20:39.703617Z","rank":27,"volume":28},{"captured_at":"2026-09-30T08:35:39.740869Z","rank":27,"volume":30},{"captured_at":"2026-09-30T08:44:45.456638Z","rank":5,"volume":31},{"captured_at":"2026-09-30T08:50:39.678583Z","rank":27,"volume":33},{"captured_at":"2026-09-30T09:05:39.632261Z","rank":28,"volume":33},{"captured_at":"2026-09-30T09:20:39.640662Z","rank":27,"volume":35},{"captured_at":"2026-09-30T09:35:39.727123Z","rank":27,"volume":36},{"captured_at":"2026-09-30T09:50:39.702986Z","rank":26,"volume":40},{"captured_at":"2026-09-30T10:05:39.785470Z","rank":26,"volume":42},{"captured_at":"2026-09-30T10:06:45.695844Z","rank":4,"volume":42},{"captured_at":"2026-09-30T10:20:39.783530Z","rank":24,"volume":43},{"captured_at":"2026-09-30T10:35:39.704008Z","rank":23,"volume":47},{"captured_at":"2026-09-30T10:50:39.774796Z","rank":24,"volume":51},{"captured_at":"2026-09-30T11:05:39.635990Z","rank":24,"volume":51},{"captured_at":"2026-09-30T11:20:39.645132Z","rank":24,"volume":51},{"captured_at":"2026-09-30T11:28:45.596201Z","rank":4,"volume":51},{"captured_at":"2026-09-30T11:35:39.763578Z","rank":23,"volume":51},{"captured_at":"2026-09-30T11:50:39.785091Z","rank":23,"volume":51},{"captured_at":"2026-09-30T12:05:39.607247Z","rank":24,"volume":52}],"posts":[{"platform":"hn","url":"https://news.ycombinator.com/item?id=49883913","author":"luu","title":"Testing WebGPU data layouts with Facet","snippet":null,"posted_at":"2026-09-28T20:28:08Z","likes":52}],"elsewhere":[],"window":"7d"}}