[{"data":1,"prerenderedAt":288},["ShallowReactive",2],{"project-44293147":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":34,"aspects":35,"strip":44,"post_text":47,"what":48,"said":75,"maker_in_thread":165,"shape":177,"grid":180,"attempts":251,"same_week":252,"maker_shows":46,"maker_hidden":280,"reader_version":281,"card":282},"44293147","Nexus.js","Fabric.js for 3D","title","Show HN: Nexus.js - Fabric.js for 3D","https:\u002F\u002Fpunk.cam\u002Flab\u002Fnexus","punk.cam","ges",1750106025,2025,91,28,797,3837,21,"notable","dev_tools","3d scene editing library","library",[24,25,26,27,28],"3d editor","three.js","react three fiber","3d controls","fabric.js alternative","mixed",-0.222,{"positive":32,"neutral":33,"mixed":32,"critical":33},2,6,16,{"docs":36,"design":39,"idea":41,"execution":42,"performance":43},{"positive":37,"critical":38},0,1,{"positive":37,"critical":40},4,{"positive":38,"critical":37},{"positive":38,"critical":37},{"positive":37,"critical":38},[38,37,45,37,38,37,45,37,45,37,45,46,45,38,37,37,38,38,45,37,37,37,38,37,45,45,37,46],3,5,"I was looking for a tiny library to easily transform both 2D & 3D objects with simple mouse \u002F touch controls and a fixed camera, in the browser.\n\nLike a simple 3D editor but without requiring the user to be a Blender expert.\n\nCouldn't find anything lightweight, so I’m building one. Think Fabric.js but for 3D. Built entirely with Three.js \u002F R3F.\n\nBorrowed some inspiration from VR\u002FAR interaction systems for controls.\n\nFeel free to play with it and let me know what you think!",{"problem":49,"audience":55,"pricing":59,"motivation":60,"time_to_build":59,"stack":64,"openness":73,"stage":74,"team_size":73},{"value":50,"source":51,"evidence":52},"Lets non-experts move and transform 2D and 3D objects with simple mouse and touch controls and a fixed camera","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Users who need a simple 3D editor without Blender expertise",[58],{"id":54},null,{"value":61,"source":51,"evidence":62},"Couldn't find a lightweight tool for simple 3D object manipulation in the browser",[63],{"id":54},[65,69],{"value":66,"source":51,"evidence":67},"Three.js",[68],{"id":54},{"value":70,"source":51,"evidence":71},"React Three Fiber (R3F)",[72],{"id":54},"unknown","prototype",{"praise":76,"objections":92,"requests":118,"questions":140,"alternatives":152},[77,85],{"value":78,"source":79,"evidence":80},"Interesting 2D interface for manipulating 3D","commenter",[81],{"id":82,"by":83,"text":84},"44294211","echelon","> Feel free to play with it and let me know what you think! This could be cool. The 2D interface for manipulating 3D is pretty interesting. 3D tends to be hard for folks and put…",{"value":86,"source":79,"evidence":87},"Declarative React-style scene code is readable",[88],{"id":89,"by":90,"text":91},"44297924","DecoySalamander","It's great for organizing your scenes, and at least for me, it's far more readable than raw Three.js code. Unfortunately, games, especially real-time ones, don't map well to…",[93,104,111],{"value":94,"source":79,"evidence":95},"Pinch zoom and two-finger gestures break the UX",[96,100],{"id":97,"by":98,"text":99},"44293665","WhitneyLand","It looks like the UX freaks out when you try to do something like pinch zoom. If you don’t intend to support two finger gestures, you should probably at least hook in and disable…",{"id":101,"by":102,"text":103},"44293522","Eduard","two-finger input doesn't work on my Android Chrome: a previously placed banana just glitched around, then jumped out of viewport.",{"value":105,"source":79,"evidence":106},"Missing Add button and unclear controls",[107],{"id":108,"by":109,"text":110},"44294494","socalgal2","> Tap the Add button below to get started The only buttons are Objects, Stage, Camera, Get, Share There is no \"Add\" button for me.",{"value":112,"source":79,"evidence":113},"Camera movement not working for some users",[114],{"id":115,"by":116,"text":117},"44297014","Bengalilol","I wasn't able to move the camera, am I missing something obvious?",[119,126,133],{"value":120,"source":79,"evidence":121},"Undo and redo",[122],{"id":123,"by":124,"text":125},"44306727","ppyyss8","It'd be awesome to have undo and redo. I only tried it for a bit, but it was fun :)",{"value":127,"source":79,"evidence":128},"Open source release",[129],{"id":130,"by":131,"text":132},"44294173","Flux159","This is pretty interesting - how has your experience been with R3F? I've built a small game level with it before and I'm wondering if I want to go all the way and build something…",{"value":134,"source":79,"evidence":135},"React or Vue wrapper",[136],{"id":137,"by":138,"text":139},"44301798","popalchemist","Is there a react\u002Fvue wrapper? Looks amazing.",[141,145],{"value":142,"source":79,"evidence":143},"How has the experience with R3F been",[144],{"id":130,"by":131,"text":132},{"value":146,"source":79,"evidence":147},"What are the use cases",[148],{"id":149,"by":150,"text":151},"44293389","kube-system","Interesting, what are some use cases for something like this?",[153,157],{"value":154,"source":79,"evidence":155},"Threlte",[156],{"id":89,"by":90,"text":91},{"value":158,"source":79,"evidence":159},"Fabric.js",[160,161],{"id":130,"by":131,"text":132},{"id":162,"by":163,"text":164},"44297305","lvncelot","Ha, that brings me back trying to make Fabric.js somehow usable for a 3D viewport at a startup I was working at a while ago. (We used esm.js instead of WASM for the 3d engine, to…",{"comments":166,"answered":45,"key":167},11,[168,171,174],{"id":169,"text":170},"44294682","Good catch. There was one before, just didn’t update this message yet!",{"id":172,"text":173},"44300116","Updated",{"id":175,"text":176},"44294743","Yes",{"commenters":178,"max_depth":45,"maker_replies":166,"first_comment_mins":179,"lifespan_hours":179},18,32,[181,183,185,189,190,192,194,196,199,201,203,204,208,210,213,216,218,222,224,227,231,233,235,238,240,241,246,248],[108,37,38,182,109,37],"project\u002Fcritical\u002Fdocs",[169,37,37,184,11,38],"maker\u002Fneutral\u002Fdocs",[186,37,45,187,188,37],"44295151","project\u002Fneutral\u002Fdesign","fakedang",[172,37,37,184,11,38],[97,38,38,191,98,37],"project\u002Fcritical\u002Fdesign",[175,38,37,193,11,38],"maker\u002Fneutral\u002Fnone",[82,32,45,195,83,37],"project\u002Fmixed\u002Fidea",[197,32,37,198,11,38],"44294468","maker\u002Fneutral\u002Fidea",[130,45,45,200,131,37],"maker\u002Fneutral\u002Fexecution",[202,45,37,200,11,38],"44294279",[89,45,45,200,90,37],[205,40,46,206,207,37],"44301239","project\u002Fpositive\u002Fidea","eblahm",[162,46,45,209,163,37],"project\u002Fneutral\u002Fexecution",[211,33,38,191,212,37],"44293403","guigui",[214,33,37,215,11,38],"44294752","maker\u002Fneutral\u002Fdesign",[217,33,37,215,11,38],"44301460",[219,220,38,191,221,37],"44296309",7,"kookamamie",[115,223,38,191,116,37],8,[149,225,45,226,150,37],9,"project\u002Fneutral\u002Fidea",[228,225,37,229,230,37],"44294207","other\u002Fneutral\u002Fnone","superconduct123",[232,225,37,229,11,38],"44294320",[234,225,37,198,11,38],"44301480",[101,236,38,237,102,37],10,"project\u002Fcritical\u002Fperformance",[239,236,37,200,11,38],"44294454",[123,166,45,195,124,37],[242,243,45,244,245,37],"44293499",12,"project\u002Fneutral\u002Fnone","hoppp",[247,243,37,193,11,38],"44294336",[137,249,46,250,138,37],13,"project\u002Fpositive\u002Fexecution",[],[253,258,262,266,271,276],{"id":254,"name":255,"points":256,"category":257},"44309320","Workout.cool",827,"consumer_social",{"id":259,"name":260,"points":261,"category":20},"44314085","Unregistry",726,{"id":263,"name":264,"points":265,"category":20},"44293260","Chawan",387,{"id":267,"name":268,"points":269,"category":270},"44292103","Canine",320,"infrastructure",{"id":272,"name":273,"points":274,"category":275},"44256765","Tritium",312,"productivity",{"id":277,"name":278,"points":279,"category":20},"44306041","Lstr",227,false,"v2",{"id":283,"name":5,"line":6,"ai":280,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":284,"top":18,"kw":285,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":286,"url":9,"mix":287,"praise":78,"objection":94,"sub":21},44293147,-0.22,[24,25,26,27,28],"1030103030353100113000103305",[32,33,32,33],1794036676798]