Inspiration & Aesthetics
As a continuation of my work in digitally automated composition, this piece is organized in a non-linear fashion. That means that it is not designed to last a length of time, like one would expect a piece at a concert to do. Instead, the piece can continue to generate sound forever based on the parameters I set in the Intersections source code. Because driverless cars, in theory, are not bound to the same restrictions as cars that require a driver behind the wheel have, they lend themselves successfully to a musical idiom that is not defined by a length of time. This approach to organizing sound has been the bulk of my work since 2016, and you can check out other non-linear pieces in my portfolio!
Background & Field Research
In the first few months of 2021, self-driving car projects, namely Waymo and Cruise, started conducting research in my neightborhood in San Francisco. I was immediately fascinated by the technology being used to develop driverless cars, and subsequently, I was inspired to compose a piece about it. The original concept for the piece was to take pubically available car position and traffic data from an online source. Unfortunately, self-driving car information is not pubically accessible, so I was left with the task of composing a creative solution to emulate what a car driving through my neighborhood would look like.
I began by narrowing the form of the piece to a 4-by-4 block of my neighborhood. In my preliminary testing, this was as close to a perfect slice of my neighborhood for the score.
Then, on June 24th, I went into the field to take inventory of all 41 stop signs and all 24 stop lights. In the case of the stop lights, I also spent 15 minutes at each intersection to gather timings for their green-yellow-red cycles. I was surprised to find how much deviation exists between each stop light intersection in my neighborhood.
After collecting my stop light and stop sign data, I began coding the framework for the piece. I originally placed 12 self-driving cars in this iteration because it was the number of unique driverless cars I counted on June 24th; however, the piece can accomodate many more cars, and I may add more cars in the future. The total number of cars is reflected to the right of the title on the score page.
About the Cars & the Score
Each car is programmed to choose a direction once precisely in the center of an intersection. Cars accelerate up to a top speed of 30 mph and decelerate when approaching a red light or a stop sign. Cars stop at a stop sign for 3 seconds before continuing into the intersection. Cars will remain at a red light until it turns green... no right on red California shenanigans!
The UI on the right-hand side of the page is programmed to tell you about a particular car's whereabouts: name, color, direction of travel, state of motion, speed, and location. There is also a section that lays out pitch information; however, this information has to be toggled on. This is to allow listeners to experience the piece without giving away my methods for producing the sounds I've programmed.
Considerations & Shortcomings
One of the first things commented on by the first ones to test Intersections is the size of the cars. They occupy the whole lane, and they often appear to be crashing with one another. This is a compromise to allow the cars to remain visible, and position them more elegantly on the page. The cars are not passing through one another, but rather they are passing by one another. This is made complicated by the top down view, however it makes visualzing all of the streets possible at the same time, which looks the best given my drawing limitations
Next is the illusion of acceleration and deceleration. Due to the complicated nature of decimal math in computer programming, the cars are always moving on the screen at a fixed speed. The speed displayed on the UI is measured by proximity to a sign that requires the car to slow down, or speed up.
Possibly the most glaring of the shortcomings of the piece is the lack of collision prevention. After observing the piece, you might find multiple cars arriving at a stop sign intersection, and proceed to collide with one another. My methods of animating the cars did not allow for a feasible implementation allowing cars to alter their course based on another car's presence in our around the intersection.
With all of that being said, I am extremely pleased with the final result! As I improve as a programmer, I might revisit the project and make alterations to the movement engine to create an even more realistic car detection system. For now, thank you for checking out Intersections, and I hope you enjoy!