OpenSCAD: The Programmer's Solid 3D CAD Modeller
OpenSCAD is a free, programming-based 3D CAD software available on Linux, Windows, and Mac OS X, offering tutorials, libraries, and community support for creating and sharing designs.
Read original articleOpenSCAD is a free software application designed for creating solid 3D CAD objects, compatible with Linux/UNIX, MS Windows, and Mac OS X. It offers a programming-based approach to 3D modeling, allowing users to define objects through code. The platform provides various resources, including tutorials, libraries of ready-made building blocks, and a collection of books to assist users in learning and utilizing the software effectively. OpenSCAD also has an active community, with chat options available on IRC and social media platforms like Mastodon. Users can share customizable designs through 3dcustomizer.net and find existing designs on sites like Printables and Thingiverse.
- OpenSCAD is a free, programmer-oriented 3D CAD modeling software.
- It is available on multiple operating systems, including Linux, Windows, and Mac OS X.
- The software supports a community-driven approach with resources like tutorials and libraries.
- Users can share and find designs on various online platforms.
- OpenSCAD emphasizes a coding-based method for creating 3D objects.
Related
OSRD: Open-Source Railway Designer
The OSRD is an open-source web app for railway planning, capacity analysis, and timetabling. It supports infrastructure design, conflict detection, and automatic train addition. The project promotes open-source development and interoperability.
Open source is neither a community nor a democracy
Open source software thrives on meritocracy, not democracy. Core contributors drive projects forward, emphasizing collaboration and freedom under the license. Users' influence aligns with their contributions, fostering a gift exchange culture.
Scorecard: Assess Open Source Project Security
The OpenSSF Scorecard assesses open source projects for security risks using automated checks. It offers scores, risk levels, and remediation prompts to strengthen development practices, aiming to improve open source software security.
Open Simulation Platform (OSP) open-source co-simulation of maritime equipment
The Open Simulation Platform enhances co-simulation in the maritime industry, addressing system complexity and integration challenges while promoting model reuse, protecting intellectual property, and fostering community collaboration through open-source components.
WebGL visual programming editor cables.gl is now open source
Cables has launched a free standalone version (0.2.0) for creating interactive and 3D content, featuring a user-friendly interface, offline capabilities, and support for various platforms and file formats.
- Many users appreciate OpenSCAD for its programming-based approach, which allows for parametric design and automation.
- Critics highlight its limitations, such as lack of advanced features found in traditional CAD software, like constraint systems and multi-threading.
- Users express a desire for improvements and innovations in code-CAD tools, suggesting alternatives like CadQuery and Build123D.
- There is a strong sense of community support, with users sharing resources, libraries, and personal experiences.
- Some users have transitioned to or are exploring other CAD systems due to frustrations with OpenSCAD's rendering speed and complexity in handling certain designs.
As impressive as NopSCADlib and BOSL2 are (and OMG they are, when you consider what they have to work with!), OpenSCAD is a one-way, declarative CSG environment that essentially only outputs mesh formats. It's really not that much better than working with three-dimensional pixels. You won't really be able to analyse, iterate over or measure your models, easily build on faces, do easy chamfers or fillets, export STEP files, make use of constraint-based designs, model assemblies, or so many other things that "CAD" means in the 21st century. All the tools that help you do this on OpenSCAD are layers and layers of task-specific hacks and clever bodges.
I totally get wanting to make models with version-controlled text files instead of GUI CAD (which can be a sort of weird battle to learn for a programmer), and I get wanting to avoid FreeCAD. I just don't really get wanting to limit oneself to such a limited concept of a 3D "model"!
The three alternative systems I mention are all based around bindings to (or in Replicad's case, cross-compilation of) OpenCASCADE, which is a bRep CAD kernel capable of much richer interactions. It is not without its faults, but arguably code-CAD spares you from some of the inscrutability that trips up FreeCAD's interactive model.
> On 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.
This goes against the whole point of doing parametric design and should be logged as a bug. If the CAD software is unsure whether object spanning [0 to 1] and object spanning [1 to 2] are physically fused, that should be a bug. Mathematically they are fused.
I don't think you need a custom language to declare CAD, typescript/python have heavily invested in type systems so I hope the world moves more toward using existing languages.
The biggest limitation with code-CAD today is the lack of a constraint system (e.g. a clean way to say "these edges are 3mm apart") without X/Y coordinates everywhere. We're slowly building higher-level components that allow you to specify constraints so that you can write CAD in a way that more closely mimics the design intent, rather than a bunch of calculations.
OpenSCAD started it all so we're very grateful, but it's also time for some innovation to bring the language closer to design intent
OpenSCAD has amazing community though and part libraries celebrates human ingenuity despite tool restrictions.
[1]: https://build123d.readthedocs.io/en/latest/_images/ttt-23-t-...
It has support for bidirectional modeling (ex: get the height and width of an object and use it later) and multi part workflows to design more complex works.
He is actively looking for gig-work or potentially something more significant, so if anyone on HN is looking to get something 3D-cad related or even some advanced training, please reach out to me (email is on my profile). I will happily make an intro.
OpenSCAD is an ideal tool for adding flexible 3D wizardry to a website or app programatically.
its under the "features" preference, doesn't work for everything yet, but is worth investigating if you haven't.
I still use OpenSCAD, but I’m diving into the OCCT ecosystem. It has a steeper learning curve, but seems to be significantly more robust.
If you're basically sticking simple shapes together or cutting simple shapes out of other shapes, it's fine enough.
Last January I offered a course on OpenSCAD in my university, perhaps the first one in Brazil or even in Portuguese. The lectures are available here (but it's in Portuguese, perhaps someday I'll translate it to English...): https://lucasoshiro.github.io/posts-en/2024-03-24-openscad/
The commercial CAD systems all have APIs to do the same kind of stuff, but they also have sophisticated UIs on top to make them easier to use visually. NX even lets the user record UI interactions as a function to make creating initial code faster.
In fact, there's a whole niche of CAD programming.
Also written to be a follow along example to help understand how to think about writing OpenSCAD programs.
Usually, I'll hand draw what I need, then work out the equations, then build the models. No need to figure out what certain icons mean or to learn accelerator commands. I've built some fairly intricate designs with OpenSCAD. CSG is quite intuitive.
which finally made it possible for me to finally have the ability to write out G-code (allowing one to use OpenSCAD as a CAM tool) and DXFs (allowing one to have fully control and to create not-closed/unconnected geometry, and to write out arcs rather than only polylines):
https://github.com/WillAdams/gcodepreview
For the current state see the latest preview of the current unit test:
https://forum.makerforums.info/uploads/default/original/3X/1...
A few examples of simple fillets in SOLIDWORKS: https://www.youtube.com/watch?v=f78gblpqxHc
Higher level continuity: https://www.youtube.com/watch?v=h5QN40d02cw
A good example of nontrivial surfacing: https://www.youtube.com/watch?v=cujS1icUTtg (the entire channel is a goldmine of surfacing tutorials)
Not every part needs G3 smooth curves, but being able use those tools when appropriate is a superpower.
- Free, unlike other tools such as Fusion or SolidWorks - Open Source, unlike other tools such as Tinkercad or OnShape - 100% based on a programming language: compared to others is like comparing plain HTML with HTML + JS - Parameterizable (as a consequence of being based on a programming language), makes it a lot easier to adjust the model in a second iteration - Lightweight (it runs ok in my 12 year old desktop) - It can be used in CLI to generate STL files, makes it easier to automate the model generation
But of course it has a lot of cons: - It isn't multithreaded, so, it doesn't matter if you have an 32-core CPU or a single core. It also doesn't matter if you have a GPU. So, there's no "best machine" for running it - You can't compute the size of a shape, unless you know a formula for it. It's specially bad if you are dealing with texts, as you can't predict their shapes unless you're using a monospace font - It has some bugs in visualization - Even though it's on active development (you can see that in their Git), its latest release was in 2021
Once we got past the few introductory assignments we were allowed to chose what we wanted and at that point no one in the class was still using it.
Its great for simple things but you'll find it tedious for anything complex, unless of course you like the challenge
A better system would enable true constraint-based parametric design, but I think doing so would involve an order of magnitude more complexity in the implementation, and quite probably infeasable compute times.
I've been noticing a general increase in low effort link shares of, what I consider to be, well known projects. These shared links contain no news or anything that appears to be related to updates or recent development, just links to home pages of relatively popular projects.
I didn't have problems, uh, thinking in parametrics, but lordy was the rendering slow. I might try it again.
Related
OSRD: Open-Source Railway Designer
The OSRD is an open-source web app for railway planning, capacity analysis, and timetabling. It supports infrastructure design, conflict detection, and automatic train addition. The project promotes open-source development and interoperability.
Open source is neither a community nor a democracy
Open source software thrives on meritocracy, not democracy. Core contributors drive projects forward, emphasizing collaboration and freedom under the license. Users' influence aligns with their contributions, fostering a gift exchange culture.
Scorecard: Assess Open Source Project Security
The OpenSSF Scorecard assesses open source projects for security risks using automated checks. It offers scores, risk levels, and remediation prompts to strengthen development practices, aiming to improve open source software security.
Open Simulation Platform (OSP) open-source co-simulation of maritime equipment
The Open Simulation Platform enhances co-simulation in the maritime industry, addressing system complexity and integration challenges while promoting model reuse, protecting intellectual property, and fostering community collaboration through open-source components.
WebGL visual programming editor cables.gl is now open source
Cables has launched a free standalone version (0.2.0) for creating interactive and 3D content, featuring a user-friendly interface, offline capabilities, and support for various platforms and file formats.