Research at Simon Fraser University
These are some of the research projects I have done as part of my Ph.D. and as a research assistant at Simon Fraser University.
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.
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.”
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.