[{"data":1,"prerenderedAt":250},["ShallowReactive",2],{"project-11775776":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":45,"what":46,"said":87,"maker_in_thread":172,"shape":180,"grid":184,"attempts":211,"same_week":212,"maker_shows":241,"maker_hidden":242,"reader_version":243,"card":244},"11775776","headless-gl","A conformant WebGL implementation for Node.js","title","Show HN: A conformant WebGL implementation for Node.js","https:\u002F\u002Fgithub.com\u002Fstackgl\u002Fheadless-gl","github.com","33a",1464241249,2016,57,15,659,2264,30,"notable","dev_tools","graphics library for node","library",[24,25,26,27,28],"webgl","node.js","headless rendering","opengl","server-side rendering","curious",-0.048,{"positive":32,"neutral":33,"mixed":34,"critical":32},2,6,0,10,{"idea":37,"execution":39,"performance":40,"docs":41},{"positive":38,"critical":34},1,{"positive":34,"critical":38},{"positive":38,"critical":38},{"positive":34,"critical":34},[43,38,34,43,43,44,38,34,43,34,44,34,34,43,43],3,5,null,{"problem":47,"audience":58,"pricing":45,"motivation":66,"time_to_build":45,"stack":71,"openness":84,"stage":85,"team_size":86},{"value":48,"source":49,"evidence":50},"Running WebGL code in Node.js without a browser, e.g. for server-side rendering or testing","inferred",[51,54],{"id":52,"by":11,"text":53},"11781263","Lots of places. For example: * You want to generate preview images of WebGL content, such as in a gallery * You are using WebGL to accelerate some computation in nodejs with a…",{"id":55,"by":56,"text":57},"11781180","nomel","I don't really understand what's going on here. Is there a practical use for this? When would rendering, server side, ever be beneficial (assuming that's what's going on here)?",{"value":59,"source":49,"evidence":60},"Node.js developers working with WebGL",[61,62],{"id":52,"by":11,"text":53},{"id":63,"by":64,"text":65},"11781277","z3t4","It would be cool if you could talk to the graphics driver and other IO devices directly from NodeJS. I guess it would require a layer for cross platform standardization. But…",{"value":67,"source":68,"evidence":69},"Enable preview images, computation and CI testing of WebGL code in Node","maker",[70],{"id":52,"by":11,"text":53},[72,80],{"value":73,"source":74,"evidence":75},"Node.js","commenter",[76],{"id":77,"by":78,"text":79},"11777443","roblabla","It looks like it uses whatever native implementation of EGL there is behindt he scenes. So it should be hardware accelerated if there is a GPU on your server. As for whether you…",{"value":81,"source":74,"evidence":82},"EGL native implementation",[83],{"id":77,"by":78,"text":79},"open_source","beta","unknown",{"praise":88,"objections":108,"requests":126,"questions":142,"alternatives":160},[89,97],{"value":90,"source":74,"evidence":91},"Useful for server-side WebGL use cases",[92,96],{"id":93,"by":94,"text":95},"11781966","jpambrun","I know that some medical image viewers use server side rendering for segmented volumes. Such tasks are computationally intensive and usually involves very large datasets. With…",{"id":52,"by":11,"text":53},{"value":98,"source":74,"evidence":99},"Cool project from the stackgl author",[100,104],{"id":101,"by":102,"text":103},"11777944","bhouston","It is a little buggy for production use at the moment. A bunch of basic things are broken, but we are working on fixing those issues in the near term:…",{"id":105,"by":106,"text":107},"11777801","AshleysBrain","This looks cool. Are there any demos we could try in our browser?",[109,113,119],{"value":110,"source":74,"evidence":111},"Buggy and not production-ready yet",[112],{"id":101,"by":102,"text":103},{"value":114,"source":68,"evidence":115},"Server-side rendering and streaming may be slow or heavy per client",[116],{"id":117,"by":11,"text":118},"11779021","You could, but it would be slow, or at least pretty heavy per client. That said if you have a beefy enough server I suppose it might work.",{"value":120,"source":74,"evidence":121},"glReadPixels causes pipeline stalls, hurting performance",[122],{"id":123,"by":124,"text":125},"11780083","vvanders","That's a really bad idea, glReadPixels is usually a full pipeline flush + read back and stall which kills perf for all sorts of reasons.",[127,131,138],{"value":128,"source":74,"evidence":129},"Demos to try in the browser",[130],{"id":105,"by":106,"text":107},{"value":132,"source":74,"evidence":133},"Support for threejs",[134],{"id":135,"by":136,"text":137},"11816705","yarp","Is there chance to run threejs on it?",{"value":139,"source":74,"evidence":140},"Direct access to graphics drivers and IO from Node.js",[141],{"id":63,"by":64,"text":65},[143,149,153],{"value":144,"source":74,"evidence":145},"Is it hardware accelerated?",[146],{"id":147,"by":94,"text":148},"11777366","And, if so, is it hardware accelerated or a software implementation? Edit: And, how many concurrent context could it support?",{"value":150,"source":74,"evidence":151},"How many concurrent contexts are supported?",[152],{"id":147,"by":94,"text":148},{"value":154,"source":74,"evidence":155},"Can any WebGL code be rendered server side and streamed?",[156],{"id":157,"by":158,"text":159},"11777266","antihero","Does this mean we can basically render any WebGL code server side and effectively stream the output?",[161,168],{"value":162,"source":74,"evidence":163},"node-webgl (OpenGL wrapper)",[164],{"id":165,"by":166,"text":167},"11780002","0x0","Funny they mention a project called \"node-webgl\" being an opengl wrapper. Seems like they should have traded project names, since \"headless-gl\" sounds like an OpenGL thing and…",{"value":169,"source":68,"evidence":170},"weblas",[171],{"id":52,"by":11,"text":53},{"comments":173,"answered":32,"key":174},4,[175,178,179],{"id":176,"text":177},"11779379","Ok, solved this. The validation for this part of the constant blending was a bit too strict https:\u002F\u002Fwww.khronos.org\u002Fregistry\u002Fwebgl\u002Fspecs\u002F1.0\u002F#CONSTANT_COLOR_BLEND . Somehow the…",{"id":117,"text":118},{"id":52,"text":53},{"commenters":181,"max_depth":173,"maker_replies":173,"first_comment_mins":182,"lifespan_hours":183},11,386,156,[185,187,189,191,192,194,196,198,199,200,202,203,205,207,209],[63,34,43,186,64,34],"project\u002Fneutral\u002Fidea",[101,38,38,188,102,34],"project\u002Fcritical\u002Fexecution",[176,38,34,190,11,38],"project\u002Fneutral\u002Fexecution",[157,32,43,186,158,34],[147,32,43,193,94,34],"project\u002Fneutral\u002Fperformance",[77,32,44,195,78,34],"project\u002Fpositive\u002Fperformance",[123,32,38,197,124,34],"project\u002Fcritical\u002Fperformance",[117,32,34,197,11,38],[55,32,43,186,56,34],[52,32,34,201,11,38],"project\u002Fpositive\u002Fidea",[93,32,44,201,94,34],[165,43,34,204,166,34],"other\u002Fneutral\u002Fnone",[206,43,34,204,11,38],"11780056",[105,173,43,208,106,34],"project\u002Fneutral\u002Fdocs",[135,44,43,210,136,34],"project\u002Fneutral\u002Fnone",[],[213,218,223,228,233,237],{"id":214,"name":215,"points":216,"category":217},"11778077","Qbserve",429,"productivity",{"id":219,"name":220,"points":221,"category":222},"11777128","Dead Yet?",164,"web_saas",{"id":224,"name":225,"points":226,"category":227},"11798045","Hydra",161,"security_privacy",{"id":229,"name":230,"points":231,"category":232},"11781295","Chatbots made easy",131,"ai",{"id":234,"name":235,"points":236,"category":20},"11786984","Decompiler",98,{"id":238,"name":239,"points":240,"category":227},"11808332","Arc",72,7,false,"v2",{"id":245,"name":5,"line":6,"ai":242,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":246,"top":18,"kw":247,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":248,"url":9,"mix":249,"praise":90,"objection":110,"sub":21},11775776,-0.05,[24,25,26,27,28],"310335103050033",[32,33,34,32],1793990943277]