aeonik 2 days ago

Fyi the latest builds of OpenSCAD have a new fast-csg library.

My compiling never takes more then a minute, usually it's less than a second.

Waiting over an hour to compile a CAD drawing seems untenable to me.

https://ochafik.com/jekyll/update/2022/02/09/openscad-fast-c...

  • naggie a day ago

    Since then there's manifold. It's even faster.

    To be clear, it was an hour years ago, now it's 1m40s. This includes all post processing and PNG rendering too.

    • mmcwilliams a day ago

      Yes, manifold has been the way to go. I still get geometric artifacts with fast-csg and it doesn't nearly have the same impact on performance. Took a day-long compilation down to 10m for me just adding the `--enable manifold` flag.

Archit3ch 2 days ago

> As the design was fully parametric, I could change a single variable to move to a floorstanding design.

How far are we in 2025 from defining a Differentiable design, setting a target (e.g. maximally flat frequency response for a certain speaker placement in a certain room) and solving this automatically?

  • heisenzombie 20 hours ago

    If you’ve got some money,

    https://www.comsol.com/blogs/6-examples-of-simulation-driven...

    Those examples wouldn’t be differentiable in the sense of automatic differentiation. “Just” parametric CAD + FEM/BEM + optimizer.

    Though differentiable FEM has kind of been done for a while under the name “adjoint method” for topology/shape optimization. It’s not super common outside of academia though.

    Personally, I’m keeping an eye out for projects like https://github.com/deepmodeling/jax-fem to make some waves in that space.

  • neRok a day ago

    A basic speaker can't do a lot to improve "room acoustics" [1], particularly below the Schroeder frequency where room modes greatly affect the bass response. From my experience, it's the bass that needs fixing in room, because even a "perfect speaker" will get boomy/muddy at some frequencies (ie. reflections overlapping constructively), and thin/null at others (ie. reflections overlapping destructively). And if you aren't going to worry about "fixing the room", then there are already companies/products like Kali Audio IN-5 speakers [2] that have squeezed in some good performance and tech (eg. active DSP with coaxial driver) in to an affordable package.

    There are ways to improve the bass situation, and one is by implementing "directional bass", aka a Cardioid array. This could be achieved with multiple individual speakers (add-on/upgrade existing system), or could be integrated in to 1 "speaker". Examples of the latter have been around for a few years - see Dutch & Dutch 8c or Kii Three. They are relatively expensive (which you could consider an early adopter tax), but affordable competition is starting to mature with speakers such as Mesanovic CDM65 [3].

    There is another way to improve things too, and that is via "Active Room Treatment" [4] as Dirac calls it. Basically it uses excess capability in various speakers to "clean up" the audio of other speakers in the system by outputting "cancellation waves" (to cancel the problems). The results appear amazing, but they are taking their sweet time getting it released on to affordable equipment.

    There's also "spatial audio" like Dolby Atmos that should/could work around room problems in a similar way to Dirac ART. So good speakers (like already exist) + ART + Atmos + AI "upscaled" 2 channel source music could be the final frontier? But that's just for "mechanical" sound reproduction. Maybe in the future I can just transmit the song straight in to my brain, bypassing my ears and the need for speakers entirely?!

    [1] https://en.wikipedia.org/wiki/Room_acoustics [2] https://www.kaliaudio.com/independence [3] https://www.audiosciencereview.com/forum/index.php?threads/m... [4] https://www.dirac.com/live/dirac-live-active-room-treatment/

BrandoElFollito a day ago

I am an (amateur) developer so when I needed to create some simple 3D objects to print them afterward OpenSCAD looked like a dream come true ("object as code" :)).

