Collaborative NFTs Summer Research Project: Beginnings and First User Test
In June 2021, I started a summer research project that is supervised by @GalaxyKate. The research is sponsored by a summer grant from Northwestern’s McCormick School of Engineering. I am researching blockchain-based digital collectibles, NFTs, and how they can be incorporated in video games to enhance gameplay and incentivize creativity. My intention is to record the process through updates on my Twitter, @gilberto__g, and through Medium posts like this one. In these posts, I will give an overview of my progress, describe aspects of the process, and go into any aspects of my research that have my attention.
This project began after recognizing that the majority of work in the NFT industry so far does not focus on the NFT creation process [1, 2]. A notable exception are NFT projects that use procedurally generated content, like CryptoKitties . NFTs are ownership claims over digital data, and most NFT projects do not allow users to actively participate in creating the digital data. Few projects, if any, focus on the process of creating the content that is attached to the NFT. This research project aims to explore this area.
In conversations with Prof. Compton, we brainstormed the affordances that NFTs can provide to video games . Two affordances stood out for exploration: autotelic creation and social ritual and belonging. In the first stage of this research, I attempted to extend a game I believed to excel in these two areas: Drawphone . In the second stage of this project, I began extending a drawing app I created for Prof. Compton’s Generative Methods course using Eth-Brownie  and Codoodle . This post includes how the first four weeks of my research project have gone and will detail the first user test for the Collaborative Drawing Tool.
Progress so far
- Week 1, June 14 — June 18
a. Project brainstorming and conceptualization
b. NFT research including scalability and standards
c. Ethereum developer research including how to pay gas fees on behalf of users
d. Found and started a simple NFT tutorial https://betterprogramming.pub/how-to-create-nfts-with-solidity-4fa1398eb70a
e. Met with Prof. Compton for our first meeting and discusses the potential affordances of using NFTs in games https://twitter.com/gilberto__g/status/1405913842702561283
2. Week 2, June 21 — June 25
a. Finished working through a simple NFT tutorial
b. Setup dependencies including infura, python, truffle, brownie, ganache-cli, etherscan, terminal in atom, git, pinata
c. Started working through an in-depth NFT tutorial https://www.youtube.com/watch?v=p36tXHX1JD8&t=182s&ab_channel=PatrickCollins
d. Began modifying the party game Drawphone with NFT functionality https://github.com/tannerkrewson/drawphone
e. Began focusing on design choices and trade offs
3. Week 3, June 28 — July 2
a. Fixed dependency issues for NFT Drawphone by updating node.js
b. Ran NFT Drawphone on local server
c. Ran into CORS error while attempting to download image outputs locally
d. Explored ways to deploy node server and chose Heroku
e. Ran Heroku locally but had memory overflow issues when deploying a web server
f. Read article on how monetized game mechanics can add or subtract value from the player experience https://www.projecthorseshoe.com/reports/featured/ph18r3.htm
g. Checked in with Prof. Compton and decided to pivot to a collaborative art tool
- Prof. Compton live coded a peer.js project, Codoodle: https://github.com/galaxykate/codoodle/
h. Forked my previous Kid Pix project and added download functionality
i. Added NFT code to project from Eth-Brownie’s nft-mix
j. Began modifying metadata and python scripts to fit into the drawing app
k. Learned JSON commands to automate metadata creation
4. Week 4, July 5 — July 9
a. Continued modifying NFT code
- Got metadata json sort of working
- Got tokenURI json sort of working
- Modified the python scripts so that the metadata is created before the NFT is deployed to the blockchain
b. Began looking for game testers
c. Codoodle integration first attempt
- Began implementing Codoodle code into web app to use peer.js
- Learned about Vue through reading documentation and watching tutorial videos to better modify Vue section of Codoodle code
- Ran into errors while integrating Codoodle code due to lack of planning and understanding the code base
d. Codoodle integration second attempt
- Deeply examined the Codoodle code with the peer.js documentation
- Restarted Codoodle code integration in a new branch forked from before I added Codoodle code
- Altered drawing function to work with broadcasted messages
e. Conducted user testing in Zoom
f. Checked in with Prof. Compton
- Discussed user testing and findings
- Narrowed down questions to answer for the next user test
- Debugged peerJS errors with Prof. Compton’s help
g. More functionality improvements
- Made all drawing tools functional
- Fixed background changing tools
- Changed randomness functions to pseudo-random functions
h. Continued searching for game testers
- Recorded GIF of working prototype
- Posted Instagram story to get some testers
- Posted on Twitter about first prototype https://twitter.com/gilberto__g/status/1413576465887682567
i. Began writing first postmortem
First User Test
Collaborative Art Tool is a casual creator  web app that allows users to draw together in real time with different drawing tools. Inspired by KidPix , the drawing tools attempt to allow users to create outputs that are “artistic” with little effort or regard for their artistic background. During this user test, the web app was not completely functional due to the app not being fully integrated with the Codoodle code base  or WebRTC from PeerJS . Establishing a network connection was not possible at this stage, and Zoom annotate drawing tools were used to replicate desired behavior of the app while one user shared their screen. Additionally, the minting NFT functionality was not working.
The main goal of the first user test was to see whether users find value in a collaborative drawing tool. A follow-up question is if so, where is the most value? The test aimed to observe any dynamics that would occur in a collaborative drawing environment where users could conceivably own, store, and sell finished works through NFTs. In addition, the first user test aimed to inspire more research questions and possible updates to the research prototype that would help answer those questions.
Using Zoom, four Northwestern students that already knew each other tested my web app. One of the participants shared their screen and were able to use the drawing tools (Figure 1). The others were instructed to use the Zoom annotate features (Figure 2) to draw on the canvas. The test consisted of free time to draw, checking in with the group about when the drawing is finished, describing NFTs and showing the OpenSea marketplace, and asking the users questions about their thoughts of the web app and suggestions for updates.
Key moments and observations
Right after we began, one participant noted that the mandala drawing tool reminded them of another web app: Weave Silk . The user sharing their screen noted that using the spray tool made the app lag and the user stopped using the tool. Communication was lacking while users were instructed to draw. For the most part, participants drew in their own section of the canvas independently. A clear show and tell dynamic emerged as participants would draw whimsical and absurd things. When asking whether the art was finished, only the participant sharing their screen answered.
After describing NFTs, I asked the group whether they would choose to sell their NFT and if so, at what price would they list the artwork. One participant suggested $0.05 while another participant mentioned that they were interested in keeping the NFT as a memento. After asking the group about their thoughts on the web app, one participant suggested that professional artists would not use this because it would not allow for high quality artwork to be made. They mentioned that when professional artists collaborate, they do so asynchronously with specialized software, like Photoshop, and it would be difficult for artists to make a living selling artwork made through this web app. Another participant mentioned that this web app would be great for live audiences, web chats, or crowds because of how the absurdity of what is drawn is amusing.
After discussing the potential of this web app, the group discussed the difference between using the web app for entertainment and making high quality artwork. The group concluded that the real value of this app lies in entertainment, and they suggested future updates to the app like giving prompts for what to draw and using a timer to decide when the artwork is finished. The group noted that the web app could be like the party game skribbl .
Discussion and next steps
Overall, the web app was well received by the participants as an amusing party game. A number of follow-up questions came to find.
· How would large groups collaborate on artwork?
· How would crowds value their contribution or ownership of a collaborative artwork?
· How would streamers with large virtual audiences use this tool during a livestream?
· What will people do with their collaborative artwork NFT once they have it?
· Can casual creators produce professional grade artwork that professional artists can sell?
· How would adding video conferencing functionality affect the drawing dynamics of this web app?
· How would users respond to having a timer tell you when the artwork is complete?
· How would users interact with needing to populate NFT metadata, like coming up with a name or description for the artwork?
· What game mechanics would encourage users to stop drawing independently?
After the user test, I updated the web app so that users could connect with each other following a meeting with Prof. Compton. Besides this functionality update, the next step is to do another user test after narrowing down which of the questions from above I want to focus on.