Programming in the Model (PIM): A new scripting interface for parametric CAD systems

2010-2014

Programming, often called scripting, has become a key feature in most CAD systems and an equally key area of expertise in CAD. However, programming surrenders many of the benefits of direct manipulation and introduces notational elements that are cognitively distant from the designs being created. In addition, it creates barriers to use and is often perceived as being too difficult to apply. We introduce Programming In the Model (PIM) through a prototype, implementing live side-by-side views, multi-view brushing and highlighting, live scripting, auto-translating from modeling operations to script and localized relational information within model windows.

A qualitative user study confirms PIM’s features and raises issues for future development. A key result is the need for multi-directional extreme liveness, that is, maintaining consistency of action across views at the smallest possible scale. We argue that PIM principles are applicable in textual and visual programming alike.

To see a demo of PIM, please watch this and this.

Design patterns for parametric modeling

2007-2008

I was fortunate enough to be involved in Rob Woodbury’s design patterns project, where I contributed to the development of some of the patterns, using Generative Components to create examples of the user of the patterns in parametric models. The work was later published in Rob’s Elements of Parametric Design book. The following description of the project is from his’s website.

“Experts use their experience of solving problems in the past to build on and create new solutions in new situations. Such experience is part of what makes them experts. Some of these reusable solutions can be expressed in what are known as design patterns. Patterns express design work at a tactical level, above simple editing and below overall conception. The Elements of parametric design website provides the parametric modeling community with well-crafted examples of reusable code. By explaining the motivation, context and details of the code, it enables people to more effectively learn parametric modeling systems and to build larger and more complex models with confidence.”

Application of parametric modeling to traditional Persian Rasmi domes

2007

Geometry has long been a generator of architecture. In traditional Persian architecture, Rasmi domes project a drawing onto a predefined 3D geometry. In fact, the word ‘rasmi’ and the verb for drawing in Persian have the same linguistic root. Projection is readily done in manual drawings or conventional CAD programs. From a constraint perspective, the dome is constrained by the drawing and the 3D geometry. If the latter constraint is replaced by invariance of distance on the original drawing, a class of domes results, but members of this class cannot be computed conventionally. Class members are developable from a planar layout of triangles, which is, in turn, generated by a simple drawing rule. This yields a parametric structure of four parameters. Three determine the initial planar diagram. One determines configuration. Further, domes in the class are mechanisms: they are not fully specified by the constraints and parameters. We develop the geometric constraints representing the location of the defining points of a dome and present a goal-seeking algorithm to solve the constraints within a propagation-based parametric modelling system.