you're joking because of the other frontpage story with Gemini 3 hallucinating hacker news 10 years in the future, but still lets keep the hallucinations to that page.
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.
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.
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. At least in my experience.
I've never come across STEP though, is that a real design parameter preserving file format?
STEP doesn't preserve all of your design intent (sketches etc.) but it does preserve the geometry (edges, vertexes, faces). So it is a lot easier to work with it because it is lossless and precise. Curves are curves, not quantised/faceted.
So in our image processing analogy, it is still in a sense a "flattened" representation of the layers, but it's a vector format. The best way to think of it is broadly like a 3D SVG, I guess.
3D printer slicers (except maybe Cura without a paid add-on) can usually load STEP now, but they are still internally meshing before slicing. I think Orca/Bambu/PrusaSlicer all give you some control over that meshing (they all use OpenCascade to do it, in fact).
In FreeCAD you can do things like defeaturing, so if you have a hole in a rounded plate, you can delete the hole, you can delete corner-rounding. You can also break STEP files down to faces and use the surface/curves tool to work on them, or use them as a BaseFeature for a Part Design Body, etc.
This is a pretty useful video for showing the differences:
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.
I agree. So many disparate solutions. The streaming sql primitives are by themselves good enough (e.g. `tumble`, `hop` or `session` windows), but the infrastructural components are always rough in real life use cases.
Various streaming processing frameworks often have domain specific languages with a lot of limitations of how to express aggregations and transformations.
Yeah I have a feeling something like polars for streaming would be super popular and useful, but it just hasn't happened yet. It's much easier to just do say kafka and a long running python script and write out the transformations by hand, than it is to use anything on the market right now. None of the current streaming processors want to be embedded as far as I can tell, that's not where the money is. They all want to be paid to run it in the cloud for you and follow that vc playbook model. Which, fair! I do think there's a lot of space out that isn't being occupied though and I hope somebody tries to fill it soon.
(As an aside, feldera doesn't want to be embedded into your app, materialize either, and clickhouse might just pull a great streaming library out from nowhere, they seem to be good at just doing stuff like that).
I think slow writes are not a major concern, as most databases already use some fast log-type data structure to persist writes, and then merge/save these logs to a higher-capacity and slower medium on specific events.
You'd still need to implement any custom selection widgets, data transformations (like other statistical tests) etc. still missing, but i like the technical design to build on top off. It uses https://github.com/observablehq/plot under the hood, which aims to have just as flexible a grammar as ggplot (already quite capable) but with interactive features (built by the creator of d3 and uses it under its hood).