SolidWorks:Heard! – CAD On The Cloud

I was supposed to take part in a round table discussion on “CAD on the Cloud” held by Lou Gallo, but could not make it [Friday night boozing session got in the way ;-)]. Lou has written about the discussion on  his blog along with a link to the audio.

One of the topics discussed was 3D graphics and how quick and responsive it is going to be when CAD starts running in the Cloud and not on your desktop. I’d like to make a quick comment on that. When you load a 3D solid model in your CAD system what you are actually seeing on your screen is a 3D render mesh, basically a bunch of colored triangles. So you may wonder what will happen if you are working on a large assembly which is represented by a million triangles. Every time you perform a modeling operation you will need to download a million new triangles which your client application running on your desktop will then render on your screen. Obviously this is going to create a tremendous amount of lag which will leave you twiddling your thumbs while you wait for the million triangles to be download before you can run your next command. Either that or the CAD on the Cloud solution will need to use some kind of screen scraping technology. By screen scraping, I mean that the server will need to render an image of the model in the Cloud and send it to the client running on your desktop which displays the model on the screen. While sending an image may sound faster than sending the vertex coordinates and colors of a million triangles, screen scraping is undesirable for a number of reasons. One of them being that the server will need to create a new image ever time you move your mouse to navigate around the model, or show or hide parts, display cross sections, etc. Basically anything that needs a graphics window refresh now.

This is how Spatial is approaching the problem. The 3D model as well as the software that works on it is runs on their server in the Cloud. So the first time you load your model, the client running on your desktop will need to download the million triangles. Now suppose you add a blend to an edge. This alters the topology of the model, but only in the vicinity of the concerned edge. This means that a new face is added (the blend itself) and say four faces are changed due to the introduction of the blend. The server sends only the triangle data associated with these five faces to the client, which may amount to say about 100 triangles in all. The client deletes the triangles associated with the four faces (not five because the blend is not yet added to the model on the desktop) and plugs in the new faces into the million triangles already sitting on the desktop. This way, over a fast internet connection, the time lag will be virtually non-existent. Of course, if you trash the model so much in one operation that the server needs to send you half a million triangles then it probably would result in a time lag.

Thought I’d just mention this here.