So why is your CAD slow? Because it’s not using all your CPU cores, right?
No.
Let me debunk the “CAD is slow because it’s not multi-core” myth and explain how to build an exceptionally, mind-blowingly, crazy fast CAD. 👇
So what are the typical issues that make your CAD slow? There are two main reasons:
1. Wrong assumptions made by the software engineer.
2. Computational geometry is inherently difficult, and computers struggle with parametric surfaces and curves.
Let’s elaborate on these.
1. Wrong Assumptions
Software engineer thinks: “Oh, this list will never contain more than a few hundred items; it’s perfectly fine if I use this O(N^2) algorithm.”
User does: “Let me just use this feature in a completely unexpected way and fill up that list with 4,500 items.”
CAD does: Takes 17 seconds to respond to a click.
Solution: The software engineer replaces the algorithm with an O(log(N)) algorithm.
Another example:
Software engineer thinks: “It’s totally impossible that a few hundred bodies would need a lot of memory.”
User does: “Let me just load these super funky bodies with 98 super complex spline surfaces each and create a nice little pattern with 200 bodies.”
CAD does: Allocates 46 gigabytes of memory, swaps it out to background storage, and crashes the entire operating system.
Solution: The software engineer finds a more efficient way to tessellate funky spline surfaces and implements Level of Detail (LoD) and smarter memory management.
Of course, similar issues are typically the source of slowdowns in most software. The problem with CAD is that these issues are more common because users (rightfully) expect unlimited scalability, and geometry computations often produce some really extreme corner cases. The solution is to always assume that everything will be 100x larger than you expected, do everything incrementally, cache everything, be very smart about memory management, and expect the worst. There is no such thing as too many octrees. This is the exact kind of behavior that most software companies would consider over-engineering, but you simply can't over-engineer a CAD system.
2. Computational Geometry is Hard
Parametric surfaces and curves are extremely hard to process, and very hard math problems are very common in this domain. That means geometry kernels need to perform a lot of computational geometry magic that simply cannot be parallelized (not because we are not smart enough, but because that’s how math works) and can take a lot of time to finish in some corner cases. When the performance issue comes from the geometry kernel, it’s usually due to poorly handled corner cases, a strange combination of surfaces, unusual tolerances, or something similar. A fast kernel is fast because, over decades, all of these corner cases have been addressed one by one to ensure the kernel is almost always fast.
But let’s say you just know math better than the rest of the world. You figure out how to make everything 16x faster on 16 cores. How much faster is your CAD going to be? If you have an exceptionally well written CAD, then it’s ~3-4x total. Why? Because even in the most computationally heavy use cases, no more than 70% of the processing time is spent in the kernel; the rest is application-level code.
So what is the solution?
1. Use a really good kernel, or reinvent the representation, and replace b-rep with something better, like implicits.
2. Always expect the worst, assume very large data sets, and implement your algorithms accordingly.
How do I know this? Because we are working on making Shapr3D the fastest CAD in the world. We are already blazing fast, and in less than a year, by most benchmarks, we’ll become the fastest. Exciting times.
Well, people often ask me how we achieved our insane product velocity. It's a cultural thing: action > bureaucracy. 46 minutes from reporting the issue there is a 5x performance improvement. Goes into production with the next release. @shapr3D team is the best.
Some behind-the-scenes insider information about the upcoming parametric history release...
Work on adding History-Based Parametric Modeling to Shapr3D started approximately a year ago, and we are getting very close to launching it publicly. 1/
Coming soon: the Shapr3D visual refresh 🚀
All your tools pop more for quicker recognition. Frequently-used tools live grouped by function right by your fingertips.
Enjoy the same uninterrupted design with quicker access and speedier modeling. Details⬇️
https://t.co/xXk5es13Jp
Join us for our Multidevice Showroom Event and live Q&A.
On September 13 at 7PM CEST, be among the first to see how Shapr3D gives you the freedom to design seamlessly across the devices you prefer. Register now: https://t.co/EhqxskrCBb
I was looking forward to hearing a practical, real-world crypto use case from a prominent web3 investor who explained how borrowing against your house as an NFT would work in the future.
4 minutes later, it turns out it would never work any different than it already does today.
Really good thoughts by @danluu about how underrated tenure is. I agree with him.
My thoughts in tenure, as shared last year in a piece about promotions, answering the question to job hop to get promoted or stay.
Weigh tenure as well, especially as you gain more experience.
In-person meet alert! Join @chrija & @istvan_csanady in Budapest Apr 21 for a fireside chat on scaling from Europe to the US and what's around the corner in SaaS.
Ending the evening talking software and startups, how could you say no? 👀 Apply here: https://t.co/x3yAS9ayqf
Why is tech hiring the way it is - focus on coding, stressful interviews etc?
For big tech: the answer lies in constraints. They won't change the process: both because of these, and also because it works well enough.
A huge opportunity for startups to do something different.
🥁🥁🥁drawings are coming to @Shapr3D next Monday.
This is the biggest release since 2017, the first Parasolid version. And the implementation is 🤩, the team has done an excellent job. Creating drawings will be fun again. Can’t wait to show it to you.
https://t.co/Dbe3o7CZjM
This is a big one.
You can now use Craft with local / iCloud storage.
Your data will never touch our servers.
Also, significant search & toggle list improvements.
https://t.co/1xkIOml9l9
If you do any kind of writing, on Mac or iOS, I urge you to try @craftdocsapp
It's such a wonderful writing experience, unlike anything I've tried before. The ease with which I can take parts of my test and refactor them into new notes and articles is 🤩
It's the real deal
1/ In case you were wondering: Apple's replacement for Intel processors turns out to work really, really well. Some otherwise skeptical techies are calling it "black magic". It runs Intel code extraordinarily well.
@balintorosz has been obsessed with building a mobile first productivity app since 2010. With @craftdocsapp he has finally turned that obsession into something really magical. Congrats to the whole team!