風呂瀬 信五

電子ペーパーとRaspberry Piで作る、部屋に静かに息づくジェネラティブアート

日頃から制作や鑑賞でモニターを見つめ続け、発光するスクリーンそのものに疲労や距離感を覚えたことはないでしょうか。Web上で動くジェネラティブアートを、部屋の壁や机の上でポスターのように静かに楽しみたい、そうした課題に応えるのが、自ら光を放たず環境光で像を結ぶ電子ペーパー(E-paper)です。本記事では、電子ペーパーを用いてコード表現を生活空間へ自然に溶け込ませる実践法を、時間感覚、質感、システム構成、鑑賞体験の4つの視点から具体的に整理します。

光を放たない静けさ:バックライトの呪縛から逃れたコード表現

液晶や有機ELは、自ら光る面です。ブラウザで動くジェネラティブアートも、ほとんどは発光する面の上で鑑賞されてきました。電子ペーパーは仕組みが異なります。E Ink の技術では、帯電した微粒子を電界で動かして白や黒を表示し、像を見るための光は周囲の光に頼ります。表示を保つだけなら電力が要らない点も、液晶との大きな違いです。

この違いは、作品の佇まいを変えます。夜の部屋で発光画面が「見ろ」と主張するのに対し、電子ペーパーは昼の光の中でただ「そこにある」存在になります。壁に掛けたポスターに近く、視線を向けなければ意識から消えます。見たいときだけ見る距離感は、スクリーン疲れを感じる人にとって、鑑賞体験の質を変えるきっかけになるでしょう。

もちろん、万能ではありません。暗い部屋では像が見えないため、照明を別に用意する必要があります。また、動画のように滑らかに動かす表現にも向きません。ここで考えたいのは、できないことを嘆くより、できないことが作品に何を許してくれるかです。

「スロー・テクノロジー」という時間感覚:毎分・毎時で移ろう生成の呼吸

電子ペーパーの更新は遅いものです。白黒の部分更新なら速い機種もありますが、カラー電子ペーパーの全画面更新は、機種によって数十秒かかることが珍しくありません。Pimoroni の Inky Impression のようなカラー製品でも、書き換え時に画面が色を点滅させながら切り替わる様子を数十秒眺めることになります。

この遅さを欠点として扱わず、設計の前提に据える考え方があります。Hallnäs と Redström が2001年に提唱した「Slow Technology」は、効率や即時性ではなく、反省や熟考を促す技術のあり方を問う概念です。また、Mark Weiser と John Seely Brown の「Calm Technology」も、注意の中心ではなく周縁に静かに存在する技術を論じました。電子ペーパーのジェネラティブアートは、これらの発想と相性が良いと感じます。

実践的には、60fps のループではなく、1時間に1枚だけ描くスケッチを書きます。時刻をシードにすれば、同じ時間帯には同じ絵が現れ、時間が進むと別の絵に移ります。

const HOUR = 60 * 60 * 1000;

function setup() {
  createCanvas(800, 480);
  const seed = Math.floor(Date.now() / HOUR);
  randomSeed(seed);
  noiseSeed(seed);
  noLoop();
}

function draw() {
  background(245);
  noFill();
  stroke(30);
  for (let y = 40; y < height; y += 16) {
    beginShape();
    for (let x = 0; x <= width; x += 10) {
      vertex(x, y + (noise(x * 0.004, y * 0.01) - 0.5) * 60);
    }
    endShape();
  }
}

noLoop() で描画を1回に止め、randomSeed() と noiseSeed() で再現性を持たせています。作品は毎時の呼吸のように移ろい、同じ時刻に見れば同じ顔を見せます。

制限が生むテクスチャ:限られた色数とディザリングが醸す版画的質感

電子ペーパーの色数は、液晶と比べるとずっと少なくなります。白黒の機種は2階調(機種によっては16階調程度のグレースケール)で、カラー機でも7色前後のパレットが一般的です。フルカラーのグラデーションを、そのまま映すことはできません。

