Conference PaperPDF Available

Capturing And Visualising Parametric Design Flow Through Interactive Web Versioning Snapshots

Authors:

Abstract and Figures

Design can be described as an exploration of options diverging and converging towards a final result. In the digital realm this process usually happens by copying a design file and continuing to make modifications, creating additional new or different files for different designs. However often design files are simply overwritten and hence the history of how a certain design is established is gone. Hence design flow exploration is rarely tracked systematically. This is an issue when designers what to retrieve a previous design or we want to learn about the development process after the fact. In this work, a workflow tool for familiar users of Grasshopper and Karamba to enable parametric structures to be tracked in a similar way to Git and Github. A custom plugin for Grasshopper allows the user to save/'push' the current design state as a 3D model and parametric information together with additional model data, values and notes to the cloud with a single action. Using this, a designer can choose intermittently to save the state he/she found important to be recorded. A branching mechanism is also developed to accommodate different designs a project could have. All recorded options and data is visualised in a graph/flow like manner and can be explored through a web. We foresee this tool to help understanding the flow of design exploration better in a project and serving as a clearer communication channel across different actors in the team.
Content may be subject to copyright.
Published in: Proceedings of the IASS Annual Symposium 2017
Interfaces: architecture . engineering . science
September 25 - 28th, 2017, Hamburg, Germany
Annette Bögle, Manfred Grohmann (eds.)
Copyright © 2017 by Verina Cristie and Sam Conrad Joyce
Capturing And Visualising Parametric Design Flow Through
Interactive Web Versioning Snapshots
Verina CRISTIE*, Sam C. JOYCEa
* Singapore University of Technology and Design
8 Somapah Road Singapore S487372
verina_cristie@mymail.sutd.edu.sg
a Singapore University of Technology and Design
Abstract
Design can be described as an exploration of options diverging and converging towards a final
result. In the digital realm this process usually happens by copying a design file and continuing
to make modifications, creating additional new or different files for different designs. However
often design files are simply overwritten and hence the history of how a certain design is
established is gone. Hence design flow exploration is rarely tracked systematically. This is an
issue when designers what to retrieve a previous design or we want to learn about the
development process after the fact. In this work, a workflow tool for familiar users of
Grasshopper and Karamba to enable parametric structures to be tracked in a similar way to Git
and Github. A custom plugin for Grasshopper allows the user to save/’push’ the current design
state as a 3D model and parametric information together with additional model data, values and
notes to the cloud with a single action. Using this, a designer can choose intermittently to save
the state he/she found important to be recorded. A branching mechanism is also developed to
accommodate different designs a project could have. All recorded options and data is visualised
in a graph/flow like manner and can be explored through a web. We foresee this tool to help
understanding the flow of design exploration better in a project and serving as a clearer
communication channel across different actors in the team.
Keywords: Conceptual design, version control, design exploration, dashboard
1. Introduction
Exploration via constant iteration, modification and refinement is the core of any design
process. In the recent years, we have seen more works are being developed to understand the
flow of iteration of exploration and refinements by managing the alternatives. Erhan et. al.
(2014) [1] developed a tool to manage multiple design alternatives, allowing users to create
designs through in-built sketching tool and to compare it against one another. Terry et. al (2015)
[2] developed a system to manage design alternatives together with in-built generative system
to produce designs. Tsunoda and Sakai (2015) [3] brought the idea of exploring alternatives to
the crowd and created a web application for people to create their 3D house design using
WebGL (Web Graphics Library) platform. In showing the flow of the design from one iteration
to another iteration, a tree diagram is created adopting parent-branch paradigm much like the
process in Github [4]; a software code repository platform where differences are tracked from
one version to another.
2
Similarly, [5] and [6] have also explored the paradigm of change tracking, branching and
versioning in the field of engineering and parametric design. Both mentioned the usefulness of
versioning and merging especially in collaborative practice. In revising user interface, for
example, changes are tracked, and annotations and alternatives are displayed [7].
In addition to a versioning mechanism, it is useful to have multiple views and types of views
such as geometry or data values that complement each other to understand the whole design
better. Several designs can be shown altogether in a gallery like panel showing results of variety
of parameters [8][9]. In [10], we noted a Grasshopper component used for viewing and selecting
multiple design instances predominantly used for Interactive Genetic Algorithm.
With the web technology, design could also be shared easier, be it in the form of 2D or 3D. A
design gallery system has been developed [11] to share design from Grasshopper to the web
upon click in 2D image and its parameter information. Examples such as [12] and [13]
demonstrated how a 3D parametric mesh model from Grasshopper could be shared online real-
time and audience can interact with it for an effective presentation. In [14] a mechanism is
created for transferring data between different software through the web such that
computational designer, technical director, architect, consultant engineer, project manager, and
BIM manager can collaborate seamlessly.
In this work, we created an interactive snapshot tool in Grasshopper that will also work with
Karamba to capture design state in parametric structure design. Taking account of having
versioning system, multiple views, and interactivity and connectivity (harnessing web
technology), design flow of a project is now to be explored with a clearer understanding and
inviting an ease of collaboration.
2. System Architecture
There are two main components of the work developed in this paper: (1) Client component
where designers use a custom grasshopper component to record the design state (design
snapshot) and send it over the web, (2) Server component – the system which manages project
repositories and is able to receive version data sent by the client, but one which is also able to
serve webpages where users can view their saved states.
The server was implemented in Node.js a popular open-source and cross-platform choice for
running server-side scripts in JavaScript due to its asynchronous nature which means a faster
processing and scalable web. As it can be used to run scripts before sending the webpage to
clients, webpages served are dynamic (created on request rather than static) and hence it allows
for flexibility in customising. In this work, Node.js is used to process design states data and
serve data in the versatile JSON format via web API, as well as serve html pages of the project
views via http as per user need.
3
Figure 1: Design Exploration Web Page as a tool to view design snapshots and discussion with other team
members
3. System Description
3.1. Grasshopper Plugin Script
Using C# component of Grasshopper (GH), we created a protocol that will send the current
components in the document to the server upon will (toggling of true/false button or even at
every update of the GH model). The script component will also accept a 3D mesh model input
and send the mesh model information to the server. In addition, user key in additional
information passed as values or text through the panel will also be sent.
Each time this is sent it interacts with a versioning mechanism. For every new design a GUID
is provided, but users are able to give a name and description for the design. The first save is
appended with the start index 0. Upon every subsequent save to the cloud, the script will also
create a local copy and increment the index number. Should a user choose to branch the design,
the branch toggle input is set to true. Every subsequent design process will then be saved from
this branch. Should the user want to continue the previous design, he/she can go to the local file
saved in his/her computer and continue from that file. For every successful save on the server,
the panel on GH document will print the information of the last version saved on the server.
Version history is saved in the server database for versioning integrity.
3.2. Design Flow Exploration Graph
Flow Exploration Graph works in twofold manner. Firstly, it helps a designer to understand the
wide view current and past state of the design exploration, especially in the case where many
branches are created often during the early ideation stage. Typically, each branch represents a
discrete and differential design option with a version the progression or evolution of a prior
design. As the design progress and resolves we also see the convergence and pruning of the
branches as opinions and preferences are developed. Secondly it allows a structure and way of
navigating and accessing data about individual design options by allowing each option
represented as a single data point which can be selected accessing an individual view on an
option.
4
Figure 2: Grasshopper Plugin Script with attached mesh information and notes. Data is being sent to the server
upon pressing save button.
3.2.1. Project Model Tree Generation
To save the design states in the server, MongoDB Database is used. Each collection in the
database represents a whole project, and may contain many documents as each design state
recorded from client is saved as an individual document in MongoDB. The number of
documents then represents the number of design states saved. Each design state is called a node,
with every node containing a reference to the parent node. The information of the parent is sent
together with other design information from the client. With the parent information, a tree
representing relationship between the nodes then can be maintained. This tree information is
converted to JSON format and sent to the client for visualisation on request.
3.2.2. Project Model Tree Visualisation
Once the tree information is received on the client, it can visualised using a web page view
using the D3 data visualisation library. This representation shows each model node as a point
on the tree and the ‘hereditary’ relationships shown as links on the left of a node for parents
and right as children. Figure 3 shows an example of a small project model tree, with child
models as well as branching.
3.3. WebGL 3D Model Viewer
Mesh models produced by Grasshopper can also be sent by the custom component to the server
in the format of vertices list, faces list, and vertex color list. For compatibility with WebGL they
are converted to all triangular faces. The WebGL mesh geometry data structure then will build
the vertices and faces list, while the vertex color is attached as the material. Both material and
geometry are attached as one object, and the mesh model then will be rendered into the 3D
space using a certain setting of camera and light. Using WebGL a user is then able to interact
with the 3D model to have a better understanding of the design through the browser. The user
can rotate and zoom in/out the 3D model with their mouse.
5
Figure 3: Main page showing design flow and the exploration of design
3.4. Grasshopper Document Viewer
A grasshopper document sent to the server can be visualised to support the understanding the
design. A designer can then relate how the geometric mode (mesh) is produced as the result of
the whole parametric system. A toggle is available for the user to activate each grasshopper
viewer and model viewer. Both views complements each other. A script extracts the list of
components in the grasshopper document together with the position (x,y) of the components
and the connection between the components, where each input parameter source in a component
can be traced to a parameter output in another component. Scalable Vector Graphics (SVG) is
then used to reconstruct visually the parametric system on the web, a rectangle element for each
component, and a path element for each connection.
4. Use Case Example
An example of this tool is shown using Figure 3 demonstrating the usage of this tool. An
initial model was created producing a simple UV mesh with four segments in U direction V
direction was created using GH components (uvMesh0). Kangaroo components were then
added to optimise the shape of the mesh under selfweight, these curve elements can be seen in
the next model (uvMesh1). Then a model development by adding Karamba components were
beam elements can be seen (uvMesh2). Next, the user wanted to explore the design by
changing the number of U and V components. As such, branch toggle was activated and a
branch is created. The new design with six segments in U direction and ten segments in V
direction was saved (uvMesh3). From here on, the user continues refining the number of U
and V segments (uvMesh4, uvMesh5). Each save point can be examined interactively on the
web. Figure 5 shows the progression from uvMesh0 to uvMesh2.
6
Figure 4: More information about the model is shown upon choosing an individual model. WebGL interactive
viewer (centre panel of each page) allows user to understand more of the design by viewing from different
angles. Panel on the right top of the model shows user inputted information inputted.
5. Conclusion and Future Work
In this paper, we have introduced an interactive recording and visualisation tool that is aimed
to capture and visualise parametric design flow process in Grasshopper. The benefit of using
Grasshopper is such that we do not add extra overhead for a designer to learn and use another
software to record, and Grasshopper is a system many designers use to create parametric
designs. Harnessing web technology, the snapshots can be accessed from anywhere by anyone
without having to install additional software. Other than serving as a backup place for the
designs, the web also has become an easier way of presenting to clients and point of discussion
for team members of the project. The flow visualisation, interactive model viewer and
grasshopper document viewer had been demonstrated to complement each other to understand
the flow of design.
7
Figure 5: For each snapshot sent to the server, the grasshopper document is also saved. User then can browse
through the history and observe the progress of the grasshopper model. Top-left: Original UV mesh components,
top-right: UV mesh with Kangaroo components, bottom: UV mesh with Kangaroo and Karamba components.
To ensure the restricted access of the parametric design states for the team members, a user
account system will be added to the web tool. In doing so, it will also enable multiple designers
to work on the same design project and to choose which snapshot he/she would like to continue
to work on. Another layer in the dashboard that will show all the projects within a certain team
also needed for the team to navigate between projects. In additional, we could also consider
saving the differences between design states instead of saving a full design state in the server
to save the memory space and probably a more efficient access.
This could be extended further to be used not just to passively consume data about project
model development but also to provide two ways interaction at the web level to obtain feedback
on the design, this social element could help to provide a ‘social’ level on top of the versioning
one in the same way as Github is able to support project team interaction on top of the base Git
versioning system.
8
Acknowledgements
The authors would like to thank Singapore University of Technology and Design, especially
President Graduate Scholarship fund by which this research is made possible.
References
[1] Kolarić, S., Woodbury, R. and Erhan, H., 2014, June. CAMBRIA: a tool for managing multiple
design alternatives. In Proceedings of the 2014 companion publication on Designing interactive
systems (pp. 81-84). ACM.
[2] Sakai, Y., and Tsunoda, D., 2015. Implementation of Decentralized Version Control in Collective
Design Modelling. In Modelling Behaviour (pp. 383-395). Springer International Publishing.
[3] Zaman, L., Stuerzlinger, W., Neugebauer, C., Woodbury, R., Elkhaldi, M., Shireen, N., and Terry,
M. 2015, April. Gem-ni: A system for creating and managing alternatives in generative design. In
Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems (pp.
1201-1210). ACM.
[4] Preston-Werner, T., Wanstrath, C., and Hyett, P.J., 2008. Github, accessed 12 January 2017,
<https://github.com/>
[5] Aish, R., 2000, June. Collaborative design using long transactions and ‘change merge’. In Promise
and Reality: State of the Art versus State of Practice in Computing for the Design and Planning
Process18th eCAADe Conference Proceedings, Weimar, Germany (pp. 107-111).
[6] Burry, J., and Holzer, D., 2009, January. Sharing design space: Remote concurrent shared
parametric modeling. In Proceedings of the 27th eCAADe Conference (pp. 333-340).
[7] Hartmann, B., Follmer, S., Ricciardi, A., Cardenas, T., and Klemmer, S. R., 2010, April. D. note:
revising user interfaces through change tracking, annotations, and alternatives. In Proceedings of
the SIGCHI Conference on Human Factors in Computing Systems (pp. 493-502). ACM.
[8] Terry, M., Mynatt, E. D., Nakakoji, K., and Yamamoto, Y., 2004, April. Variation in element and
action: supporting simultaneous development of alternative solutions. In Proceedings of the
SIGCHI conference on Human factors in computing systems (pp. 711-718). ACM.
[9] Marks, J., Andalman, B., Beardsley, P.A., Freeman, W., Gibson, S., Hodgins, J., Kang, T., Mirtich,
B., Pfister, H., Ruml, W. and Ryall, K., 1997, August. Design galleries: A general approach to
setting parameters for computer graphics and animation. In Proceedings of the 24th annual
conference on Computer graphics and interactive techniques (pp. 389-400). ACM Press/Addison-
Wesley Publishing Co.
[10] Harding, J., 2016. Design Space, accessed 2 February 2017,
<https://github.com/johnharding/DesignSpace>
[11] Mohiuddin A., Woodbury R., Cichy M., Mueller V., and Ashtari N. 2016, December. A design
gallery system. Elsevier preprint, accessed 6 July 2017,
<https://www.academia.edu/31759296/A_Design_Gallery_System>
[12] Core Studio, 2014. Platypus, accessed 2 February 2017,
<http://www.food4rhino.com/app/platypus>
[13] Stefanescu, D. A., 2015. Speckle, accessed 2 February 2017, <https://speckle.works/>
[14] Flux, accessed 2 February 2017, <https://flux.io/>
... To record parametric design exploration states, the Grasshopper Plug-in GHShot has been used and extended. GHShot is a tool developed by the authors and allows for versioning of parametric model state or 'snapshot' to a cloud repository with a single button action (Cristie andJoyce, 2017, 2018). Each snapshot of parametric design exploration consists of its: (i) Grasshopper parametric design definition (as an XML), (ii) identified and named input parameters and/or performance values that designers choose to save, (iii) 3D mesh geometric representation, and (iv) designer's notes. ...
... GHShot [8][9][10], was developed as a versioning system for Grasshopper Parametric Modelling software. GHShot stands for Grass-Hopper Snapshot; the idea was that designers could send the snapshot of their design (design version) easily to the cloud as their design progress. ...
Article
Many design versions are produced during design exploration. However, these versions are typically maintained manually often using an individual's self-determined logic, and thus hamper design workflow when a specific file cannot be located, similar ideas and mistakes revisited, or even loss of a potentially good design direction. These issues, in contrast, have been effectively addressed in software engineering by using a versioning system. In this work, we propose that integrating a versioning system into parametric design exploration workflow provides following benefits: (1) version control, (2) cross-iteration versions comparison, (3) feedback platform, and (4) design project analytics. A computational design workshop facilitated with our customised cloud-based ver-sioning tool revealed student's positive responses of versioning as a personal documentation and group collab-oration tool.
... To understand this design process better, a time-dependent analysis is critically needed. Prior work by authors (15,16,17) has demonstrated how this time-dependent design progression data can be captured. This paper aims to investigate and develop frameworks to understand this data better. ...
Conference Paper
Full-text available
Despite the plenty of data collected through collaborative design exercises in pedagogy settings, very few of these data were utilized for further studies. This occurrence is in contrast with the software development settings where software repositories are often mined to find insights on programmer’s software building pattern. In this work, we implemented exploratory time-series data analysis through design versions data collected from a parametric design workshop of 44 students in groups of five. A framework to discover design change pattern through in-between change count was developed. The result revealed three different change patterns the group exhibit: premature fixation, constant change, and last-minute work. Finally, it is found that constant change pattern corresponds to higher instructor-given final design computation score, as students were encouraged to explore sufficient design ideas in the workshop.
... In this paper, we introduce GHShot, a web-based 3D Design Versioning System, an extension from our previous work on a system for capturing and visualizing parametric models [1], that aims to (1) streamline design creation process by connecting design softwarein this case Grasshopper (www.grasshopper3d.com) to the web, allowing users to upload their designs at any point they want, and (2) enable collaboration between different groups of stakeholders as they interact by viewing, downloading, and giving feedback through the web interface. ...
Conference Paper
Full-text available
During the process of design, copies of files are often stored to track changes and design development or to ensure that previous work will not be lost. In software design field, such process is supported using versioning system, where source code is saved intermittently when features are added or modified for individual or group use. We argue that similar versioning system will also benefit the design community when applied to 3D design files, to see how their designs progress and collaborate. In this paper we outline a implemented web based open ecosystem allows designers to similarly collaborate but with a lower bar for adoption than comparable software versioning system. Our system is to be applied to a classroom setting, where architecture students learn to make structural designs; they are then able to see, modify, and give feedback to each other's work.
Article
We present BPAlt – a system which allows game developers to create and manage alternatives for Unreal Engine’s Blueprints Visual Scripting System. BPAlt allows the user to create, save, organize and swap Blueprint alternatives for rapid testing and experimentation. BPAlt also supports level alternatives, alternatives of alternatives through alternative scenarios, and allows merging of alternatives. We conducted a preliminary user study with 10 moderately skilled participants where we compared the usability, usefulness and creativity support of BPAlt to Unreal Engine alone for prototyping alternatives of game objects and mechanics in four different games. The findings suggest that the support for alternatives with the main features of BPAlt is beneficial in the game developers’ workflow as it supports exploration particularly well.
Conference Paper
Game development is a naturally iterative process where many ideas are tested and prototyped before final decisions are made. Given the increased usage of visual scripting systems in game development recently, it is apparent that these tools must be able to support every aspect of this process. One aspect that is not well captured is the exploration of alternatives. SuBViS was developed as a solution to this problem. It is a visual scripting system for exploring parallel ideas in game development through the use of alternatives at graph and node levels. These two levels of exploring alternatives can be combined or used separately. This paper presents a use case example, which demonstrates how SuBViS can improve workflow and communication between team members. It also discusses a small-scale user study and the results obtained therein. SuBViS was developed on top of Unreal Engine's existing Blueprint Visual Scripting system.
Conference Paper
Full-text available
The complexity of many problems necessitates creating and exploring multiple, alternative solutions. However, current user interfaces do not cleanly support creating alternatives at a time when they are likely to be discovered: as users interactively modify data. This paper presents Parallel Paths, a novel model of interaction that facilitates generating, manipulating, and comparing alternative solutions. In contrast to existing approaches such as automated history capture tools, Parallel Paths emphasizes the active, simultaneous development of multiple, alternative solutions. We demonstrate this model of interaction in Parallel Pies, a user interface mechanism developed for image manipulation tasks that allows users to: easily create solution alternatives as they interact with a command; embed the alternatives in the same workspace; manipulate the alternatives independently or simultaneously as if they were the same object; and perform side-by-side comparisons of each. Results from an initial evaluation are presented, along with implications for future designs.
Chapter
Although the work of Architecture is fully collaboration involving different kinds of specialties with a wide range of consults, Architectural tradition shows that designers still work independently, without clear intension to exchange ideas in design. This view can be derived from what architects uses as tools for design. Attempts to collaborative spatial design have followed since the advent of the internet, yet modern CAD systems still lack a decentralized version control which is crucial to multiuser participation. On the other hand, software development is rapidly changing its process, influenced by the movement of social networking. Today numerous open source programs are developed by the collaboration between vast varieties of people who never meet physically. As a result, the evolution of software resembles the form of nature having different versions and functionality. Moreover, software development can be interpreted as a scientific method where each study increments its knowledge balancing citation and new ideas. Studies achieve reputation from the number of citations as much as the innovativeness. To integrate this accumulation of knowledge in the field of spatial design, it is necessary to measure the difference between alternatives, and clarify what was added and deleted. This study is based on a web application (http:// lmnarchitecture. com) which implements the same technology that present software development stands on. The web application was exclusively developed as a browser based 3D modelling site to create simple dwelling like volumes using webGL. Within those plans, the system calculates the resemblance between the models utilizing an algorithm that computes the difference between texts. This algorithm called “Diff” is actually used in a decentralized version control system for software development called GIT. It calculates which line of code was added and deleted throughout the edit. In this study, the models are converted in a format that can run this algorithm to gain the similarity ratio. The system requires the users to choose one model that already exists, and calculates the resemblance in real-time. As a result, a tree diagram is collectively achieved with each having the link of inheritance. In GIT, this action is called forking, which copies and edits the existing program and creates a new branch to solve different demands. An evaluation method is concurrently running inside the web application, exchanging points between the “parent” and “child” models accordingly to the calculated similarity ratio gained by the users. The system is distinct to poll systems for achieving collectiveness, involving users to be designers and evaluators at the same time. Along with the anonymous user participation, an automated design generator (bots) was implemented to investigate man-machine collaboration. As a result, 1750 models were submitted to the database between 3 months of experiments. Analysis showed near half of the time users inherited a model different from what they have previously submitted, and 23 % of the submitted models were inherited a machine generated model.
Conference Paper
Interaction designers typically revise user interface prototypes by adding unstructured notes to storyboards and screen printouts. How might computational tools increase the efficacy of UI revision? This paper introduces d.note, a revision tool for user interfaces expressed as control flow diagrams. d.note introduces a command set for modifying and annotating both appearance and behavior of user interfaces; it also defines execution semantics so proposed changes can be tested immediately. The paper reports two studies that compare production and interpretation of revisions in d.note to freeform sketching on static images (the status quo). The revision production study showed that testing of ideas during the revision process led to more concrete revisions, but that the tool also affected the type and number of suggested changes. The revision interpretation study showed that d.note revisions required fewer clarifications, and that additional techniques for expressing revision intent could be beneficial.
CAMBRIA: a tool for managing multiple design alternatives
  • S Kolarić
  • R Woodbury
  • H Erhan
Kolarić, S., Woodbury, R. and Erhan, H., 2014, June. CAMBRIA: a tool for managing multiple design alternatives. In Proceedings of the 2014 companion publication on Designing interactive systems (pp. 81-84). ACM.
Gem-ni: A system for creating and managing alternatives in generative design
  • L Zaman
  • W Stuerzlinger
  • C Neugebauer
  • R Woodbury
  • M Elkhaldi
  • N Shireen
Zaman, L., Stuerzlinger, W., Neugebauer, C., Woodbury, R., Elkhaldi, M., Shireen, N., and Terry, M. 2015, April. Gem-ni: A system for creating and managing alternatives in generative design. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems (pp. 1201-1210). ACM.
A design gallery system
  • A Mohiuddin
  • R Woodbury
  • M Cichy
  • V Mueller
Mohiuddin A., Woodbury R., Cichy M., Mueller V., and Ashtari N. 2016, December. A design gallery system. Elsevier preprint, accessed 6 July 2017, <https://www.academia.edu/31759296/A_Design_Gallery_System>