← Back to context

Comment by nickpinkston

8 days ago

I'm always trying to figure out why OpenSCAD has such a following when, at least to my manufacturer-brain says "whoa it's inconvenient to use to make real stuff" and "there are more expressive 3D modeling DSLs".

Is this like hobby only like writing an app in brainfuck? Or am I missing something?

I think it’s the super low barrier to entry. When I first started 3D printing, I wanted to make basic shapes with decent dimensional accuracy. OpenSCAD lets you install a single app and start doing that immediately. It was easier for me to quickly learn the OpenSCAD syntax than it was to spin up on FreeCAD or Onshape.

  • I started with Tinkercad, which is online and WYSIWYG. Nice for newcomers, but as a programmer I felt that I needed something that could be more automated.

    If I was dealing with diagonals, I needed to calculate sines and cosines outside and then place the values. If needed several objects with the same shape I needed copy and paste them, and if the base shape was wrong, I needed to delete them all, fix, and then copy and paste again. And if a value of dimension, position or angle depended on another it was more and more calculations. Soon it became unsustainable for me.

    OpenSCAD saved me. Being able to create modules, using parametric values, declaring functions and so on made my life really easier. At the first it looked like it would be boring to do everything by code, but once you get used to it is actually faster than using a WYSIWYG tool.

There’s not many free as in open source alternatives out there. There’s traditional CAD such as Fusion 360 which gives you a limited amount of designs and is “free” for non-commercial use.

So then under the open source, own your designs umbrella you have stuff like FreeCAD which is similar to traditional CAD which means you have a learning curve.

OpenSCAD is programmatic which suits someone with a software engineering background. Plus being free in the sense of owning your designs.

  • > OpenSCAD is programmatic which suits someone with a software engineering background

    Perfect. I already knew how to code, so it was just a question of minutes to learn the basic stuff of the language and then I could just do what I wanted.

    Fusion360, AutoCAD and organic modeling tools like Blender you need to learn several concepts, keybindings, navigating through menus, panels, tabs, workspaces, etc, etc. So many things _before_ doing something. In OpenSCAD you can even code in the text editor you're already familiar and then use it only to render the object (which can also be done through CLI!)

Well, I personally just can't do 3D modelling any other way, if I had to use graphical tools to create it, it would be pain. On the other hand, writing code is a second nature for me, so even if it's a little inconvenient, it's still much better than anything else (for me).

I only used it once for modeling some procedural decorations in the shape of flowers. I did it on a long train ride and managed to both learn the language and do the models, so there's something to be said about the simplicity. If I had to do anything more complex or less artistic I would use other tools. Something python-based would be ideal.

  • OpenSCAD is not a programming language with flow of execution, but static statement of properties of the desired object. Only language better for this might be Prolog.

    Once you totally comprehend this, all the "functional" shit of OpenSCAD makes total sense.

    Python does not have that kind static description properties, and those OpenSCAD-Python translators suck very much, imho.

> there are more expressive 3D modeling DSLs

Can you name them? I'm not being sarcastic, I just want more options :-) (if they are free and open source, just like OpenSCAD)