[{"data":1,"prerenderedAt":345},["ShallowReactive",2],{"project-39030510":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":18,"aspects":34,"strip":41,"post_text":43,"what":44,"said":73,"maker_in_thread":165,"shape":175,"grid":179,"attempts":308,"same_week":309,"maker_shows":33,"maker_hidden":337,"reader_version":338,"card":339},"39030510","Shadeup","A language that makes WebGPU easier","title","Show HN: Shadeup – A language that makes WebGPU easier","https:\u002F\u002Fshadeup.dev\u002F","shadeup.dev","jrmydev",1705511630,2024,179,56,447,3515,13,"notable","languages","shading language","web_app",[24,21,25,26],"webgpu","compute shader","gpu programming","loved",0.478,{"positive":30,"neutral":31,"mixed":32,"critical":33},10,2,0,1,{"execution":35,"idea":36,"performance":38,"design":39,"docs":40},{"positive":33,"critical":33},{"positive":37,"critical":32},3,{"positive":33,"critical":32},{"positive":37,"critical":32},{"positive":33,"critical":32},[42,32,42,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,42,32,42,42,42,32,32,42,42,32,33,37,42,42,32,32,32,32],5,null,{"problem":45,"audience":56,"pricing":43,"motivation":43,"time_to_build":43,"stack":63,"openness":72,"stage":72,"team_size":72},{"value":46,"source":47,"evidence":48},"WebGPU has boilerplate and is hard for newcomers to get started with","commenter",[49,53],{"id":50,"by":51,"text":52},"39031340","stanleykm","This is really cool. As far as boilerplate goes WebGPU is really not that bad (one just needs to look at Vulkan to see how fun it can get) but really anything to lower the…",{"id":54,"by":51,"text":55},"39034403","Reducing boilerplate isnt really trying to solve that problem. Barrier to entry here can also be read as “making shaders less scary for newbies”",{"value":57,"source":58,"evidence":59},"Developers and newcomers learning GPU programming and prototyping","maker",[60],{"id":61,"by":11,"text":62},"39031444","Thanks, and great question: Shadeup will try to fit it all into one command encoder but may need to split if the coder: 1. Manually flushes 2. Reads\u002Fdownloads a buffer on the CPU…",[64,68],{"value":65,"source":58,"evidence":66},"WebGPU",[67],{"id":61,"by":11,"text":62},{"value":69,"source":58,"evidence":70},"WGSL",[71],{"id":61,"by":11,"text":62},"unknown",{"praise":74,"objections":95,"requests":120,"questions":132,"alternatives":137},[75,84],{"value":76,"source":47,"evidence":77},"Makes GPU programming and WebGPU more accessible",[78,79,80],{"id":50,"by":51,"text":52},{"id":54,"by":51,"text":55},{"id":81,"by":82,"text":83},"39032475","TheRoque","Shadeup is also pretty useful for unreal engine. Use of compute shaders is very cryptic in UE5, and shadeup makes it more accessible.",{"value":85,"source":47,"evidence":86},"Well designed and fun demo page",[87,91],{"id":88,"by":89,"text":90},"39031497","zamadatix","The particles effect on this page is a great example of \"old web\" feel in a page with \"new web\" looks in that it's just so fun and impractical solely because it can be. The…",{"id":92,"by":93,"text":94},"39047490","keeganpoppen","this is impressively well designed, as someone who dabbled in this kind of thing many moons ago. hats off to you.",[96,110],{"value":97,"source":47,"evidence":98},"WebGPU is limited by lowest common denominator hardware features",[99,103,107],{"id":100,"by":101,"text":102},"39038888","pjmlp","Only if you enjoy coding to 2015 hardware specifications in 2024, leaving the rest of the hardware out.",{"id":104,"by":105,"text":106},"39039291","mschuetz","OP is right. WebGPU is targeted towards the lowest common denominator, which is fairly old mobile phones. It therefore doesn't support modern features and is basically an…",{"id":108,"by":105,"text":109},"39046478","Apart from the examples given by the other user: 64 bit integers and their atomics which are the bread and butter of efficient software rasterizers such as Nanite, or for point…",{"value":111,"source":47,"evidence":112},"Page is blank on iOS, background needs WebGPU support",[113,117],{"id":114,"by":115,"text":116},"39031233","MattRix","Not sure if this page is rendering only via WebGPU or something, but on iOS this is just a blank page.",{"id":118,"by":11,"text":119},"39031283","Yeah, unfortunately, the main background is running webgpu so edge\u002Fchrome\u002Fopera desktop are the only browsers that can see it. Here's a screenshot of what it should look like:…",[121,125],{"value":122,"source":47,"evidence":123},"Clarify whether separate passes share one command encoder",[124],{"id":50,"by":51,"text":52},{"value":126,"source":47,"evidence":127},"Add an eject command to get full output code",[128],{"id":129,"by":130,"text":131},"39034820","burntcaramel","Have you thought about having an \"eject\" command? For example, Create React App had an eject command to go from the self-contained version to a full customisable Webpack app.",[133],{"value":134,"source":47,"evidence":135},"Does the library run synchronously or asynchronously",[136],{"id":50,"by":51,"text":52},[138,145,152,159],{"value":139,"source":47,"evidence":140},"lightgl.js",[141],{"id":142,"by":143,"text":144},"39031312","hyperthesis","I like https:\u002F\u002Fgithub.com\u002Fevanw\u002Flightgl.js learnt from https:\u002F\u002Fjamie-wong.com\u002F2016\u002F08\u002F05\u002Fwebgl-fluid-simulation\u002F#implementation ``` the elegant lightgl.js, which is an…",{"value":146,"source":47,"evidence":147},"GPU.js",[148],{"id":149,"by":150,"text":151},"39037912","tppiotrowski","Very cool project. I learned WebGL three years ago but before I dove into the underlying concepts I used GPU.js [1] to quickly prototype my project. Eventually, the abstraction…",{"value":153,"source":47,"evidence":154},"wgpu",[155],{"id":156,"by":157,"text":158},"39032083","adastra22","wgpu is a nice implementation of webgpu for native rust applications on desktop.",{"value":160,"source":47,"evidence":161},"Unity, Unreal, Godot",[162],{"id":163,"by":101,"text":164},"39038874","Unity, Unreal, Open3D, Ogre 3D, Godot, Defold, Stride,... look all pretty easy to me, with access to hardware features not available in WebGPU.",{"comments":166,"answered":37,"key":167},9,[168,169,172],{"id":61,"text":62},{"id":170,"text":171},"39035114","Users can already kinda do this by showing the compiled output, but the js engine itself is still tucked away. At some point, I would probably have a tree shaken full output for…",{"id":173,"text":174},"39035144","Exactly this, along with a lot of the \"smoothing-out\" done by the webgpu spec which provides a clear and open abstraction target.",{"commenters":176,"max_depth":18,"maker_replies":166,"first_comment_mins":177,"lifespan_hours":178},23,53,30,[180,182,184,187,189,191,194,195,198,201,203,205,207,210,211,213,216,218,220,222,223,225,227,230,233,235,237,241,243,246,247,249,250,253,254,257,259,262,264,267,269,271,274,275,277,280,282,285,288,290,293,295,299,301,303,306],[50,32,42,181,51,32],"project\u002Fpositive\u002Fexecution",[61,32,32,183,11,33],"project\u002Fneutral\u002Fperformance",[185,32,42,186,51,32],"39034324","maker\u002Fpositive\u002Fnone",[129,32,37,188,130,32],"project\u002Fneutral\u002Fidea",[170,32,32,190,11,33],"project\u002Fneutral\u002Fnone",[192,32,32,193,101,32],"39031830","other\u002Fneutral\u002Fnone",[156,32,32,193,157,32],[196,32,32,197,101,32],"39033001","other\u002Fcritical\u002Fidea",[199,32,32,193,200,32],"39034220","FL33TW00D",[173,32,32,202,11,33],"project\u002Fpositive\u002Fidea",[204,32,32,193,101,32],"39038890",[100,32,32,206,101,32],"other\u002Fcritical\u002Fperformance",[208,32,32,209,157,32],"39039216","commenter\u002Fneutral\u002Fnone",[104,32,32,209,105,32],[212,32,32,209,157,32],"39039335",[214,32,32,215,101,32],"39039798","other\u002Fcritical\u002Fnone",[217,32,32,209,157,32],"39040227",[219,32,32,209,101,32],"39041342",[221,32,32,209,157,32],"39045594",[108,32,32,206,105,32],[224,32,32,193,157,32],"39038113",[226,32,32,209,101,32],"39038884",[228,32,32,193,229,32],"39038971","fayalalebrun",[231,32,32,193,232,32],"39039097","blarg1",[234,32,32,209,157,32],"39039206",[236,32,32,193,105,32],"39039254",[238,32,32,239,240,32],"39039920","other\u002Fpositive\u002Fnone","tlb",[242,32,32,193,157,32],"39045881",[244,32,32,193,245,32],"39038801","sroussey",[163,32,32,193,101,32],[248,32,32,193,245,32],"39043644",[54,32,42,202,51,32],[251,32,32,193,252,32],"39038892","greggman7",[142,33,32,193,143,32],[255,33,42,256,89,32],"39036705","project\u002Fpositive\u002Fperformance",[88,31,42,258,89,32],"project\u002Fpositive\u002Fdesign",[260,37,42,202,261,32],"39032495","Cieric",[263,37,32,209,11,33],"39032635",[265,37,32,193,266,32],"39032657","astlouis44",[268,37,32,209,11,33],"39032765",[270,37,32,193,261,32],"39033763",[149,272,42,273,150,32],4,"project\u002Fpositive\u002Fdocs",[81,42,42,202,82,32],[276,42,32,193,266,32],"39032661",[114,278,33,279,115,32],6,"project\u002Fcritical\u002Fexecution",[118,278,32,281,11,33],"project\u002Fneutral\u002Fexecution",[283,278,37,281,284,32],"39031456","paranoidxprod",[286,278,32,287,11,33],"39031655","project\u002Fneutral\u002Fdesign",[289,278,42,258,284,32],"39045444",[92,291,42,292,93,32],7,"maker\u002Fpositive\u002Fdesign",[294,291,32,186,11,33],"39049332",[296,297,32,215,298,32],"39034190",8,"matmulbro",[300,297,32,256,11,33],"39035244",[302,297,32,193,101,32],"39039110",[304,297,32,209,305,32],"39039313","lmeyerov",[307,297,32,209,101,32],"39039786",[],[310,315,320,325,329,333],{"id":311,"name":312,"points":313,"category":314},"39022693","sitinshade.com",963,"consumer_social",{"id":316,"name":317,"points":318,"category":319},"38951172","GodotOS",534,"productivity",{"id":321,"name":322,"points":323,"category":324},"38987109","#!\u002Fusr\u002Fbin\u002Fenv docker run",496,"dev_tools",{"id":326,"name":327,"points":328,"category":324},"38971966","Marimo",448,{"id":330,"name":331,"points":332,"category":319},"38988019","Citadel",338,{"id":334,"name":335,"points":336,"category":324},"39027543","Htmldocs",226,false,"v2",{"id":340,"name":5,"line":6,"ai":337,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":341,"top":18,"kw":342,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":343,"url":9,"mix":344,"praise":76,"objection":97,"sub":21},39030510,0.48,[24,21,25,26],"5050000000000000000000505550055013550000",[30,31,32,33],1794036648352]