3 ms·
The answer is somewhat technical so bear with me. tl;dr solid modeling is O(n^3) Computer graphics, which is what most games require, is largely a solved probl
by kaib 15y ago
The answer is somewhat technical so bear with me. tl;dr solid modeling is O(n^3)
Computer graphics, which is what most games require, is largely a solved problem. An iPad or a WebGL browser is easily able to run most games from a few years ago without sweating too much. However, to model physical objects you don't just need a graphical representation, you need what's called a solid geometry kernel. What the kernel does is give you the ability to do boolean operations on two solid objects, something Tinkercad does with every editing operation. The problem is that these operations are computationally extremely complex, fundamentally O(n^3).
When I say we use a 100 core cluster I specifically mean that many operations use the whole cluster. So if a single operation you make in Tinkercad takes 200ms of cluster wall time you might be using 10s of CPU time. And the code we run on the servers is optimized and vectorized Go/C++ code, easily 10x faster than anything you could do in Javascript. A second consideration is that we use gigabytes of memory to do each operation, which gives us the advantage of much faster running times. So when you compound these, instead of having to wait a second for your operation (depending on where you are located) a Javascript version would take minutes or hours for every operation.
The kernel we have is unique, it is written from scratch for Tinkercad. As far as we know there is no equivalent even in the high end professional tools.