1 Introduction
Whether practitioners use clay (for ceramicists), mathematical notation (for mathematicians), or code (for programmers), they interact with parts of the world to understand, explore, and create. They take these parts of the world up
as materials. “Material” in this sense does not describe a certain class of things (like lumps of clay or pieces of source code), but instead describes an ongoing
relationship between a practitioner and what they work with. For example, the same knife can be activated
as a material for a blacksmith but become an invisible, unnoticed tool when used by a chef. More nuanced situations might arise with programming; for example, where a programmer may shift between taking up the code, the compiler, or the hardware as a material as their attention and the task ahead shifts. HCI researchers have long studied what it means to engage something
as a material, highlighting its educational [
61], cognitive [
43], or creative [
75] dimensions. While this relationship between a practitioner and material has taken many names, this paper will use the term
material interaction to reference this group of ideas.
In this work, we synthesize these rich accounts of material interaction to employ them
generatively [
2]: to inspire domain-specific concepts and novel designs which are built upon broader theoretical accounts. Therefore, we first distill and operationalize this broader HCI discussion of how a practitioner engages their materials into three themes of material interaction: (i) that goals develop alongside the engagement of materials (Section
2.1), (ii) that practitioners build knowledge about materials through
exploring and reasoning with the materials themselves (Section
2.2), and (iii) that practitioners contextualize, reflect, and organize knowledge about materials through
annotative practices (Section
2.3). Using these preexisting themes, we propose design principles for material interaction in interfaces (Section
2.4).
We then apply these principles to a specific domain to explore the potential of these themes to suggest novel design insights and measures [
2]. A strong thread in these themes of material interaction is in how practitioners move between, compare, or reflect on versions of their work. This made history management practices [
81]—the tools, habits, notation systems, or organizational practices used to record, recall, and manage the history of project—an especially interesting site to investigate material interaction in interfaces. For software engineering, version control systems are often the tools that manage this history for programmers, and are a primary way programmers interact with prior versions of their code. Therefore, we take up version control as a domain within which our themes could be
critical [
2] (they could highlight places existing tools failed to accommodate material interaction) and
constructive (they could suggest novel design principles, measures, and implementations). Guided by these themes, we built Quickpose, a version control system for creative coding. Although material interaction encompasses more than just creativity, artists who code are a group of practitioners who are often reflective and experimental about their process [
48], making them a well-suited group to study initially. We discuss the design of Quickpose, including how the themes motivated its design, in detail in Section
4.
Through our in-situ study of Quickpose with expert Processing artists, we used Quickpose as a platform to explore
version control as a material interaction, connecting the existing conversation on material interaction in HCI to inspire practice-oriented insights for interface design in version control systems. Using our design principles, we proposed concrete measures of material interaction for the domain of version control systems. These measures guided our quantitative analysis of collected data from Quickpose’s usage in addition to how we analyzed the qualitative interviews with participants. Rather than validate the themes presented or evaluate Quickpose on a specified task, our study explores (1) how users engage in material interaction behaviors if their tools offer the functionality for doing so, and (2) whether the measures suggested by the collected themes present initial promise for recognizing such practices. Additionally, we used our study to iteratively refine and contextualize the themes and measures we discuss [
2,
9] in order to support future development.
We found evidence for each of our three themes through semi-structured interviews with participants and analysis of their usage data, Quickpose canvases, and code versions. For example, navigation history between disparate versions indicated how practitioners broadly utilized their version history even in cases where their forking history showed a more linear behavior. Using the study to reflexively develop our themes and principles, we then propose a refined set of measures for further research. Finally, we discuss how our work might contribute to a broader theory of material interaction for interface design, showing how Quickpose served as a platform for investigating the themes and also how they might help explain and reason about previous findings. We present Quickpose as a generative exploration: using a conceptual lens of material interaction to suggest new ways of building version control systems, and then using a system built with those guidelines to investigate material interaction behaviors in practice.
We present the following contributions:
(1)
A set of metrics that operationalize the existing conversation around material interaction. These metrics center our three design principles of continual goal reformation, contextual exploration, and holistic, linked annotation.
(2)
Quickpose, a version control tool for creative coding, which supports and measures material interaction in line with our themes.
(3)
A quantitative and qualitative study of Quickpose users to understand of material interaction behaviors in Quickpose, with implications for future researchers studying material interaction in version control systems.
2 Three Themes of Material Interaction
The HCI Community has long been interested in how people take up, reason with, and subsequently transform the material reality around them. This is especially true in the case of the practitioner or artisan, someone who directly manipulates a material as the core part of their work. Whether the material is code or clay, HCI researchers have drawn from fields like anthropology [
19,
38,
76], design studies [
16,
75], or philosophy [
55] to better understand how practitioners engage their materials. In this section we present three aspects of this discussion of how HCI researchers have discussed material interaction. In particular, we argue HCI researchers have claimed that (i) goals develop in tandem with material engagement (Section
2.1), (ii) practitioners build knowledge about materials through
exploring and reasoning with the materials themselves (Section
2.2), and (iii) practitioners contextualize, reflect, and organize knowledge about materials through
annotative practices (Section
2.3). Finally, we distill these themes into design principles for interfaces (Section
2.4), which structure our construction of Quickpose both as a tool for facilitating material interaction and measuring it through the tool itself.
2.1 Reciprocal Discovery of Goals and Materials
In response to working with a material, practitioners’ goals change [
17,
87]. Whether it is the desire to express an idea, a design brief to be fulfilled, or a curiosity to be investigated, practitioners approach materials with a
goal, an impulse or motivation which spurs the interaction.
For example, a programmer is building a user interface (UI) for an application. In the course of making the UI, the programmer realizes that all of the buttons planned for the UI make it look cluttered and difficult to understand. The programmer refines the goal in this moment: the goal is now to make a UI where the user can access all of the functionality, but not necessarily via buttons. The programmer continues to iterate, hiding some buttons behind menus and testing the UI until they find the right balance between visual clarity and ease of access—goals that were latent but have now become explicit priorities. As painter James Elkins writes, “the work and its maker exchange ideas and change one another” [
23, p. 78].
The example above illustrates how practitioners engage in a
conversational [
38] relationship with a material. Practitioners work out [
43,
44], reframe [
25,
69], and learn about [
61] their goals as they work with materials—the material “talks back” [
75, p. 135].
Working with materials is a process of discovery and exploration in two ways: first, because it reveals properties about the materials at hand; second, because those materials change the goal in surprising ways—working with materials “remakes the idea” [
23]. Additionally, working with materials may also cause us to reframe our goals or unsettle the entire frame by which the goal made sense. For example, our earlier example programmer might discover in the course of working out the UI that instead of hiding greater functionality behind menus, the total functionality of the interface should have been reduced. On the other hand, perhaps they realize the UI would be more effective in a different paradigm, such as context menus, at which point the goal would become delivering the right functionality
in the right moment rather than with ease of access. In either case, the programmer learns something about the material and their goals which cause the goals to change.
Theme 1: Goals and materials are reciprocally discovered. Working with materials is a process of continual articulation instead of dictation.
2.2 Local Knowledge of Materials
In the same way that goals are formulated through working with a material, practitioners build knowledge about materials locally through exploration and comparison in context [
25,
40,
43,
56,
61]. For example, a graphic designer could explore ten different options for the color on a webpage before settling on one option. Treated as a material by the designer, the other nine are not ‘failed’ options but were what provided the context for the designer’s choice: the variations not only gave the designer insight about the webpage and color scheme, but they also provided the axes along which a choice could be made at all (for example, a choice of saturation, or hue). The
material knowledge of “what color fits best in the webpage” became accessible to the designer through variation of the material itself (the webpage), and remained largely intuitive or tacit (the designer might say the color “feels right” or “works well with the other colors”). Design theorist Donald Schön would describe the web developer’s exploration as “knowing-in action, revealed in and by actual designing” [
74, p. 131].
This kind of intuitive or tacit knowledge is opposed to abstract or systematic knowledge, which can be utilized independent of context [
32]. Exploratory behaviors, like the web developer’s here, are dependent on their context because each variation or experiment is only meaningful for material knowledge in the context of surrounding variations [
47,
58].
Rather than two separate categories then, material knowledge and systematic knowledge can be seen as two ends of a spectrum, where practitioners utilize many different kinds at once and can, with effort, systematize previously tacit knowledge. For example, Moradi et al. [
58] describe how ceramicists work with glazes (a coating for a ceramic piece) through free-form tacit exploration, incremental trial and error, unstructured annotation of pieces, and rigorous analysis and variation of a glaze recipe. At each step, the ceramicist moves away from engaging the clay as a material and towards a systematic, more scientific [
64] knowledge of it.
Two meaningful dimensions to describe this exploration are
degree (how many variations) and
depth (how effortful or multiply-iterative are the variations) [
16, p. 88]. For example, a ceramicist might tweak the composition of a ceramic glaze across ten otherwise identical pieces and compare them [
58], which would comprise a low depth but high degree exploration. On the other hand, they might develop two separate glazes, making changes on each iteration and comparing after ten refinements of each glaze. This could be described as high depth but low degree exploration. This language helps contextualize both practices as different expressions of a singular underlying phenomena.
Theme 2: Knowledge about materials is built locally through exploration and comparison. Knowledge about materials begins as tacit, intuitive, or embodied and must be transformed if it is to become systematic knowledge. Exploration can vary in depth and degree.
2.3 Annotation for Holistic Interpretation
In the course of working with a material, practitioners’
knowledge practices–the activities which surround building and cultivating knowledge [
31]—focus on contextualizing the work rather than replacing or generalizing it [
35,
51,
87]. For example, the ceramicist who tries ten different variations of a glaze might record the particular ratio on paper attached to each piece. Seeing the ten variations together allows for comparison, as we discussed earlier, but the notes attached to each pot help the ceramicist understand how the variations in the glaze result in different appearances. In other words, the practitioner used annotation to aid their understanding of an individual
state of the material exploration (a single pot) and also the connections and relationships between the states. Designer Es Devlin phrases it this way: “...leave traces of your train of thought... otherwise [it’s difficult] to... remember what the joints and the junctions were between one thought and the next, and to me that’s the really interesting part, find the common denominators, find the underlying patterns”[
24].
Additionally, the annotations are meaningful specifically when linked to the material states they describe; for example, appending a paper note to a pot, handwriting annotation over a paper essay draft, or typing notes in a textbox on an file in an image editor. These annotations help the practitioner better understand the material state at hand and would lose their utility if separated from the state.
While not all practitioners use formal annotation systems, knowledge practices around material interaction seem to be
annotative, even with mental notes like a dancer’s practice of
marking [
43]. By building the context for reflection, annotation also supports the two previous themes, furthering goal development and reframing alongside knowledge building through comparison.
Theme 3: Knowledge practices in the course of material interaction are focused on annotation rather than generalization; annotation aids interpretation and analysis of both the individual states of a material exploration and the relationships between states, but does not replace them.
2.4 Material Interaction: Principles for Design
These three themes—reciprocal discovery, local knowledge of materials, and holistic annotation—are not meant to be comprehensive or conclusive accounts of what a material interaction entails. Rather, they are an attempt to synthesize insights from across the HCI literature into three practical claims which can support further work, including the remainder of this paper. In this way, we use existing accounts of material interaction not as a general theory of material interaction, but to collect a set of motivating, actionable concepts which structure and guide our research question and study.
While we do not claim these themes of material interaction to be complete, these themes are nonetheless tightly woven together: how we engage materials and act upon them with our intentions, how we build knowledge about them, and how we transform, record, and reflect on that knowledge are three ways of understanding a single phenomena, not three distinct practices summed together.
With this in mind, we extend our themes of material interaction into design principles:
(1)
Continual Goal Reformation If goals are discovered alongside materials, interfaces should support the reformation, bifurcation, and demarcation of goals throughout the material interaction, allowing practitioners to follow their exploration in however many directions it travels.
(2)
Contextual Exploration If knowledge of materials is built tacitly, interfaces should support exploration and comparison in the context of other states. Because exploration can be both low depth, high degree and high depth, low degree, interfaces should allow practitioners to flexibly compare and explore across depth and degree.
(3)
Holistic, Linked Annotation If knowledge practices with materials do not replace the state they describe but rather aid in its interpretation and the reflection of the entire material process, interfaces should support flexible annotation which accompanies and directly links to states and groups of states.
4 System Description
Following our three design principles, Quickpose is a version control system designed to support programmers in engaging version control as a material interaction and subsequently measure that engagement. Built as a companion interface and version control system for the creative coding platform Processing [
65], Quickpose integrates versioning capabilities for a Processing program into a direct-manipulation canvas editor, offering a flexible and convenient platform for exploration, comparison, and annotation. Processing was a well-matched IDE within which to build Quickpose, given its active use among expert creative coders, its extensive libraries and community support, and its ethos of building an environment for
sketching in code [
82]. Processing users often generate visual images and animations with their code (in Processing, programs are referred to as
sketches), iterating between the IDE and the visual output (the render) very quickly.
Quickpose scaffolds this iteration and exploration as a version control tool, saving the render outputs and sketches for each iteration and allowing users to quickly navigate between them. A user would begin a Quickpose session by opening a new Processing Sketch (shown in our system diagram in Fig
2.C) and running Quickpose from within the editor’s menus. They would then open their browser to the given URL, which serves the static front end canvas in a web browser. Clicking between versions (shown as circles with images in the center in Fig
2.A) updates both the Processing Code in the IDE (Fig
2.C) and also the render output, which runs as a Java Applet as an additional window (Fig
2.B).
Users can create a copy of any version by shift+clicking on that version (shown in our diagram of features on Fig
3), and the editor will automatically update to that state. The current version is shown on the canvas with a blue highlight (as illustrated in Fig
3). Because Quickpose functions as an interactive canvas, users can flexibly arrange, draw on, style, or label versions (Fig
4). Additionally, users can generate an export folder with the selected code and render outputs from versions depending on the versions’ color styling on the canvas, as shown in Fig
5.
4.1 Instantiating Design Principles into Features
In this section we discuss how our three design principles informed the design of Quickpose, highlighting how each feature supports each theme.
4.1.1 Direct Manipulation [79], One-Click Navigation and Forking.
Quickpose represents versions as canvas elements with thumbnails of those versions’ render outputs. Clicking on a version in the Quickpose interface updates the Processing IDE and output window to that version, while shift-clicking a version creates a new version (a fork), and updates the IDE to that version (Fig
3). To ensure no history is lost, states with child nodes are locked for editing, but are always able to fork.
•
Continual Goal Reformation: As goals develop and change, users can easily backtrack from any previous iteration to explore a new path, up to and including the very first iteration.
•
Contextual Exploration: The version history graph embedded directly into the canvas provides effective visualization and comparison of groups of versions. Because users can interact with the graph directly, users can navigate and fork versions just by clicking through the visualization.
•
Holistic, Linked Annotation: Seeing the thumbnails of all states at once allows reflection of the entire process. Because clicking on each version thumbnail in the Quickpose canvas updates the IDE and render state, the program state and canvas annotations are directly linked.
4.1.2 Grouping, Anchoring, Annotating, Arranging.
Because the version history graph is represented as interactive canvas elements, versions can be grouped, anchored and parented via arrows, styled, and scaled just as users interact with any other canvas element. This also allows versions to be easily integrated into existing patterns of working with canvas editors to organize versions alongside notes, images, and other graphics.
•
Continual Goal Reformation: Goals, outcomes, or versions for export and further development can be annotated or demarcated on the canvas, either describing a single version, many versions, or the entire process.
•
Contextual Exploration: Versions can be spatially arranged to informally situate versions among others.
•
Holistic, Linked Annotation: Annotations can reference many versions through positioning, grouping, or parenting via arrows. Additionally, annotations and versions can be arranged and styled flexibly and can comprise multiple kinds of media (text, images, illustrations, etc).
4.1.3 Checkpointing, Autosaving.
While forking and navigation between versions are manual operations, Quickpose also saves “checkpoints”: edits to a version which are saved internally when a user executes a save or when they navigate away from a version having made edits. This ensures that edits are not lost or accidentally overwritten even if a user has not dedicated a new version to hold those changes yet.
•
Continual Goal Reformation: Users can retrieve overwritten checkpoints and create versions from them if their goals or framing changes and they become newly valuable or interesting.
•
Contextual Exploration: Users can switch between many versions quickly without fear that changes might be lost or overwritten accidentally.
4.1.4 Export by Color.
Because versions in Quickpose behave like other canvas elements, style elements like color can be used to not only informally demarcate certain versions, but can also be used as a handle for technical features, such as the “export by color” menu which exports all the thumbnails and code iterations of a single color into a folder in the user’s local project folder.
•
Continual Goal Reformation: Exporting by color allows users to export multiple versions on the same branch or across branches as a single outcome.
4.2 Implementation
Quickpose is implemented in two parts: a background daemon in the Processing IDE environment which listens for changes, stores local data, and updates the IDE, and a static front-end web interface which connects to the daemon via a local network connection (Fig
4). The front-end is built onto the Tldraw canvas library [
70] to display live updates of versions alongside canvas annotations. Like other version control systems, we represent versions as a
directed acyclic graph of nodes and links between nodes, but allow the user to interact directly with this representation by displaying them as generated, interactive canvas elements.
4.2.1 Local Data and Logging.
In order to study how practitioners use Quickpose, regular backups of the canvas are made in addition to logs of user activity. These logs and archives are stored in the user’s project folder locally. These logs gave us a detailed picture of user interaction with the tool, which we analyze in our user study.
4.2.2 Bringing Quickpose to Other Domains.
While Processing was a convenient place to implement Quickpose given its user base of artists and its focus on programs which generate visual outputs, the Quickpose interface can be used in other domains. As a front-end system for managing versions, it could handle versions in a variety of other places, such as an image editor, programming interface, or design tool. We describe the API structure (“Core Abstractions” in Fig
6) below. These are the only abstractions needed to implement Quickpose for a new programming environment. For example, an image editor could interface with the core of Quickpose as long as it was able to change between versions, make copies of versions, and serve thumbnail images. Due to the small and well-defined nature of these abstractions, which make few assumptions about programming environment or language, we argue Quickpose can be straightforwardly adapted to a variety of contexts.
5 Study Design
Our study of how practitioners use Quickpose is designed to understand (1) how users engage in material interaction behaviors if their tools offer the functionality for doing so, and (2) whether the measures suggested by the collected themes present initial promise for recognizing such practices. We do not focus on evaluating the tool’s usability, its success on a predefined task, nor trying to validate the themes presented. Instead, we explore how we can recognize behavior associated with material interaction. Therefore, we study how indicators of material interaction appear in participants’ use of version control when that version control tool (Quickpose) is designed to permit such behaviors. As a generative [
2] exploration of supporting and measuring material interaction, this study is not designed to provide
predictive power (that is, it could suggest, in a falsifiable way, how certain design changes will influence user behavior), but rather seeks to understand what potential our collective themes (and subsequent measures and design principles) have for supporting and recognizing the behaviors they suggest in the specific context of Quickpose. We discuss how our findings might generalize and support future work in other domains in Section
7.2.2.
Although Quickpose is not first and foremost a creativity support tool due to its focus on material interaction instead of creativity, our study nonetheless follows many of Remy et al.’s recommendations for CST evaluation: we deployed Quickpose in an in-situ, longitudinal study among four expert users of Processing for 3-5 weeks [
66]. Recruited from Processing and Creative arts communities and related email lists, these expert participants used Quickpose in the course of their regular Processing usage and were not given specific goals or tasks, nor were they asked to use the tool for a certain number of hours. Participants were screened for their experience with and planned regular usage of Processing for the duration of the study. Partway and at the conclusion of the study, researchers discussed in semi-structured interviews with each participant their experience of using Quickpose, walking through specific projects and reflecting on their artistic process. Compensated at $40 per hour (for interview time, not time spent using the software) in the form of a gift card, total interview time for each participant ranged from 2 hours to 4 hours. Participants were also asked to (optionally) upload project data, including usage logs, Quickpose canvases, and program versions.
In total, we collected interview recordings, usage logs, canvas data, and project files, including code and renderings. To analyze our data, we conducted provisional coding [
71] (done by the first author) on interviews and canvas annotations using measures, listed below, which we created from our themes. Codes were not iteratively defined during the analysis, although we present an updated set of measures in Section
7.2.1. We coded canvas data for annotations which contextualize states, annotations which interpret states, and indications of “final” or “finished” versions. We also coded our interviews with participants for the presented themes more broadly.
We use these themes of material interaction to motivate our study of practitioners’ use of Quickpose and propose practical measures for studying material interaction in version control systems. Following our discussion in Section
2, our measures are as follows:
(1)
Measuring Continual Goal Reformation: Do practitioners significantly reframe their goals over the course of a Quickpose session? Do they make many significant backtracks to pursue a different direction? Do they work on multiple branches at once? Do they export or mark as final multiple versions, either at the ends of multiple branches or sequential points along a single branch?
(2)
Measuring Contextual Exploration: Do practitioners exhibit both low depth, high degree and high depth, low degree patterns in the course of their explorations? Do they shift between them at different moments of a session? Do practitioners repeatedly backtrack with low depth on the same state or nearby states to capture a single variation?
(3)
Measuring Holistic, Linked Annotation: Do practitioners use annotations in Quickpose (color, text, positions of versions, images) to contextualize rather than generalize the versions? Do practitioners use annotative practices which support interpretation (emotional or metaphorical language)? Do practitioners use annotation to describe not just individual states, but groups of states or movements between many states?
6 Measuring and Identifying Material Interaction
Three participants submitted ten projects over a study period of five weeks. In total, we captured usage data for 192 hours of usage of Quickpose, 115 versions created, 871 navigations to a different version, 178 annotations created, and 230 checkpoints saved. Because many projects were worked on across multiple periods and with different timescales, timeline views below have been normalized for the time spent with each project running.
6.1 Measuring Continual Goal Reformation
6.1.1 Number and depth of backtracks.
We recorded each instance of a user forking a version. For each project, we then calculated the depth (the number of nodes from the new forked node to the
root node of the version tree) and the distance (the number of nodes on the shortest path from the new forked node to the
previous forked node). We show the results for three projects in Figure
7. In this plot we see multiple backtracks, represented as sharp slopes up, or in other words, a decrease in depth from the previous fork. These jumps indicate users went back significantly in their history to start again in a new direction.
6.1.2 Development on multiple branches in parallel.
Simultaneous development on multiple branches, in contrast to backtracking, is identified by a high distance from the previous fork but a small change in depth from the previous fork. For example, a participant may have two long branches, b1 and b2, fork from the end of branch b1, then fork from the end of b2, between these forks is a small difference in depth (the two forks are similar distances away from the root node), but a high change in distance(the two forks have a large traversal distance between them). Figure
8 shows all instances of forking in our dataset, arranged according to both distance and change in depth; the area marked “Parallel Development” represents the high distance, low difference-in-depth area.
6.1.3 Versions marked as “final” or “complete”.
From user canvases, we recorded instances of multiple “final” versions, marked either by a text label indicating finality, or, as in Figure
9, a filename indicating an export. In the Figure
9 canvas, the participant was generating video files from desired versions and annotating the version with the filename of the generated video. We therefore interpreted two kinds of "marking final": (1) either referencing an export of the artifact, like the example above, or (2) indicating that a version was to be kept for future development. For example, P2 generated multiple variations of the same sketch but with different aesthetic qualities for different situations. P2 described in an interview with researchers how these versions were intended to form a "palette" for future development. In the four projects where these annotations were present, we recorded 53 annotations of this kind, although one project contained 36 of these. Many of these annotations (all but 9) were not on leaf nodes and many were on multiple parts of a branch. Marking many successive iterations or intermediate versions each as “final” or “to export” indicates an evolving goal, where marking versions across disparate branches as “final” indicates bifurcation of goals. We did not record any instances of participants using the “Export by Color” feature. We will note, however, that this feature only exported still images, and all of the participants in our study worked on video animation projects.
6.2 Measuring Contextual Exploration
6.2.1 Navigation Among Versions.
In addition to forking behavior, we also recorded when participants navigated between versions by clicking on them on the Quickpose canvas to update the editor and the render. In Figure
10, we show two Quickpose projects as directed graphs with both the forks (shown in grey) and navigations (shown in blue) between nodes (shown in green). These visualizations show how participants navigated broadly across their version history even in cases in which their forking history shows a more linear behavior; at each version, this navigation history shows evidence of how participants reflected on and compared versions across their history.
6.2.2 Depth and Degree of Nodes.
In order to investigate broad (low depth and high degree) versus deep (high depth and low degree) exploration, we chart the nodes of four projects by degree (how many edges a node has) and depth (its distance from the root node) in Fig
12. We theorized that many high depth, low degree nodes would indicate deep exploration, while low depth, high degree nodes would indicate broad exploration. Our results visualized here show that while participants were able to explore
deeply, there were relatively few nodes that had more than three edges (i.e., forked more than twice). (See discussion in Section
7, including how future work may support broad exploration.)
6.3 Measuring Holistic, Linked Annotation
6.3.1 Annotations that describe movements between states or multiple states.
We saw participants use a single annotation to describe multiple versions in four of the projects. Participants either referenced multiple versions
explicitly, by “grouping” them together in the Quickpose interface (Fig
11, left), or
implicitly, through positioning an annotation near multiple versions on the canvas and describing the content of the versions (for example, annotating “these versions rotate instead of translate”). However, we found that these annotations that described multiple versions appeared only once per project. (See discussion in Section
7 for possible reasons why.)
6.3.2 Annotations that support interpretation.
In six of the projects, participants used interpretive language to annotate a version. This included comparisons, such as "Reminds me of crops growing" from P3 as shown in Figure
11, or included emotional descriptors like "magical" or "interesting." In the data collected, participants used 13 annotations in this way out of a total of 178 canvas annotations.
6.3.3 Annotations that contextualize states.
We found 25 contextualizing annotations in eight of the projects. These annotations added information about the version, why it was created, or why it was or was not interesting to the participant. For example, participants contextualized versions with annotations like "Failed rotation experiment" and "The previous effect but animating forward then reversing in a loop".
6.4 Qualitative Support for Material Interaction
At the mid-way point and end of the study, participants were interviewed for approximately 60 minutes on their experiences using Quickpose and their artistic process. Researchers did not explicitly mention material interaction in these interviews, instead asking participants to narrate their experience of one of their Quickpose canvases and highlight improvements and suggestions for the tool. For example, participants were asked if they learned anything about their artistic process while using Quickpose, or if they noticed that Quickpose was changing their artistic process. In this section we present excerpts from these interviews which relate to our themes of material interaction and help contextualize our participants’ experiences using Quickpose.
6.4.1 Evidence for Continual Goal Reformation.
All of our participants mentioned how Quickpose supported exploration of multiple goals by backtracking in order to explore new possibilities. P3 highlighted how Quickpose helped support goal formation through supporting exploration of many different directions: P3: “Quickpose is really good for when you don’t really know where you’re going.” P2 discussed how Quickpose supported iteratively backtracking as their goals refined and changed, allowing them to collect all their explorations in a single place for reflection and re-use: P2: “I would start a branch and explore it all the way down...you keep some of your changes and incorporate that into a different direction, and other times you...start fresh and...do something totally different...in which case you go back to the start and branch off.” Our participants all indicated that saving and storing many versions quickly allowed them to more easily explore, especially if their goals were not well defined. P3 highlighted how the low barrier to make a new version allowed saving versions which might only become meaningful later: P3: “If you don’t know where you’re going, then you’ve got to record everything.” P2 additionally highlighted how quickly saving many versions enabled a sustained focus on exploration, rather than thinking about version control as a separate step in the programming process: P2: “What’s really great about [Quickpose] is that it frees you up...I can always go back to the root and go in a completely different direction after working for three hours in one way and it’s all still contained and you don’t break that flow.”
6.4.2 Evidence for Contextual Exploration.
P3 and P2 expressed that Quickpose supported context building, idea generation, and comparison. P2 draws attention to how seeing all the versions at a glace supported more exploration: P2: “There’s more immediate inspiration...Having [all the versions] there gives you more ideas...I think that’s why [the project] branched out so quickly.” All participants also mentioned that Quickpose lowered the barrier for exploring variations. P1 described how Quickpose supported them iterating locally on a single “base file:” P1: “You can have a base file from where you can try different things...tweaking it a little or tweaking it a lot.” P1 and P2 indicated that exploring local variations aided building local knowledge about programs. P2 highlighted how easily forking aided their ability to form tacit knowledge about their code, discussing how seeing local variations together on the Quickpose canvas helped them understand the parameter space of their program: P2:“...just playing with numbers, I wouldn’t even really understand [the code]—I really do have to save this, because I don’t really understand what it’s doing.” In all of these excerpts, participants found that seeing all variations at a glance and creating and navigating versions quickly helped how they form ideas and reason about their programs, features which we designed Quickpose to enable specifically.
6.4.3 Evidence for Holistic, Linked Annotation.
P3 mentioned that Quickpose supported annotating and organizing in an idiosyncratic way: P3: “That’s what Quickpose is for, whatever kind of organization you want.” P2 referred to the Quickpose canvas as a “mindmap,” allowing them to map out their ideas and explorations through successive versions. P3 requested that web pages be integrated into the Quickpose canvas itself to store reference material within the version history, analogous to “leaving a comment in the source code.” P3 cited how they would like to embed articles and resources that were not just about a single version, but were aiding the exploration more holistically.
6.4.4 How This Evidence Supports Our Themes.
Through the interviews, participants expressed their perception of their programming interactions while working with Quickpose. These excerpts present evidence that participants’ perceptions of their experiences with Quickpose aligned with our theories of material interaction. While testimony from participants is not sufficient on its own, it further supports that our measures of material interaction were in fact measuring salient aspects of the user experience.
8 Limitations and Future Work
Scale was the major limitation of our study. While we were able to uncover rich insights by closely investigating three practitioners and their processes across 3-5 weeks, our small number of participants limited the extensibility of our study results. With this in mind, we look forward to the open-source release of Quickpose, where a larger usage study of the tool would become possible. Future methodological work might require more robust validations of measures than presented here–testing the inter-rater reliability of qualitative codes in addition to building codes which can apply to multiple systems. Both of these will be required for authoritative comparative studies of material interaction across interfaces.
To better support practitioners in broad explorations in Quickpose, we draw inspiration from prior work in parametric design galleries [
97] as a starting point.
There are many opportunities to extend Quickpose to ask further questions about material interaction: How might Quickpose enable greater opportunities for sharing and collaboration? How does sharing this kind of history affect how people collaborate on Processing projects? How might Quickpose be used in an educational environment to support learning outcomes and reflection, as research has already shown version histories are promising in this domain [
29]? We are also interested in investigating the ideas behind Quickpose in non-visual, creative domains in addition to domains not seen as "creative": for instance, how might we support and measure material interaction in more traditional software engineering environments?
Additionally, previous work in exploratory version control systems have engaged scale (the navigation and retrieval of many different versions) as a major challenge in the domain. Kery [
41] discusses the difficulty of the Verdant-1 system in scaling beyond a few versions, which were surfaced as inline alternatives to Jupyter notebook cells. In later work, they emphasize the importance of visual search and diverse ways of retrieving information, which appear, from our initial study, to be strengths of Quickpose. Quickpose’s design principles may suggest further work in this area: having a version control system serve as a "mindmap" seemed to allow participants to organize and navigate between tens of versions at once, which we discuss in Section
6.2. Future work could test to what extent Quickpose’s flexible visual layout and open-ended annotation aids search and retrieval of versions, in conversation with theories of information foraging [
63] and context reinstatement [
8]. At the same time, future research systems for notebook versioning like Verdant could explore the continuous annotation and curation which allowed Quickpose to feel more like a "mindmap" than a list of commit messages, integrating design features of Quickpose into versioning systems for data science and computational notebooks.
The themes of material interaction are far from complete as discussed here. For example, timescale is a major unexplored part of how practitioners work with materials, but a major contributor to a practitioner’s development of knowledge, tools, and experimentation practices. All of our participants mentioned that the 3-5 week study period was too short for them to utilize many of the projects they worked on, with P1 saying that it is not uncommon for them to visit a project more than a year later. Additionally, P2 and P3 mentioned how they have built up, over the course of their entire time working in Processing, personal libraries of code snippets for use in future work. We argue that material practice is a lifelong engagement, one in which practitioners build environments, tools, and knowledge over months and years of work. Studying a long-term material practice echoes similar recommendations for longitudinal studies of creativity support tools [
58,
81] and building community support for research tools [
48].