Introduction: Accumulated Seokgwan

**This is a video work trying to create a new dimension of time and space through the interaction between human and computer, based on a certain region called Seok-gwan Dong, located in Seoul, South Korea.

(Team 'Fresh Raspberry' members: Minkyoung Bae, Taeyang Yoo, Daeun Joo, Hyewon Jang, <Team Learning 2019: Hey Strangers. Do It Together>, Art Collider, Korea National University of Arts))

.

.

**We went through the following process to create this work:

1. Each member in the group(4 people) went to a specific spot in Seok-gwan Dong.

2. Each member took a still-video with his own camera.

3-1. Prepare a background video file by combining the different 4 videos taken from each member.

3-2. Reviewing the video taken on the step 2, each member analyzes his own video excluding personal emotion.

4. A text from each member is created based on the information extracted from the step 3-2.

5. When all the 4 texts are gathered, record the voice of the 4 people reading his own text at the same time through one microphone. (Korean)

6. The audio file created from the previous step is processed and interpreted by IBM Watson Speech to Text API (Korean) and a group of meaningless words is newly created

7. Based on the text from the step 6, each sentence (which was automatically separated by computer with period '.') is searched through google engine, and the first image that comes out as a result of each trial is saved.

8. Putting the video made from the step 3-1 on the background, the audio from the step 5 is overlaid with the image found from the step 7, according to the exact timing of the certain sentence driven from the audio file.

.

.

**This is the code we have written so far to make the process written above to be done automatically:

(language: processing)

import at.mukprojects.imageloader.*;
import at.mukprojects.imageloader.google.*; import at.mukprojects.imageloader.image.*; import processing.video.*;

String apiKey = "";

ImageLoader loader; ImageLoader[] loaders; ImageList list; ImageList[] lists; Image img; Image[] imgs; Movie myMovie;

float x, y, m, s; int something;

String[] textList = {"여름 옷을 있는", "남이가 왼쪽에 있는", "무료인가요 아니면 세트를", "해주세요", "있나요", "화면에요 중인가요", "합니다", "되나요", "우리의 출금이 농심이", "대리여 선물하는 유일한 나가나요", "어 있나요", "시간이", "다른 길을", "열한 개 나와있는", "메인 위치는", "생계형 모양의 그믄 지 잘 나온", "그 여기 메일에 염색 방에 유리가 많은", "우리", "다시 저 멀리 낮을 세율이 해서", "절차를 마무리 가능하고 일등을 있다", "파트 된 지금", "좀 시 죽음과", "계좌가 반에", "초록색 늘려 나가는", "다른 건물들이 있다", "잘 보이지 않는", "다리가 가능한가요"}; float[] startList = {0.71, 14.52, 28.89, 34.49, 41.1, 58.96, 63.85, 67.68, 68.87, 74.44, 77.99, 81.84, 93.96, 101.59, 104.17, 109.78, 113.06, 116.51, 117.95, 124.9, 129.82, 131.79, 135.78, 139.6, 144.1, 146.3, 151.12}; float[] endList = {1.83, 15.67, 30.57, 34.91, 41.55, 60.49, 64, 68.03, 71.27, 76.24, 78.5, 82.19, 94.26, 102.53, 105.08, 111.74, 115.67, 116.78, 120.39, 127.69, 130.65, 132.74, 136.49, 141.19, 145.05, 147.3, 152.52}; int count; String eachText;

int i = 0; int w = 0;

PImage realImage; PImage[] imageList; ArrayList sample; boolean isInit = false; int tempIndex = 0; void setup() { //fullScreen(); //size(1680, 1050); size(300, 300);

loader = new GoogleLoader(this, apiKey); myMovie = new Movie(this, "video.mp4"); myMovie.play();

count = 0;

imageList = new PImage[textList.length]; lists = new ImageList[textList.length]; imgs = new Image[textList.length]; loaders = new ImageLoader[textList.length];

//loaders[0] = new GoogleLoader(this, apiKey); //lists[0] = loaders[0].start(textList[0], true, 60 * 1000); //println("keyword:", textList[0]);

//println(imageList.length); //for (int j = 0; j < 1; j++) { // loaders[j] = new GoogleLoader(this, apiKey); // lists[j] = loaders[j].start(textList[j], true, 60 * 1000); // println("keyword:", textList[j]); //}

loaders[0] = new GoogleLoader(this, apiKey); lists[0] = loaders[0].start(textList[0], true, 60 * 1000); println("keyword:", textList[0]);

loaders[1] = new GoogleLoader(this, apiKey); lists[1] = loaders[1].start(textList[1], true, 60 * 1000); println("keyword:", textList[1]);

loaders[2] = new GoogleLoader(this, apiKey); lists[2] = loaders[2].start(textList[2], true, 60 * 1000); println("keyword:", textList[2]); //println(imageList.length);

//sample = new ArrayList(); //for (i=0; i

////println(imageList.length); //println(sample.size());

//exit(); //println(imageList[0]); }

void draw() { for (int k = 0; k<3; k++) { if (imgs[k] == null) { imgs[k] = lists[k].getRandom(); println(lists[k].getMostRecentImage()); //imgs[j] = lists[j].getMostRecentImage(); //println(imgs[j].getImg().width); } else { image(imgs[k].getImg(), k*(width/3), 0, width/3, height); } } /* int index = 2; if (imgs[index] == null) { imgs[index] = lists[index].getRandom(); println(lists[index].getMostRecentImage()); //imgs[j] = lists[j].getMostRecentImage(); //println(imgs[j].getImg().width); } else { image(imgs[index].getImg(), 0, 0, width, height); } */ //if (imgs[0].getImg().width>0) { // image(imgs[0].getImg(), mouseX, mouseY); //} //if (imgs[0] == null) { // imgs[0] = lists[0].getMostRecentImage(); // println(lists[0].getMostRecentImage()); // //imgs[j] = lists[j].getMostRecentImage(); // //println(imgs[j].getImg().width); //} else { // image(imgs[0].getImg(), 0, 0, width, height); //} //if (tempIndex < textList.length) { // //for (i=0; i

// //println(imageList.length); // //println(sample.size()); // isInit = true; //} //println(sample.size()); ///////////////////////// /* //frameRate(1000); m = millis(); s = m/100; image(myMovie, 0, 0, width, height); // myMovie의 재생 something = count; while (startList[something]<= s && s < endList[something]) { imageMode(CENTER); image(imageList[something], 0, 0, width/2, height/2); } count ++; if (count == 27) { noLoop(); } println(count); */ } //void mousePressed() { // if (s == 3.3) { // img = list.getImage(1); // } // x = random(500); // y = random(500); //}

void movieEvent(Movie m) { m.read(); }

class Samples { PImage sample; Samples(PImage _sample) { this.sample = _sample; } }