To be honest I don't want to see anyone elses prompts generally because what works is so damn context sensitive - and seem to be so random what works and what not. Even though someone else had a brilliant prompt, there are no guarantees they work for me.
If working with something like Claude code, you tell it what you want. If it's not what you wanted, you delete everything, and add more specifications.
"Hey I would like to create a drawing app SPA in html that works like the old MS Paint".
If you have _no clue_ what to prompt, you can start by asking the prompt from the LLM or another LLM.
There are no manuals for these tools, and frankly they are irritatingly random in their capabilities. They are _good enough_ that I tend to always waste time trying to use them for every novell problem I came face with, and they work maybe 30% - 50% of time. And sometimes reach 100%.
"There are no manuals for these tools" is exactly why I like it when people share the prompts they used to achieve different things.
I try to share not just the prompts but the full conversation. This is easy with Claude and ChatGPT and Gemini - they have share links - but harder with coding agents.
Imperial is more familiar to you. You could just have said that.
Everybody hates swapping between units of measurement. You pick one and stick with it. It's natural having the need to move between two measurement systems irritates you.
>I measure weather much more frequently than I measure water temps,
In cold climates water temp is actually the most important thing to know about the weather by a long shot. The freezing point tells you if it's wet or dry, slippery or non-slippery.
Speaking with over a decade of experience as a developer in industrial CAD (but still just one random guys point of view only). The question _isn't_ about the availability of a 3D kernel.
3D kernel is not the "moat".
You can cross that with money.
You can purchase a ACIS or Parasolid and you are off to the races. Or even use OpenCascade if you know what you are doing.
The more interesting question is: Ok hotshot, you have a 3D kernel, 10M of investor money (or equivalent resources).
What's your next move? What industry are you going to conquer? What are the problems you are going to solve better than the current tools do?
What's the value you provide to the users except price?
What are you going to do better than the incumbent softwares in relevant specific design industries?
Which industry is your go-to-market?
Etc etc.
The programmer's view is "I will build a CAD". The industrial user on the other hand does _NOT_ want a "general CAD software".
They want a tool with a specific, trainable workflow for their specific industrial use case.
So "if you build it and they will come" will require speaking to a specific engineering/designer audience.
You can of course build a generic tool (it's all watertight manifolds in the end) but the success in the market depends on the usual story about market forces. What's your go to market/beached. Does it enable you to move to other markets?
And the answer usually is - NO. You need to build the market share in _each_ domain separately.
The problem is that the industry doesn't really know what it wants.
The further you get from a "general purpose" tool toward a highly specialized yet "trainable" one, there's a very perceptible drop in quality. We're talking about god-awful software here, where if you click the wrong button, the whole thing crashes, or you finish clicking the 30 different things in 4 different "wizards" and it still doesn't work. And all for the low-low cost of about 0.25-1.25x the engineer's salary/seat (subject to audit)!
Just having a solid, open-source framework to build upon would have many positive externalities across the supply chain, similar to how open-source systems software allows innovation across the computing supply chain. There would be no AWS without GNU/Linux.
” The problem is that the industry doesn't really know what it wants.
”
I would argue they do. What we call ’CAD’ today - digital design of surfaces for manufacturing - originated in aerospace and automotive industries.
What they _want_ is to manufacture.
To manufacture they need designs as input.
The designs ultimately end up as
a) drawings
b) surface models for toolpath programming
c) 3D models for project coordination, validation, etc
They don’t actually care how many buttons you need to press as long as the final design is fit for purpose.
I agree CAD software is stereotypically not fun to use.
Also - there is a non-trivial population of CAD users who actually take pride in their skill to use these more or less broken tools. It’s some sort of weird masochistic/macho badge of honor.
My guess is optimizing the cost of design is not that interesting to anyone as long as a,b and c from above are fullfilled.
The engineers labour who needs to use the CAD tools is an insignificant percentage of the total cost in any case.
To understand why you need to dive into to the cost structures and value creation mechanisms as well as the culture in hardware.
To start with, in many fields the overall culture in hadrware is ”we sell the same junk as everyone else”.
”Just having a solid, open-source framework to build upon”
What’s missing from OpenCascade?
” There would be no AWS without GNU/Linux.”
Sure there would. Open source more or less copypasted existing industrial/academic patterns. But open source probably makes it cheaper and better.
There would no AWS without internet. Both as the protocol but also as the billions invested to the fiberoptic cables crisscrossing the worlds oceans.
The world is built on hardware. Hardaware is not _stupid_. But it’s _different_ than software.
To revolutionize CAD you first need to have deep understanding of the _hardware_ value chains and industrial methods. I think what makes it hard is _not_ having a kernel but having this cross discipline knowledge inside single org.
The existence of CAD/CAM/engineering software cartels like Dassault and Hexagon suggests that more rent-seeking than innovation is occurring, actively stifling innovation.
It would be like if Oracle, Broadcom, and Computing Associates owned 99.9999% of the software market.
Give good open-source tools to the people who are actually making the hardware, and there will be supply-chain-wide positive externalities.
Weeelll … it’s a 70 year old field if you start counting from NC. It’s also possible most of the low hanging innovation fruits were picked long ago. Also innovation required decades of _really hard work_ in applied maths (see nurbs or catmull-clarke surfaces*).
I’m not saying there isn’t room for innovation!
But we also have the examples of several other types of applications clearly reaching maximum utility. Photo editing around Photoshop 6.0 or so, word processing like decades ago, spreadsheet like decades ago.
Sometimes things _do_ seem to have their optimum form.
I’m not saying FOSS CAD would not have a value! But it’s not obvious to me it would be a vehicle for innovation.
I guess better, more easier to edit and robust surface presentation would be valuable if someone came up with them. But that’s a field that requires generally decades of applied research to first find a better model and then a decade of productizing the innovation.
So since you need to keep industrial mathematicians on board without certain outcomes it’s a bit same as medical research - need continuous investment, careers, etc. For this reason it’s not obvious to me there would be an open source framework that would work here predictably.
Again, I’m not saying you are wrong. Maybe there are simple low hanging fruit just waiting to be picked. But I’m not sure you are exactly right either.
* Catmull-Clarke surfaces are a great example. Ed Catmull founded Pixar decades after inventing the surface, but it took a decade of industrial research inside Pixar before they became a usefull tool (Geri’s Game). Toy story was still NURBs, somewhat ironically.
Could you share your thoughts on interesting and worthy development paths or vision for a universal FOSS CAD tool/framework? If you were leading a funded team, what goals would you set for the project and how would you achieve them?
To start with it can’t be universal. Models that you can edit (unless they are really dumb like DWG) are almost always domain specific.
You can - and should be able - to export to a universal format though.
But having a universal format is different than having a universal design space.
The requirments of a mechanical engineer are quite different from that of a structural engineer/and/or detailer for houses. And again different from those of a doctor planning a surgery based on CT model. For example you need rebars only in one of these. You need delicate fillet control only in one of these. You absolutely need support for import and visualization of volumetric data in only one of these.
What I’m getting at that while all design softwares have some common min set of features which _can_ be universal, the number of features in each stereotypical domain are surprisingly disjoint even if only comparing AEC and mech eng. Hence ”universal” design software would be a union of a very, very large set of totally unrelated features. Which suggests it would be hard to develeop, hard to use and hard to maintain.
So it’s better to have a collection of applications that aspire for ”universal scope” as a collection rather than ”one app to rule them all” which you will never get done in any case.
If we presume a hypothetical FOSS mission to enable computer design for all major fields benefitting from digital design for physical outcomes, it should then focus on this ”common min” core, interoperability (strongly linked to the common min core but separate concern - ie import and export) as well as domain specific projects of producing the domain specific UI and tooling.
I see your point about the scope, which is why I led with "framework" as a fallback in my question.
With that in mind, I'd be interested to hear your thoughts on what a practical FOSS implementation of such a framework might look like. Or at least a FOSS alternative to Fusion 360. Would you use ready-made geometric kernels, improve on existing ones (OpenCASCADE?), or start from scratch? Would you adapt to existing standard formats (import/export), or go with a new one? Would you build on FreeCAD, use another suite as a basis (source code if FOSS, or inspired UX/workflow if not), or do you see no point in that and think it would be better to start fresh? I was rather expecting a discussion along these practical lines.
I think the first question to tackle is _to whom_ is the program targeted at.
Who is the expert user? What are they building? What are the upstream and downstream application?
See, this is why this area is hard from software pov. It _looks_ like well specified engineering space - something like a network protocol - but actually what you have the engineering happens _in the engineers heads_ and in the organizations that use these tools and the tools that facilitate parts of the process and automate things that are practical to automate. All cad tools are closer to an excel sheet than a single well formed abstract syntax tree like a language grammar.
Now, Fusion 360 narrows down the audience quite a bit but also goes outside of my core expertise (which was in AEC). So I don't have good, detailed off-the cuff opinions here.
I can tell you what the _outputs_ are though. CAM (toolhead planning for CNC or slicing for AM), drawings, and 3D models for project coordination.
So, the question becomes - which of these workflows are we talking about. All of them? And for whom?
I know you specified "Fusion 360" but that is a product that is designed from the point of view of being a vendor-lockable commercial offering. It's really great there. I'm not sure the same package makes sense in FOSS sense.
"Would you use ready-made geometric kernels, improve on existing ones (OpenCASCADE?), or start from scratch?"
If one wants to export STEP then definetly use OpenCASCADE. If additive manufacturing is the target then STL or 3MF suffices and I would use Manifold library there as much as possible. 3D kernel is not the hardest part or even the most important (even thought it's hard and important).
If working in AEC then IFC export/import is a must (it's a schema extension on top of STEP).
"Would you adapt to existing standard formats (import/export)"
Standard formats if you want anyone to use the software for anything, ever.
"Would you build on FreeCAD, ... or do you see no point in that and think it would be better to start fresh?"
I would figure out first what the target user needs. Since CAD programs live in living, breathing industrial design ecosystems you can't really design one in isolation. Without knowing what the user needs and does you really can't answer that question!
If the aim is to offer a credible alternative to Fusion 360, then what you need to do is to make contact with an engineering office. Then you find their CAD manager, and figure out what their organizational parameters are for the CAD workflow. Does FreeCAD work for them? Why not?
If it turns out FreeCAD is perfect for their workflow then it's very likely there are other offices like that, and the FOSS project becomes just about FreeCAD support, education and evangelism.
And actually the key thing might be to design a process how to move the years and years of ongoing project data and models to this new platform. Industrial CAD is super sticky because you have decades of project data, billions of dollars of investment, and hundreds of peoples daily processes being supported by the specific quirks and features of these software.
Personally I'm _skeptical_ FreeCAD would be a drop-in replacememt but if my industry years taught anything is you need to _see what the user does_, analyze their workflow to first principles, then understand how to serve them.
Of course it would be _more fun_ to start from scratch. But the concept is not positioned as expression of personal creativity but pragmatic allocation of hypothetical FOSS investment with the intent of increasing industrial FOSS use and that's a _different_ thing than having a fun personal project.
Now, the above was from the point of view of "offering a credible industrial platform".
If the idea is not to offer a commercially credible alternative, but just to support something like hobbyists workflows for 3D printing, that is a totally different problem to solve, much more simpler, and likely much more fun.
Thank You. I think a lot of what you wrote can equally be applied in other industry as well. Software dev thinks from the outside they are all the same but in reality they have near nothing in common.
There are common parts and stuff that is totally different.
For example the core parts in graphics and geometry are always familiar wether you work in games, vfx or what ever CAD industry.
But then all the wrapping around those core concepts vary quite a lot, and in terms of mass of complexity and code are drowned by all the domain specific stuff.
I guess what I mean is that if the likes of huge defence contractors / automotive industry etc put weight into developing a open kernel and tooling at a volume similar to that of paying for licenses to Autodesk, then they could build their own hyper focussed CAD solution, and the rest of us could be "off to the races" without the upfront cost ACIS or Parasolid.
A huge contractor in the defence and automotive industries does control an open kernel and CAD tooling: OpenCascade is owned by CapGemini. And they do build focussed CAD solutions in it (e.g. SALOME and other tools.)
Several open source CAD packages use it(FreeCAD, Cadseer, Dune3D, SALOME Shaper, KiCAD, CadQuery/Build123D, DeclaraCAD etc.)
There are firms using it for bespoke naval and aerospace applications.
The reality is CAD kernels are incredibly difficult, multi-decade projects, and part of the issue is a lot of the domain expertise in them is literally dying off or retiring.
” The reality is CAD kernels are incredibly difficult, multi-decade projects, and part of the issue is a lot of the domain expertise in them is literally dying off or retiring.”
Well, they are complex but not impossible. I understand for example zoo.dev just wrote their own.
I also understand tinkercad and womp wrote their own geometry solvers.
Not sure how to compare the above with OpenCascade (since, like you said, it’s pretty complex & public and the others are not public) but at least one can accurately say ”you can absolutely write a 3d modeler from scratch”.
” rest of us could be "off to the races" without the upfront cost ACIS or Parasolid.”
Just start coding your CAD tool dude if you want to! You can totally start with OpenCascade.
All these kernels do is they
1) define tensor product surfaces (usually NURBs) with trimming curves
2) join these surface patches to watertight solids
3) export STEP (non-AM) or STL (AM)
The question is which hardware manufacturing path is the one you know so well you know what the important things are?
And the dirty secret here is that the 3D is _not_ the hardest part (it’s hard sure). You soon end up with schema management and database management as well as domain model challenges that are quite complicated. The main problem here will be that you can’t just start coding without knowing where you end up. You need to know _every step_ or you will end up in a quagmire that is no better than existing tools (slow, buggy). It’s totally doable but the total complexity will be non-trivial and the decisions you make year 1 will come haunt you and bite you in the ass year 5. Be prepared!
And for those coming outside to this - I’m not being glib! A 3D design tool totally can be a one man show to start with (see NomadSculpt, Plasticity or MagicaVoxel for example).
” I guess what I mean is that if the likes of huge defence contractors / automotive industry etc…”
I’m not sure what you are getting at.
These companies created what we call CAD starting from the 1950’s or so (research Parson’s NC work at MIT, Bezier’s work later at Renault if you want a wikipedia tour of the early years).
The current industry isn’t shaped like this because Dassault, Siemens and Autodesk decided to go all incumbent. They were more or less pushed to do so by market forces and industrial history (and if it was not them some other company would be the incumbents).
Yes. This better explains on the one hand Plasticity (Parasolid-based CAD largely for graphic designers, games designers, filmmakers) and on the other SALOME (OpenCascade-based CAD for numerical simulation/FEM/multi-physics etc., being developed for/by energy-related organisations.)
Some people think that they should devote their time and energy to solving hard problems in order to make the world better, that is, on things that matter.
Very few succeed, for it takes seeing oneself as serious enough to be able to do something that so many have failed to accomplish, but critical enough so as not to succumb to the illusion of grandeur. Beside that, the work on that hard problem should feel like a hobby, not like a job, else a burnout is inevitable.
I can't speak for "people in general" but I know someone who only likes expensive, competitive hobbies. And since this person is not rich, they refuse to start any of them because they think there's no point in trying if you can't be the best at it.
I would argue that this sounds more like a job than a hobby, but then again, I also stopped playing MtG because I got tired of losing against people with deeper pockets than mine.
You're thinking of a world where people would still use a computer with a webcam pointed at their face while doing video calls. For me personally, I'm seeing a world where the headset is all that we need. So no, Persona is not a stopgap solution, it's an end in itself, and in its current state it's already pretty damn good.
Actually I'm thinking of a world where the masses accept an AR headset once it's as light as typical eye glasses. And before most people have these, the calls will be video. But I would be happy to be wrong!
I can imagine for certain niche use cases it really is the killer app though. Like couples in long distance relationships, certain kinds of consultants etc.
For production scenarios data like that usually has a hefty license fee. Hence it’s interesting to find methods for scene generation from data that is cheaper to acquire.
You’d be surprised what GIS - or at least GIS - adjacent customers want. If you think about any cute-but-useless map detail that comes to your mind there is likely a paying customer for it.
To be honest I don't want to see anyone elses prompts generally because what works is so damn context sensitive - and seem to be so random what works and what not. Even though someone else had a brilliant prompt, there are no guarantees they work for me.
If working with something like Claude code, you tell it what you want. If it's not what you wanted, you delete everything, and add more specifications.
"Hey I would like to create a drawing app SPA in html that works like the old MS Paint".
If you have _no clue_ what to prompt, you can start by asking the prompt from the LLM or another LLM.
There are no manuals for these tools, and frankly they are irritatingly random in their capabilities. They are _good enough_ that I tend to always waste time trying to use them for every novell problem I came face with, and they work maybe 30% - 50% of time. And sometimes reach 100%.