Issue 10: Ecoscope

Bug Square

Henry Haoyu Wang
A hand-drawn illustration of a variety of bugs including a butterfly, a spider, a dragonfly, a bee, a worm, a moth, a ladybug, a beetle, and a earthworm against a white background.
Illustrated by Priyanka Makin


The project “Bug Square” started in three days.

Day one. It was summer break after my first year of ITP and I was learning Three.js1 for the first time. After hours of setup and debugging, I finally made it work and created a rotating cube.

Day two. I woke up in the afternoon, and my roommates asked me to go upstairs to deal with a lot of real bugs they found in their kitchen.

Day three. I was chatting with my friend Song and coincidentally while I was debugging, my roommates asked me to go upstairs again to capture real bugs. We were both thinking about our ITP thesis at the time, and I mentioned to Song that I wanted mine to be about bugs. “Bugs have two meanings: biological bugs and programming bugs. I want to explore the relationship between them.”

As more and more of these microbial archives of different kitchens, and different environments more broadly, were recorded we might be able to start understanding more of the links between the microbial world and our human-scale world.

Why are programming bugs called “bugs”? “On September 9, 1947, a team of computer scientists and engineers reported the world’s first computer bug. This bug, however, was literally a bug. One of the team members wrote in the logbook, ‘First actual case of a bug being found.’ The team at Harvard University in Cambridge, Massachusetts found that their computer, the Mark II, was delivering consistent errors. When they opened the computer’s hardware, they found…a moth. The trapped insect had disrupted the electronics of the computer.”2

The research process for Bug Square started with “bug collections.” Over the course of two years, I used photography and video to capture both biological bugs and insects and computer/machine bugs I encountered in my life. To help me keep track of my progress and issues, I started a “bug report” that recorded what went wrong in my daily life. Additionally, I recorded 300 audio files as a form of personal documentation and added them randomly into the virtual world.

In the early stages of development for Bug Square, I took a trip to the Monarch Butterfly Biosphere Reserve in Mexico to see the butterflies. Surrounded by the puffy breezes coming from the large shining wings, I could not interact with the butterflies out of fear that I would harm them. This respect for bugs and insects inspired me to make Bug Square a world where viewers should simply watch the simulated world.

In order to represent abstract computer bugs, I used glitches as a metaphor. Glitches and glitch effects indicate that something has gone wrong in a computer system. In Bug Square, the glitch was anthropomorphized as a creature that intended to cause no harm to the overall computer system, allowing programs to continue to run, with only small, buggy errors.

But what does that world look like? How are the insects placed in the project? What kind of computer bugs do I want to point out here?

My questions about Bug Square’s world brought me to Ian Cheng’s Emissaries Guide To Worlding. Cheng defines worldbuilding in the first paragraph: “A World incentivizes its members to keep it alive. A World is a container for stories of itself. A World expresses itself in many forms, but is always something more.” I thought I would need to find a place for both biological bugs and computer bugs in this world. However, on the contrary, I found a reference that would be harmful to both of them in real life. A reference that makes my Bug Square “express itself in its form and something more”. One day, I was dazzled by the flowing Hudson River. It hits me that most insects can’t live under the river and computers will die underwater too. The river is a common adversary for both. I also observed that people sometimes use containers to host insects they find. As a result, I created Bug Square inside a box for viewers to observe, and the cube became the form for Bug Square. The river also creates a perfect spot to conceal the “bug reports” in Bug Square as I hide the sound objects under the water.

The process of building the world was very free-flowing, using cubes, pyramids, and cylinders as insects, to create the first prototype. I had the insects move around a container and above a river. I was aware of the bugs’ movements and the sounds their wings made. The world-building here was not so much about recreating nature from reality, but about simulating the motion and movement of nature in the digital world.

This approach was inspired by Dan Schiffman’s The Nature of Code3 and Gary William Flake’s The Computational Beauty of Nature4. Flake mentions in the first chapter,

“Of all the possible rules that could govern the interactions among agents, scientists find that nature often uses the simplest. The same rules are repeatedly used in different places. To understand why, consider the three attributes that describe the interactions of agents: 1) Collections, Multiplicity, and Parallelism; 2) Iteration, Recursion, and Feedback; 3) Adaptation, Learning, and Evolution.” 

Using the simplest rules derived from nature, I applied a flocking algorithm to the code. ‘Flocking’ is a group animal behavior that is characteristic of many living creatures, such as birds, fish, and insects. In 1986, Craig Reynolds created a computer simulation of flocking behavior5. With these methods, I had the basic structure of Bug Square.

During the process, my attitude toward insects changed dramatically. I used to kill them without hesitation, but later, I began observing their actions. I used to get many mosquito bites, but I stopped trying to capture them. When I initially tried to kill or capture them, it was not just because of the bites, but also because I wanted to protect my territory. Now I don’t feel I own the land, so it’s okay to share it with insects. With computer/machine bugs, I often find them in public spaces, and it is enjoyable to discover them.

During the process, my attitude toward insects changed dramatically. I used to kill them without hesitation, but later, I began observing their actions.

I do not aim to create a perfect virtual representation of nature. Some things in Bug Square should be wrong. In this world, bugs are celebrated features, not just bugs. Or rather they are bugs, but are also features. Creating Bug Square showed me how errors inspire me in my life, and I hope that highlighting bugs will encourage you to be inspired by the bugs in your life. While I can proudly tell you that the final Bug Square is probably bugless from a programming perspective, it is also a product of all the problems I encountered in the development process.

I still want to maintain a distance from real-life biological bugs, but creating a virtual Bug Square allows me to appreciate them. This space is dedicated solely to them. While I dislike the process of debugging, I enjoy the moment that follows. Errors and mistakes are acceptable here, because they lead to change. I may not enjoy sharing my debugging stories with others, but here in Bug Square, if you listen carefully, you will hear 300 of my stories hidden within the virtual world.


1 https://threejs.org/

2 “World’s First Computer Bug.” World’s First Computer Bug, https://education.nationalgeographic.org/resource/worlds-first-computer-bug/

3 Shiffman, Daniel. The Nature of Code. S.n., 2012.

4 Flake, William. Computational Beauty of Nature. MIT Press, 2000.

5 “Flocks, Herds, and Schools: A Distributed Behavioral Model.” There are three types of flocking: “Separation: steer to avoid crowding local flockmates; Alignment: steer towards the average heading of local flockmates; Cohesion: steer to move toward the average position of local flockmates.”