The "Echo Chamber" is a collaborative project/installation we created with the help of Philadelphia's National Liberty Museum, for an upcoming exhibition they were hosting called "Data Nation: Democracy in the Age of A.I.".
The point being to show off "interactive installations, topical interactives, and provocative artwork that aims to make visitors ponder how rapid advancements in technology impact democratic norms".
At the CIM, our purpose was the creation of this "Echo Chamber" concept, which is a geodesic dome presenting a volume for visitors to enter.Â
At the center of the chamber will be a touch screen display kiosk that allows visitors to type in any message, phrase, or "belief", and plays them back in multitudes through speakers placed around the volume interior.Â
The statements will be processed through language processors so that they sound like they are being voiced by separate individuals repeated back over time to reach a cacophony, leading the visitor to interpret that their statements are correct and represent a consensus of popular belief. The volume will be activated by motion visuals that respond to the audio.Â
The NLM is to provide fabrication and installation of the structure as well as purchasing and installation of all AV components and computers required.Â
We are to provide UI design for triggering events in the chamber, provide programming for voice capture, manipulation, mixing and playback as well as provide technology recommendations for audio system purchase and installation.Â
The concept as far as programming and functionality goes like this:
A person walks into this geodesic dome and speaks into a microphone * (we would later shelve this idea in favor of a touch-screen kiosk display to type on for simplicity's sake)
The audio is processed in Unity using some plugin to generate text from a given audio.
That text is then sent to ChatGPT using another plugin, the text is processed their and we ask it to simply rephrase whatever the speaker said a couple different ways.
Those rephrased messages from ChatGPT will then get sent to a Microsoft Azure TTS service, where an AI will generate speech from those rephrased messages, each message having a different AI speaker.
Finally those voice lines are played back numerous times in a cacophony of noise around the speaker using a quad speaker setup.
With the premise for how the technology would work done, I then began working more on the visual aspect. Based on some visuals we had from NLM, we wanted to go for a grid-like look, where the speakers/viewers would see their messages pass through the grid, and then the responses would be passed back, creating a wave-like deformation in the grid.
Initially, I wasn't entirely sure what the perspective would look like, so I played around first with this flat, face on projection with a grid-like plane slowly distorting based on some procedural noise. I then thought if the viewers would be encased in a dome, I would recreate that kind of look as well, as seen in the second video below.
Those initials tests were just created quickly in Blender as a concept for how the visuals might look, I then took to Unity to try and get a quick mock-up for how we would implement this idea of wave-like deformations based on the things the viewers would say.
The video shows this basic idea of a phrase gliding across the grid, creating rippled distortions on the grid, then a rephrased version echoing back.
Shortly after we began concepting some ideas, we would meet up in-person with some folks from the NLM to further get specifics and clarifications as to what they wanted, and how it might look.
The moodboard and colors they were using
The projectors and how it would be projected onto the dome (in this case, 2 short throw projects)
The use of ChatGPT and Microsoft Azure to rephrase the things viewers would say, and the generation of text-to-speech
Including ideas on moderation, and what kind of things we could do to prevent a viewer from inputting foul language or hateful speech considering this would be an running exhibition for all ages for a couple months
So on, and so forth. I learned a lot more about what it is we were aiming for, and the idea of social media stuck out in my mind. I thought about how the grid might represent our inter-connected internet based social structure, and how these phrases could essentially be messages, like an iPhone text bubble.
Shortly after we began concepting some ideas, we would meet up in-person with some folks from the NLM to further get specifics and clarifications as to what they wanted, and how it might look.
The moodboard and colors they were using
The projectors and how it would be projected onto the dome (in this case, 2 short throw projects)
The use of ChatGPT and Microsoft Azure to rephrase the things viewers would say, and the generation of text-to-speech
Including ideas on moderation, and what kind of things we could do to prevent a viewer from inputting foul language or hateful speech considering this would be an running exhibition for all ages for a couple months
So on, and so forth. I learned a lot more about what it is we were aiming for, and the idea of social media stuck out in my mind. I thought about how the grid might represent our inter-connected internet based social structure, and how these phrases could essentially be messages, like an iPhone text bubble.
We also got to see the current prototype dome they were building to get a feel for it's measurements, and a better understanding of how the projectors would be displaying on it.
They were going to finish the prototype dome by the next week, complete with all the fabric resting on it, and we jumped into full speed development so we could get a working prototype finished and ready to showcase on their dome in a week's time.
Alan was able to develop a basic prototype pretty quickly, going with a more triangular grid rather than a quad. He got some basic functionality going, where clicking on a node "sends the first message", that node becomes "infected", displaying the message/phrase sent, and it begins to infect other nodes around it. Complete with some basic noise and a wave distortion on first infection.
I don't believe Kevin had finished implementing the ChatGPT and Microsoft Azure integration yet, so these messages, and the voice lines were created manually, but this video gives you the first basic version working, along with the cacophonous audio.
I began sprucing up the visuals to better match the themes for this idea of Data Nation, based on a quick concept I sketched up in Blender and Photoshop.
Obviously, the visuals are quite a bit messy in the video, mainly because there's just too much visual noise going on, with text bubbles blocking each other, the little packets of messages that travel between the nodes have a particle system that streaks everywhere, but the general idea seemed pretty good to me, so I think I was headed in the right direction.
As you may also notice, this is still using a little temporary text box, and we're clicking to place the first node "infection". That said, I believe by this point, Kevin had managed to get ChatGPT and Microsoft Azure's TTS hooked up, so it would work dynamically with any message you typed in.
He also began working on the kiosk's user interface, which you'll be able to see in the adjacent video.
I can't say much more on this as I had no part in developing it.
Finally the day came to where we would present our working prototype so far, as well as getting to finally see how it would play out in real-time in the prototype dome they've finished. I only made a few more visual adjustments since the last video, mainly small things like taking away the text bubble backgrounds (as to clean it up a little), adjusting the time when the text pops up, the little "new message" notification, fixing the particle system for the data packets sent between the nodes, so on and so forth.
Below you'll see some quick videos I took as we were testing it out on the dome.
Overall, the showcase and prototype testing went well. The good people at the NLM seemed pleased with it, and so did we. We got a few more ideas about how to improve now being able to fully test it in it's intended environment, which helped to see it from a slightly different angle.
We had some more discussions about moderation, what kinds of things we could do like leave it as is, with ChatGPT's default moderation disallowing any hate speech to be rephrased, or coming up with our own filter to layer before ChatGPT so a viewer wouldn't even be able to type in a naughty message, or we could allow them to use a curse word, but then bleep it out when the speech synthesis is created.
We also noted it lasted just a bit too long, and despite the fact that there's 5 different speakers (and thus, 5 synthesized voice lines), it was quite a bit hard to hear all of them distinctly, rather only the first one, and maybe another one would really stand out, just based on the tone, pitch, and inflection of the selected AI voice actors.
We had the thought that maybe when the first few nodes are infected, we play each voice line individually, at or near full volume, while turning down the volume on other voices, or possibly, randomly adjusting the volume of the lines each time they're played, so viewers can really get to hear what each voice is rephrasing.
With that out of the way, we have a healthy time frame in the scope of a month, as it's currently early May (at the time of this writing), and the exhibition isn't formerly opened yet until the second of June 2nd, with the first sneak peak at the finished product on June 1st. So after the first rush to get the prototype finished to show and get feedback on, we now have a pretty sizable time to continue to refine and perfect it. Besides Kevin's upcoming implementation of some sort of moderation system on our end (pending approval based on what the folks at the NLM think is necessary), this project is essentially feature complete as far as major functionality goes.
All that's left for me personally is minor polishing, for example, we had text message bubble backgrounds on the text but disabled that as it was too clunky and overlapped with other messages. Since our first prototype run through, we've adjusted the text quite a bit, and I've since re-implemented the bubble background as I think it helps with readability. Though, the now the text and background are simply black and white, which doesn't match the theme as closely as have the iconic green or blue bubbles popularized by Android and iOS, but again, the text is far more readable in monotone.