Shape Machine

Kurt Hong and Athanassios Economou
2019

Keywords: Shape Grammar Interpreter; Shape Grammars; Computer-Aided Design; Design Automation; Visual Indexing; Algebras of Shape

The Shape Machine is a new computational technology that fundamentally redefines the way shapes are digitally represented, indexed, queried and operated upon. By allowing users to draw shape rules rather than write them in a programming language, it provides a robust and disruptive technology for engineers, computer scientists, designers, students and educators, and in general academics and professionals who use drawings and visual models to develop and communicate their ideas. Significantly, the Shape Machine is the first software that manages to solve the subshape recognition problem in vector graphics and the first one to perform the operations with shapes envisioned by the academic community since the early seventies.

The current working prototype is implemented in Python as a plug-in within Rhinoceros 5 from Robert McNeel and Associates and includes three proprietary modules: shape representation, shape recognition, and shape modification, all for straight lines and arcs under Euclidean transformations. The software allows users to program custom functions by drawing shapes instead of writing code in a programming language.

The intellectual property of the Shape Machine software technology is solely originated by and contained within the team consisting of Kurt Hong, Athanassios Economou, James Park and Heather Ligler, and all technical specifications pertaining to the maximal line representation of shape are protected under a pending patent application at the US Patent and Trademark Office (USPTO) – “Shape Computational Technology”, No. 62/831,919. The provisional application was filed by Troutman Sanders LLP on behalf of the inventors and the Georgia Tech Research Corporation (GTRC) and it was officially received by USPTO on April 10th, 2019.

DrawScript

Kurt Hong
2019

Keywords: Programming; Scripting; Shape Grammar Interpreter; Shape Grammars; Computer-Aided Design; Design Automation

DrawScript is a radically new environment to learn and do computation! DrawScript does programming with shapes and it be extended in a complete scripting language where if/then statements, loops, conditionals and so forth can be entirely declared in terms of shapes and visual symbols. In shape machine a line of code is literally a line or an arrangement of geometric lines!

Grape

Thomas Grasl and Athanassios Economou
2016

Keywords: Shape Grammar Interpreter; Shape Grammars; Computer-Aided Design; Design Automation; Visual Indexing; Algebras of Shape

The challenges for designing a general-purpose parametric shape grammar application are numerous. Several accounts in the literature focus on technical and/or expressive characteristics of interpreters including underlying computing language, subshape recognition, the dimensionality of shapes, and so forth, or the tasks for programs that implement shape grammars, for example, generation, parsing, and inference tasks and their interactions with CAD modelers. And still other accounts focus on usage in design, including general interpreters versus specific domain applications, schematic design versus design development, industrial strength interpreters versus proof-of-concept applications, and so forth.

The work here presents a new general parametric shape grammar interpreter, code-named GRAPE, that uses graph grammars to carry out computations on graphs that encode maximal representations of shapes. We argue that what distinguishes the application from other applications in the field is that emergent shapes and general parametric rules are both supported – while fully acknowledging that parametric subshape recognition is NP-hard.

Graphs are a popular choice for representing the structure of shape. Typically, graphs are seen as multidimensional data structures that, with an appropriate embedding, can formally structure and visually resemble the shapes they represent. Still, the encoding of shapes in terms of these alternative graph representations is not straightforward. Various approaches to representing shapes as graphs have been attempted in the past but none has managed to provide a viable and useful solution for a shape grammar interpreter. The resulting formalism here uses two parallel representations, a graph-theoretic one that is used for the subshape detection, and a visual one that illustrates the shape and which can be tested for intersections. The implementation presented here also maps the shape rules into graph rules. Once a rule has been selected, matching subgraphs are mapped back to shapes for further user interaction, such as picking a shape to which to apply the rule. The shape grammar library has been implemented in C# and it is code named GRAPE to affectionately recall the parallel representations of ‘GRAph’ and ‘shAPE.