Hacker News new | ask | show | jobs
by elcomet 252 days ago
Can you explain more? Which things are impossible in blender
3 comments

Spiritually, Blender is to FreeCAD what Gimp is to Inkscape or what BMP is to SVG. With Blender you're massaging piles of anonymous polygons so they look right aestheticallY, while with CAD you're composing geometric primitives to make a precise blueprint for a 3D object that just happens to be rendered with polygons. The former is better for art while the latter is better for manufacturing.
Any there any open CAD file formats that lay a foundation for describing this kind of 3D data without classic triangles?
A .step or .stp file encodes the model as mathematical shapes, rather than approximating it with polygons, but it doesn't save the entire parametric workflow or history, only the final result. As far as I know, there is no widely adopted file format that also saves this information.
Parent's comparison is pretty great, but it shouldn't be "overdone". It's not really the format that's different/a problem (it's not hard to make a blender object from a CAD design - the same way an SVG can be rendered to PNG, and similarly irreversible in both cases), it's the whole design flow.

CAD uses geometry primitives with parameters and exact sizing (e.g. you draw a rectangle of this size, and cut a whole into it this and this offset from one of the corners, and you expand this shape to 3D). As mentioned this can be approximated via geometry nodes, but they are very different in "ideology".

For architecture, there is Industry Foundation Classes (IFC). IFC is a standard for describing building. FreeCAD supports this natively. There's a tutorial here: https://yorik.uncreated.net/?blog%2F2025%2F002-nativeifc-tut...

Blender has and extension for IFC called Bonsai. https://extensions.blender.org/add-ons/bonsai/

CAD modeller are good at producing parametric 3d models. You can make use of spreadsheets and constraints to create a piece, that will later super easily be changed.

https://en.wikipedia.org/wiki/Constraint_(computer-aided_des...

> CAD modeller are good at producing parametric 3d models

If that's the only thing they do better than Blender, then it sounds like their days are numbered. Has to be more benefits right? Blender exposes a pretty wide Python API, loading spreadsheets ends up pretty simple, and together with Geometry Nodes, you can even visualize it in a way that makes somewhat sense. Constraints been existing for a long time in Blender too.

They are better at it on a fundamental level. It’s a completely different approach for data representation, offering precision and repeatability which is not possible with Blender's data model.

Blender may as well replace CAD apps in the hobbyist 3D printing space, but it will never replace them in the industry and professional work. Solid modeling CAD software commonly features more than just creating mathematically precise digital 3D objects, but also planning for CNC machining, FEM analysis, assembly and so on.

> It’s a completely different approach for data representation, offering precision and repeatability which is not possible with Blender's data model.

How exactly? And why not?

You need useful measurements/units, reproducibility, parameters, constraints, and I guess something more? As Blender can give you those things, it's not impossible in Blender. Want to have 3D objects automatically created based on values from CSVs together with constraints? Blender can already do that today, just as one example.

I don't really mind if Blender has a chance of replacing CAD apps or not, more curious about why exactly people find it so fundamentally impossible for Blender to be a useful alternative, and I have yet to hear any convincing arguments.

An analogy is the difference between vector and bitmap graphics.

CAD programs aren't just a different set of operations on the same data, they use an entirely different representation (b-rep [1] vs Blender's points, vertices, and polygons).

These representations are much more powerful but also much more complex to work with. You typically need a geometric kernel [2] to perform useful operations and even get renderable solids out of them.

So sure, I suppose you could build all of that into Blender. But it's the equivalent of building an entire new complex program into an existing one. It also raises major interoperation issues. These two representations do not easily convert back and forth.

So at that point, you basically have two very different programs in a trenchcoat. So far the ecosystem has evolved towards instead building two different tools that are masters of their respective domains. Perhaps because of the very different complexities inherent in each, perhaps because it makes the handover / conversion from one domain to the other explicit.

1. https://en.m.wikipedia.org/wiki/Boundary_representation

2. https://en.m.wikipedia.org/wiki/Geometric_modeling_kernel

> CAD programs aren't just a different set of operations on the same data, they use an entirely different representation (b-rep [1] vs Blender's points, vertices, and polygons).

So with that in mind, there should be something that is possible to build in CAD, but impossible then to build in Blender?

I know the differences between the two, I understand they're fundamentally different, yet I seem to be able to produce similar results to others using CAD, so I'm curious what results I wouldn't be able to reproduce in Blender.

Any concrete examples I could try out?

I don’t have explanatory knowledge on the matter, sorry.

If you are interested you may look up the difference between solid, surface and mesh modeling. They all have strengths and weaknesses.

Ultimately you have to translate any model into a lossy representation/approximation due to discrete numerical control requirements and so on. However, the gist if it is, with mesh modeling this happens earlier in the design process. Even with procedural and parametric modeling in Blender, you will always encounter issues with approximation and floating point precision, which are inherent to the data representation.

For 3D printing that often doesn’t matter, because mesh approximation is precise enough. For hobbyists, CAD apps are kinda too niche and bothersome to be worth learning for simple models in 3D printing. The overall versatility of Blender and basic CAD-like capabilities are much more valuable and rewarding, in this space. In the end, you probably massively benefit from learning something like Blender anyway, because it’s much better suited for quickly conceptualizing an idea in 3D, than CAD. I think CAD works best, if the shape and specs of the object are already known. Organic shapes, clay-like deformations, which can’t be easily reduced to mathematical defined solid body functions, are something where Blender will always be better suited than CAD.

>Even with procedural and parametric modeling in Blender, you will always encounter issues with approximation and floating point precision, which are inherent to the data representation.

A common problem people run into with CAD models is importing a STEP file and modeling directly off of geometry in it. They later find out that some face they used as a reference was read by the CAD package as 89.99999994 degrees to another, and discover it's thrown the geometry of everything else in their model subtly off when things aren't lining up the way they should.

And that's with a file that has solid body representation! It's an entire new level of nightmare when you throw meshes into the mix.

The heart of any real CAD package is a geometry kernel[1]. There are really only a handful of them out there; Parasolid is used by a ton of 'big name' packages, for example. This is what takes a series of descriptions of geometry and turns it into clear, repeatable geometry. The power of this isn't just where geometry and dimensions are known. It's when the geometry and dimensions are critical to the function of whatever's being modeled. It's the very core of what these things do. Mesh modeling is fantastic for a lot of things, but it's a very different approach to creating geometry and just isn't a great fit for things like mechanical engineering.

1 - https://en.wikipedia.org/wiki/Geometric_modeling_kernel

If you try OpenScad-style adding and subtracting volumes, the syntax is pretty horrific. It is impossible to script objects that way. Quote Gemini:

  However, implementing a full OpenSCAD-like syntax and robust CSG system from   scratch in Blender Python is complex due to Blender's mesh-based nature versus OpenSCAD's mathematical description. Blender's boolean operations on complex meshes can sometimes lead to topological errors.
To be fair though, OpenSCAD works best too if you do this during the generative step and not after the fact. I've used it to remix existing STLs so it definitely does work but you really have to watch the areas where two shapes get close to each other, especially if there is a lot of fine detail.
Did I solve all problems that OpenSCAD might have? Compared to FreeCAD. Me myself think I did: https://youtu.be/eG5lhLYvihQ?si=yA00IYVU4_Zemdxi