[{"data":1,"prerenderedAt":466},["ShallowReactive",2],{"project-44249565":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":45,"post_text":48,"what":49,"said":90,"maker_in_thread":200,"shape":213,"grid":216,"attempts":428,"same_week":429,"maker_shows":41,"maker_hidden":458,"reader_version":459,"card":460},"44249565","Spark","An advanced 3D Gaussian Splatting renderer for Three.js","title","Show HN: Spark, An advanced 3D Gaussian Splatting renderer for Three.js","https:\u002F\u002Fsparkjs.dev\u002F","sparkjs.dev","dmarcos",1749661376,2025,377,86,126,3837,4,"legend","languages","3d rendering library","library",[24,25,26,27,28],"gaussian splatting","three.js","webgl","3d rendering","point cloud","curious",0.212,{"positive":32,"neutral":33,"mixed":34,"critical":18},18,25,0,47,{"docs":37,"performance":39,"design":42,"idea":43,"execution":44},{"positive":38,"critical":34},1,{"positive":40,"critical":41},6,2,{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":34,"critical":38},[46,46,47,47,47,46,34,46,34,34,34,47,47,47,47,46,47,47,47,47,46,47,38,46,38,47,47,47,47,46,46,47,47,46,46,46,46,34,47,46],5,3,"I'm the co-creator and maintainer of https:\u002F\u002Faframe.io\u002F and long time Web 3D graphics dev.\n\nSuper excited about new techniques to author \u002F render \u002F represent 3D. Spark is a an open source library to easily integrate Gaussian splats in your THREE.js scene I worked with some friends and I hope you find useful.\n\nLooking forward to hearing what features \u002F rendering techniques you would love to see next.",{"problem":50,"audience":56,"pricing":61,"motivation":62,"time_to_build":61,"stack":68,"openness":87,"stage":88,"team_size":89},{"value":51,"source":52,"evidence":53},"Integrating Gaussian splats into Three.js scenes","maker",[54],{"id":55},"post",{"value":57,"source":58,"evidence":59},"Web and 3D developers using Three.js","inferred",[60],{"id":55},null,{"value":63,"source":52,"evidence":64},"Explore new 3D rendering techniques and popularize Gaussian splatting adoption",[65],{"id":66,"by":11,"text":67},"44250865","Yes. I collaborated with one of the devs at World Labs on this. The goal is to explore new rendering techniques and popularize adoption of 3D gaussian splatting. There's no…",[69,73,79],{"value":70,"source":52,"evidence":71},"Three.js",[72],{"id":55},{"value":74,"source":52,"evidence":75},"WebGL2",[76],{"id":77,"by":11,"text":78},"44250276","Just WebGL2",{"value":80,"source":81,"evidence":82},"Web Workers","commenter",[83],{"id":84,"by":85,"text":86},"44254194","pixelsynth","Yes, Spark does instanced rendering of quads, one covering each Gaussian splat. The sorting is done by 1) calculating sort distance for every splat on the GPU, 2) reading it back…","open_source","launched","team",{"praise":91,"objections":113,"requests":135,"questions":160,"alternatives":179},[92,107],{"value":93,"source":81,"evidence":94},"Impressive demos and performance on modest hardware",[95,99,103],{"id":96,"by":97,"text":98},"44249738","erulabs","Super impressive looking demo, works well on my older iphone. As an only-dabbling-hobbiest game developer who lacks a lot of 3d programming knowledge, the only feedback I can…",{"id":100,"by":101,"text":102},"44250034","jasonthorsness","The food scans demo (\"Interactivity\" examples section) is incredible. Especially Mel's Steak Sandwich looking into the holes in the bread. The performance seems amazingly good…",{"id":104,"by":105,"text":106},"44249697","moron4hire","That interactive demo on the front page running perfectly fine on my Pixel 7 was pretty sick!",{"value":108,"source":81,"evidence":109},"Useful for photogrammetry and scanned scenes",[110],{"id":111,"by":85,"text":112},"44254738","It's an interesting idea, and with spark you could test this by adjusting the parameter maxStdDev to control how far out it draws the splat. I agree with you though that in…",[114,121,128],{"value":115,"source":81,"evidence":116},"Splat files are large",[117],{"id":118,"by":119,"text":120},"44252179","socalgal2","I'm still highly skeptical of gaussian splatting as anything more than a demo. The files are too large. The steak sandwich is 12meg (as just one example) There was a guassain…",{"value":122,"source":81,"evidence":123},"Poor performance in Firefox on some hardware",[124],{"id":125,"by":126,"text":127},"44259497","moshegramovsky","Cool work, but I have to say the performance is pretty bad in Firefox on my laptop with an Nvidia RTX A3000 GPU. There are enough shader cores here to cause first degree burns.",{"value":129,"source":81,"evidence":130},"Name collides with other Spark projects",[131],{"id":132,"by":133,"text":134},"44255629","Epa095","Slightly overloaded name. There is already Apache Spark, SPARK (Ada), sparklines, and SPARQL.",[136,143,153],{"value":137,"source":81,"evidence":138},"Triangle splat support",[139],{"id":140,"by":141,"text":142},"44249944","praveen9920","Any plans to extend support for triangle splats?",{"value":144,"source":81,"evidence":145},"A-Frame or web component integration",[146,150],{"id":147,"by":148,"text":149},"44255771","mbo","Amazing stuff! Do you foresee this project getting a Web Components API like A-Frame and Google's \u003Cmodel-viewer> component (https:\u002F\u002Fmodelviewer.dev\u002F)?",{"id":151,"by":11,"text":152},"44263206","A-Frame integration coming soon!",{"value":154,"source":81,"evidence":155},"Video-style Gaussian splats",[156],{"id":157,"by":158,"text":159},"44253494","cchance","any chance this will support the video style 3d gaussian splats?",[161,168,175],{"value":162,"source":81,"evidence":163},"What are the performance bottlenecks and is LOD planned",[164],{"id":165,"by":166,"text":167},"44253157","fidotron","Very very cool. Do you have any insights into the current performance bottlenecks? Especially around dynamic scenes. That particle simulation one seems to struggle but then…",{"value":169,"source":81,"evidence":170},"How does sorting work",[171],{"id":172,"by":173,"text":174},"44254099","danybittel","How do you do the rendering? Is it sorted (radix?) instances? Do you amortize the sorting over a couple frames? Or use some bin sorting? Are you happy with the performance?",{"value":176,"source":81,"evidence":177},"What is Gaussian splatting",[178],{"id":96,"by":97,"text":98},[180,187,194],{"value":181,"source":81,"evidence":182},"Babylon.js",[183],{"id":184,"by":185,"text":186},"44251396","ertucetin","This is cool also BabylonJS has nice gaussian splat support as well: https:\u002F\u002Fdoc.babylonjs.com\u002Ffeatures\u002FfeaturesDeepDive\u002Fmesh\u002FgaussianSplatting",{"value":188,"source":81,"evidence":189},"PlayCanvas",[190],{"id":191,"by":192,"text":193},"44253887","ovenchips","When you say that PlayCanvas is commercial, that's a little misleading. The PlayCanvas Engine (analogous to Three.js and Babylon.js) is free and open source (MIT). The PlayCanvas…",{"value":195,"source":81,"evidence":196},"Postshot",[197],{"id":198,"by":85,"text":199},"44264097","There are a lot of tools to do this easily today, for free! Take a look at Postshot, or Brush. You can literally take a video with your mobile phone, toss it in Postshot, and a…",{"comments":201,"answered":202,"key":203},22,15,[204,207,210],{"id":205,"text":206},"44249843","Thanks. We have to definitely add an FAQ",{"id":208,"text":209},"44250081","There's a community of people passionate about scanning all short stuff with handheld devices, drones... Tipatat let us generously use his food scans for the demo. I also enjoy…",{"id":211,"text":212},"44250221","The food scans are just photos from a Pixel phone processed with postshot (https:\u002F\u002Fwww.jawset.com\u002F) to generate the splats",{"commenters":214,"max_depth":215,"maker_replies":201,"first_comment_mins":38,"lifespan_hours":35},43,8,[217,219,221,223,225,227,229,232,235,238,240,243,246,248,251,254,257,260,263,266,268,271,273,275,276,280,281,283,285,287,291,295,296,298,299,302,305,307,308,310,314,317,320,322,324,326,330,332,335,338,340,342,343,348,351,353,354,357,359,361,363,366,368,370,374,376,380,382,385,387,391,392,395,397,401,403,405,408,412,414,416,418,420,423,424,426],[96,34,46,218,97,34],"project\u002Fpositive\u002Fdocs",[205,34,34,220,11,38],"maker\u002Fneutral\u002Fdocs",[100,38,46,222,101,34],"project\u002Fpositive\u002Fperformance",[208,38,34,224,11,38],"project\u002Fneutral\u002Fnone",[226,38,47,224,101,34],"44250178",[211,38,34,228,11,38],"maker\u002Fneutral\u002Fnone",[230,38,47,224,231,34],"44255438","mft_",[233,38,47,224,234,34],"44261593","jaccola",[236,38,47,224,237,34],"44250226","ChadNauseam",[239,38,34,228,11,38],"44250287",[241,38,46,222,242,34],"44250696","creata",[244,38,34,245,11,38],"44250759","project\u002Fneutral\u002Fperformance",[184,41,34,247,185,34],"other\u002Fneutral\u002Fnone",[249,41,34,247,250,34],"44251663","echelon",[252,41,34,253,11,38],"44251939","project\u002Fneutral\u002Fidea",[255,41,46,256,250,34],"44254078","maker\u002Fpositive\u002Fnone",[258,41,34,247,259,34],"44252020","Joel_Mckay",[261,41,34,262,250,34],"44254079","commenter\u002Fneutral\u002Fnone",[264,41,34,247,265,34],"44255067","tmilard",[267,41,34,247,259,34],"44257763",[269,41,34,247,270,34],"44260260","m_kos",[272,41,34,247,259,34],"44261225",[274,41,34,262,270,34],"44266216",[191,41,34,262,192,34],[277,47,47,278,279,34],"44249585","project\u002Fneutral\u002Fdocs","pvg",[165,18,47,245,166,34],[282,18,34,245,11,38],"44253600",[118,46,38,284,119,34],"project\u002Fcritical\u002Fperformance",[286,46,34,245,11,38],"44252267",[288,46,46,289,290,34],"44252428","project\u002Fpositive\u002Fnone","athriren",[292,46,47,293,294,34],"44252584","project\u002Fneutral\u002Fdesign","oofbey",[111,46,47,253,85,34],[297,46,47,224,294,34],"44263228",[198,46,46,289,85,34],[300,46,34,247,301,34],"44258328","semi-extrinsic",[303,46,47,245,304,34],"44258888","hellohello2",[306,46,46,222,192,34],"44264106",[125,40,38,284,126,34],[309,40,34,224,11,38],"44263200",[311,312,47,253,313,34],"44260272",7,"VikingCoder",[315,312,34,316,11,38],"44263196","project\u002Fpositive\u002Fidea",[318,215,47,224,319,34],"44250663","two_handfuls",[321,215,34,289,11,38],"44250676",[323,215,46,256,319,34],"44250945",[325,215,46,289,85,34],"44263161",[327,328,34,247,329,34],"44250001",9,"westurner",[331,328,47,224,329,34],"44269538",[132,333,38,334,133,34],10,"project\u002Fcritical\u002Fnone",[336,333,34,247,337,34],"44256958","thesuperbigfrog",[104,339,46,222,105,34],11,[147,341,47,224,148,34],12,[151,341,34,224,11,38],[344,345,38,346,347,34],"44256106",13,"project\u002Fcritical\u002Fexecution","bryzaguy",[349,345,34,350,11,38],"44259998","maker\u002Fneutral\u002Fexecution",[172,352,47,245,173,34],14,[84,352,47,245,85,34],[355,352,34,356,173,34],"44254686","other\u002Fneutral\u002Fperformance",[358,352,47,245,85,34],"44254718",[360,352,47,245,173,34],"44254832",[362,352,47,245,85,34],"44263383",[364,202,47,224,365,34],"44250699","akomtu",[367,202,34,224,11,38],"44250719",[369,202,46,222,365,34],"44251066",[371,372,46,289,373,34],"44252939",16,"90s_dev",[375,372,34,224,11,38],"44253052",[377,378,46,289,379,34],"44250962",17,"_tqr3",[381,378,34,278,11,38],"44251005",[383,32,47,253,384,34],"44257160","imachine1980_",[386,32,34,253,11,38],"44263231",[388,389,47,224,390,34],"44250263",19,"markisus",[77,389,34,224,11,38],[393,389,34,247,394,34],"44251022","shadowgovt",[396,389,46,222,85,34],"44254314",[398,399,46,289,400,34],"44252264",20,"ge96",[140,402,47,253,141,34],21,[404,402,34,253,11,38],"44249955",[406,201,46,289,407,34],"44251152","feiss",[409,410,46,256,411,34],"44250979",23,"vmesel",[157,413,47,253,158,34],24,[415,413,34,253,11,38],"44253583",[417,413,34,247,158,34],"44253797",[419,413,34,247,85,34],"44254235",[421,33,47,228,422,34],"44250851","nobbis",[66,33,34,228,11,38],[425,33,46,256,422,34],"44250931",[427,33,34,224,11,38],"44250923",[],[430,435,439,444,448,453],{"id":431,"name":432,"points":433,"category":434},"44189329","Air Lab",497,"hardware",{"id":436,"name":437,"points":438,"category":434},"44241278","tsungxu.com",418,{"id":440,"name":441,"points":442,"category":443},"44238171","Chili3d",408,"dev_tools",{"id":445,"name":446,"points":447,"category":443},"44225352","Bugdrop",335,{"id":449,"name":450,"points":451,"category":452},"44226879","Munal OS",313,"infrastructure",{"id":454,"name":455,"points":456,"category":457},"44247029","Ikuyo",301,"productivity",false,"v2",{"id":461,"name":5,"line":6,"ai":458,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":462,"top":18,"kw":463,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":464,"url":9,"mix":465,"praise":93,"objection":115,"sub":21},44249565,0.21,[24,25,26,27,28],"5533350500033335333353151333355335555035",[32,33,34,18],1793991122964]