In Part 10, I claimed “the future of CAD is cooperative”. This might seem obvious, but one look at current ongoing difficulties reveals the magnitude of the non-cooperative problem. It’s an inconvenient fact of life for too many of us and the reason I spent so much time examining the ongoing shift in the CAD industry; a shift which is arguably a result of efforts to circumvent artificial barriers and market reactions arising from those efforts. However, having spent a fair portion of that time discussing two of the three roadblocks – data portability and proprietary formats – I want to briefly touch on the third: extensible semantics.
Before I start, however, let me first preface this section by stating that I know only enough about this topic to be aware I don’t know very much. Assuming you know less than I, let me share what I think I know and invite those with expertise to comment.
The Future of CAD is Semantic
By “semantics“, we mean the elements of meaning, and thus understanding, within communication. And 3D models are nothing more than a different form of communication based on mathematics and coordinate systems.
If I create a house using a CAD application, almost anyone could identify the elements by sight: walls, windows, doors, etc. Suppose each of those elements were tagged appropriately – “wall”, “window”, or “door” – such that the system also understood their function. Furthermore, imagine those 3D representations behaved within the context of their meaning, their function, because the system understood what it is they represented. For example, attempting to put a 3D thing tagged “window” on a floor might raise a system alert: “Are you sure you want a window to the dirt underneath?” The system understands that windows belong on perimeter walls; not on floors.
A good example of how a 3D modeler might use semantics is the soon-to-be-released videogame Spore where different creature parts – feet, hands, mouths, eyes, aso – understand what it is they are (most likely by virtue of the category from which they are chosen). You can see the system in action in the following video:
Notice how the drag-n-drop “eye” knows it’s an eye; the “leg” knows it’s a leg. The resulting creature doesn’t try to see with its foot or walk using its eyes, which may sound stupid but let’s not forget that computers are stupid. They only know what we tell them. And my very expensive, high-end CAD application isn’t even as smart as this relatively cheap videogame.
Now watch the following video and imagine such functionality were built into our CAD applications; imagine those “foreign elements” both understood their own function and were tagged such that another CAD system understood that function as well:
Let me provide an example. Imagine that the reinforced boss in the above video (the first bit of geometry selected and moved from one CAD application to the other), understanding its proper function, immediately upon placement searches the parent model for the necessary complementary geometry (perhaps nothing more than a protruding post on another component, or maybe a hole cut in a mating part through which a screw is inserted). Upon finding no complementary geometry, the boss flashes red and sounds an alert: “Boss #2039 has no suitably functional complementary geometry.” At that point the designer could make the changes shown in the video; changes that may or may not have been made without the element alerting the designer to potential problems.
A boss is relatively simple, so imagine scaling this kind of intelligence up to more complex components. Imagine instead dragging and dropping an entire plumbing system onto a virtual house, or an automatic transmission into a virtual car. Imagine designing a car in CAD and then going to the websites of different engine and transmission suppliers where 3D models of their products could be downloaded and dropped into that virtual car just like the legs on that Spore creature. This is the potential power of semantics.
The Future of CAD is Extensible
By “extensible“, we of course mean the ability to extend. Consider the Internet’s “markup languages”. HTML has pre-defined elements; you can’t just create your own. On the other hand, XML, or extensible mark-up language, allows anyone to define their own elements.
The Extensible Markup Language (XML) is a general-purpose specification for creating custom markup languages. It is classified as an extensible language because it allows its users to define their own elements.
Combining these two ideas, “extensible semantic” capabilities would allow the definition of new semantic types in the same way that XML allows new element types.
For example, imagine someone is designing a house and using whatever pre-defined semantic tags come with the CAD application being used. Now imagine the design incorporates “interactive tiles” (i.e. when someone steps on the tile, it reacts by glowing or making a sound or triggering an alarm or whatever). But the CAD application, for whatever reason, has no tag for such a component even though you can go out and buy them today. With an extensible system, the designer could create a custom tag as necessary. This would ensure that the full functionality of the component is communicated across systems and the virtual interactive tiles are properly triggered during simulation just as they would when deployed in the tangible world.
Even more compelling is when designers can invent entirely new components and assemble them in lock-block fashion with existing elements. This would be the equivalent of my being able to model something entirely new outside of Spore‘s 3D modeler yet still be able to drop it onto a Spore creature and have the system recognize it as having the functionality with which I’ve tagged it (i.e. I could tag my new model as “legs” but perhaps they’re actually wheels, and the Spore engine would attempt to use them as legs, or rather, as a means of locomotion).
With all three barriers removed engineering concepts could be generated much more quickly and with greater confidence than they are today. Such tools could potentially usher in an innovation Renaissance. We might even witness advancements on par with the widespread adoption of part standardization in the late 19th and early 20th century; the birth of whole new industries and the emergence of unique business models alongside them. However, I doubt we’ll see such inter-operative, extensible semantic-based systems any time soon. Short-term returns rule, and there are plenty of legitimate and not-so-legitimate problems with which to contend.