[{"data":1,"prerenderedAt":283},["ShallowReactive",2],{"project-49301215":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":40,"post_text":42,"what":43,"said":82,"maker_in_thread":176,"shape":187,"grid":190,"attempts":248,"same_week":249,"maker_shows":35,"maker_hidden":276,"reader_version":277,"card":278},"49301215","LuaCAD","Parametric CAD Scripted in Lua","title","Show HN: LuaCAD – Parametric CAD Scripted in Lua","https:\u002F\u002Fluacad.ad-si.com","luacad.ad-si.com","adius",1786725802,2026,106,25,640,4366,15,"notable","dev_tools","parametric cad","desktop_app",[21,24,25,26,27],"lua","openscad","csg","3d modeling","curious",0.32,{"positive":31,"neutral":32,"mixed":33,"critical":34},5,6,0,1,12,{"idea":37,"design":39},{"positive":38,"critical":33},2,{"positive":34,"critical":34},[41,33,33,31,31,31,33,33,41,34,33,41,33,31,41,33,31,41,33,33,33,33,33,41,33],3,"LuaCAD models solids in Lua rather than the OpenSCAD language, with operator\noverloading for CSG (`a + b`, `a - b`, `a * b`).\n\nIt ships with a CLI and a desktop app, including a preview area and a text editor.\n\nI've always been a big fan of OpenSCAD, but the SCAD language itself is unfortunately quite cobbled-together and is a very poorly designed programming language.\n\nLuaCAD takes all the good parts of OpenSCAD and combines them with one of the best scripting languages. It has now completely replaced OpenSCAD for me, and I think it provides a better experience than OpenSCAD for all use cases",{"problem":44,"audience":50,"pricing":50,"motivation":51,"time_to_build":50,"stack":58,"openness":79,"stage":80,"team_size":81},{"value":45,"source":46,"evidence":47},"OpenSCAD's language is poorly designed; maker wants a better scripting language for parametric 3D design.","maker",[48],{"id":49},"post",null,{"value":52,"source":46,"evidence":53},"Maker dislikes the OpenSCAD language and wanted a better programmatic CAD experience.",[54,55],{"id":49},{"id":56,"by":11,"text":57},"49304495","I'm pretty sure it's Turing complete by now. If it was conceptualized as a limited language and only became a full fledged programming language over time, it would certainly…",[59,63,67,71,75],{"value":60,"source":46,"evidence":61},"Rust",[62],{"id":49},{"value":64,"source":46,"evidence":65},"Lua (via mlua)",[66],{"id":49},{"value":68,"source":46,"evidence":69},"OpenCSG",[70],{"id":49},{"value":72,"source":46,"evidence":73},"Manifold",[74],{"id":49},{"value":76,"source":46,"evidence":77},"BOSL2 (native support)",[78],{"id":49},"open_source","beta","unknown",{"praise":83,"objections":101,"requests":118,"questions":133,"alternatives":151},[84,93],{"value":85,"source":86,"evidence":87},"Lua is a better scripting language than OpenSCAD's","commenter",[88,92],{"id":89,"by":90,"text":91},"49302341","manny_rat","Love it! OpenSCAD has very painful syntax. Is it possible to easily do bevels\u002Fchamfers or does it have the same limitations as OpenSCAD there?",{"id":56,"by":11,"text":57},{"value":94,"source":86,"evidence":95},"Native BOSL2 support is useful",[96,97],{"id":89,"by":90,"text":91},{"id":98,"by":99,"text":100},"49330238","hegjon","Awesome! I use both OpenSCAD and BOSL2, looking forward to test it!",[102,109],{"value":103,"source":86,"evidence":104},"Chamfers and fillets make parts harder to manufacture",[105],{"id":106,"by":107,"text":108},"49304317","adastra22","Quite easy to add chamfers to everything in the CAD file. But your manufacturing guy is going to strangle you...",{"value":110,"source":86,"evidence":111},"OpenSCAD's non-Turing-complete design has benefits that are lost",[112,115],{"id":113,"by":107,"text":114},"49304326","Isn't OpenSCAD's limited (non-Turing complete) language a feature?",{"id":116,"by":107,"text":117},"49304663","In the pedantic sense, yes. You can use recursive functions with tail-call optimization, or list comprehensions to emulate a universal Turing machine. But my point is that…",[119,126],{"value":120,"source":86,"evidence":121},"Web-based playground",[122],{"id":123,"by":124,"text":125},"49303713","fhn","Does this have a web-based playground? I find https:\u002F\u002Fwww.pythonscad.org\u002Fplayground\u002F to be nice to try out the project.",{"value":127,"source":86,"evidence":128},"Fillet support for unions",[129],{"id":130,"by":131,"text":132},"49303977","kragen","Can you fillet unions? Like, if I union a cube with a smaller cube sticking out of its side, can I make a fillet so that the edge where the two cubes' faces intersect doesn't…",[134,144],{"value":135,"source":86,"evidence":136},"Can it read and write files from the filesystem?",[137,141],{"id":138,"by":139,"text":140},"49302309","WillAdams","Is it able to access the file system and write\u002Fread files? I've been doing that via PythonSCAD for my current project https:\u002F\u002Fgithub.com\u002FWillAdams\u002Fgcodepreview and it might be…",{"id":142,"by":139,"text":143},"49310151","Yes, it is. The most notable aspect of this (and one which I've complained in the past) is the inability to write out file, which has security implications.",{"value":145,"source":86,"evidence":146},"Is programmatic CAD faster than SolidWorks-style tools?",[147],{"id":148,"by":149,"text":150},"49314067","vrinsd","Honest question here -- for doing 3D parametric design, is the \"programmatic\" approach a good thing? If you compare doing a design in LuaCAD to something like Solidworks or ProE,…",[152,157,162,172],{"value":153,"source":86,"evidence":154},"OpenSCAD",[155,156],{"id":113,"by":107,"text":114},{"id":89,"by":90,"text":91},{"value":158,"source":86,"evidence":159},"PythonSCAD",[160,161],{"id":123,"by":124,"text":125},{"id":138,"by":139,"text":140},{"value":163,"source":86,"evidence":164},"FreeCAD",[165,169],{"id":166,"by":167,"text":168},"49302253","tolugenius","Really interesting! I actually use freecad so I'm use to that layer of the process but I'll check this out. Also good to see the work being done in modeling software these days",{"id":170,"by":11,"text":171},"49314406","I've tried to get into Solidworks, Fusion, and FreeCAD several times, but every time I come back to programmatic CAD. It just better matches how I think about 3D design I guess.…",{"value":173,"source":86,"evidence":174},"SolidWorks",[175],{"id":148,"by":149,"text":150},{"comments":32,"answered":32,"key":177},[178,181,184],{"id":179,"text":180},"49303893","Agreed! I’m already working on it, but it’s not quite ready yet. ETA is 1-2 weeks.",{"id":182,"text":183},"49313426","I was actually able to get a first version released just now: https:\u002F\u002Fluacad.ad-si.com\u002Fplayground It's still rather bare bones and won't work well for large models, but otherwise…",{"id":185,"text":186},"49302821","Thanks! It natively supports all BOSL2 functions which include a chamfer argument (https:\u002F\u002Fgithub.com\u002Frevarbat\u002FBOSL\u002Fwiki#common-arguments). So that makes it quite straightforward…",{"commenters":18,"max_depth":31,"maker_replies":32,"first_comment_mins":188,"lifespan_hours":189},70,68,[191,193,195,196,198,202,204,206,210,211,213,216,218,220,223,225,226,227,229,230,232,236,238,240,244],[123,33,41,192,124,33],"project\u002Fneutral\u002Fnone",[179,33,33,194,11,34],"maker\u002Fneutral\u002Fnone",[182,33,33,194,11,34],[166,34,31,197,167,33],"project\u002Fpositive\u002Fidea",[199,38,31,200,201,33],"49309018","maker\u002Fpositive\u002Fidea","psd1",[89,41,31,203,90,33],"project\u002Fpositive\u002Fdesign",[185,41,33,205,11,34],"project\u002Fneutral\u002Fdesign",[207,41,33,208,209,33],"49302877","other\u002Fneutral\u002Fnone","addaon",[130,41,41,205,131,33],[106,41,34,212,107,33],"project\u002Fcritical\u002Fdesign",[214,41,33,208,215,33],"49306398","gunalx",[138,217,41,192,139,33],4,[219,217,33,194,11,34],"49302771",[221,217,31,222,139,33],"49303698","project\u002Fpositive\u002Fnone",[148,31,41,224,149,33],"project\u002Fneutral\u002Fidea",[170,31,33,197,11,34],[98,32,31,222,99,33],[113,228,41,224,107,33],7,[56,228,33,197,11,34],[116,228,33,231,107,33],"commenter\u002Fneutral\u002Fidea",[233,228,33,234,235,33],"49307311","commenter\u002Fneutral\u002Fnone","cjbgkagh",[237,228,33,234,107,33],"49316166",[142,228,33,239,139,33],"commenter\u002Fneutral\u002Fprivacy",[241,242,41,192,243,33],"49307203",8,"lkjdsklf",[245,246,33,208,247,33],"49328523",9,"gohash",[],[250,255,259,264,268,272],{"id":251,"name":252,"points":253,"category":254},"49327643","Desktopcolors.com",166,"learning_science",{"id":256,"name":257,"points":258,"category":20},"49355607","Lucasartsifier",161,{"id":260,"name":261,"points":262,"category":263},"49307700","ThoughtDAG",136,"ai",{"id":265,"name":266,"points":267,"category":263},"49354664","modelmap",113,{"id":269,"name":270,"points":271,"category":20},"49364296","terminal-code",108,{"id":273,"name":274,"points":275,"category":263},"49303046","Mole",100,false,"v2",{"id":279,"name":5,"line":6,"ai":276,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":280,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":281,"url":9,"mix":282,"praise":85,"objection":103,"sub":21},49301215,[21,24,25,26,27],"3005550031030530530000030",[31,32,33,34],1794036707830]