You should remove any reference to LEGO from the website and the examples. LEGO is extremely protective of its brand (similar to / worse than
Nintendo) and does not want third parties using its name, because it is concerned that LEGO could become a generic term which could put its trademark at risk.
There is zero reason for you to have a cookie banner taking up a third of the page.
At this point, everyone making websites should be well aware that there is no requirement for cookie banners and that implementing such is active disrespect towards your users. Your cookie banner does not tell me you care about my privacy, it tells me you're trying to collect some type of data about me and want to annoy me into letting you sell that data.
A cookie banner is exactly as much a red flag as an obviously AI generated hero image at the top of your page. Disrespectful.
I've been using zoo and its KCL language with some success for boundary-representation CAD writing. If I understood correctly, µcad serves the same purpose. Comparing code samples between both of them, I personally enjoy KCL's pipelined approach more.
My main beef with zoo is the fact that they are promoting vendor lock-in by forcing users to use their cloud-hosted geometry kernel with absolutely no local alternative. It's not clear to me how µcad solves this problem.
Hm, at least build123d (which I had never heard of, thanks!) can export STEP, which I believe is becoming a necessity if one wants to assemble real-world models with FreeCAD (and nicely also slicers are picking up support to it). I'm on the edge though if I'd really like a proper DSL instead of building it on top of Python, although I can see that too has its benefits (e.g. library access).
Does anyone have idea about the STEP export support status for KCL/µcad? To me it looks like KCL cannot, and I cannot find information on it about µcad. The one tool I'm familiar within this space is OpenSCAD and it cannot. While FreeCAD is able to (sometimes?) convert from STL to STEP, it seems actually working with such models in FreeCAD is quite compute-inefficient.
If you're talking about CAD in general I can see your point.
For FreeCAD specifically, there looks to be an OpenSCAD import process directly. I don't have experience with how it works, but that may be better than going through STL
I know the process is there, but I really, really doubt it does anything else than just uses OpenSCAD code to render the mesh, as FreeCAD can also deal with meshes. I think it would be pretty unlikely that the FreeCAD devs would have implemented such a rendering system based on OpenSCAD.
From my quick tests, it seems to rebuild the OpenSCAD objects using FreeCAD part workbench primitives.
But I also quite quickly found examples that don't work. I don't know if that's the import not being very good, me finding weird examples, needing to install more libraries, or PEBKAC.
Converting from STL to STEP is essentially always a case-by-case thing.
If you import, sew, check geometry, refine, etc., you can eliminate unnecessary triangles in planar faces. But you can't magically make a 120-sided-polygon that should be a circle a circle; you're going to have to do that yourself.
And FreeCAD is not the best tool for correcting broken meshes, which are commonplace. MeshLab and the vaguely-on-life-support AutoCAD MeshMixer are better at it.
STEP/IGES is as you say more or less essential if you want to work with code-CAD output in any other serious context. STL is not enough: it is like converting to JPEG in the middle of a photo editing flow, not at the end. It destroys information — in this case geometry.
You might find DeclaraCAD interesting.
Yeah I hate messing with STLs for that reason. It's an output format. Similar to when you make an image in Photoshop with a load of layers and then export to jpeg where it's flattened and all the layer info is lost.
Obj is a bit better but for real design modification you kinda need the original file and the program it was designed in.
These are your father’s parentheses. An elegant weapon for a more civilized age.
Zoo has said it's open to local hosting of the kernel for years. I believe it's a matter of time because it's mostly about legal tape.
ucad is based on Manifold, so unfortunately, not really comparable, since it's all meshes vs brep, like OpenSCAD.
Note KCL could be completely augmented with another kernel. There are people who've already tried :)
I asked sometime in 2024 and I got a pretty clear response that local/self hosting is not planned.
I'm not sure who you asked, or maybe you asked at the beginning of 2024 but the stance on no-local hosting not a hard one
> There are people who've already tried :)
And they were never heard of, ever again? :-)
Don't they use their own kernel? What legal tape?
They do. The legal tape is more like how to use legal tape to protect it :)
One of the best things about openscad is the ability to immediately see the results of a code change in the 3D view (all I do is save the file with :w in neovim and openscad re-renders it). Being able to interact like this makes it much quicker and easier to iterate on a design.
I read through the ucad website and book for 10 minutes and haven't been able to figure out if there is an analogue to this for ucad?
There are several things that look neat about ucad's language, but I would need to recreate something like openscad's workflow to consider switching.
That immediacy is mostly thanks to OpenCSG which is essentially a magic trick to quickly fake 3d rendering of booleans between 3d objects using stencil buffer of gpu. http://opencsg.org/
In other words it renders the cylinders cubes spheres etc and their unions differences etc, to a 2d screen without actually calculating the intersection of those meshes / solids in 3d space.
This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
It should be theoretically possible for any CAD program to do this. its just a lot of work.
> This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
Mostly.
I've still had several instances when drawing curved solids that the OpenCSG renderer worked well with (visually) but when it came to render-time, there was something wrong. It is very hard to debug things, or at least I found it so, when it goes wrong like that.
wow, this is really neat. I always noticed how, when panning around with ortho view, it didn't need to re-render
I didn’t know they’d added an alternative kernel. The CGAL one used arbitrary precision which massively slowed it down.
Also, fillets are made using the Minkowski operation, which is super slow.
They added it in the dev branch. There hasn't been a stable release since 2021 and there has been a lot of ongoing development in the meantime, many people use the development release since it's significantly faster.
Please provide a trivial example of the code and the generated sketch front and center on your front page.
There’s tons of examples just past the fold!
Tried openscad and then cadquery for some geometry iteration projects and found them clunky. It wasn't just that I was missing a UI; the functions, constraints and geometry kernel weren't as powerful as onshape, which I've used a bit, and presumably light years behind fusion 360, which I haven't used.
Even freecad, a UI-based oss cad, is not quite ergonomic for a beginner-to-intermediate user, though it has come a long way in the past few years.
I'm excited for there to eventually be a good open source cad option, whether language-only or language-plus-GUI, but am also increasingly on team 'tools matter for your productivity'.
The great thing about OpenSCAD is that it makes it easy to programmatically model objects using cubes, cylinders, cones, and spheres by placing, stretching, and rotating them.
The awful thing about OpenSCAD is that one's ability to model in it is strongly bounded by one's fluency with mathematics and ability to use math to programmatically model objects using cubes, cylinders, cones, and spheres by placing, stretching, and rotating them.
The one tool I'm aware of which is looking at a new geometry kernel which I can recall is:
If you want a classical GUI based cad tool for 3D modelling, I'd suggest taking a look at solve space and dune3d
thanks for recs, will check them out
Dune 3D in particular is the only traditional 3D CAD program I've ever tried where I actually made it through the tutorial without a showstopper (still need to find time to try Moment of Inspiration 3D).
freecad with the new ui + its openscad integration is pretty good.
openscad in general is quite easy if you can functionally program
I find OpenSCAD to be decent, if somewhat tedious, when making mechanical parts but extremely limiting if you want to work with organic shapes. Even mechanical shapes that just avoid sharp edges require a fair bit of effort. One thing I do like about it is how it encourages users to parameterize their models just by the nature of the language. Pretty much everything I make in OpenSCAD has a list of named parameters at the top I can later tweak if I need to shrink or enlarge some aspect of it.
AFAIK FreeCAD's core OpenSCAD replacement is being suggested for replacement with an alternative so things may further improve.
OpenSCAD in a FreeCAD context does address many of the limitations of OpenSCAD, but it's not perfectly compatible.
That's a shame.
If I could use FreeCAD by programming in OpenSCAD, I'd be far more inclined to use it.
There is another workbench — indeed I think this is possibly a candidate to replace the core one:
It's especially nice that CadQuery has come full circle (having started as a workbench).
As someone who has been using FreeCAD starting in 2020, I can't tell any major differences. The problems are the same they have ever been. It's only the renderer that got a little bit more "sexy", but that is just looks.
I'm self-taught with CAD, and have repeatedly tried and discarded FreeCAD for several years. (Tangent: perceived absence of a decent CAD solution in Linux is one of very few things keeping me using Windows.)
I recently happened upon a video which mostly changed my mind [0], in which someone successfully passed a Solidworks professional certification using FreeCAD. And to my eyes, their workflow was only rarely any worse than e.g. Fusion360, Solidworks, etc.
I've since been trialling FreeCAd via the 'bleeding edge' weekly development builds [1]... and it's not perfect, and it's a touch clunky in certain areas, but it's now more than usable. (In some areas, it's actually better than the competition I've tried, IMO - for example making and cutting threads.)
Thank you for this link! I've been wondering if it is possible these days to replace Fusion for my workflow, and this is exactly what I need to see
That is an interesting and important video, and I think it helps make the point that "commercial" CAD is often viewed through rather rose-tinted spectacles because FreeCAD's GUI has been unfriendly and obstinate. Beginner friendliness simply hasn't been on their radar until this point, because it would have been pointless to focus on it until TNP was mitigated to the level it now is.
I don't think FreeCAD is perfect, but I do think it's remarkable we have it at all.
This is my understanding as well.
It's incorrect, then!
Lots changed since 2020 in the current 1.0.2 release, including TNP mitigations and the core assembly workbench.
The 1.1 developer release (which is stable and useful and getting quite close to final release) contains further TNP mitigations; further improvements to the core assembly workbench; radically better lighting; datums have moved into the core; there's a way of enabling the advanced attachment mode in Part Design; compound body support in Part Design by default; significant comfort improvements in Sketcher, transparent previews, dragger gadgets and improved pattern tools in Part Design; support for external intersection geometry, Qt6 GUI improvements; lots of improvements to the Preferences panels, and that's before looking at FEM, BIM and CAM.
Oh and the Ondsel stuff — the web sharing service, its plugin and its headless worker support — is also under the control of the FreeCAD project, free of its AWS dependencies and being actively maintained.
It's still idiosyncratic but it goes way, way beyond looks. There was a big hump to get over between 0.21 and 1.0, re-engineering RealThunder's TNP mitigations to be more practical and adding the core Assembly workbench, but there's been enormous progress since.
HN's negativity around FreeCAD no longer astonishes me because I think HNers in general have a rather misbegotten sense of what GUI CAD even is, what its strengths are instead of just its weaknesses, and how much of a challenge something with FreeCAD's scope really is. I mean Dune3D is interesting but frustrating still, SALOME is interesting but has huge money behind it; FreeCAD is the sort of hard-won, low-governance, pure-open-source-no-corporate-bullshit project HNers should prefer. Is it the equal of commercial CAD packages? No it's not. It's a different beast and an absolute social good.
It's not negativity. My workflow literally hasn't changed in years. The only difference I've noticed has been cosmetic.
Maybe I don't use FreeCAD to it's fullest (I don't) and maybe I don't stay on top of the latest changes (I don't), but I learned years ago to avoid the TNP, and haven't been bothered by it since.
The only noticeable changes in recent years to me have been window dressing, plain and simple. Maybe crashes are less often, but I've also learned not to do things that cause crashes many years ago.
Right. But you not noticing changes because FreeCAD hasn't broken your workflow is simply not the same as there having been no non-cosmetic changes since 2020: FreeCAD has changed enormously since then (which would be 0.18).
[deleted]
I agree with this. Per my comment just above, I've been one of the HNers recommending against FreeCAD for years, because that was my experience.
I've recently started to change that opinion; using the build I linked above, it's now pretty usable and competitive/usable for a hobbyist. I'm now considering it my first-line CAD package (until proven otherwise!)
Hm, I may have to reconsider the amoral recommendation of pirate SOLIDWORKS
TNP is much better, but not entirely solved. There are also still lots of minor issues that crop up during normal workflows, particularly when importing geometry from other sketches. I ran into this exact issue just this past week, where importing a half circle from a previous sketch breaks every time I update a dimension in DynamicData (a dimension that isn't used even), but if I manually select "recompute object" it recalculates everything totally fine.
Then I tweak a dimension, model flags an error, I select "recompute object" and it's fine. No geometry errors detected at any point. Presumably FreeCAD is recomputing the object when I'm updating the dimensions, so why does a manual recomputation fix the problem but the automatic one doesn't? Overall FreeCAD is pretty good, but I have yet to do a FreeCAD project where I don't run into something weird like this that I have to suffer through or work around.
TNP essentially cannot be definitively solved, as I understand it. Only extensively mitigated. Other CAD packages still have TNP issues.
FreeCAD had an additional problem that OpenCascade doesn't maintain any naming across its interfaces at all, which is what RealThunder's geometry naming scheme, that mainline FreeCAD now uses, largely solved. But his fork still has issues too.
Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
As to problems: the main issue with FreeCAD as with all really complex packages is that it's impossible to diagnose a problem from a description that short; you pretty much always need the file to know what is actually causing the problem, because it's full of subtleties.
I will be posting a minimal example on the forums about this soon once I actually finish the project. Here [1] is the last issue that I had. The issue of getting the needed cutout on that forum post was one problem, but the much deeper issue was how a later operation broke the model in an unrecoverable way once it was removed. To me, that speaks to something deeply broken in FreeCAD's core use of Open Cascade, and I've noticed minor variations on this theme, like when undo operations sometimes don't really undo things and leave sketches broken. less common these days, but it's weird that it was ever a thing.
> Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
I used to use Spreadsheets but they just didn't scale, ie. every little addition and modification to the spreadsheet caused very slow global recalculations. DynamicData is a little better on this for some reason, but not much. I like the expression engine they use, but it's not good at only re-evaluating the dependencies that have changed. They should really be using FRP-like signals.
Anyway, I don't want to come across as too negative as FreeCAD is pretty good overall, but these tiny nuisances will continue to hold it back until they're sorted. It is looking better though.
FWIW I agree that undo is broken — I don't think FreeCAD has a single global undo, rather one that works differently in Sketcher.
Could be wrong but the top-level undo does weird things when there's a recent change in Sketcher.
And yeah, I now use Spreadsheet as little as possible. There is some work going on to try to resolve Sketcher's aggressive recomputation problems. Pop into the (ugh) Discord sometime, there's a channel about it.
Configuration Tables, though, are a really powerful part of Sketcher, particularly when combined with app link variants.
In terms of dependency resolving, the core VarSets are much, much better, and in 1.1 they are better integrated into the expression editor, so you can store an expression as a VarSet property without leaving the expression editor.
This does not seem to have a constraint solver or any documented plans to integrate one. I love math, but I don’t enjoy maintaining walls of trig to make trivial constraints parametric.
Many many years ago I created my own JS -> OpenScad generator, so I defo agree the OpenScad language could be better. Though the engine worked well.
```
c = Sector(radius, start = 180°, end = 270°).translate(y = radius);
```
Programming language that requires (maybe it does not require, but then example is not good) to type degrees. Or maybe it is not designed to be typed and rather ai generated?
I saw another example where they had 'mm' as well so I'm guessing that's all part of the type system as postfix attributes?
Poked around in the docs a bit but didn't see a grammar so, dunno... I can only guess it does automatic type conversion if you only type the numbers without the qualifier.
Super fascinating project. I'm very interested in this. I truly hate using the tools by hand and as a programmer, this feels waaaay more intuitive. That said, when reviewing the gear video, I think understanding to start with the gear primitive would require giving the libraries a good once over as I wouldn't have assumed those existed.
Can imagine more and more forms being built in as the community goes.
kudos!
I've been searching for a CAD language that supports iteration in a good way. I've been designing a self-build house and it occurs to me that, once I have the walls etc, filling in the details for the manufacture of those walls could be done by a programming routine. Such a routine could work out how many studs are needed and their placement etc and generate the kind of cut-throughs where you can see the construction inside the wall that you sometimes see in construction books. Anyway, without for-loops that kind of thing is really difficult and I've given up.
I know that FreeCAD has architectural support.
I think it's called BIM, which tells you how well-informed on the subject I am (not).
Then build123d might be for you.
[deleted]
So this is more an autocad equivalent? Does it have interfaces to enable reusability in some other file format (e.g. any way to get it into generic models eventually importable into revit?)
So.. OpenSCAD, but with strong types and rust-flavored syntax?
Can it do fillets?
Interesting project, I will look into it.
This site sucks. Why does it use php, and why is every link a query? Just make it a static page.
PHP is fine. If the site sucks it’s not because of the language.
yeah, a lot of frontend/styling choices are pretty non-asthetic other than the suboptimal performance.
Half the web uses PHP. Nothing wrong with PHP for web work, and absolutely nothing bad about the site is related to its use of PHP.
>While OpenSCAD is easy to learn and has a syntax reminiscent of C, we felt the language could be improved in several ways:
> - more specialization for creating graphics,
> - better support for modular programming,
> - strict typing and unit handling,
> - a syntax closer to Rust than to C,
> - a solid library system,
> - plugin support for other programming languages,
> - and a more powerful visualization concept.
I like openscad because it use a syntax more like c than rust. Making the syntax more c like opens the user base up. Not everyone sees rust syntax as a benefit. Just my 2 cents
Could you please make the book into a PDF?
Just click print in the top right.
Nice with another alternative. I have been using shapescript, which I think is easier than openscad, and available on ios. https://shapescript.info/
It makes LLMs stronger because code is something LLMs are good at.
This is a neat idea and I quite like some of the syntax, but what is this for? I have a hard time seeing this gaining traction over traditional sketch-based CAD for a number of reasons, so is it just meant to be a toy?
I would personally prefer to work with a language-based CAD than a strictly graphical one. Especially for parametric kinds of objects. Now that 3D printing is going mainstream, I am certain that new and interesting things are still to come in CAD.
Curious. How much experience do you have with any form of CAD? Is the preference based on that you tried graphical CAD software and you found them lacking, or is it based on imagining how they might work?
Last week at the hackspace someone asked me to quickly design a manifold which holds together a scuba mouth piece, a 48mm diameter valve and a nato 40mm screw fitting. They wanted to minimise the internal tidal volume of the manifold, while keeping enough clearance for the tubes connected to it. We ended up connecting the 3 fittings in a Y-shape and lofted the pipes together. Without seeing the resulting shape I can’t even start to guess how many edges it would have. And I have no idea how I would refer to which edges i want filleted. How would you approach something like that with your prefered method?
I have a lot of experience with openscad. I design a lot of small, simple-to-moderate parts. I want to use something like fusion instead, but the GUI learning curve is a huge blocker for me.
I'm not a CAD professional, I can't seem to find the time to watch hours of video to get the basics down. With code based CAD, the way to start is usually obvious. When I run into a blocker, I search online, find examples, and try them out. Then, crucially, I copy and paste code snippets into my design, and modify them, to solve my problem.
In a GUI cad tool, I find that I spend most of my time hunting for buttons in the UI, often finding UI layout discrepancies between my version and whatever video I found.
In code, I do have to repeatedly solve little trig or geometry problems, and I'm always aware that a constraint based GUI tool would eliminate that completely. But I always know that I can just spend five minutes with pencil and paper and get it done, whereas switching to fusion means adding an hour or more of work to multiple designs.
I really want to design more effectively, with better fillet flexibility. But for my simple tasks, the barrier to becoming productive in a GUI is just too high.
I believe the "command palette" in e.g. VS code solves this well, perhaps a GUI cad with that would be workable for me.
Maybe what would really help me, is a larger more complex project which I can develop over a longer time in fusion while I learn to use it. Too bad I don't have anything that naturally fits that bill.
To me it sounds like it would be worth it for you to learn the basics of Fusion or FreeCAD. You would probably quickly recover the hours spent on learning with increased productivity.
I recommend going through some basic tutorial (written or in video form) to build a simple part. The tutorial should teach view navigation, drawing and constraining a sketch, extruding or rotating it to create a 3D body, modifiying that with chamfers / fillets, creating sketches on top of that to add or cut away parts, add holes, create patterns from features. I don't think you need to learn surface modeling at this point. After that you should be good to go on your own projects. You will still need to look up how to do something (as you do now), but that will improve quickly.
I'm hitting the same problem, getting stuck on simple things in FreeCAD mostly because I'm a novice and don't have hours and hours to watch videos and learn.
What ended up working for you?
> In code, I do have to repeatedly solve little trig or geometry problems,
BOSL2!
I adopted bosl2 recently, it's wonderful! Anchoring is a huge improvement, which does eliminate a lot of that work. But it's a very large library and I am slowly expanding my knowledge of it.
I've also been asking myself what people do with programmatic CAD. I've used OpenSCAD once to create a simple, cylindrical object, but about 80% of the things I create (using conventional CAD, like Fusion 360) would be way too complex for that. And even the simplest shapes are just much faster to create and modify in Fusion.
Maybe this is the "everything looks like a nail" problem for programmers who have never tried CAD?
For me, I've never done well w/ traditional 3D CAD (need to find time to try Moment of Inspiration 3D), and I've been working on wood joinery where a test joint which was 1" x 2" x 1" took some 20 minutes to do CAM, and created a ~120MB file --- programming the tool movement directly seems a better approach, so I've been working on:
I recently used this https://makerworld.com/de/models/1765102-10-inch-mini-rack-g... to generate various mounts for my home lab mini rack. The idea is that everything needs to fit into the same width of rack, but every device is slightly different so custom creating these becomes annoying quickly. This generator was a godsend
So the appeal for you, as the "user", is that you can easily customize the parameters which are made customizable by the designer and get a suitable model without requiring proprietary software (or any software at all). I can see the appeal of that.
But I assume the designer spent quite a lot of time, creating this in OpenSCAD and make it customizable. He was also restricted to making shapes which are easily described in OpenSCAD, where he might have gone for a more elaborate design if it was easy to do.
Agree with this. I've tried the various programmatic CAD options before, and creating initial shapes is relatively easy, but figuring out how to refer to parts of those subsequent shapes - to e.g. modify further, or build from, or connect to other shapes, is really complex and clunky.
Well, there's OpenSCAD already, and for folks who like Python:
Neither is 3D printing going mainstream nor do I see any reason why it would push people away from industry standard CAD software.
CAD is already complex. Why would giving those people an extremely underpowered programming language, which makes creating even the simplest 3D models a chore, cause change in the CAD world.
Hmm - are you familiar with OpenSCAD, which is highly popular? This would appear to compete there. There's a few others, e.g. CadQuery.
Such languages can be amenable to LLM generation, reducing barriers to entry.
The hard part with 3d part creation isn’t the graphical interface or language, it’s actually describing and translating part requirements to a manufacturable design, weighing material, weight, fit, geometric, and cost tradeoffs. Openscad, opencascade, etc have been around for a long time and have specs for describing features in a way that llm should be able to handle, but if all the part constraints were available it’s far faster to make accurately in Solidworks.
This is my experience too. I took a course a long time ago in design for manufacturing, and it became abundantly clear that just because you can conceive of an idea doesn't mean that you can build it. That requires a lot more work and technical know-how that isn't always put into books or other "training data".
I’ve tried getting Gemini to follow descriptions to generate a simple object in OpenScad.
I finally got it to do what I wanted.
But I’m much much faster and if didn’t have some amateur CAD experience, I don’t know I would have ever succeeded.
Just yesterday I had an LLM write an openscad module for generating a 2d rounded rectangle. It worked great! I then tried to get it to write a module to extrude a 2d shape into a 3d shape and it failed spectacularly several times before I gave up.
Interesting. I’m building a SaaS around this idea. And I managed to do things waaay more complex than that using LLMs. Especially “several times”. My AI can do a parametric trophy cup from one prompt in a couple of attempts, I would be shocked if it didn’t know how to make rectangular cube…
I'm a much more capable of designing useful models by programming than I am in using CAD software. The way I think about the construction of models is much more suited to standard programming techniques. I freely admit there is probably immense value in using the industry standard tools instead... I've printed a few projects now which I used OpenSCAD to design, and it went fairly well, and I'm confident in them. OpenSCAD is a bit of a PITA though.
I have no idea if this approach might gain traction over sketch-based CAD, I doubt it; yet this approach has a strong chance of expanding the space.
If there was a real possibility of folks being willing to use this sort of UI in industry, BRL-CAD would be far more popular, and writing AutoLISP scripts wouldn't be an obscure specialty.
Looks like a promising alternative to OpenSCAD.
Although am I the only one to notice the swastika in their logo?
If you look hard enough almost any 4 way rotation symmetry will result in a variation of swastika like shape. You would have to almost completely ban 4 way rotation symmetry to avoid it.
I personally find it unhealthy to actively search, extend and strengthen the association of hate symbols based on vague similarity out of context. Sure remember the crimes they have done and avoid the exact specific shape, proportions, color commonly used by the hate groups, but also take context into account. Don't promote them by giving them credit for things they didn't do. Don't let the hate groups win by allowing few dozen years of years of activity destroy thousands of years of cultural and language history and future for wide category of symbols and simplest geometric patterns. Don't erase words from common language. Don't let them make your life worse by self inflicted excessive censorship. Grow the good associations not the bad ones, dilute and take away the strength from hate groups instead of letting them take away common language from you. If you look at thousand year old budhist or ancient greek stone carving which uses one of the few dozen swastika variations and think those time traveling Nazis plastering their symbols all over the place they win.
When looking at children playing with paper pinwheel, is your first thought also they must be Nazi? When you look at cardboard box with 4 flaps overlapped on top of each other do you think Nazi?
With regards to other people speculation how this happened I doubt they intentionally tried to create a swastika, it just happens naturally when you use rotational symmetry. Looking at this logo I personally see the overall cross and spinning shape formed by positive space first. The image of swastika formed by negative space is kind of weak and clunky due to thickness mismatch created by curved rhombus. If they had used 4 overlapping squares or circles it would be more problematic, at that point a logo designer would likely stop and try to mixup things to get rid of it.
If you see a swastika there, do you also see it in the Python logo?
Personally I would not have seen a swastika here, but when looking for it, here it would be more obvious, the python logo has only half of it.
Still, questionable if it was intentional .. and if it was, does not necesarrily mean they are Nazis (they did not invent, but just used the old symbol).
Also this project was funded in part by the german Federal Ministry of Research, Technology and Space and they are not known to fund open Nazis in general.
Python logo actually has 3/4 of swastika. It's only one the vertical line that is missing.
> Although am I the only one to notice the swastika in their logo?
Possibly. Although I know it's the wrong way round to be a Nazi swastika, it's made all the more odd by the fact that this is a German project.
Maybe it could be Bauhaus inspired instead. (This isn't a serious suggestion, but if you're biasing your opinion based on their German origin, why not from the good stuff instead?)
You should remove any reference to LEGO from the website and the examples. LEGO is extremely protective of its brand (similar to / worse than Nintendo) and does not want third parties using its name, because it is concerned that LEGO could become a generic term which could put its trademark at risk.
See: "Lego sues Dutch firm over anti-terror blocks using name and shape" https://www.thetimes.com/world/europe/article/lego-sues-dutc... ( http://archive.today/q5XrX )
There is zero reason for you to have a cookie banner taking up a third of the page.
At this point, everyone making websites should be well aware that there is no requirement for cookie banners and that implementing such is active disrespect towards your users. Your cookie banner does not tell me you care about my privacy, it tells me you're trying to collect some type of data about me and want to annoy me into letting you sell that data.
A cookie banner is exactly as much a red flag as an obviously AI generated hero image at the top of your page. Disrespectful.
I've been using zoo and its KCL language with some success for boundary-representation CAD writing. If I understood correctly, µcad serves the same purpose. Comparing code samples between both of them, I personally enjoy KCL's pipelined approach more.
My main beef with zoo is the fact that they are promoting vendor lock-in by forcing users to use their cloud-hosted geometry kernel with absolutely no local alternative. It's not clear to me how µcad solves this problem.
[1] Lego brick in KCL: https://zoo.dev/docs/kcl-samples/lego
[2] Lego brick in µcad: https://microcad.xyz/index.php/2025/11/12/lego-bricks/
[3] Gear in KCL: https://zoo.dev/docs/kcl-samples/spur-gear
[4] Gear in µcad: https://microcad.xyz/index.php/2025/11/12/gears/
Lego brick in build123d: https://build123d.readthedocs.io/en/latest/tutorial_lego.htm...
Gear in build123d: https://github.com/GarryBGoode/gggears
Hm, at least build123d (which I had never heard of, thanks!) can export STEP, which I believe is becoming a necessity if one wants to assemble real-world models with FreeCAD (and nicely also slicers are picking up support to it). I'm on the edge though if I'd really like a proper DSL instead of building it on top of Python, although I can see that too has its benefits (e.g. library access).
Does anyone have idea about the STEP export support status for KCL/µcad? To me it looks like KCL cannot, and I cannot find information on it about µcad. The one tool I'm familiar within this space is OpenSCAD and it cannot. While FreeCAD is able to (sometimes?) convert from STL to STEP, it seems actually working with such models in FreeCAD is quite compute-inefficient.
If you're talking about CAD in general I can see your point.
For FreeCAD specifically, there looks to be an OpenSCAD import process directly. I don't have experience with how it works, but that may be better than going through STL
I know the process is there, but I really, really doubt it does anything else than just uses OpenSCAD code to render the mesh, as FreeCAD can also deal with meshes. I think it would be pretty unlikely that the FreeCAD devs would have implemented such a rendering system based on OpenSCAD.
From my quick tests, it seems to rebuild the OpenSCAD objects using FreeCAD part workbench primitives.
But I also quite quickly found examples that don't work. I don't know if that's the import not being very good, me finding weird examples, needing to install more libraries, or PEBKAC.
Converting from STL to STEP is essentially always a case-by-case thing.
If you import, sew, check geometry, refine, etc., you can eliminate unnecessary triangles in planar faces. But you can't magically make a 120-sided-polygon that should be a circle a circle; you're going to have to do that yourself.
Though Mark Ganson's MeshRemodel workbench looks interesting: https://github.com/mwganson/MeshRemodel
And FreeCAD is not the best tool for correcting broken meshes, which are commonplace. MeshLab and the vaguely-on-life-support AutoCAD MeshMixer are better at it.
STEP/IGES is as you say more or less essential if you want to work with code-CAD output in any other serious context. STL is not enough: it is like converting to JPEG in the middle of a photo editing flow, not at the end. It destroys information — in this case geometry.
You might find DeclaraCAD interesting.
Yeah I hate messing with STLs for that reason. It's an output format. Similar to when you make an image in Photoshop with a load of layers and then export to jpeg where it's flattened and all the layer info is lost.
Obj is a bit better but for real design modification you kinda need the original file and the program it was designed in.
KCL can be exported to STEP and STL.
Fascinating, thanks for sharing!
Doesn't it solve the problem by being local? https://codeberg.org/microcad/microcad
When I see these examples I miss Autolisp…
These are your father’s parentheses. An elegant weapon for a more civilized age.
Zoo has said it's open to local hosting of the kernel for years. I believe it's a matter of time because it's mostly about legal tape.
ucad is based on Manifold, so unfortunately, not really comparable, since it's all meshes vs brep, like OpenSCAD.
Note KCL could be completely augmented with another kernel. There are people who've already tried :)
I asked sometime in 2024 and I got a pretty clear response that local/self hosting is not planned.
I'm not sure who you asked, or maybe you asked at the beginning of 2024 but the stance on no-local hosting not a hard one
> There are people who've already tried :)
And they were never heard of, ever again? :-)
Don't they use their own kernel? What legal tape?
They do. The legal tape is more like how to use legal tape to protect it :)
One of the best things about openscad is the ability to immediately see the results of a code change in the 3D view (all I do is save the file with :w in neovim and openscad re-renders it). Being able to interact like this makes it much quicker and easier to iterate on a design.
I read through the ucad website and book for 10 minutes and haven't been able to figure out if there is an analogue to this for ucad?
There are several things that look neat about ucad's language, but I would need to recreate something like openscad's workflow to consider switching.
That immediacy is mostly thanks to OpenCSG which is essentially a magic trick to quickly fake 3d rendering of booleans between 3d objects using stencil buffer of gpu. http://opencsg.org/
In other words it renders the cylinders cubes spheres etc and their unions differences etc, to a 2d screen without actually calculating the intersection of those meshes / solids in 3d space.
This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
It should be theoretically possible for any CAD program to do this. its just a lot of work.
> This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
Mostly.
I've still had several instances when drawing curved solids that the OpenCSG renderer worked well with (visually) but when it came to render-time, there was something wrong. It is very hard to debug things, or at least I found it so, when it goes wrong like that.
wow, this is really neat. I always noticed how, when panning around with ortho view, it didn't need to re-render
I didn’t know they’d added an alternative kernel. The CGAL one used arbitrary precision which massively slowed it down.
Also, fillets are made using the Minkowski operation, which is super slow.
They added it in the dev branch. There hasn't been a stable release since 2021 and there has been a lot of ongoing development in the meantime, many people use the development release since it's significantly faster.
This implies that you can preview in VS Code: https://docs.microcad.xyz/tutorials/book/lego_brick/preparat...
I'm not sure if it's on par with what you want, though.
A viewer/preview is in development.
they got a grant for that. i couldn't find an english version though, sorry.
https://www.prototypefund.de/projects/microcad-viewer
Please provide a trivial example of the code and the generated sketch front and center on your front page.
There’s tons of examples just past the fold!
Tried openscad and then cadquery for some geometry iteration projects and found them clunky. It wasn't just that I was missing a UI; the functions, constraints and geometry kernel weren't as powerful as onshape, which I've used a bit, and presumably light years behind fusion 360, which I haven't used.
Even freecad, a UI-based oss cad, is not quite ergonomic for a beginner-to-intermediate user, though it has come a long way in the past few years.
I'm excited for there to eventually be a good open source cad option, whether language-only or language-plus-GUI, but am also increasingly on team 'tools matter for your productivity'.
The great thing about OpenSCAD is that it makes it easy to programmatically model objects using cubes, cylinders, cones, and spheres by placing, stretching, and rotating them.
The awful thing about OpenSCAD is that one's ability to model in it is strongly bounded by one's fluency with mathematics and ability to use math to programmatically model objects using cubes, cylinders, cones, and spheres by placing, stretching, and rotating them.
The one tool I'm aware of which is looking at a new geometry kernel which I can recall is:
https://fornjot.app/
If you want a classical GUI based cad tool for 3D modelling, I'd suggest taking a look at solve space and dune3d
thanks for recs, will check them out
Dune 3D in particular is the only traditional 3D CAD program I've ever tried where I actually made it through the tutorial without a showstopper (still need to find time to try Moment of Inspiration 3D).
freecad with the new ui + its openscad integration is pretty good.
openscad in general is quite easy if you can functionally program
I find OpenSCAD to be decent, if somewhat tedious, when making mechanical parts but extremely limiting if you want to work with organic shapes. Even mechanical shapes that just avoid sharp edges require a fair bit of effort. One thing I do like about it is how it encourages users to parameterize their models just by the nature of the language. Pretty much everything I make in OpenSCAD has a list of named parameters at the top I can later tweak if I need to shrink or enlarge some aspect of it.
AFAIK FreeCAD's core OpenSCAD replacement is being suggested for replacement with an alternative so things may further improve.
OpenSCAD in a FreeCAD context does address many of the limitations of OpenSCAD, but it's not perfectly compatible.
That's a shame.
If I could use FreeCAD by programming in OpenSCAD, I'd be far more inclined to use it.
There is another workbench — indeed I think this is possibly a candidate to replace the core one:
https://github.com/KeithSloan/OpenSCAD_Alt_Import
There's also a CadQuery 2 workbench now: https://github.com/CadQuery/cadquery-freecad-workbench/
Thanks!
It's especially nice that CadQuery has come full circle (having started as a workbench).
As someone who has been using FreeCAD starting in 2020, I can't tell any major differences. The problems are the same they have ever been. It's only the renderer that got a little bit more "sexy", but that is just looks.
I'm self-taught with CAD, and have repeatedly tried and discarded FreeCAD for several years. (Tangent: perceived absence of a decent CAD solution in Linux is one of very few things keeping me using Windows.)
I recently happened upon a video which mostly changed my mind [0], in which someone successfully passed a Solidworks professional certification using FreeCAD. And to my eyes, their workflow was only rarely any worse than e.g. Fusion360, Solidworks, etc.
I've since been trialling FreeCAd via the 'bleeding edge' weekly development builds [1]... and it's not perfect, and it's a touch clunky in certain areas, but it's now more than usable. (In some areas, it's actually better than the competition I've tried, IMO - for example making and cutting threads.)
[0] https://www.youtube.com/watch?v=VEfNRST_3x8 [1] https://github.com/FreeCAD/FreeCAD/releases
Thank you for this link! I've been wondering if it is possible these days to replace Fusion for my workflow, and this is exactly what I need to see
That is an interesting and important video, and I think it helps make the point that "commercial" CAD is often viewed through rather rose-tinted spectacles because FreeCAD's GUI has been unfriendly and obstinate. Beginner friendliness simply hasn't been on their radar until this point, because it would have been pointless to focus on it until TNP was mitigated to the level it now is.
I don't think FreeCAD is perfect, but I do think it's remarkable we have it at all.
This is my understanding as well.
It's incorrect, then!
Lots changed since 2020 in the current 1.0.2 release, including TNP mitigations and the core assembly workbench.
The 1.1 developer release (which is stable and useful and getting quite close to final release) contains further TNP mitigations; further improvements to the core assembly workbench; radically better lighting; datums have moved into the core; there's a way of enabling the advanced attachment mode in Part Design; compound body support in Part Design by default; significant comfort improvements in Sketcher, transparent previews, dragger gadgets and improved pattern tools in Part Design; support for external intersection geometry, Qt6 GUI improvements; lots of improvements to the Preferences panels, and that's before looking at FEM, BIM and CAM.
Oh and the Ondsel stuff — the web sharing service, its plugin and its headless worker support — is also under the control of the FreeCAD project, free of its AWS dependencies and being actively maintained.
It's still idiosyncratic but it goes way, way beyond looks. There was a big hump to get over between 0.21 and 1.0, re-engineering RealThunder's TNP mitigations to be more practical and adding the core Assembly workbench, but there's been enormous progress since.
HN's negativity around FreeCAD no longer astonishes me because I think HNers in general have a rather misbegotten sense of what GUI CAD even is, what its strengths are instead of just its weaknesses, and how much of a challenge something with FreeCAD's scope really is. I mean Dune3D is interesting but frustrating still, SALOME is interesting but has huge money behind it; FreeCAD is the sort of hard-won, low-governance, pure-open-source-no-corporate-bullshit project HNers should prefer. Is it the equal of commercial CAD packages? No it's not. It's a different beast and an absolute social good.
It's not negativity. My workflow literally hasn't changed in years. The only difference I've noticed has been cosmetic.
Maybe I don't use FreeCAD to it's fullest (I don't) and maybe I don't stay on top of the latest changes (I don't), but I learned years ago to avoid the TNP, and haven't been bothered by it since.
The only noticeable changes in recent years to me have been window dressing, plain and simple. Maybe crashes are less often, but I've also learned not to do things that cause crashes many years ago.
Right. But you not noticing changes because FreeCAD hasn't broken your workflow is simply not the same as there having been no non-cosmetic changes since 2020: FreeCAD has changed enormously since then (which would be 0.18).
I agree with this. Per my comment just above, I've been one of the HNers recommending against FreeCAD for years, because that was my experience.
I've recently started to change that opinion; using the build I linked above, it's now pretty usable and competitive/usable for a hobbyist. I'm now considering it my first-line CAD package (until proven otherwise!)
Hm, I may have to reconsider the amoral recommendation of pirate SOLIDWORKS
(Un-)release notes for upcoming 1.1:
https://wiki.freecad.org/Release_notes_1.1
TNP is much better, but not entirely solved. There are also still lots of minor issues that crop up during normal workflows, particularly when importing geometry from other sketches. I ran into this exact issue just this past week, where importing a half circle from a previous sketch breaks every time I update a dimension in DynamicData (a dimension that isn't used even), but if I manually select "recompute object" it recalculates everything totally fine.
Then I tweak a dimension, model flags an error, I select "recompute object" and it's fine. No geometry errors detected at any point. Presumably FreeCAD is recomputing the object when I'm updating the dimensions, so why does a manual recomputation fix the problem but the automatic one doesn't? Overall FreeCAD is pretty good, but I have yet to do a FreeCAD project where I don't run into something weird like this that I have to suffer through or work around.
TNP essentially cannot be definitively solved, as I understand it. Only extensively mitigated. Other CAD packages still have TNP issues.
FreeCAD had an additional problem that OpenCascade doesn't maintain any naming across its interfaces at all, which is what RealThunder's geometry naming scheme, that mainline FreeCAD now uses, largely solved. But his fork still has issues too.
Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
As to problems: the main issue with FreeCAD as with all really complex packages is that it's impossible to diagnose a problem from a description that short; you pretty much always need the file to know what is actually causing the problem, because it's full of subtleties.
I will be posting a minimal example on the forums about this soon once I actually finish the project. Here [1] is the last issue that I had. The issue of getting the needed cutout on that forum post was one problem, but the much deeper issue was how a later operation broke the model in an unrecoverable way once it was removed. To me, that speaks to something deeply broken in FreeCAD's core use of Open Cascade, and I've noticed minor variations on this theme, like when undo operations sometimes don't really undo things and leave sketches broken. less common these days, but it's weird that it was ever a thing.
> Is DynamicData still properly supported in 1.x? Looks like it might be. Never really used it; I use a minimal mix of Spreadsheet (mostly for Configuration Tables) and VarSets.
I used to use Spreadsheets but they just didn't scale, ie. every little addition and modification to the spreadsheet caused very slow global recalculations. DynamicData is a little better on this for some reason, but not much. I like the expression engine they use, but it's not good at only re-evaluating the dependencies that have changed. They should really be using FRP-like signals.
Anyway, I don't want to come across as too negative as FreeCAD is pretty good overall, but these tiny nuisances will continue to hold it back until they're sorted. It is looking better though.
[1] https://forum.freecad.org/viewtopic.php?p=848289#p848289
FWIW I agree that undo is broken — I don't think FreeCAD has a single global undo, rather one that works differently in Sketcher.
Could be wrong but the top-level undo does weird things when there's a recent change in Sketcher.
And yeah, I now use Spreadsheet as little as possible. There is some work going on to try to resolve Sketcher's aggressive recomputation problems. Pop into the (ugh) Discord sometime, there's a channel about it.
Configuration Tables, though, are a really powerful part of Sketcher, particularly when combined with app link variants.
In terms of dependency resolving, the core VarSets are much, much better, and in 1.1 they are better integrated into the expression editor, so you can store an expression as a VarSet property without leaving the expression editor.
This does not seem to have a constraint solver or any documented plans to integrate one. I love math, but I don’t enjoy maintaining walls of trig to make trivial constraints parametric.
Many many years ago I created my own JS -> OpenScad generator, so I defo agree the OpenScad language could be better. Though the engine worked well.
Putting it here in case anyone is curious: https://github.com/tasn/scadjs
Looking at examples I see:
``` c = Sector(radius, start = 180°, end = 270°).translate(y = radius); ```
Programming language that requires (maybe it does not require, but then example is not good) to type degrees. Or maybe it is not designed to be typed and rather ai generated?
I saw another example where they had 'mm' as well so I'm guessing that's all part of the type system as postfix attributes?
Poked around in the docs a bit but didn't see a grammar so, dunno... I can only guess it does automatic type conversion if you only type the numbers without the qualifier.
No Web notebook for https://docs.microcad.xyz/tutorials/book/lego_brick/ no install?
(as https://machineblocks.com/docs/scad-crash-course-101 does)
Super fascinating project. I'm very interested in this. I truly hate using the tools by hand and as a programmer, this feels waaaay more intuitive. That said, when reviewing the gear video, I think understanding to start with the gear primitive would require giving the libraries a good once over as I wouldn't have assumed those existed.
Can imagine more and more forms being built in as the community goes.
kudos!
I've been searching for a CAD language that supports iteration in a good way. I've been designing a self-build house and it occurs to me that, once I have the walls etc, filling in the details for the manufacture of those walls could be done by a programming routine. Such a routine could work out how many studs are needed and their placement etc and generate the kind of cut-throughs where you can see the construction inside the wall that you sometimes see in construction books. Anyway, without for-loops that kind of thing is really difficult and I've given up.
I know that FreeCAD has architectural support.
I think it's called BIM, which tells you how well-informed on the subject I am (not).
Then build123d might be for you.
So this is more an autocad equivalent? Does it have interfaces to enable reusability in some other file format (e.g. any way to get it into generic models eventually importable into revit?)
So.. OpenSCAD, but with strong types and rust-flavored syntax?
Can it do fillets?
Interesting project, I will look into it.
This site sucks. Why does it use php, and why is every link a query? Just make it a static page.
PHP is fine. If the site sucks it’s not because of the language.
yeah, a lot of frontend/styling choices are pretty non-asthetic other than the suboptimal performance.
Half the web uses PHP. Nothing wrong with PHP for web work, and absolutely nothing bad about the site is related to its use of PHP.
>https://microcad.xyz/?brx_pyuqqz%5B%5D=code&brx_pyuqqz%5B%5D...
>brx_pyuqqz
That's certainly an array name.
While PHP is not my goto language.. and the language has likely changed a fair bit when I last used it.. I don't think the issue is PHP.
Yeah, my guess is the team vibe-coded it because wow is does it have poor performance /is difficult to use. A few links didn’t even work for me…
The server appears to be down right now too :/
If so that means they asked the AI to use PHP. Which is even more horrifying.
Why not openscad
This almost feels like going back to old school Autocad.
Yes, but if one wants to use that sort of thing, why not go _all_ the way back:
https://brlcad.org/
So what is the big advantage of this over OpenSCAD?
I found this:
https://docs.microcad.xyz/language/book/intro/preface.html
>While OpenSCAD is easy to learn and has a syntax reminiscent of C, we felt the language could be improved in several ways:
> - more specialization for creating graphics,
> - better support for modular programming,
> - strict typing and unit handling,
> - a syntax closer to Rust than to C,
> - a solid library system,
> - plugin support for other programming languages,
> - and a more powerful visualization concept.
I like openscad because it use a syntax more like c than rust. Making the syntax more c like opens the user base up. Not everyone sees rust syntax as a benefit. Just my 2 cents
Could you please make the book into a PDF?
Just click print in the top right.
Nice with another alternative. I have been using shapescript, which I think is easier than openscad, and available on ios. https://shapescript.info/
It makes LLMs stronger because code is something LLMs are good at.
This is a neat idea and I quite like some of the syntax, but what is this for? I have a hard time seeing this gaining traction over traditional sketch-based CAD for a number of reasons, so is it just meant to be a toy?
I would personally prefer to work with a language-based CAD than a strictly graphical one. Especially for parametric kinds of objects. Now that 3D printing is going mainstream, I am certain that new and interesting things are still to come in CAD.
Curious. How much experience do you have with any form of CAD? Is the preference based on that you tried graphical CAD software and you found them lacking, or is it based on imagining how they might work?
Last week at the hackspace someone asked me to quickly design a manifold which holds together a scuba mouth piece, a 48mm diameter valve and a nato 40mm screw fitting. They wanted to minimise the internal tidal volume of the manifold, while keeping enough clearance for the tubes connected to it. We ended up connecting the 3 fittings in a Y-shape and lofted the pipes together. Without seeing the resulting shape I can’t even start to guess how many edges it would have. And I have no idea how I would refer to which edges i want filleted. How would you approach something like that with your prefered method?
I have a lot of experience with openscad. I design a lot of small, simple-to-moderate parts. I want to use something like fusion instead, but the GUI learning curve is a huge blocker for me.
I'm not a CAD professional, I can't seem to find the time to watch hours of video to get the basics down. With code based CAD, the way to start is usually obvious. When I run into a blocker, I search online, find examples, and try them out. Then, crucially, I copy and paste code snippets into my design, and modify them, to solve my problem.
In a GUI cad tool, I find that I spend most of my time hunting for buttons in the UI, often finding UI layout discrepancies between my version and whatever video I found.
In code, I do have to repeatedly solve little trig or geometry problems, and I'm always aware that a constraint based GUI tool would eliminate that completely. But I always know that I can just spend five minutes with pencil and paper and get it done, whereas switching to fusion means adding an hour or more of work to multiple designs.
I really want to design more effectively, with better fillet flexibility. But for my simple tasks, the barrier to becoming productive in a GUI is just too high.
I believe the "command palette" in e.g. VS code solves this well, perhaps a GUI cad with that would be workable for me.
Maybe what would really help me, is a larger more complex project which I can develop over a longer time in fusion while I learn to use it. Too bad I don't have anything that naturally fits that bill.
To me it sounds like it would be worth it for you to learn the basics of Fusion or FreeCAD. You would probably quickly recover the hours spent on learning with increased productivity.
I recommend going through some basic tutorial (written or in video form) to build a simple part. The tutorial should teach view navigation, drawing and constraining a sketch, extruding or rotating it to create a 3D body, modifiying that with chamfers / fillets, creating sketches on top of that to add or cut away parts, add holes, create patterns from features. I don't think you need to learn surface modeling at this point. After that you should be good to go on your own projects. You will still need to look up how to do something (as you do now), but that will improve quickly.
I'm hitting the same problem, getting stuck on simple things in FreeCAD mostly because I'm a novice and don't have hours and hours to watch videos and learn.
What ended up working for you?
> In code, I do have to repeatedly solve little trig or geometry problems,
BOSL2!
I adopted bosl2 recently, it's wonderful! Anchoring is a huge improvement, which does eliminate a lot of that work. But it's a very large library and I am slowly expanding my knowledge of it.
I've also been asking myself what people do with programmatic CAD. I've used OpenSCAD once to create a simple, cylindrical object, but about 80% of the things I create (using conventional CAD, like Fusion 360) would be way too complex for that. And even the simplest shapes are just much faster to create and modify in Fusion.
Maybe this is the "everything looks like a nail" problem for programmers who have never tried CAD?
For me, I've never done well w/ traditional 3D CAD (need to find time to try Moment of Inspiration 3D), and I've been working on wood joinery where a test joint which was 1" x 2" x 1" took some 20 minutes to do CAM, and created a ~120MB file --- programming the tool movement directly seems a better approach, so I've been working on:
https://github.com/WillAdams/gcodepreview
I recently used this https://makerworld.com/de/models/1765102-10-inch-mini-rack-g... to generate various mounts for my home lab mini rack. The idea is that everything needs to fit into the same width of rack, but every device is slightly different so custom creating these becomes annoying quickly. This generator was a godsend
So the appeal for you, as the "user", is that you can easily customize the parameters which are made customizable by the designer and get a suitable model without requiring proprietary software (or any software at all). I can see the appeal of that.
But I assume the designer spent quite a lot of time, creating this in OpenSCAD and make it customizable. He was also restricted to making shapes which are easily described in OpenSCAD, where he might have gone for a more elaborate design if it was easy to do.
Agree with this. I've tried the various programmatic CAD options before, and creating initial shapes is relatively easy, but figuring out how to refer to parts of those subsequent shapes - to e.g. modify further, or build from, or connect to other shapes, is really complex and clunky.
Well, there's OpenSCAD already, and for folks who like Python:
https://pythonscad.org/
Neither is 3D printing going mainstream nor do I see any reason why it would push people away from industry standard CAD software.
CAD is already complex. Why would giving those people an extremely underpowered programming language, which makes creating even the simplest 3D models a chore, cause change in the CAD world.
Hmm - are you familiar with OpenSCAD, which is highly popular? This would appear to compete there. There's a few others, e.g. CadQuery.
Such languages can be amenable to LLM generation, reducing barriers to entry.
The hard part with 3d part creation isn’t the graphical interface or language, it’s actually describing and translating part requirements to a manufacturable design, weighing material, weight, fit, geometric, and cost tradeoffs. Openscad, opencascade, etc have been around for a long time and have specs for describing features in a way that llm should be able to handle, but if all the part constraints were available it’s far faster to make accurately in Solidworks.
This is my experience too. I took a course a long time ago in design for manufacturing, and it became abundantly clear that just because you can conceive of an idea doesn't mean that you can build it. That requires a lot more work and technical know-how that isn't always put into books or other "training data".
I’ve tried getting Gemini to follow descriptions to generate a simple object in OpenScad.
I finally got it to do what I wanted.
But I’m much much faster and if didn’t have some amateur CAD experience, I don’t know I would have ever succeeded.
Just yesterday I had an LLM write an openscad module for generating a 2d rounded rectangle. It worked great! I then tried to get it to write a module to extrude a 2d shape into a 3d shape and it failed spectacularly several times before I gave up.
Interesting. I’m building a SaaS around this idea. And I managed to do things waaay more complex than that using LLMs. Especially “several times”. My AI can do a parametric trophy cup from one prompt in a couple of attempts, I would be shocked if it didn’t know how to make rectangular cube…
I'm a much more capable of designing useful models by programming than I am in using CAD software. The way I think about the construction of models is much more suited to standard programming techniques. I freely admit there is probably immense value in using the industry standard tools instead... I've printed a few projects now which I used OpenSCAD to design, and it went fairly well, and I'm confident in them. OpenSCAD is a bit of a PITA though.
I have no idea if this approach might gain traction over sketch-based CAD, I doubt it; yet this approach has a strong chance of expanding the space.
If there was a real possibility of folks being willing to use this sort of UI in industry, BRL-CAD would be far more popular, and writing AutoLISP scripts wouldn't be an obscure specialty.
Looks like a promising alternative to OpenSCAD.
Although am I the only one to notice the swastika in their logo?
If you look hard enough almost any 4 way rotation symmetry will result in a variation of swastika like shape. You would have to almost completely ban 4 way rotation symmetry to avoid it.
I personally find it unhealthy to actively search, extend and strengthen the association of hate symbols based on vague similarity out of context. Sure remember the crimes they have done and avoid the exact specific shape, proportions, color commonly used by the hate groups, but also take context into account. Don't promote them by giving them credit for things they didn't do. Don't let the hate groups win by allowing few dozen years of years of activity destroy thousands of years of cultural and language history and future for wide category of symbols and simplest geometric patterns. Don't erase words from common language. Don't let them make your life worse by self inflicted excessive censorship. Grow the good associations not the bad ones, dilute and take away the strength from hate groups instead of letting them take away common language from you. If you look at thousand year old budhist or ancient greek stone carving which uses one of the few dozen swastika variations and think those time traveling Nazis plastering their symbols all over the place they win.
When looking at children playing with paper pinwheel, is your first thought also they must be Nazi? When you look at cardboard box with 4 flaps overlapped on top of each other do you think Nazi?
With regards to other people speculation how this happened I doubt they intentionally tried to create a swastika, it just happens naturally when you use rotational symmetry. Looking at this logo I personally see the overall cross and spinning shape formed by positive space first. The image of swastika formed by negative space is kind of weak and clunky due to thickness mismatch created by curved rhombus. If they had used 4 overlapping squares or circles it would be more problematic, at that point a logo designer would likely stop and try to mixup things to get rid of it.
If you see a swastika there, do you also see it in the Python logo?
Personally I would not have seen a swastika here, but when looking for it, here it would be more obvious, the python logo has only half of it.
Still, questionable if it was intentional .. and if it was, does not necesarrily mean they are Nazis (they did not invent, but just used the old symbol).
Also this project was funded in part by the german Federal Ministry of Research, Technology and Space and they are not known to fund open Nazis in general.
Python logo actually has 3/4 of swastika. It's only one the vertical line that is missing.
> Although am I the only one to notice the swastika in their logo?
Possibly. Although I know it's the wrong way round to be a Nazi swastika, it's made all the more odd by the fact that this is a German project.
Maybe it could be Bauhaus inspired instead. (This isn't a serious suggestion, but if you're biasing your opinion based on their German origin, why not from the good stuff instead?)
It's probably just AI generated.