Variational Direct Modeling
My attention was first drawn to the term “Variational Direct Modeling” (VDM) at the ODA World Conference in Leiden. Dmitry Ushakov, the CTO of LEDAS, briefly mentioned VDM in his presentation on LGS. LGS stands for LEDAS Geometric Solver. They have a 2D as well as a 3D version of their solver called LGS 2D and LGS 3D respectively. Like everyone else, I too come across new acronyms every day. But something about VDM and LGS struck me and I promised myself to one day figure out what exactly they were.
As it turns out, while working on another project, I happened to get involved with LEDAS and Dmitry Ushakov in particular. Through my interactions with him I got to know a little more about LEDAS and what they were up to. I have a special affinity for companies like LEDAS because they remind me of how I got into the CAD software business. LEDAS is basically a Russian outsourcing company, quite similar to most Indian software companies. Its income is mainly from providing software development services, just like I started out in 1999. Some wise guy once said, “If someone is hungry, instead of giving him fish, give him a fishing rod“. That’s the reason I decided to dump outsourcing as my main source of income sometime in 2001 and decided to develop and market off the shelf products. Instead of depending on someone to give me work, I decided to create my own work. Outsourcing is a good thing, but relying completely on it is not exactly a wise thing to do. And that is precisely what LEDAS appears to have realized as well. They are now taking their income earned through outsourcing and investing it to develop something called VDM, something they hope will earn them a place in the CAD software component business. CEO David Levin tells me that LEDAS has already a created a revenue stream from LGS decent enough to maintain its development and support team and even extend LGS development.
There are a couple of things I admire about the Russians. First is their vodka and second is the way they write complex mathematical software. Of all the people I have outsourced to, I prefer Russians and it appears that even PTC thinks likewise (see this). Anyways, LEDAS has developed LGS, a robust and efficient geometric solver which they claim can solve thousands of simultaneous equations in a jiffy. They have already wrapped their 2D solver as a DRX plug-in for Bricscad, thereby giving it a geometric constraint system like AutoCAD 2010. LEDAS has other plans for their 3D solver, and that is to add Direct Modeling capabilities to 3D CAD systems. They have already done it for SketchUp and Rhinoceros in the form of Driving Dimensions plug-ins for both these CAD systems. See www.drivingdimensions.com
So what exactly is Variational Direct Modeling? If I give you the complete technical explanation, I am pretty sure you will move to the next item on your reading list. So this is going to be more like a “VDM for Dummies”. I think the best way to explain VDM is by example, the example in this case being the Driving Dimensions plug-in for Rhino. You may want to check out this YouTube video first.
Basically, the user creates a solid in Rhino and applies some geometric and dimensional constraints to it. When the user modifies these constraints and asks the plug-in to update the solid, the VDM system takes over and does its thing. First it automatically creates constraints for all the faces, edges and vertices of the solid. Basically, it specifies which vertex needs to stay connected with which edge (coincidence) and which edge needs to stay connected with which face (again coincidence). Then it creates constraints for features that it finds such as concentricity of cylinders and spheres, parallelism or perpendicularity of faces, etc. Finally it adds the geometric and dimensional constraints added by the user. The net result of all this is a long list of simultaneous equations which is fed to LGS 3D to be solved. LGS 3D also receives as input the faces of the solid in their untrimmed form. It then solves the full set of constraints between the untrimmed geometry and computes movement of each face, both translation and rotation. These new face positions are then fed to Rhino’s modeling kernel which recreates the new solid. There is a great deal more that happens, stuff which even I do not completely understand. But basically, it is all math, very complex math. As of now, VDM does not support pattern-based features, but they intend to do so in the near future.
So how is this different from history-based parametric modeling? Its actually quite different. Unlike history-based parametric modeling which creates features and satisfies constraints in a sequential manner, VDM takes all the constraints, puts them in one big bucket and solves them all at once. But is VDM different from the new Direct Modeling stuff that we have been seeing in SpaceClaim, Synchronous Technology, Fusion and the stuff that was there before them? No post on this blog would be complete without a bit of controversy. So here goes. Dmitry claims that in August 2007, he wrote a white paper explaining how VDM could be used in Direct Modeling. Six months later Siemens announced Synchronous Technology, a history free modeling system that preserves features. Dmitry figures that Synchronous Technology is the same as setting geometric and dimensional constraints between various elements of a solid, just like VDM, and is basically a combination of the features of the Parasolid modeling kernel and the DCM geometric constraint solver, both belonging to Siemens.
I am not sure what Dmitry is suggesting here and neither do I want to get into it. But from I understand the CTO of this Russian outsourcing company is saying that his company has effectively created something quite similar to Synchronous Technology. Frankly, I am not surprised. LEDAS is headquartered in Akademgorodok which is a world-famous educational and scientific center in Novosibirsk, Western Siberia. Akademgorodok has 35 research institutes of the Russian Academy of Sciences which have more than 5,000 scientists. LEDAS claims that the Novosibirsk State University which is located in Akademgorodok and which is one of the leading Russian universities in Mathematics, Physics and Biology, has around 6,000 students and is a “unique source of highly qualified workforce” for them.
As PTC would agree with me, all you need to make great software is a bunch of vodka-drinking Russian mathematical geniuses. The problem is that just like tea-drinking vegetarian Indian programmers, vodka-drinking Russian mathematical geniuses may find that marketing their wonderful software to the western world can be quite a challenge.