178_full
178_full
net/publication/369626132
CITATIONS READS
0 79
1 author:
Praneet Mathur
Independent Researcher
1 PUBLICATION 0 CITATIONS
SEE PROFILE
All content following this page was uploaded by Praneet Mathur on 30 March 2023.
Praneet Mathur1
1
Founder, ARPM Design and Research LLP, Gurugram, India
1
Co-founder, iiterate Technologies GmbH, Adenau, Germany
1
praneet@arpmdesignandresearch.com, praneet@iiterate.de
ORCID https://orcid.org/0000-0001-7152-2541
1. Introduction
Tools built for creative use are commonly developed by the users themselves. For
instance, an Architect’s toolbox would consist of instruments that aid his/her creative
process. Some architects may prefer to design with sketches, while others may prefer
to build massing models with foam-board. Different projects would also demand
different types of tools and workflows. Antoni Gaudi's hanging chain model
CREATIVE IMPACT OF AN EVENT-DRIVEN VISUAL
SCRIPTING TOOL
(Dragicevic, 2012) is a popular example used to illustrate one of the earliest parametric
tools used for architectural design.
Visual Scripting Tools (VSTs) like Grasshopper3D (GH) and Dynamo have
enabled parametric design and positively impacted users' creative agency (Husein,
2020) (Lee, Gu, & P.Williams). Community-built software plugins have further
expanded the capabilities and flexibility offered by such VSTs over time. Furthermore,
for most creative professionals, learning how to use visual tools like GH seems more
approachable than learning programming languages (Victor, Learnable Programming,
2012). It empowers the user to program geometry in a way that aids their design
process. However, most VSTs come with various limitations.
The solution presented in this paper aims to address some of these limitations and
evaluate their impacts.
Based on the findings in Table 1, it can be concluded that none of the more popular
VSTs fulfil all of the following conditions:
● No parent software package
● EDP capabilities
● Turing-complete by design
● Extensible with popular modern programming languages
● Built for general purpose programming
language like C#, capable of replacing such a language for many common uses.
Reactive Programming: Programming in the VPL should allow reactive
programming; computing the flow of data and event streams in real-time.
REPL GUI and CLI: Programs written in the VPL should be capable of execution
in a Read–Eval–Print Loop (REPL) cycle with stable exception handling.
Turing-Complete: The VPL should function as a typical Turing-complete
programming language.
3. Solution Implementation
The solution implemented for this paper is a standalone, EDP VPL that is Turing
complete by design, natively extensible (using .NET C#) and built for general purpose
programming. The project was given the name "Verse3".
CREATIVE IMPACT OF AN EVENT-DRIVEN VISUAL
SCRIPTING TOOL
Following the MVVM pattern, each Comp contains pre-compiled instructions that can
be accessed by the Core Pipelines. Figure 2 illustrates the parts of a Comp and their
various functions & purposes. These different parts (computation, rendering and VST
interaction) are accessed by the VST core to manipulate or compute each comp.
CREATIVE IMPACT OF AN EVENT-DRIVEN VISUAL
SCRIPTING TOOL
Each comp in a script contains information about its computation and rendering order.
This information is accessed by the core pipelines and VST interface to compute and
render the comp (as shown in Figure 3).
The following toolkits were implemented as 14 libraries with 117 comps, for testing
purposes: Boolean, Code, Color, DateTime, Events, Interop, Data, Math, Rhino3DM
(Brep, Curve, Surface and Vector), Text and Type.
4. User Studies
User studies were conducted with a diverse group of 26 users. The following
summarized test-case studies are based on a selection of the most typical examples of
scripts built by them during observed testing.
4.1. CASE A
Script description: A debouncing script for an input number slider (also shown in
Figure 4).
Script author description: Experienced AEC technology professional.
Script features: The script is written in a way that checks whether the input value
lies within a selected range, before passing it to the debounce logic. This demonstrates
the user's ability to kitbash various logic and processes with the VPL to describe their
intended behaviour.
Script critique: It does not have any obvious usefulness as an AECO tool, but
could be a part of a larger script for processing real-time analogue or network data. The
script's function could also be consolidated as a single comp in the Data toolkit.
Author feedback: The libraries provided were missing many comps that the
author was looking for (e.g., Range/domain functions, event stream functions like
delay, etc).
CREATIVE IMPACT OF AN EVENT-DRIVEN VISUAL
SCRIPTING TOOL
4.2. CASE B
Script description: Live countdown timer for multiple dates with a time-zone selector.
Script author description: Post-graduate Architecture student.
Script features: It can show the user simultaneous countdowns for multiple
timestamps. Changing the time-zone input also adjusts the countdowns accordingly.
Script critique: It's a simple script which could be useful as a project management
utility or a personal event tracking tool.
Author feedback: The author praised the user interface for selecting the date inputs
and the intuitiveness in programming real-time interactions with data.
4.3. CASE C
Script description: Recursively drawn randomized lines made using an event loop.
Script author description: Computational designer.
Script features: The event loop is used to generate lines recursively, each starting
from the point where the previous line ends. This creates a chain of lines that grows
from a starting point.
Script critique: Adding a 1 second delay before drawing the next line animates the
output geometry, revealing how they are drawn. While the output is not very visually
interesting, the author was successfully able to program simple recursive geometry.
Author feedback: The author was unable to explore other types of recursive
geometry due to the lack of geometry modification comps (e.g., geometry
transformations, deconstruction, etc).
4.4. CASE D
Script description: Simple geometric explorations
Script author description: Software engineer
Script features: It produces a simple scene in Rhino using basic 2D and 3D
geometry constructors.
Script critique: There is very little computational logic in the script. It comprises
of various geometry constructors and input parameters to adjust the output.
Author feedback: The author thoroughly enjoyed the Rhino interoperability
feature, but did not show much interest in the other capabilities of the application, only
wishing for more geometry-related features.
5. Conclusion
The tested implementation lacked many crucial utilities and functionalities for more
powerful test-cases with a focus on creative or AEC applications. However, it led to
some useful insights.
Users with an AEC or creative professional background (little to no prior
programming experience) engaged with the application as a programming tool, using
events and non-visual data types more frequently than working with geometry.
On the other hand, users with prior programming experience showed more interest
CREATIVE IMPACT OF AN EVENT-DRIVEN VISUAL
SCRIPTING TOOL
in the visual aspects of the application - the graphical UI and the ability to
programmatically generate 3D geometry.
Some users were unable to intuitively use the application without assistance. This
was a result of multiple bugs and missing features, which hindered the user experience.
The ability to script event-based logic was useful to most users (80%), and did not
seem unintuitive or difficult to work with. These users also agreed that event-driven
programming has a positive impact on the creative agency offered by the application.
The survey also indicated that after using the VST, 76% of them would prefer to
use a VPL as powerful and capable as a typical CLI language.
Further development and refinement of the implemented VST is needed for
drawing a more definitive conclusion on the value imparted by an event-driven VPL.
The project source-code for the VST (Verse3) is available publicly on GitHub:
https://github.com/iiterate-de/Verse3
References
contributors, W. (2022). Event-driven programming. Retrieved from Wikipedia, The Free
Encyclopedia.: https://en.wikipedia.org/w/index.php?title=Event-
driven_programming&oldid=1091160231
contributors, W. (2022). Homoiconicity. Retrieved from Wikipedia, The Free Encyclopedia.:
https://en.wikipedia.org/w/index.php?title=Homoiconicity&oldid=1109757100
contributors, W. (2022). Total functional programming. Retrieved September 16, 2022, from
Wikipedia: https://en.wikipedia.org/wiki/Total_functional_programming
D.A.Turner. (2004). Total Functional Programming. Journal of Universal Computer Science.
Dennis Koelma, A. S. (1994). A visual programming interface for an image processing
environment. Pattern Recognition Letters.
Dragicevic, P. a. (2012). List of Physical Visualizations. http://dataphys.org/list/gaudis-
hanging-chain-models/.
Howard, E. (1994). Visual Programming: Concepts and Implementations. Computer Science
and Systems Analysis, Technical Reports.
Husein, S. H. (2020). The Influence of Parametric Design Tools on Increasing Creativity in
the Furniture Design Process. Eurasian Journal of Science & Engineering.
Jackson, M. B. (n.d.). Visualisation as an Aid to Low-Level Programming.
Lee, J., Gu, N., & P.Williams, A. (n.d.). Parametric design strateies for the generation of
creative designs. International Journal of Architectural Computing.
Margaret M. Burnett, J. W. (1998). Implementing Level 4 Liveness in Declarative Visual
Programming Languages.
Sheng-Fen Chien, Y.-T. Y. (2014). On Creativity and Parametric Design, A preliminary study
of designer’s behaviour when employing parametric. Digital Aids to Design Creativity,
eCAAADe.
Victor, B. (2006). Magic Ink.
Victor, B. (2012). Learnable Programming.
Wikipedia contributors. (2022, September 10). Turing completeness. Retrieved September 15,
2022, from Wikipedia, The Free Encyclopedia.:
https://en.wikipedia.org/wiki/Turing_completeness
Wildenhain, T. (2022). On the Turing Completeness of MS PowerPoint.
https://www.andrew.cmu.edu/user/twildenh/PowerPointTM/Paper.pdf.