[データドリブンアート2023秋] 村松真理英

Marie Muramatsu
7 min readJan 31, 2024

--

「データドリブンアート」という授業で、私は脳波データを使用したデジタルアートパフォーマンスのグループワークプロジェクトに参加しました。この授業は、3人の教授といくつかの専門のエンジニアによるゲスト講義によって指導されました。データドリブンアートは、実際のデータを使用して作られるあらゆる形式のアートワークを指します。このレポートでは、プロジェクトのプロセスと私が行った作業について詳述します。

プロジェクト概要

私のグループ作品のコンセプトは

「Unknown− 得体の知れない物質が自分を支配している 」

であり、一部であるはずの脳波に愛着を感じながらも、実際には目で見ることができず、思うようにコントロールすることもできないという矛盾を表現しています。私たちは、Vieイヤホンを使用して得た5種類の脳波領域のデータを使い、脳波データをリアルタイムで計測し、それによって音、照明、映像が変化するデータドリブンなパフォーマンス作品を作成しました。この作品の流れは、無、照明、音、舞踊、映像といった要素が順に増えていく形でした。

技術的詳細

<音>

音楽とサウンドの面では、5種類の脳波帯域ごとに3パターン、合計15種類のサウンドエフェクトを準備しました。例えば、デルタ波は睡眠を表し、あくびや寝息、いびきのサウンドを使用しました。背景に流れるサウンドには、風の音など自然界で録音した音をエフェクトで加工してドローン音楽を作り、シンセサイザーや打撃音をアクセントとして使用しました。

<照明>

照明では、脳波全体の中でベータ波(集中)が占める割合を計算し、それに基づいて照明の明るさや点滅速度を調整しました。

<ビジュアル>

ビジュアルに関しては、Processingを使用して5種類の脳波に対応する15個の幾何学模様を作成し、それぞれの脳波が具体的なイメージを持つようにしました。

  • デルタ波:睡眠 ⇨ 線・波
  • シータ波:ととのい ⇨ 多角形
  • アルファ波:リラックス ⇨ 抽象・無形
  • ベータ波:集中 ⇨ 円形
  • ガンマ波:超集中 ⇨ 星形・宇宙

動画を添付するのが不可能だったので、出演の様子の画像を以下に貼ります。

私の役割

私はプロジェクトでビジュアル担当としてProcessingを使用して10種類の独自のビジュアルを作成しました。これらのビジュアルはすべて、脳領域の機能に触発されたもので、各アニメーションが1回の反復で終わり、3秒以内に完了するようにしました。また、一部のビジュアルはかほさんが作成し、私が作品全体のテーマに合うように編集しました。Processingの使用経験がなかったため、ゼロから学ぶ必要がありましたが、以前のプログラミング経験を活かして迅速に習得しました。以下のコードは私が書いたプログラムです。その下にはビジュアルと、ステージで全体の様子の写真です。

// Define the DissolvingCircle class
class DissolvingCircle {
float radius = 0;
float maxRadius;
boolean completed = false;
int totalLines = 100;
float alphaValue = 255;

// Constructor
DissolvingCircle() {
maxRadius = width / 2; // Set the maximum radius to half of the width
}

// Method to display the animation
void display() {
if (!completed) {
pushMatrix();
translate(width / 2, height / 2);
for (int i = 0; i < totalLines; i++) {
float angle = map(i, 0, totalLines, 0, TWO_PI);
float x = cos(angle) * radius;
float y = sin(angle) * radius;
stroke(255, alphaValue); // Set the stroke to white with decreasing alpha
line(0, 0, x, y); // Draw a line from center to the current point on the circle
}
popMatrix();

// Update the radius and alpha value
radius += 2; // Increase the radius to expand the circle
alphaValue -= 0.5; // Decrease the alpha to create the dissolving effect

// Check if the animation is completed
if (radius > maxRadius || alphaValue <= 0) {
completed = true;
}
}
}
}

DissolvingCircle dc;

void setup() {
size(800, 800, P3D);
strokeWeight(2);
dc = new DissolvingCircle();
}

void draw() {
background(0);
dc.display();
}
// Define the Animation class
class Animation {
float angle = 0;
boolean completed = false;

// Constructor
Animation() {
}

// Method to display the animation
void display() {
if (!completed) {
pushMatrix();
translate(width / 3, height / 3);
rotateX(angle);
rotateY(angle);
int size = 40;
int count = 6;
for (int i = -count; i <= count; i++) {
for (int j = -count; j <= count; j++) {
pushMatrix();
translate(i * size, j * size);
box(size);
popMatrix();
}
}
popMatrix();
angle += 0.02;
if (angle > PI) {
completed = true;
}
}
}
}

Animation anim;

void setup() {
size(800, 800, P3D);
noFill();
stroke(255);
anim = new Animation();
}

void draw() {
background(0);
anim.display();
}

照明面では、Max mspを使用してLED照明プログラムを作成し、デルタ脳波データを使用してLEDストリップの明るさをコントロールしました。デルタデータが増加すると、明るさが増すようにしました。

まとめ

このプロジェクトを通じて、私はProcessingとMaxという2つの新しいソフトウェアツールを習得することができました。これらを使用するのは初めてであり、プログラミングを使用したアートワークを作成するのも初めての経験でした。非常に難しい挑戦でしたが、興味を引く新しい分野を見つけることができました。チームは非常に良く協力し、各自の強みを生かして効果的に作業しました。私たちは定期的にコミュニケーションを取り、キャンパスで一緒に作業することで生産性を高めました。

#Data-driven Art 2023

--

--