I tried three times (over two years) to use it but it was absurdly difficult to build a piece, with something that looked like "callbacks from hell" in JS (boxed in boxes in boxes of code. I had to keep track of the position all the time and there are no constraints.

Compared to that I tried Onshape (the free version which is almost the full one but all models are public) and it took me an afternoon to create my pieces. It was really simple, on a generic laptop without any power (a Lenovo P14s)

  • gunalx a day ago

    You should have a look at CadQuery It is a pyhton library witch uses opencascade. 3d models as code, pyhton and since it is opencascade you get relative and feature based positioning.

  • lmpdev 12 hours ago

    If you like the idea of object as code, another rabbit hole worth looking at is Rhino3D’s Grasshopper

    Visual programming language but can also use straight Python

    Excellent environment for playing

ukd1 2 days ago

Showing OpenSCAD without showing any code, or even really talking about the code is a real shame - there are some cool ideas in here, but none are shown (e.g. "I even made an algorithm to calculate the screw positions evenly").

  • naggie 2 days ago

    Good point. I'll add some code snippets when I get a chance

  • bdcravens 2 days ago

    Yes, the only reason I ever use OpenSCAD over Fusion 360 is because my brain works better with code. I'd like to see a Github repo.

Klaster_1 a day ago

I recently build a Hexibase subwoofer and a lot of stuff you described was along the same lines. Even better, I have an UMIK-1 on order and the calibration parts will come useful too. Didn't know about CamillaDSP, gotta check it out if I don't like Equalizer APO. Thank you for posting this!

ge96 2 days ago

Tangent

I feel like such a noob still using SketchUp but it works, Fusion360 is on my list to learn at some point

There are some great tools like GLB export (Khronos) for ThreeJS and STL mesh check for 3D printing.

  • JKCalhoun a day ago

    I noped out of Fusion360 due to the intrusive (and dark-pattern) onboarding. Having to create an account is going to be a deal-killer for me for what should be standalone software. It feels like they may well pull the rug out from under the community at some point.

    I never could "get" SketchUp. (Didn't they also kind of become more of a walled-garden after Google or whoever sold them off?)

    Went with FreeCAD instead. I'm pretty sure it is grossly inferior to Fusion (the Mac version crashes on me periodically) but is free as in Blender. It has worked for the simple things I have been sending to the 3D printer.

    • linsomniac 6 hours ago

      I recently switched from years of using TinkerCAD, and really wanted to switch to FreeCAD, but after watching hours of video tutorial of FreeCAD compared to the same for Fusion, it seemed Fusion was just so much more optimized for productivity.

  • franklovecchio a day ago

    Don't feel like a noob, SketchUp's interface and controls are AMAZING (or were in 2016, which is where I am stuck because I do not want to "upgrade"). I have tried many modeling tools over the years, but always come back to using SketchUp for moderately complex designs. I haven't seen a CAD tool that does exactly what I want yet, which is to be able to define geometry either via a GUI or code (e.g. build123d), but then to easily go back and forth between the two, say adjusting some geometry output manually with my mouse by dragging it, and having the code update as well (which I acknowledge is difficult).

  • jszymborski a day ago

    If you like those, take a look at OnShape. Completely free and browser based. I had a great time designing some wainscotting with it.

    • ge96 a day ago

      yeah that looks good, trying to avoid a multi-thousand dollar price tag

ajross 2 days ago

Standard comment in these threads that, while OpenSCAD is a ton of fun and absolutely a breath of fresh air for code geeks wanting to apply their skills to the 3D world without having to hand-draft an object in scary GUI software...

It's actually really limited, based on a needlessly simplified data model and using a kludged up DSL syntax instead of a proper software development environment.

Look at CadQuery and build123d, both of which are python packages build on top of OpenCASCADE[1]. They have wildly different syntax[2], but very similar capabilities. You can do the same CSG work in them that you do in OpenSCAD with similar complexity, but have access to a far more expressive underlying toolkit and a real programming language with which to manage your own parametrization needs.

[1] A CAD-focused boundary representation toolkit, which you can actually use directly if you want but which is aimed more at "build a CAD tool" use cases than "design a speaker cabinet".

[2] Truthfully I don't love either, but CadQuery is at least explicit in most cases about what is happening where build123d relies on some dynamic scoping tricks that irk me. Seems like most of the community disagrees with me though.

  • Cargo4286 a day ago

    Have you taken a look at the build123d "algebra API" yet? It is intended to be near zero magic without any of the with blocks from the "builder API". There are algebra and builder API versions of all of the introductory examples on this page https://build123d.readthedocs.io/en/latest/introductory_exam...

    • ajross 6 hours ago

      Algebra has its own magic though, c.f. the "vectorization" stuff which implements an IMHO really confusing syntax as a kludge to get around having to implement a lazy evaluator. And the placement operator syntax is... yikes. But yes, if you have a CSG problem you're porting naturally from a tool like OpenSCAD you should be using Algebra and not Builder, 100%.

      Really it's just an odd area, without solid conventions, and so any API in the 3D space is going to look weird in some places. But IMHO build123d leans way too far out on the "clever" end of the spectrum for my taste. OpenSCAD is limited, but has the advantage of having stuck to a dry, dumb, obvious API.

causi a day ago

This guy might be good at designing but he is really bad at 3D-printing. All of that post-processing would've been completely unnecessary if he'd made better choices about material and print orientation.