そこで、ディザリングが表現の要になります。Floyd-Steinberg 法は誤差を周囲の画素に拡散し、少ない色で濃淡を擬似的に再現します。Bayer 行列を使う順序ディザは、規則的な網点のような模様を生みます。前者は有機的な粒子、後者は幾何学的な格子になり、どちらを選ぶかが作品の性格を決めます。1-bit ディザリングで世界を描いた Lucas Pope の「Return of the Obra Dinn」(2018)が示すように、制限された階調は、モノクロ版画やリソグラフに通じる独特の質感を生みます。

制作側でできる工夫は、最初からパレットを意識して描くことです。ベタ塗りと線を中心にすれば、ディザの粒が出る面積を自分で制御できます。逆に、ノイズの濃淡を使ったフィールド表現は、ディザと組み合わせると砂のような質感になります。

注意点もあります。ディザリングは機種側のライブラリ任せだと、意図しない粒が出がちです。事前に Pillow などで自分でパレット変換して確認すると、画面に出る前に質感を判断できます。

生活空間に組み込む実践:Raspberry PiとWeb技術(Canvas/SVG)をつなぐ構成

Raspberry Pi 描画の構成は、難しくありません。役割を3つに分けると整理しやすくなります。

  1. p5.js(Canvas)またはSVGで、画像を生成する
  2. ヘッドレスブラウザでキャプチャし、PNG として保存する
  3. Python で電子ペーパーに転送する

2の工程は、Puppeteer や Playwright で HTML を開き、page.screenshot() を呼べば済みます。p5.js をそのままサーバー側で動かすより、慣れたブラウザ環境の描画結果を画像として取り出す方が、トラブルが少なくなります。SVG で図形を組む場合も、同じ手順で PNG にできます。

3の工程は、使う製品のライブラリに従います。Pimoroni の Inky Impression なら、Python ライブラリ inky を使います。

from PIL import Image
from inky.auto import auto

display = auto()
img = Image.open("frame.png").convert("RGB").resize(display.resolution)
display.set_image(img, saturation=0.5)
display.show()

Waveshare の e-Paper HAT なら、型番ごとのドライバが用意されており、手順はやや異なります。どちらも、SPI を有効にする設定(raspi-config)が前提になります。

更新は cron で回します。たとえば毎時0分に、生成からキャプチャ、転送までをシェルスクリプトでつなぎます。更新頻度は上げすぎないでください。メーカーは、更新間隔や長期間の放置に関する注意を示していることが多く、頻繁な全画面更新はパネルへの負担になる可能性があります。これは E-ink クリエイティブコーディングの設計上、見落としやすい点です。

フレームは、写真用の額縁にマットを合わせるだけで、驚くほど「作品らしく」見えます。机の上に立てかけても、廊下の壁に掛けてもかまいません。

鑑賞者から同居人へ:日々の中でコードの佇まいと暮らすということ

ジェネラティブアート展示の多くは、大きなプロジェクションや高精細ディスプレイで、一度に大量の変化を見せる方向に発展してきました。電子ペーパーは逆の方向を向きます。数時間に一度だけ変わる画面を、朝と夜に何気なく見る。そのとき鑑賞者は、作品を「見に行く人」から「一緒に暮らす人」へ変わります。

同居していると、変化の見方も変わります。昨日と今日の差に気づく日もあれば、気づかない日もあります。気づかないこと自体が、作品の体験の一部になります。コードは完成品を提示するのではなく、時間の中で少しずつ違う顔を見せる存在です。

ギャラリーでも、この考え方を展示に活かせます。壁に小さな電子ペーパーを並べ、それぞれ別のシードで動かせば、会期中の1日ごとに作品の組み合わせが変わる展示になります。来場者が訪れた時刻によって見る像が違うことは、一期一会の鑑賞を生みます。ただし、更新タイミングや長期展示時の画面保護は、使うパネルの仕様を確認したうえで設計してください。

次に試すなら、手元の p5.js スケッチを noLoop() と時刻シードに書き換えて、PNG に書き出すところから始めてみてください。画面に出る前に、パレットを7色に絞ったときの見え方を確かめるだけでも、制限が生む質感が見えてきます。

関連記事