45 comments

  • fogleman17 hours ago
    It is kinda neat, but OpenSCAD&#x27;s limitations are the main thing that motivated me to write this Python library to generate 3D meshes used signed distance functions:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;fogleman&#x2F;sdf" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;fogleman&#x2F;sdf</a><p>One big plus to doing it this way is that it&#x27;s &quot;just&quot; Python and you can use arbitrary logic to help construct your model.<p>You can even load an existing 3D mesh and operate on it as an SDF. Great for hollowing, chopping, eroding&#x2F;dilating, etc. existing models.<p>I should probably do more with this project. I think there&#x27;s a lot of interest in this space.
    • vhanda15 hours ago
      Could you please elaborate on how this is different than the other python based modeling tools - build123d[0] and CadQuery[1].<p>I recently also got annoyed with OpenSCAD and its limitations and therefore started experimenting with Build123d. I&#x27;m very much a beginner in the CAD space and would love to understand what inspired you to build sdf.<p>My basic understanding is that STL files are essentially like Bitmap images and store a list of triangles and their positions, whereas STEP files are more like Vector art where there is a list of instructions on how to build the model. Most CAD GUI programs also operate on a similar model to vector art where they record a list of operations one on top of another. It&#x27;s why STEP files are a standardized format and can be imported &#x2F; exported from most GUI based CAD builders. I think.<p>Given that SDF also seems like it builds only STL files (I could be wrong), wouldn&#x27;t learning build123d or CadQuery work better if one cares about compatibility with existing GUI based CAD modeling software?<p>Additionally, atleast build123d offers a similar conceptual model to using Fusion360 and FreeCad - I have limited experience here - but essentially you sketch something in 2D on a particular plane, and then apply some operations to convert it to 3d in a particular manner - the simplest being extruding. This means the mental modeling of how to construct something is very similar across both GUI based CAD programs and Build123d, and that makes it easier for me to jump between GUI based and code based CAD modelling.<p>I&#x27;d love to understand your point of view, and learn more.<p>[0] - <a href="https:&#x2F;&#x2F;github.com&#x2F;gumyr&#x2F;build123d" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;gumyr&#x2F;build123d</a><p>[1] - <a href="https:&#x2F;&#x2F;github.com&#x2F;CadQuery&#x2F;cadquery" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;CadQuery&#x2F;cadquery</a>
      • fogleman14 hours ago
        It seems like you already understand the differences. I wasn&#x27;t aware of those other projects. build123d looks pretty neat.<p>Like most of my projects, this was just for fun and I mainly made it for myself. I&#x27;m a DIY kind of guy when it comes to software. I just throw things up on GitHub in case anyone else can get some use or inspiration out of it.
        • silvertab8 hours ago
          &gt; It seems like you already understand the differences.<p>Honestly I was about to ask the same questions as the parent comment. Whenever I&#x27;m interested in something I usually look at what available tools exists out there already; seeing a new tool mentioned that I&#x27;ve never heard of before, my reflex is to ask &quot;oh neat, what makes it different than the existing tools?&quot;. I don&#x27;t think the question was ill-intended, just genuine curiosity; assuming that you wrote your library because you had no idea build123d existed rather than because you were unsatisfied with it and wanted to tackle the problem differently is a bit of a leap.
    • userbinator4 hours ago
      From what I know, SDFs were popularised by the demoscene; it&#x27;s interesting that they&#x27;ve now found more practical applications as a result.
      • mkl3 hours ago
        They long pre-date the demoscene, going back centuries in mathematics. Ray tracing&#x2F;casting of implicit surfaces (described with SDFs and more general signed functions) for computer graphics goes back to the 1960s and 70s. The 1990s demoscene 2D metaball effects were based on computer graphics work by Jim Blinn for Cosmos in 1980. Most current applications are based on that long ongoing research. (I did my PhD in implicit surface stuff, so I&#x27;ve seen tons of academic papers on it going back ages, and I never ran into demoscene methods in that context.)
    • jandrese16 hours ago
      &gt; You can even load an existing 3D mesh and operate on it as an SDF. Great for hollowing, chopping, eroding&#x2F;dilating, etc. existing models.<p>This has my instant interest. Multiple times I have wanted to take an existing .STL file and cut a hole on it or add another object to it and have never had success.<p>I&#x27;ve tried things like Meshlab, but while the interface has what appears to be a hundred different functions, attempting to use anything returns some error code that requires a PhD to understand and none of the &quot;repair&quot; functions seem to help.<p>I mean seriously: Mesh inputs must induce a piecewise constant winding number field.<p>How the hell am I supposed to accomplish that on a STL file?
      • fainpul4 hours ago
        People should share the original files or at least step files along with the stl files. But if you <i>must</i> work with stl, Fusion works brilliantly for this. You can open the stl file, which gives you the usual mesh that&#x27;s hard to work with. You then convert that mesh to a solid object, on which you can use &quot;direct modeling&quot;. It&#x27;s not the same as a parametric object, but the editing features are quite powerful and sort of mindblowing. [1]<p>If you have the paid version of Fusion, you can run &quot;feature detection&quot; to turn things like holes, fillets, extrusions etc. into dedicated features which are even easier to edit. [2]<p>[1] <a href="https:&#x2F;&#x2F;www.autodesk.com&#x2F;learn&#x2F;ondemand&#x2F;curated&#x2F;direct-modeling-with-fusion&#x2F;6W6fHSTgwRLoK3BFTXEyNp" rel="nofollow">https:&#x2F;&#x2F;www.autodesk.com&#x2F;learn&#x2F;ondemand&#x2F;curated&#x2F;direct-model...</a><p>[2] <a href="https:&#x2F;&#x2F;www.autodesk.com&#x2F;learn&#x2F;ondemand&#x2F;curated&#x2F;direct-modeling-with-fusion&#x2F;43yJpL2EJKH1kCt2r4Xjbi" rel="nofollow">https:&#x2F;&#x2F;www.autodesk.com&#x2F;learn&#x2F;ondemand&#x2F;curated&#x2F;direct-model...</a>
      • Brian_K_White13 hours ago
        You can do that effortlessly right in openscad itself or in freecad for a more visual way, or in every single cad app in existence I think.<p>In freecad you first just open the stl file, then Part -&gt; Create part from mesh, then you have a solid you can modify.
        • jandrese5 hours ago
          Sounds great in theory until you actually try it and discover that anytime a STL touches another object the F6 render craps out with &quot;Manifold conversion failed: NotManifold&quot;
        • fogleman11 hours ago
          I just tried this in OpenSCAD and it crashed:<p>intersection() { import(&quot;3DBenchy.stl&quot;); sphere(30); }
          • bartvk1 hour ago
            FYI, I just tested this in OpenSCAD version 2025.09.13 and it works fine.
      • fogleman16 hours ago
        That feature requires getting pyopenvdb installed, which can be a headache, and I never really updated the README with examples, but it does work. There is one example script:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;fogleman&#x2F;sdf&#x2F;blob&#x2F;main&#x2F;examples&#x2F;mesh.py" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;fogleman&#x2F;sdf&#x2F;blob&#x2F;main&#x2F;examples&#x2F;mesh.py</a><p>You basically just say:<p>f = Mesh.from_file(path).sdf(voxel_size=0.25, half_width=1)<p>Then you can operate on `f`.
      • dekhn16 hours ago
        Blender also has a high learning curve but you typically don&#x27;t need a PhD to understand the errors (instead you just watch youtube videos and copy what they do).<p>Removing faces from an STL and adding other objects is quite straightforward. Previously, Autodesk had Meshmixer and 123D, I guess Meshmixer is still available: <a href="https:&#x2F;&#x2F;meshmixer.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;meshmixer.org&#x2F;</a> and I found it to be great for quick editing of the type you&#x27;re describing.
      • kesor16 hours ago
        OpenSCAD can load STLs and cut holes in them.
      • btbuildem15 hours ago
        Tinkercad is a very low-barrier-to-entry option here
    • FeepingCreature14 hours ago
      See also my site fncad <a href="https:&#x2F;&#x2F;fncad.github.io" rel="nofollow">https:&#x2F;&#x2F;fncad.github.io</a> ! It&#x27;s basically intended as &quot;SDFs in your browser with realtime preview with openscad-like syntax&quot;. I mostly use it for 3d models for printing.<p>What do you use for sdf meshing? I never really got the perf where I wanted it.
      • fogleman13 hours ago
        It&#x27;s explained in the README. The SDF is evaluated on whole batches of points (32x32x32 tiles by default) using numpy. (And it&#x27;s multithreaded.)
        • FeepingCreature10 hours ago
          So uniform sampling? And then I guess marching cubes or sth?
          • djmips1 hour ago
            marching cubes yep.
          • fogleman10 hours ago
            I see you still haven&#x27;t read the README.
    • zimpenfish15 hours ago
      Bless you for your service, sir! I have used `sdf` to create a whole bunch of stuff (buttons for my mother, tealight holders, etc.) and `gg` gets used in a bunch of places (including a couple of bots).<p>&gt; I should probably do more with this project.<p>I, for one, would be glad.
    • JonathanRaines17 hours ago
      I&#x27;ve used your library and really like it!
    • ur-whale9 hours ago
      SDFs are very neat up until the point where you need to build parts that have very precise specifications.<p>Something like two precisely interlocking gears with a tooth geometry with a profile that&#x27;s the developed curve of the opposite tooth is a nightmare to build with SDFs<p>Or precise fillets.<p>Or hard intersections and differences.<p>Very useful for doing soft, squishy shapes, less so for hard CAD.<p>Also, a suggestion: in your project, please consider using Wavefront OBJ as an output format, it is a much, much better choice than STL (STL can&#x27;t represent the actual topology of the object, it has to be reconstructed).
  • charlie-8319 hours ago
    Just started using OpenSCAD recently and love it. While most CAD tools have a million features to learn, OpenSCAD is completely described by a cheat sheet you could print on a piece of A4 (like most programming languages).<p>I would really recommend using the git master than the latest release though. The last release was 2021 but they are still actively working on it and it&#x27;s much faster now.<p>I also have to recommend the BOSL2 library which means you don&#x27;t have to implement all of those one million features from typical CAD software yourself. Its definitely got a bit of a learning curve but the fact that you can always default back to vanilla OpenSCAD and that you can actually see how stuff is implemented makes it much more satisfying to me to learn than learning what all the traditional CAD GUI buttons do.
    • porkloin18 hours ago
      Commenting off of you since I wrote all of this and then realized it&#x27;s basically exactly what you&#x27;re saying. But to +1 everything you just said in my own words:<p>I love OpenSCAD. I&#x27;ve been 3D printing for a while, but I never really got to a place where I could design interesting parts until I started to get the precision of doing models in code. Sometimes it is slower, for sure.<p>Every time I&#x27;ve used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it. The input devices lack precision for that kind of task, and having to repeat the operation dozens of times (or bulk select) gave me a terrible sinking feeling, and I&#x27;d often just step away and give up on the design at that point out of frustration. I try to approach everything in OpensSCAD in a way that means I never have to experience that feeling again.<p>I will also say that doing everything from scratch in OpenSCAD would be it&#x27;s own special kind of hell. Libraries like [BOSL2](<a href="https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2</a>) provide a good set of core ideas and preferences that help set you on a good path. A good example: BOSL2 shapes tend to have a &quot;center origin&quot; by default, which is different than the OpenSCAD default, but makes doing transforms later way easier.<p>Anyway, happy to see OpenSCAD getting some attention here :)
      • zargon18 hours ago
        &gt; Every time I&#x27;ve used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.<p>There seems to be some fundamental misunderstanding of CAD here. I can&#x27;t imagine how you could even design something in CAD in a way that you would end up in this situation.
        • dcminter16 hours ago
          I wonder if he&#x27;s using TinkerCAD or something similar? I often use that, &#x27;cos it&#x27;s quick for simple things that are one-offs, but it has exactly this issue as it&#x27;s not at all parametric, just primitives and booleans (though it does have some basic sketch capabilities now)<p>When I&#x27;m doing something more sophisticated I use SolveSpace, but I&#x27;m a lot slower with that.
          • porkloin16 hours ago
            yeah, op here: it&#x27;s exactly that. I&#x27;ve used most of the free or open source software options and it seemed like none of them are parametric. I know I could buy fusion or something like that, but I found OpenSCAD before I got to that point and feel like it fits the bill for me.
            • le-mark11 hours ago
              Freecad is fully parametric, set constraints so it’s 0 degrees of freedom and you shouldn’t have that problem.
            • sfifs15 hours ago
              Fusion is free for personal use and in my experience at least was much faster experience than OpenSCAD.
            • Kerbiter12 hours ago
              You don&#x27;t necessarily need to buy Fusion, it has a well hidden free tier for personal use, just gotta dig on the site a bit.
            • skybrian14 hours ago
              I like Onshape. It’s free to use provided that you’re okay with your design being public.
            • Arodex12 hours ago
              Solvespace and Onshape are free and parametric.
      • Arodex18 hours ago
        &gt;Every time I&#x27;ve used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.<p>What.<p>This makes no sense. This isn&#x27;t PowerPoint; your holes and cutouts are supposed to be parameterized. How are they even supposed to be at the proper position in the first place?<p>As a CAD user, this is like e.g. a coder seeing someone write code with global variables everywhere.
        • porkloin16 hours ago
          I think I&#x27;m realizing that openscad was probably just the first time that parametric design options were given to me in a context where it made sense to me (in code). Maybe some of the software I&#x27;ve used has supported parametric positioning, but it wasn&#x27;t made obvious to me. In OpenSCAD it&#x27;s parametric by necessity. I said this in another comment, but the other programs I&#x27;ve worked with in GUI are most certainly not high end pieces of software: tinkercad, freecad, sketchup.<p>I&#x27;m not doing complex character model designs, I&#x27;m usually building functional prints like enclosures or cases. It certainly sounds like there are features of better CAD software that makes parametric the default?
          • jazzyjackson15 hours ago
            FreeCAD is definitely parametric but I hear you that the interface doesn&#x27;t make it obvious. It might be worth another look particularly since it&#x27;s interoperable with OpenSCAD and can work on CSG trees within the interface<p>At least you&#x27;ve inspired me to try it and see if it&#x27;s &quot;worth writing home about&quot;<p><a href="https:&#x2F;&#x2F;wiki.freecad.org&#x2F;OpenSCAD_Workbench" rel="nofollow">https:&#x2F;&#x2F;wiki.freecad.org&#x2F;OpenSCAD_Workbench</a>
          • JP4414 hours ago
            If you&#x27;re doing enclosures, check out Dune3d! Has been featured here as well (it&#x27;s how I found it). It&#x27;s pretty easy to use and feels intuitive for prints you&#x27;ll only have to make once or twice. It&#x27;s missing some things here or there but nothing fundamental (except trimming edges i.m.o.)<p>I often switch between FreeCad and Dune3d now, Freecad for things I know how to design properly and Dune when I&#x27;m in &#x27;claying&#x27; mode. E.g. export a .step part when I get stuck in FreeCad, import it into Dune, make some progress and vice versa so I don&#x27;t walk away from the project
          • Arodex12 hours ago
            Oh, it is not that software like freecad is not <i>parametric by necessity</i>; it is just that in a parametric design process, you don&#x27;t set all the parameters at once. Why? Because a) you don&#x27;t overconstraint a design, and b) your parameters rely on references (a point, a line, the side of another object, a tangent), and you may want to change which reference you choose.<p>For example, if you put a hole in a box, do you want to reference the center of the sides of the hole? And do you want to place them relative to the left side or right side, and front or back? You never say &quot;it&#x27;s <i>x</i> mm from the left and <i>y</i> mm from the right and my box is <i>w</i> mm wide&quot; - because the relationship x+y=w is always here! You only define 2 out of 3. But it may happen that you picked the wrong 2 - and a parametric CAD makes it very easy to do so in a few clicks, while a programmatic CAD like OpenSCAD is a large rewrite with calculation you have to do yourself on the side.<p>My example is silly but start doing big designs, large assemblies, and you &quot;chains of cotations&quot; may need to be redone again and again - especially when tolerances begin to add up.
          • exasperaited15 hours ago
            I think I understand this — I mean, OpenSCAD was my brief gateway to parametric CAD, and then I got to FreeCAD via brief stepping stones of CadQuery and other packages.<p>But OpenSCAD isn&#x27;t really <i>parametric CAD</i>. It&#x27;s a programming language; it&#x27;s parametric for that reason. But it&#x27;s not really CAD, at another level, in the sense that it does nothing to &quot;aid&quot; your design work. It has no interim abstraction for generated geometry; everything must be explicitly described.<p>FreeCAD, though, is <i>profoundly</i> parametric, through and through, and really always has been. Indeed the parametric aspects are the main thing that made it workable before the TNP mitigations were added. It is not a <i>limited</i> CAD package, by any means. It&#x27;s just a somewhat unfriendly one with a CAD kernel that has some limitations. Really it&#x27;s almost better understood as a 3D IDE with some workflow affordances.<p>If you are stuck trying to get your head into how FreeCAD works, there are now three really good ways on Youtube: the Mango Jelly Solutions videos are incredible, the Shawn Hymnel&#x2F;Digikey FreeCAD and 3D Printing course is good, and there are great recent videos by Deltahedra.<p>But what you will be able to make with it, once you get your head into it, is <i>night and day</i> different to what is possible with OpenSCAD. Because your parametric work in FreeCAD (or other CAD packages) can operate on the <i>geometry</i> of the result of previous operations.<p>Give it a try in the New Year with FreeCAD 1.1 when it is released.<p>If you want another stepping stone from OpenSCAD to FreeCAD or any other package, I really recommend you look at CadQuery&#x2F;Build123D. This will give you a similar coding approach but it will introduce you to operations on the true faces, edges and vertexes of the output of other operations.<p>(FWIW I would not say that Sketchup is not <i>high end</i>, either. It&#x27;s not to my tastes but it is quite powerful)
            • WillAdams29 minutes ago
              The one thing which I need to see in FreeCAD to be successful with it is an interface option which doesn&#x27;t require a multi-button mouse, but which will work with a trackpad, or better still a tablet and stylus --- I spend 5 days a week essentially chained to a desk using a mouse (sometimes a Trackpoint) and evenings&#x2F;weekends I prefer to sit somewhere more relaxing than a desk and to use a different sort of pointer.<p>Dune 3D seemed quite promising, but very limited --- is there a set of options for the UI in FreeCAD which will create a similar interface?
              • argiopetech1 minute ago
                Check out the other mouse options. I learned FreeCAD 1.0 entirely on trackpad (Mac, no middle click).<p>Now, if the random crashing were fixed, that would make a real difference for me...
        • tonyarkles16 hours ago
          You would not believe how many CAD models are not parameterized. Not mine, but ones I’ve had to work with.
      • 0_____018 hours ago
        A properly parameterized model shouldn&#x27;t have the issue with having to nudge everything manually after a trivial change.<p>I had the change the height of an entire enclosure to accommodate a taller than anticipated PCB, and simply edited the sketch at the top of my design tree that defined the overall dimensions.<p>It took about 5 minutes to adjust the odd broken fillet and change some mates in assembly and it was done. No fidgety mouse movements. I actually do a lot of mech design on a laptop with a trackpad, arrow keys for view changes and numeric dimensioning for 95% of everything else.
      • RobotToaster3 hours ago
        &gt; Every time I&#x27;ve used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.<p>I can see how you would end up in that position<p>You need to add constraints to your sketches. In other words tell it that the hole needs to be x distance from certain lines.<p>If you don&#x27;t do that what you get is the equivalent of hard coding a hole location in OpenSCAD. I guess OpenSCAD just forces you to think parametrically.<p>Also in fusion 360 make sure timeline editing is on.
      • abdullahkhalids18 hours ago
        &gt; Every time I&#x27;ve used as a CAD GUI program I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it.<p>I am just starting to learn CAD and FreeCAD - also dabbled a bit in OpenSCAD. But I do know that FreeCAD has Spreadsheets [1] and Configuration Tables [2] which allows you to define your model parameterically and changes values as needed.<p>How good this is, I don&#x27;t know yet.<p>[1] <a href="https:&#x2F;&#x2F;wiki.freecad.org&#x2F;Spreadsheet_Workbench" rel="nofollow">https:&#x2F;&#x2F;wiki.freecad.org&#x2F;Spreadsheet_Workbench</a> [2] <a href="https:&#x2F;&#x2F;wiki.freecad.org&#x2F;Configuration_Tables" rel="nofollow">https:&#x2F;&#x2F;wiki.freecad.org&#x2F;Configuration_Tables</a>
        • MegaDeKay16 hours ago
          Spreadsheets are <i>really</i> slow in FreeCAD. I&#x27;d suggest you look into Varsets [0] if you don&#x27;t need some of the fancier capabilities that spreadsheets provide.<p>[0] <a href="https:&#x2F;&#x2F;wiki.freecad.org&#x2F;Std_VarSet&#x2F;en" rel="nofollow">https:&#x2F;&#x2F;wiki.freecad.org&#x2F;Std_VarSet&#x2F;en</a>
          • exasperaited15 hours ago
            Yes, VarSets are definitely better (more granular dependency recalculations).<p>The little-known Configuration Tables aspect of Spreadsheets is <i>absolutely</i> worth using, though, and has no equivalent in the VarSets scheme at this point. Once you get that set up it is great fun.
        • ElCapitanMarkla17 hours ago
          It’s a fantastic feature and works really well, my problem is I can never invest the required time to learn the interface. It all falls apart when I need to switch modes to move something or whatever. With scad can usually knock whatever I want together pretty quickly without having to relearn how to use the tool.
      • girvo15 hours ago
        &gt; I would get to this point where I would need to alter a single dimension by 0.25mm and realize that _all_ of my fastener holes, cutouts, etc have to be nudged with the keyboard or mouse to accommodate it<p>Thats surprising! Last time I used software like this (Inventor, back in ~2005-2006) constraints meant that I didn&#x27;t need to do this at all
      • s530018 hours ago
        [dead]
    • moebrowne17 hours ago
      &gt; I would really recommend using the git master than the latest release though.<p>This. The master version is so much further ahead of the last tagged version. The render time can be orders of magnitude faster for more complex models.
      • jasongill16 hours ago
        It appears that regularly-updated builds are available here: <a href="https:&#x2F;&#x2F;openscad.org&#x2F;downloads.html#snapshots" rel="nofollow">https:&#x2F;&#x2F;openscad.org&#x2F;downloads.html#snapshots</a><p>or with Homebrew you can do `brew install --cask openscad@snapshot` to install the latest snapshot version.<p>Or, browse all the snapshot builds here: <a href="https:&#x2F;&#x2F;files.openscad.org&#x2F;snapshots&#x2F;" rel="nofollow">https:&#x2F;&#x2F;files.openscad.org&#x2F;snapshots&#x2F;</a><p>(as of this comment, the last snapshot build is from yesterday)
    • cm218717 hours ago
      Agree but you quickly run into its limitations. Like if you 3d print something, you need to eliminate when possible sharp edges. That&#x27;s not fun to do with OpenSCAD.
      • m4rtink15 hours ago
        BOSL2 can help with that:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;rounding.scad" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;rounding.scad</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;Tutorial-Rounding_the_Cube" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;Tutorial-Rounding_t...</a>
    • m4rtink16 hours ago
      BOSL2 is SO nice and powerful, can also highly recommend it! :)
    • exasperaited15 hours ago
      OpenSCAD isn&#x27;t a CAD tool, IMO. It does nothing at all to <i>aid</i> your design. It barely even helps describe it in any abstract way.<p>It is a useful tool for programmatically describing either very simple or heavily geometric objects. For everything else it&#x27;s the wrong tool.
  • givc32 minutes ago
    I found that combining OpenSCAD with SVGs for extruding complex shapes is quite powerful. I made a map of Manhattan that could not be handled by any other CAD program I tried without crashing, but OpenSCAD handled it really well.<p>I wrote more about it here, although I only mentioned OpenSCAD briefly <a href="https:&#x2F;&#x2F;hackaday.io&#x2F;project&#x2F;202488-manhattan-subway-map&#x2F;details" rel="nofollow">https:&#x2F;&#x2F;hackaday.io&#x2F;project&#x2F;202488-manhattan-subway-map&#x2F;deta...</a>
  • WillAdams19 hours ago
    The great thing about OpenSCAD is that it makes it easy to 3D model things which may be described using spheres, cylinders, and cubes which are stretch, and&#x2F;or rotated, and arranged in 3D space.<p>The awful thing about OpenSCAD is that what one can model in 3D is limited by one&#x27;s ability to mathematically stretch, rotate, and&#x2F;or arrange spheres, cylinders, and cubes in 3D.<p>For folks who want &quot;real&quot; (read mutable in normal terms of scope) variables there is a Python-enabled fork (which should become part of the main release presently:<p><a href="https:&#x2F;&#x2F;pythonscad.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pythonscad.org&#x2F;</a>
    • IgorPartola18 hours ago
      Not just that but it also positions everything in absolute coordinates and does not have the ability to reason about solids, just surfaces. Basically if you want to model something like a bolt you need to create a cylinder for the shaft, a separate head of the bolt, and then a thread profile you can rotate around the cylinder. You must ensure there is enough overlap between these three separate parts so the resultant object is a single surface and not three separate ones.<p>You can use modules to create a semblance of relative measurements but you still cannot do things like “attach this surface of object A to that surface of object B)”. In practice this means that if you want to create something like a spacer or a bracket you can do that easily enough. But if you want to make a part that matches some real world design you are stuck doing a lot of caliper measurements and math to try to create a part that lines up correctly. The you 3D print it and find that you positioned some hole based on its edge and not center and so nothing quite fits.<p>OpenSCAD is easy to start but difficult to scale because of these limitations and because once you hard-code any measurement you are stuck with it. The “proper” way to do this is to give everything a variable but honestly that makes reasoning about how to line things up even more difficult. “Does base_width include the width of the vertical walls? What about the margin to make the parts fit together?”<p>I have never been able to understand how things like FreeCAD lay out their UI. TinkerCAD is relatively simple but clearly a lot less powerful. I did try cadquery which solved a lot of OpenSCAD’s issues by having all offsets be relative by default but also introduces a few issues of its own.<p>One tip I will give about OS: grab a copy of the latest beta&#x2F;dev release. The renderer is several orders of magnitude faster.
      • c0nsumer14 hours ago
        &gt; You must ensure there is enough overlap between these three separate parts so the resultant object is a single surface and not three separate ones.<p>(Post author here.)<p>This was a very weird thing to me I ran into and have thus far just sort of... accepted.<p>In Fusion, and other CAD software, if I have two faces end at the same point, unless I&#x27;ve specifically said to create them as separate bodies, they are joined, because they share a plane.<p>In OpenSCAD, in the tutorial, it has you extend an object 0.001 to ensure they overlap. To quote:<p>&gt; In the example above, the second cube sits exactly on top of the first cube. This is something that should be avoided, as it’s not clear to OpenSCAD whether the two cubes form one object together. This issue can be easily solved by always maintaining a small overlap of about 0.001 - 0.002 between the corresponding objects. One way to do so is by decreasing the amount of translation along the Z axis from 10 unit to 9.999 units.<p>This struck me when making the example in my post. In line 47 I specifically add 1 to heightCompartment to ensure the opening extends past the top of the main body. If I didn&#x27;t do that, this happens during preview: <a href="https:&#x2F;&#x2F;imgur.com&#x2F;a&#x2F;Amc1dK6" rel="nofollow">https:&#x2F;&#x2F;imgur.com&#x2F;a&#x2F;Amc1dK6</a> (That&#x27;s an exported image from the latest nightly of OpenSCAD.)<p>But it doesn&#x27;t happen during the actual render?<p>Still, that just feels... like there&#x27;s something going on with a floating point value or something which, programatically, is probably correct... But from the perspective of someone trying to design something feels Very Wrong. Because I have a 20mm high box, I subtract a 19mm high box from it, starting 1mm up from the base. Why shouldn&#x27;t the top be open? Why is it acceptable for it to be maybe kinda open but broken by design?
      • somat17 hours ago
        &gt; but you still cannot do things like “attach this surface of object A to that surface of object B)”<p>Sure you can, but openscad is an imperative language so you need to do it in an imperative manner.<p><pre><code> a_cube_loc = [10, 5, 5]; a_cube_size = [2, 4, 1]; b_cube_loc = [a_cube_loc[0], a_cube_loc[1] + a_cube_size[1], a_cube_loc[2] ]; b_cube_size = [2, 4, 1]; translate(a_cube_loc) cube(a_cube_size); translate(b_cube_loc) cube(b_cube_size); </code></pre> It would be nice to have more declarative constraints. The solvespace file format is plain text and it almost feels like you could write it by hand, but that would be a lot of manual record keeping. and you would loose all that imperative goodness. Perhaps you could have an imperative layer(say python or lisp or forth) that outputs the declarative layer(solvespace) and then solvespace renders(picture or stl) the declarative layer.
        • WillAdams16 hours ago
          I think a text input option for Solvespace which was optimize for readability and usability would be _very_ interesting approach, esp. if Solvespace was able to write back out to the same format, and it allowed math&#x2F;variables&#x2F;parameters and supported the same in the UI.
      • coryrc17 hours ago
        BOSL2 allows attaching when you define attachment points or something with attachment points defined for you (most everything in BOSL2).<p>Manifold backend also eliminates the need to avoid coincident faces.
        • IgorPartola15 hours ago
          Can you explain this a bit more? Might be the after effects of the COVID&#x2F;flu vaccine I got yesterday but I am not picking up what you mean.
      • m4rtink15 hours ago
        Let me introduce to the awesomness of the BOSL2 screw module:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;screws.scad" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;screws.scad</a>
        • IgorPartola15 hours ago
          This is amazing but the first time I needed to make a screw I needed to make one that used the NPT standard which this module still does not cover :)
      • ur-whale9 hours ago
        &gt; I have never been able to understand how things like FreeCAD lay out their UI.<p>I&#x27;m 100% with you there. One of the most utterly confusing UI I&#x27;ve had to deal with.<p>And I suspect the answer is : the FreeCAD devs don&#x27;t either.
    • RobotToaster18 hours ago
      &gt; The great thing about OpenSCAD is that it makes it easy to 3D model things which may be described using spheres, cylinders, and cubes which are stretch, and&#x2F;or rotated, and arranged in 3D space.<p>It also has hulls and minkowski sums, which are powerful once you understand them.
      • WillAdams17 hours ago
        Aren&#x27;t hulls just a direct connection of the edges of two shapes (which could be simulated by a series of duplications) while Minkowski is &quot;just&quot; a matter of putting spheres along the edges of an object to round the straight edges?<p>So, spheres and cylinders and cubes placed, rotated, stretched and placed mathematically.
    • culi18 hours ago
      There&#x27;s also OpenJSCAD. Which, being JavaScript ofc, can run in the browser<p><a href="https:&#x2F;&#x2F;openjscad.xyz&#x2F;" rel="nofollow">https:&#x2F;&#x2F;openjscad.xyz&#x2F;</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;jscad&#x2F;OpenJSCAD.org" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jscad&#x2F;OpenJSCAD.org</a>
      • xixixao17 hours ago
        From my testing, the CSG operations, with post-processing, don’t produce watertight meshes. And being focused on printing, it doesn’t support different colors for the CSG operands. My use case is animation&#x2F;games, so I’m reimplementing the CSG with a watertight b-rep.
      • rafabulsing17 hours ago
        Re: JS based CAD, there&#x27;s also replicad, which I&#x27;ve used previously and found to be really good.<p><a href="https:&#x2F;&#x2F;replicad.xyz&#x2F;" rel="nofollow">https:&#x2F;&#x2F;replicad.xyz&#x2F;</a>
      • spwa418 hours ago
        Don&#x27;t people think this is one tool that would greatly benefit from using the very fastest languages available? Where&#x27;s the C++, Rust, maybe even FORTRAN version?
        • htgb18 hours ago
          This is only the language for describing the volumes. That&#x27;s not heavy, rather the importance is that you can express the ideas you want. The heavy lifting of rendering and computing how volumes interact etc is already implemented in native code.
        • WillAdams17 hours ago
          My understanding is that the core of OpenSCAD is done using C++.<p>If you wish to use Rust for 3D modeling directly there is:<p><a href="https:&#x2F;&#x2F;fornjot.app&#x2F;" rel="nofollow">https:&#x2F;&#x2F;fornjot.app&#x2F;</a><p>(the developer of which is actually working on a BREP kernel)
    • tombert10 hours ago
      I think people should also give Bowler Studio a shot. It has a pretty decent Java-based CAD thing, and it even has built in Clojure support, with physics simulation support and everything. I really like it.
    • jandrese16 hours ago
      You can also make more complex shapes if you&#x27;re willing to define points, even on a 2D plane that you can then extrude. Downside is that it&#x27;s basically a MENSA test to define all of the points in the correct order. I&#x27;ve done it a few times, but it&#x27;s never fun.
    • coryrc17 hours ago
      Also you can use the new backend by writing C++: <a href="https:&#x2F;&#x2F;github.com&#x2F;elalish&#x2F;manifold" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elalish&#x2F;manifold</a><p>Which avoids using the OpenSCAD language, but also means you can&#x27;t use BOSL2. Might as well use FreeCAD.
      • pca00613215 hours ago
        It has many language bindings, including python and js. Though the js backend is not parallel because it uses wasm, and we had problem with mimalloc memory usage with pthread enabled.
    • JoshTriplett18 hours ago
      Another interesting option is FreeCAD, which is scriptable in Python but its primary interface is a GUI. So you can use a script to create things programmatically, edit graphically, or both.
      • WillAdams20 minutes ago
        Isn&#x27;t the Python scripting in FreeCAD just a direct representation of the internal object model?<p>It&#x27;s _not_ something which was designed for ease of use, or rational semantics, or to facilitate expression.
      • criddell17 hours ago
        FreeCAD sounds great but in practice it’s sooo slow.<p>If you are coming from SolidWorks, Fusion360, Inventor, or OnShape, it won’t take long before you start finding that there are a lot of things missing from it.
        • zihotki17 hours ago
          I&#x27;m coming from Fusion, advanced hobbyist, I can&#x27;t find anything missing. &lt;&#x2F;anecdata&gt;<p>There is a problem though - sometimes what you want requires deep understanding. It&#x27;s less user friendly, polished, and documented. That&#x27;s also relevant to the performance - it&#x27;s easy to cause performance issues. But I remember the same was also applicable to Fusion.
          • Animats17 hours ago
            Of course FreeCAD is less user friendly, polished, and documented. It&#x27;s open source. Open source people do not get GUIs. They think command line. It&#x27;s taken <i>decades</i> for artists and graphic designers to nag the GIMP and Blender people into usable interfaces, and they&#x27;re still inferior to Photoshop and Maya.
    • ai-christianson18 hours ago
      I&#x27;ve had really good luck with <a href="https:&#x2F;&#x2F;github.com&#x2F;SolidCode&#x2F;SolidPython" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;SolidCode&#x2F;SolidPython</a>
    • NortySpock18 hours ago
      I ended up adding the <a href="https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2</a> library to OpenSCAD and it had some reasonable options for some gear and rack-and-pinion modeling that I needed to do.<p>(3D printing a sacrificial gear for a seat position adjustment mechanism)
    • M_bara18 hours ago
      Or perhaps take a look at cadquery? It’s also pretty neat - <a href="http:&#x2F;&#x2F;cadquery.readthedocs.io&#x2F;" rel="nofollow">http:&#x2F;&#x2F;cadquery.readthedocs.io&#x2F;</a>
    • ur-whale9 hours ago
      &gt; <a href="https:&#x2F;&#x2F;pythonscad.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pythonscad.org&#x2F;</a><p>Thanks for this, didn&#x27;t know about it.<p>How does that compare to solid python 2?<p><a href="https:&#x2F;&#x2F;github.com&#x2F;jeff-dh&#x2F;SolidPython" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jeff-dh&#x2F;SolidPython</a>
      • WillAdams12 minutes ago
        It&#x27;s native and more direct.<p>Rather then adding an additional compile cycle:<p>- run Python code to generate OpenSCAD code<p>- render OpenSCAD code to see output<p>OpenPythonSCAD creates a .py code window in the OpenSCAD interface which one interacts with in the same way as a .scad code window (there&#x27;s even basic support for the Customizer).<p>I suspect it would be really easy to port SolidPython to work w&#x2F;in OpenPythonSCAD (if it hasn&#x27;t already been done)
    • TOGoS7 hours ago
      &gt; The awful thing about OpenSCAD is that what one can model in 3D is limited by one&#x27;s ability to mathematically stretch, rotate, and&#x2F;or arrange spheres, cylinders, and cubes in 3D.<p>Not at all. You can build any polyhedron you want using the polyhedron command.<p>Which would be an enormous pain to write out by hand every time, but I wrote a function once upon a time to generate a polyhedron from a stack of layers, each of which is a list of points, and haven&#x27;t had to mess with old cubes and spheres since.<p>One annoying thing is that the default way of writing programs in OpenSCAD uses &#x27;modules&#x27;, which are a bit limited compared to functions (you can&#x27;t store them as values to to functions or other modules). I worked around that by writing a module that interprets arrays (think S-expressions) that representing the shape, and then just build up that S-expression-like thing with functions and whatever.<p>Once you&#x27;ve built your own programming language inside OpenSCAD it&#x27;s perfectly usable. :-)<p>This might sound like sarcasm but I actually do prefer this to dealing with Python&#x27;s mutable state jungle &#x2F; package management nightmare.
      • WillAdams3 minutes ago
        Fair point.<p>This sounds _fascinating_ have you posted your code or written this up in a math journal? Link?<p>I don&#x27;t touch polyhedrons in OpenSCAD because the logic of point placement mystifies me --- a tool such as you describe would make life a lot easier for a lot of folks, esp. if there was a way to use it to import a series of SVG files which could be used to define the points interactively.<p>I sometimes wonder if the key to future computer usage would be a series of Domain Specific Languages each intended for a given task:<p>- 3D == OpenSCAD<p>- 2D == METAPOST<p>- SQL == databases<p>- TeX == text&#x2F;page composition<p>- sed == text<p>(and yes, I know this is the Unix ideal)<p>but such languages seem to be most successful and most approachable to typical users when they are paired with a front-end which affords editing, previewing, and, direct interaction.<p>I&#x27;m actually nuking my Python install right now, because I got it into a state where I couldn&#x27;t get Fullcontrol G-code to run, so I agree that the state of Python package population is pitiful, hence of course, the XKCD:<p><a href="https:&#x2F;&#x2F;xkcd.com&#x2F;1987&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;1987&#x2F;</a>
  • elcapitan19 hours ago
    For me as a casual 3d-modeler, my favorite thing about OpenSCAD is that I don&#x27;t have to learn a new application the size of Photoshop with everything hidden 7 levels deep in some menu that is probably intuitive for some people who learned CAD in the 80s.<p>Instead it&#x27;s basically like graphics programming, with a couple of basic primitives, some linear transformations and a bit of set theory. When I do a model a month and get back to previous work, I read a few lines of code and know exactly how I achieved the result.
    • unbelievably18 hours ago
      I was once a big OpenSCAD user myself but I&#x27;m really skeptical that there are many use cases where it&#x27;s actually more intuitive than a traditional CAD program, even if you&#x27;re a programmer. It&#x27;s true CAD programs have a huge amount of features but the basic sketch, extrude, revolve, and loft tools aren&#x27;t conceptually difficult and are basically the same between Onshape, Fusion, Solidworks, etc. Those tools are sufficient to make 99.99% of OpenSCAD models I&#x27;m seeing.<p>I also have the opposite experience about understanding previous scripts. Unless it&#x27;s dead simple I&#x27;m usually thinking why the hell did I multiply this thingy by sqrt(3)&#x2F;2 plus this other thing. Maybe a documentation problem, but it&#x27;s inescapable that sometimes you need a lot of math for what are trivial constraints in an interactive sketch. A real CAD program will let you roll back to any feature to figure out how it&#x27;s constructed step by step so there&#x27;s really nothing to decipher.
      • WillAdams17 hours ago
        I&#x27;ve been trying to model joints for woodworking, and in traditional tools, the shapes I wish to arrive at verge on nightmarish, while I was able to knock them out in OpenSCAD in pretty short order --- except that when I sent a 1&quot; x 2&quot; x 1&quot; test joint to a CAM program, it took some 18 minutes and generated a ~140MB G-code file, hence my working on:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;WillAdams&#x2F;gcodepreview" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;WillAdams&#x2F;gcodepreview</a>
      • wat1000013 hours ago
        The older I get, the less I want GUIs. If I want to rotate something, I want to type “rotate,” not find the rotation icon or menu item or remember the keyboard shortcut or whatever.<p>I know this is not typical, and nothing against folks who see it the other way. But OpenSCAD fits the way I think and want to work better than the more “normal” tools.
      • IshKebab16 hours ago
        Yeah I agree. OpenSCAD is good for highly parametric modelling: fasteners, gears, generative art, ... that&#x27;s about it. Most things aren&#x27;t like that, and a traditional parametric CAD program is 10x easier.
  • thdrtol1 hour ago
    Tip (a lot of people don&#x27;t know this): you can set the resolution by setting the $fn variable. This can be useful when you want to export smooth objects.<p><pre><code> $fn = $preview ? 32 : 64;</code></pre>
  • jdranczewski4 hours ago
    An interesting use case of OpenSCAD is open source hardware with many contributors - the reasoning being that we only have mature version control tooling for text-based files (say git), and so your CAD design should be text-based. I was introduced to this idea by <a href="https:&#x2F;&#x2F;openflexure.org&#x2F;projects&#x2F;microscope&#x2F;" rel="nofollow">https:&#x2F;&#x2F;openflexure.org&#x2F;projects&#x2F;microscope&#x2F;</a> - they managed to build a fairly complex 3D printed microscope project on this principle.<p>I&#x27;m aware of Onshape having a git-like workflow as well, wonder how the two compare! A fully cloud-based suite would probably not work well for an open source project.
    • WillAdams1 minute ago
      Yeah, I wish that this had been popularized in the Maker movement, but Autodesk nuked that field when they made Fusion 360 &quot;free&quot; (which was probably their intent).
  • Brian_K_White13 hours ago
    It&#x27;s a lot of work to make models that are useful in real life, but for some things it&#x27;s worth it because it&#x27;s sooo nice having 2k of plain text that describes an entire object, and it&#x27;s even fully parametric, and it even comes with a customizer panel for the parameters, so every model isn&#x27;t just a model, it&#x27;s a model generator app, and even has meaningful diffs in git.<p>The same model in freecad is like 6 megs of zipped xml and realistically not nearly as usefully parametric.<p>That couple-k of plain text is such a huge deal that it makes all the other difficulty worth it for mechanical&#x2F;functional stuff.
    • bb8813 hours ago
      I find that I&#x27;m often making one-offs. I take a part I designed and I need a slight modification for it for some reason.<p>Fusion is great for that as long as there&#x27;s not too many parts. But sometimes I&#x27;ll want a new variant or a series of new variants.<p>And reaching for python makes that easy.
    • dheera13 hours ago
      OpenSCAD is the only CAD tool I use. I can&#x27;d figure out how to operate a graphical 3D software with a 2D GUI so it&#x27;s just easier to describe things mathematically.<p>I just wish it had operations for subtractively chamfering, rounding, etc. as doing minkowski() with cones and spheres to achieve that result can be unwieldy.
      • derkades5 hours ago
        Do you know about BOSL2? It can do rounding or chamfering very easily.<p>cuboid([20, 20, 30], chamfer=5);
  • jacquesm16 hours ago
    It is amazing. I spend more time in OpenSCAD than in any other program I use and I&#x27;m amazingly productive with it. 3 to 4 cycles &#x2F; day, the longest time is waiting for the printer to cough up the next iteration, then it is building debugging and improving again.<p>The power of parametric cad is such that I wouldn&#x27;t be a 10th as productive using an interactive cad system. And because it is effectively software you are writing (even if it compiles into physical objects) you can use all of the goodies that you can use to manage software. Diff files, git, kompare, branching, merging. It is nothing short of amazing, it is like I have a design team and a prototype injection molding facility in one. And the turnaround time is something you&#x27;d have killed for in the 90&#x27;s.
    • echoangle16 hours ago
      &gt; The power of parametric cad is such that I wouldn&#x27;t be a 10th as productive using an interactive cad system.<p>This sounds like parametric and interactive CAD are polar opposites. Normal CAD software is generally parametric too.<p>The other points about the advantage of text files still applies though.
      • jacquesm16 hours ago
        &#x27;Normal&#x27; cad software is parametric in an entirely different sense. You don&#x27;t normally build up from entities just like you would in software, which you can then manipulate symbolically.<p>There are cad packages that can do this but unlike OpenSCAD the main interaction there is the 3D window, not the text editor.<p>Though AutoCAD of course had this with AutoLISP since 1986.<p>Interestingly, I&#x27;m not sure which has the steeper learning curve, OpenSCAD or AutoLISP. OpenSCAD is really great once it clicks but most people give up long before then.
        • avmich10 hours ago
          Interesting to read that. I don&#x27;t remember any learning barrier for OpenSCAD, while FreeCAD and Rhino3D took many days before I had to put it down. I guess people differ...
        • jazzyjackson15 hours ago
          Iirc autolisp applies to 2D drawings, so it&#x27;s not a competitor for generating meshes<p>Mathematica however is Lispy enough and has a lot of helpful geometry primatives and can export STL
  • anfractuosity19 hours ago
    It&#x27;s super useful, been using with my 3D printer to print things such as an adapter to connect a Canon EF lens to night vision tube and parts to link motorised linear stages together.<p>Currently I&#x27;m playing with a gear library which is part of BOSL2 (<a href="https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;gears.scad" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;BelfrySCAD&#x2F;BOSL2&#x2F;wiki&#x2F;gears.scad</a>), to make something to rotate a polariser in my microscope.
  • iamwil6 hours ago
    Ah OpenSCAD. I wrote a tutorial a long time ago about the 10 things you need to know to get started.<p><a href="https:&#x2F;&#x2F;cubehero.com&#x2F;2013&#x2F;11&#x2F;19&#x2F;know-only-10-things-to-be-dangerous-in-openscad&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cubehero.com&#x2F;2013&#x2F;11&#x2F;19&#x2F;know-only-10-things-to-be-da...</a>
  • cpeth17 hours ago
    Check out <a href="https:&#x2F;&#x2F;zoo.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;zoo.dev&#x2F;</a><p>I went from OpenSCAD -&gt; cadquery&#x2F;build123d -&gt; Zoo&#x2F;KCL<p>It still is early days, and it needs some more helper functions but it&#x27;s really nice having two-way capabilities (not just code -&gt; model, but also the reverse).<p>Of course having Text-to-model as a first class citizen is also nice.
    • dbuxton17 hours ago
      I have played with this but been underwhelmed. However I do think probably on the right track.<p>I know the ecosystem not-at-all (sum total knowledge of the CAD ecosystem is that my kids got a Bambu printer for Hanukkah) but it feels to me that current LLMs should be able to generate specs for something like <a href="https:&#x2F;&#x2F;partcad.readthedocs.io&#x2F;en&#x2F;latest&#x2F;" rel="nofollow">https:&#x2F;&#x2F;partcad.readthedocs.io&#x2F;en&#x2F;latest&#x2F;</a>, which can then be sliced etc.<p>Curious to know what others think? I come at this from the position of zero interest in developing the fine design skills needed to master but wanting to be able to build and tweak basic functional designs.
    • bob77815 hours ago
      I want to like Zoo but the rendering engine is so buggy currently that it’s not really usable for more than simple shapes. The text-to-CAD feature they highlight is slow and error-prone, so much so that they explicitly use a “prebuilt” version in the tutorial, and each time I tried it, it gave tool errors or took so long I just did it manually.
  • overtone100019 hours ago
    I completely agree! <a href="https:&#x2F;&#x2F;overdesigned.org&#x2F;shhh-dont-move-it-cant-see-us-if-we-dont-move&#x2F;" rel="nofollow">https:&#x2F;&#x2F;overdesigned.org&#x2F;shhh-dont-move-it-cant-see-us-if-we...</a>
  • tylervigen15 hours ago
    I’ve used OpenSCAD for 3D printing random objects for years. It’s the perfect tool for designing super simple geometric objects, because it giant demands that you remember hardly anything about his the interface works. Contrast with Fusion 360 or any other more powerful tool, which are fantastic if you use them daily but a slog of you only boot them up a few times a year.<p>Also with OpenSCAD, you can feed the documentation to your favorite LLM and ask it for a starter design of whatever you are building. (Or you can skip the documentation; it is in the trading data after all.) Maybe in the future that SVG Pelican on a bike test will be a 3D model in OpenSCAD.
    • rcarmo13 hours ago
      Ooh, an LLM that could take requests for custom Gridfinity bins would be a good step towards AGI indeed.
  • Ccecil18 hours ago
    If you are a programmer OpenSCAD is likely for you. It certainly has benefits in things that are repeating patterns (gears and such)...and if your mind is good at visualizing things in &quot;code&quot; things will likely go a lot faster.<p>I personally do better with CAD software such as fusion or freecad since my mind doesn&#x27;t work in the code realm since I have more of a hardware mindset. Translating the picture in my head to code is more difficult than drawing it using the standard CAD set of tools.<p>My opinion on OpenSCAD is that it is a very useful piece of software which many have used to make some very interesting things. If you have a background in code I recommend giving it a go. I largely view it as &quot;the coder&#x27;s CAD&quot;.
    • shmeeed16 hours ago
      I was just about to say the same: OpenSCAD is CAD for programmers. It&#x27;s very different from what&#x27;s generally considered &quot;CAD&quot;.<p>That&#x27;s not necessarily a bad thing; there&#x27;s a clientele for it, especially here on HN. But as a mechanical engineer who&#x27;s used quite a few industry standard CAD systems, I&#x27;m sorry to say I wouldn&#x27;t touch it with a ten foot pole.<p>Funnily, just a few days ago I tried FreeCAD, and found it to be better than I had expected.
      • Ccecil12 hours ago
        I switched from Fusion to Freecad just before the 1.0 update.<p>Freecad 1.0 is a gamechanger IMHO. It so far has suited all my needs as well as being significantly easier to use than the pre 1.0 versions.
      • ThrowawayTestr15 hours ago
        FreeCAD feels like blender before the UI revamp. I can tell it&#x27;s powerful but the UI is opaque to me.
    • cluckindan3 hours ago
      For functional-oriented programmers.<p>There is no explicit iteration, so if you want to do flexible spacing for any reason, like distribute a feature evenly along a dynamic length, you need to use recursion.
  • mcv14 hours ago
    There&#x27;s a tutorial? Maybe I should have started there.<p>I recently started messing around with OpenSCAD too. I found these boxes that are great for storing the tiles for various 18xx railroad boardgames: <a href="https:&#x2F;&#x2F;www.printables.com&#x2F;model&#x2F;287297-parametric-18xx-tile-tray&#x2F;files" rel="nofollow">https:&#x2F;&#x2F;www.printables.com&#x2F;model&#x2F;287297-parametric-18xx-tile...</a><p>Cool thing is that you can easily print them in whichever size you like, and the sizes in the supplied files are rather large, so I tried some smaller sizes, and discovered some details weren&#x27;t actually centered properly, so I dove into the code, tweaking some bits here and there until I got it centered properly.<p>Then my dad asked me to print boxes for a game that had slightly larger tiles, so I needed to tweak the sizes, the thickness, and made everything just a bit more configurable.<p>I&#x27;ve got another idea I haven&#x27;t tried yet: print the shape of the track on the tile on the spot its meant for. That&#x27;s a whole new feature and not merely tweaking an existing one, so maybe it&#x27;s time to finally learn how this format actually works.<p>Although I did see in the code that you create shapes through intersections and substractions with other shapes. And that&#x27;s where I got stuck. Maybe it&#x27;s time to pick it up again. It&#x27;s a fun way of building shapes.
  • dvh16 hours ago
    I rage-quited every other CAD program. Then I found OpenSCAD. Now I&#x27;m looking forward to work in it every time I need to do some 3d modeling (usually new part model for kicad or some other project).
    • moebrowne4 hours ago
      I had the same experience. I think OpenSCAD is ideal for people with a &#x27;developer&#x27; brain.<p>As it happens I wrote about this almost exactly a year ago<p><a href="https:&#x2F;&#x2F;mountainofcode.co.uk&#x2F;3d-modeling-for-developers" rel="nofollow">https:&#x2F;&#x2F;mountainofcode.co.uk&#x2F;3d-modeling-for-developers</a>
  • khufiya18 hours ago
    I&#x27;ve been experimenting with using Claude Code and the Gemini CLI to generate OpenSCAD with the renderer in the loop.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;rahulgarg123&#x2F;openscad-mcp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rahulgarg123&#x2F;openscad-mcp</a><p>It’s still strictly worse than what these models are capable of for general-purpose coding, but for simple tasks where precision isn&#x27;t the bottleneck, it&#x27;s surprisingly decent.The &quot;aha&quot; moment for me was an image-to-object workflow: found a geometric design on the web --&gt; generated OpenSCAD to match the image --&gt; 3D printed it. Going from seeing a JPEG to holding the physical object in a few hours.
  • vjvjvjvjghv6 hours ago
    It’s pretty neat but for my taste the language is too functional. I don’t think a purely functional paradigm works well with CAD parts and the way they are constructed. The language gets in the way. Debugging complex parts is also quite difficult from my experience. But with some better tooling I think it could be absolutely great.
  • arjie16 hours ago
    Oh I had no idea that OpenSCAD was a programmatic toolkit. I recently bought a 3D printer and I don&#x27;t model so much as describe to Claude Code how to write a Python script that will generate the required STL that I then rescale or whatever in Bambu Studio. LLMs are great at code-oriented stuff so I&#x27;ve stayed away from traditional modeling tools because I assumed you&#x27;d have to point and click and so on and I don&#x27;t really want to learn the ins and outs of their interface. I just need the right mesh made.<p>The chatbots kept recommending I try using OpenSCAD but I resisted without even giving it a look. The results I had with just the Python script are quite adequate for the tasks I had. You can just ask the LLM to add a fillet to a vertical pin on a plane or to chamfer some edge and it is pretty good at doing it.<p><a href="https:&#x2F;&#x2F;wiki.roshangeorge.dev&#x2F;w&#x2F;Blog&#x2F;2025-12-01&#x2F;Grounding_Your_Agent" rel="nofollow">https:&#x2F;&#x2F;wiki.roshangeorge.dev&#x2F;w&#x2F;Blog&#x2F;2025-12-01&#x2F;Grounding_Yo...</a> if you want to roughly see the workflow.<p>I&#x27;m going to try using OpenSCAD for things in the future. Does anyone else use exclusively an LLM with OpenSCAD (I used Claude Code and Codex) and if you do what did you do to make it more effective? The Python script wouldn&#x27;t always generate printable meshes so I had to give it a check script to operate on.
    • ThrowawayTestr15 hours ago
      Fusion 360 is free for hobbyists and it&#x27;s not too hard to learn for basic stuff
      • avmich10 hours ago
        Is it online only? I in general prefer locally installed software, without Internet requirements.
        • fainpul3 hours ago
          The software is installed locally (runs on macOS and Windows), but your files are stored on Autodesk&#x27;s servers. You have to sign in to use it. Program startup takes ages. But the features are great.<p>If you don&#x27;t need fancy features, have a look at FreeCAD as well.
      • arjie15 hours ago
        Maybe I should suck it up and just give it a crack. Thank you for the recommendation.
  • JonathanRaines18 hours ago
    Also check out CADQuery and or build123d (python equivalents)
    • alhirzel15 hours ago
      +1 for CADQuery - it lets you easily specify surfaces as the basis for manipulation, and results in much less fragile designs than OpenSCAD.
  • bradfitz19 hours ago
    I find myself using OpenSCAD regularly to 3D print little things for the house. (Most recently: hooks to attach Christmas lights to our roof deck&#x27;s glass walls)<p>And when something gets too trick, ChatGPT is amazing at writing in it. Often it nails the whole design in the first try, like <a href="https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;bradfitz.com&#x2F;post&#x2F;3maelwomyw22n" rel="nofollow">https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;bradfitz.com&#x2F;post&#x2F;3maelwomyw22n</a> to mask off certain Raspberry Pi pins to make reassembly of projects easier later.
  • haberman15 hours ago
    A long time ago I read that CadQuery has a fundamentally more powerful geometry kernel than OpenSCAD, so I dropped any attempt to try OpenSCAD.<p>Years later, I never actually got the hang of CadQuery, and I&#x27;m wondering if it was a mistake to write off OpenSCAD.<p>I am pretty new to CAD, so I don&#x27;t actually know when I would run into OpenSCAD&#x27;s limitations.
    • WillAdams15 hours ago
      The notable limitations for OpenSCAD are:<p>- functional programming model --- some folks find not having traditionally mutable variables limiting<p>- output is as an STL, or DXF using polylines<p>- native objects are spheres, cylinders, cubes, with functions for hull and Minkowski, so filleting and other traditional CAD operations can be difficult
  • yehoshuapw19 hours ago
    worth also looking at cadquery, build123d and similar<p><a href="https:&#x2F;&#x2F;github.com&#x2F;gumyr&#x2F;build123d" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;gumyr&#x2F;build123d</a>
  • Robdel1219 hours ago
    OpenSCAD has become my go to with my 3-D printer for dumb little things. And the best part is LLMs are getting decent &#x2F; pretty good with it!<p>My favorite thing I’ve printed is a little downsize coupler for the cool shirt system I built for my spec miata. It’s realllly silly &amp; small thing, but it saved me!
  • fcpk18 hours ago
    openscad is quite nifty for small geometric projects. unfortunately it lacks some Features that make most bigger cad programs really useful... for example: - the ability to select faces&#x2F;paths from a render, which can be hugely helpful when modifying complex models. - the ability to do constrained sketching in both 2d and 3d - caching at intermediate render levels - nested Projects and joining parts with mechanical constraints. it&#x27;s still pretty nifty but very niche. I personally would dream of having the tools of a tool like fusion 360 or Catia, but in a gilly textual progemmatic way, while keeping the ability to select objects from the rendrr view.
    • coryrc17 hours ago
      It does have caching, but you are otherwise correct. I would also add that it can&#x27;t do arcs; any curve is discretized immediately upon creation.
      • WillAdams17 hours ago
        If you want arcs in a DXF (or G-code), I&#x27;ve been working on that in:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;WillAdams&#x2F;gcodepreview" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;WillAdams&#x2F;gcodepreview</a>
  • rcpt19 hours ago
    I haven&#x27;t tried the latest models but for at least a year LLMs have been mostly able to generate openscad to match my descriptions.<p>It&#x27;s neat that I can tell the computer what I want in words and then have that object come out of the 3D printer
  • jasonthorsness19 hours ago
    OpenSCAD is great! I used it to create a bunch of things to cut on a CNC router over the years. Best achievements were a scale model of Mount Rainier and some one-piece picture frames with text cut into them.
  • Joel_Mckay1 hour ago
    OpenSCAD is great if you follow a subtractive workflow. Define simple stock geometry, and subtract away each feature with slightly wider primitives to avoid zero thickness intersections. This ensures you will not get weird bugs later, and a fairly accurate part for plastic printers.<p>As many correctly pointed out, STL &amp; DXF are not considered professional file-formats anymore by some people. Some fabricators will not respond to quote requests, as without a Step file they are literately self-confessed useless clowns without Onshape&#x2F;Fusion true solids handling the ugly math.<p>It is partially a unofficial standards issue, but customers without Step files may have to look around for fabricators. YMMV =3
  • zihotki17 hours ago
    Mind you, it can&#x27;t export to step file. That makes it impossible to re-use the models in other CADs to make assimblies. Also it&#x27;s tedious to use for 3d printing when you want to include modifier objects with your model. Otherwise it&#x27;s great and good enough for part modeling
  • lorenzohess14 hours ago
    That let() {} expression seems pretty similar to the LISP let()() form: <a href="https:&#x2F;&#x2F;lisp-lang.org&#x2F;learn&#x2F;variables" rel="nofollow">https:&#x2F;&#x2F;lisp-lang.org&#x2F;learn&#x2F;variables</a>
  • timonoko18 hours ago
    I have solved the only problem OpenSCAD ever had and that is<p><pre><code> total lack of interactivity. </code></pre> <a href="https:&#x2F;&#x2F;youtu.be&#x2F;eG5lhLYvihQ?si=ehet5COZhiNrcK9b" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;eG5lhLYvihQ?si=ehet5COZhiNrcK9b</a>
    • timonoko18 hours ago
      Now they say newest version of OpenSCAD has this functionality builtin. It took only a year.
      • xixixao17 hours ago
        This is important and should be a given. But the more interesting challenge is to highlight the object you’re editing (where your cursor is). It’s not clear even how to exactly visualize it (it could be inside subtract of union of subtract etc).
        • timonoko17 hours ago
          It moves or grows or whatever. What other indication you want?<p>I have not yet invented any other improvement.<p>I tried decimal points, but that was stupid, you just add &quot;&#x2F;100&quot; if you want micrometer accuracy.
  • ifndbdb18 hours ago
    The OpenSCAD kernel is significantly overrated in my opinion. Many operations take ages to compute or are not possible at all<p>Ok if you want to generate a couple of cubes, but if you want anything advanced the kernel quickly falls apart
    • coryrc17 hours ago
      It&#x27;s switched to a new backend <a href="https:&#x2F;&#x2F;github.com&#x2F;elalish&#x2F;manifold" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elalish&#x2F;manifold</a><p>Which you can also use directly instead by writing C++. Trivial operations are two orders of magnitude faster and complex ones every faster.
    • timonoko17 hours ago
      The openscad-nightly is lightning-fast, but makes occasional occlusion errors.<p>Assuming you make all the necessary adjustements in preferences.
  • VerifiedReports6 hours ago
    Anything that helps people shun Autodesk&#x27;s despicable, anti-customer and anti-industry practices is laudable.
  • bilsbie17 hours ago
    FYI I’ve had really surprising success using AI to generate openscad code.<p>And even if it’s not perfect it saves a lot of time looking up the documentation and generally gets the relationships between objects right.
    • WillAdams17 hours ago
      There is at least one blind designer who has been using this approach to surprisingly good effect:<p><a href="https:&#x2F;&#x2F;makerworld.com&#x2F;en&#x2F;models&#x2F;2040939-accessible-christmas-calendar-made-by-blind-person#profileId-2201912" rel="nofollow">https:&#x2F;&#x2F;makerworld.com&#x2F;en&#x2F;models&#x2F;2040939-accessible-christma...</a>
    • cmrdporcupine17 hours ago
      I came here to ask how good LLMs are at working with this. I wonder if a person could take it a step further with some MCP tools that the agent could use to verify and work with the design.
  • gunalx15 hours ago
    Once had a complex model that would fully crash and lockup fusion, but once redone in openscad rendered after a little while. (badly designed + slow pc at tye time)
  • rcarmo13 hours ago
    I’ve been using it for almost a decade and I still miss proper fillets and chamfers (and yes, I know the usual tricks).
  • convolvatron19 hours ago
    I love the model, it&#x27;s nice to be able to generate things parametrically instead of grabbing knots with the mouse. so I use scad pretty often.<p>but it has real problems - the language is weird and unfortunate. not anything super fatal, just the obvious product of evolution that would be more cohesive if it were architected wholesale<p><pre><code> epsilons are really unfortunate. you have to expect that after getting what you want in the whole, you&#x27;re going to have to scan over the whole thing and look for cracks or collision where there shouldn&#x27;t be performance is quite sad. here you are happy going back and forth between the view and text windows, but as you go on, it starts taking .. minutes.. to update the view once you have a reasonably complicated geometry high-level operators would also be nice. I made the mistake of using a thread library once, not only did that make my model unrenderable, there was so much noise in the model and the manufacturing process I had to make 3 expensive test prints in sintered nylon to get the fit right. (I&#x27;m thinking an annotation on a cylinder that says &#x27;standard 1mm thread&#x27;)</code></pre>
    • WillAdams18 hours ago
      If you&#x27;re inclined to use Python there is:<p><a href="https:&#x2F;&#x2F;pythonscad.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pythonscad.org&#x2F;</a>
    • MattRix19 hours ago
      It actually renders things incredibly fast if you get the nightly version and set the backend to Manifold. It is probably 100x faster (!!). In fact it renders so fast that I put a render() command at the top of my hierarchy so that everything just renders all the time, it’s faster and more performant. I make incredibly complex models with it too, with hundreds of holes, complex svg files with text in them, etc.
      • coryrc17 hours ago
        Why not just press F6 instead?
        • MattRix7 hours ago
          It does it every time I save the file instead, basically the regular openscad workflow of update-on-save, but instead of doing a preview it’s just full rendering all the time.
  • ai-christianson19 hours ago
    Is OpenSCAD still being maintained?
    • floating-io19 hours ago
      Yes. The &quot;official release&quot; is just so old as to be useless at this point. They should either update it or take it down and point people at github or something, IMO.<p>I use the latest version all the time. The newer renderer (&quot;manifold&quot;, IIRC) is <i>much</i> faster, and there are newer facilities that make it possible to build 3MF files containing multiple objects for multi-color printing, though that takes a bit of thought to do correctly.
      • MattRix19 hours ago
        Yes everything this person said is correct. The Manifold backend is no joke, probably 100x faster.<p>To do multi-color printing it’s pretty easy now, just turn on the poorly named feature in preferences called “lazy-unions”. This will make it so that each top level object in your file gets exported as a separate subobject in the 3mf file.
    • crazysim19 hours ago
      Apparently the nightlies are the one to use. At least, they build it for Apple Silicon in those.
    • c0nsumer19 hours ago
      The last release was 2021.01 but the GitHub repo seems to be recently updated. So I&#x27;d say... Maybe?<p>That said, there are often times software gets so stable that not having a new release for years is fine. Maybe this is one of them?<p>(I&#x27;m very new to OpenSCAD so I haven&#x27;t run into bugs yet... But maybe it&#x27;s pretty solid?)
    • MattRix19 hours ago
      Yes, but the main downloads on the site are very old for some reason. Just get the nightly version instead, and then in Preferences -&gt; Advanced -&gt; Backend change it to “Manifold”. It will make your models “render” 10x faster (or more!).
      • bdcravens19 hours ago
        I believe that&#x27;s the default now (at least in the latest MacOS nightly)
        • coryrc17 hours ago
          It is for all nightly builds, starting in the last few months.
    • aeonik19 hours ago
      Yes. <a href="https:&#x2F;&#x2F;github.com&#x2F;openscad&#x2F;openscad" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;openscad&#x2F;openscad</a>
      • bdcravens19 hours ago
        It&#x27;s worth noting they haven&#x27;t had a new &quot;release&quot; in 4 1&#x2F;2 years, so you&#x27;ll have to build it yourself or download a development snapshot<p><a href="https:&#x2F;&#x2F;openscad.org&#x2F;downloads.html#snapshots" rel="nofollow">https:&#x2F;&#x2F;openscad.org&#x2F;downloads.html#snapshots</a>
        • aeonik1 hour ago
          I totally forgot about this.<p>I build from git using the AUR.
      • starkparker19 hours ago
        More usefully, <a href="https:&#x2F;&#x2F;github.com&#x2F;openscad&#x2F;openscad&#x2F;issues&#x2F;3640" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;openscad&#x2F;openscad&#x2F;issues&#x2F;3640</a>
  • seamossfet18 hours ago
    How does this compare to something like Zoo?
  • constantcrying19 hours ago
    OpenSCAD is very cool, but completely unusable once you understand how great state of the art CAD Software like Fusion or Onshape is.<p>The big distinction is that those work <i>implicitly</i>, while OpenSCAD requires you to be implicit.
    • culi18 hours ago
      I&#x27;m a programmer. I once had an idea stuck in my head for a 3d model that I just needed to get down somewhere. I tried learning the basics of AutoCAD but after 2 days of tutorials I still felt overwhelmed.<p>I looked into alternatives and learned about OpenSCAD. The immediate visual feedback makes picking up the language a breeze. Within an hour of downloading I familiarized myself with the language and had manifested my idea into a 3d model<p>I think that&#x27;s a perfect example of a use-case where OpenSCAD shines. It&#x27;s extremely easy to pick up if you have programming experience and it might even be a good thing to learn <i>before</i> moving onto more professional CAD software. From a teaching perspective, being able to have almost immediately-useful output is priceless
      • WillAdams17 hours ago
        The BlockSCAD folks are hoeing that row quite effectively to my mind:<p><a href="https:&#x2F;&#x2F;www.blockscad3d.com&#x2F;editor&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.blockscad3d.com&#x2F;editor&#x2F;</a><p>I just wish that they&#x27;d add the balance of the language&#x2F;fix some bugs.
      • constantcrying15 hours ago
        I think that modern CAD software, like Onshape or Fusion 360 is quite easy to learn. I have no doubt that AutoCAD is difficult to grasp, but it is not a good representative of what is possible.<p>&gt;It&#x27;s extremely easy to pick up if you have programming experience and it might even be a good thing to learn before moving onto more professional CAD software.<p>No, it definitely is not. OpenSCAD makes you think exactly the wrong way about CAD, because it forces you to reason explicitly about your model, when that is something which you need to let the CAD Software do for you. Modern Parametric CAD works by the user defining constraints, which the Software uses to derive the shape of the model, this is not something which conceptually exists in OpenSCAD.<p>&gt;From a teaching perspective, being able to have almost immediately-useful output is priceless<p>Which is something which modern CAD does just as well.
        • kiba1 hour ago
          I let the library do the heavy lifting(BOLS2) these days. I want to contribute to it but hadn&#x27;t mastered the many features of the library just yet.<p>Some of the features I used:<p>* Attachment &amp; align. I can attach things to faces and I can align things to edges as needed.I wasn&#x27;t super clear on how it work in the class, but I found that doing a simple exercise of aligning objects around the face of a cube increase my knowledge how it all work and my confidence.<p>* Chamfer. I am aware of some sort of fillet feature or rounding features but I mostly stick to chamfering my design for now.<p>* Teardrop shape. Mostly because I need it due to the constraint in FDM 3D printing.<p>* Some simple shorthand like right, left, up, down for when I don&#x27;t want to use translate([x,y,z]).<p>* Constants and directions such as FRONT, BACK, LEFT, RIGHT, and so on, which can be applied to basic shapes.<p>* Diff. It works differently than openscad&#x27;s standard difference and as far as I can tell very powerful if you understand how it goes together. I have difficulty in the past in figuring out how to use it, but once it does work, it&#x27;s very cool. I planned to do an exercise so that I can better understand how it all works.<p>BOLS2 as far as I can tell is a very deep library so there&#x27;s lot to learn. I would love to start contributing to it.<p>Anyway, a lot of OpenSCAD&#x27;s flaws could be attributed to a lack of library development. I handrolled my own library to use in different projects before I realized that BOLS2 did everything that I could do but better.
    • WillAdams18 hours ago
      The thing is, I&#x27;ve crashed-and-burned every time I&#x27;ve tried to do traditional 3D CAD --- the closest I&#x27;ve come to success was making it all the way through the tutorial for Dune 3D:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=37979758">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=37979758</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=40228068">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=40228068</a><p>OpenSCAD &quot;just works&quot;, even on quite limited hardware, and if one has trouble modeling something, well, arriving at a solution is just a matter of learning the appropriate mathematics.
      • kiba13 hours ago
        The way I learned CAD is the same way I approach programming projects. I tackle simple, bite size projects, which then increase in complexity until I have the skills necessary to tackle big complicated projects.<p>I found that standard CAD to be no simpler than OpenSCAD. Really, the biggest disadvantages that OpenSCAD have is usability and a library which is fixed by using BOLS2.<p>BOLS2 has the same problem as standard CAD, it is overwhelmingly big. In some cases, I didn&#x27;t know features were already in BOLS2 so I don&#x27;t have to reinvent the wheel writing my own inferior library.<p>So, how to tackle it? Same thing as any learning projects. I just tackle it in bite size chunk.
      • constantcrying15 hours ago
        To be honest, I found Fusion 360 and Onshape very intuitive to learn.<p>&gt;and if one has trouble modeling something, well, arriving at a solution is just a matter of learning the appropriate mathematics.<p>Which is the terrible thing about OpenSCAD. YOU need to derive the equations. In a modern CAD program you define the constraints on the object and the equations are derived for you.
    • d_silin19 hours ago
      excplicitely, you mean?
  • exasperaited15 hours ago
    Neat-ish.<p>I don&#x27;t really see why that code is better, more logical, more readable or more robust than the equivalent quite trivial parametrics in more or less any GUI CAD program, and I think the geek discourse is really harmed by people who don&#x27;t understand the value of the things that OpenSCAD can&#x27;t ever offer.
    • avmich10 hours ago
      I wonder what kind of things OpenSCAD can&#x27;t ever offer... It&#x27;s pretty automatable.
  • ur-whale10 hours ago
    OpenSCAD is kinda of neat, especially if you pair it with something like codex to build objects.<p>And then, you discover that those darn LLMs have <i>absolutely</i> no spatial intuition. None.<p>It is seriously frustrating: one the one hand you can just feel the raw potential of vibe coding complex geometries, and on the other, when you do, you keep seeing the agent making mistakes a 5 year old playing lego would never make.<p>Absolutely infuriating.
  • ur-whale9 hours ago
    OpenSCAD is great, and I use it all the time.Especially these days if you combine it with an LLM agent like codex and start vibe coding objects (see my other post on this).<p>However, there are a number of limitations that are truly and deeply frustrating.<p>1. The language is downright weird. Don&#x27;t get me wrong, it&#x27;s a very nice little exercise in implementing a functional-tasting scripting language. Someone obviously wanted to scratch a functional DSL design itch and he did, but the result is unfortunately extremely limiting. Creating a function that does not return geometry is barely possible (only bloody lambdas IIRC). He should have picked python instead (and yes, I know about SolidPython2)<p>2. From my POV: the main headache with OpenSCAD is there is no way to partially evaluate an object and use the result of that partial evaluation in the rest of the construction. For example, if you try to take two complex assemblies and place them tangent to one another ... very good luck to you sir, I pray and hope the 3D math is <i>really</i> strong with you.<p>Whereas: if you had a simple rayIntersect(csg_tree, line_in_3d_spce) that would return the first intersection and two normals ... something you can reuse in subsequent transforms and construction, man would life be simpler.<p>These days, with LLMs you can sort of build a scaffolding to work around this by asking the agent to break down the assembly in multiple stages and use external libraries to do the partial eval for you, but ... ugh ... what a mess.<p>3. Speed. The moment your CSG assembly gets complex (e.g. uses a ton of morpho ... hull, minkowski, etc...), OpenSCAD crawls to a halt.<p>4. NO FILLETS. The age-old, standard methodology of building things CSG style with cubes, spheres, cylinders, etc ... and then once the object is finished adding the rounding ... simply not possible with OpenSCAD. Adding fillets after the fact once you&#x27;ve built a complex CSG tree ... nightmare with OpenSCAD.<p>So, YMMV, but caveat emptor, if you get serious with the toole, you&#x27;re bound to hit some very hard walls.