コードが詩になるとき――「計算する詩/Computational Poetry」を訪れて

先日面白い展示会に行ってきました。

今回はそちらの展示会について書かせていただこうと思います。

展示会の名前は「計算する詩/Computational Poetry」という展示会。

私自身もともと芸術や技術の展示が好きで、
よく美術館や展示会を巡っています。

いつも通りネットで「面白いものないかな?」と調べていたところ
偶然にこの展示会を発見しました。

案内にあった“コンピュータで詩をつくる”という言葉。

自分にとってプログラミングは日々の業務を支える“道具”に過ぎない。
ですが、その道具が誰かにとっては純粋な表現手段になるというところが面白いとおもい、
事前知識はほとんどないままその場に足を運ぶことにしました。

 

会場へ、、

近くに着くも会場らしきものは見えず無骨なビルばかり。

確かに地図はココと思いながらよく見ると会場はここでした。

まるかビル外観

ちゃんと会場の「NEORT++」の名前も書いてあります。

後に調べたところ、
このビルは「まるかビル」という名前のビルで、
蕎麦屋の跡地を全面改装して作られたギャラリーらしいです。

1階が駐車場で2階、3階、4階がそれぞれ別のギャラリーになっているそう。

今回は3階の「NEORT++」に用事があったので3階へ。

会場に到着しました。

オシャレな入り口には他のイベントの広告と解説の小冊子がおいてありました。

内部に入ると10点ほどの作品が飾られてました。

ここでは主催者の荒川零一さんの解説と特に目を魅いた作品について
私なりの視点で書かせていただきます。

 

主催者・荒川零一の世界

今回の主催者であり多くの作品を出展していたのが荒川零一さん。
彼の記事を後から読んで知りましたが、
彼はエンジニアリングと詩を融合させ、
コンピュータが持つ計算性そのものを詩的表現へと変換していく活動を続けているそうです。

BUGCAT

なかでも特に印象に残ったのが、荒川零一さんの「BUGCAT」。
作品ページにあるように、ソフトウェア開発における“バグ”や“脆弱性”という、
普段は敵視される存在を、愛らしい猫として描き出しています。

バグを「排除すべき不具合」ではなく、
作品世界を形づくる“キャラクター”として受け入れる発想は、
エンジニアである私にとって斬新でした。

身近で想像しやすい猫というモチーフによって、
バグの不確定さや自由さがうまく映し出されていてニヤリとしてしまいました。

 

Miniscriber

もう一つ心を奪われたのは、Kalen Iwamoto さんの「Miniscriber」。
作品ページにある通り、DJのターンテーブルを思わせる装置。
ですが、回すのはレコードではなく画面に浮かぶ“文字”たちです。

ノブやフェーダーを操作すると文字の並びやリズムが変わり、
音楽を奏でるように詩が生成されていきます。

デジタル生成でありながらどこかレトロな質感。
アナログ機材のような手触りを伴って、言葉が踊る。
そのギャップが、懐かしさと新しさの入り混じった独特の哀愁を漂わせていました。

 

コンピュータで詩をつくる-コードポエトリー(Code poetry)の世界-

プログラミングという自分にとっての業務用ツールが、
ここでは純粋な表現手段として機能していました。

家に帰った後にこの世界の内容を調べたのですが、
”コンピュータで詩をつくる”すなわち「コードポエトリー(Code poetry)」は文学として有名になりつつあるようです。

コードポエトリーでは”ソースコードそのものが詩になる”(文章自体が詩)
という表現形式のほか、
実行結果が詩、実行プロセスが詩、ユーザーの入力によって変わる表現が詩、
など様々な表現が行われます。

また、その中では「美しいコード」に対しての基準も異なります。
私たち業務の道具としてコードを扱うエンジニアにとっては汚いコードでも
コードポエトリーの世界では美しいコードとして扱われることもあります。

簡単な例を出しますと、、

import random

def glitch_poem(lines=10):
    for i in range(lines):
    # ランダムにスペースを入れて星印を並べる
    print(" " * random.randint(0, 8) + "* glitch *")

glitch_poem()

こちらのpythonコード
実行するとglitch(不具合)という文字が
バラバラにズレながら10行模様のように表示されます。
ただ実行するたびに違うインデントの模様になります。

こちらは普通なら“無駄が多く可読性もない”と指摘されるものです。
けれど実行するたびにglitchという文字で異なるものを映し出す
その一度きりの形が詩のような偶然性を帯びています。

 

もう1つ例を出します。

try {
    throw new Error("undefined heartbeat");
} catch (e) {
    // 文字を1文字ずつ配列化
    const chars = e.message.split("");
    let i = 0;

    const timer = setInterval(() => {
        console.log(chars[i]); // 1文字だけ表示
        i++;
        if (i >= chars.length) { // 最後まで来たら停止
            clearInterval(timer);
        }
    }, 900); // 900ms 間隔
}

こちらのJavaScriptコード
実行するとすぐに例外が投げられ、
ブラウザコンソールに「undefined heartbeat」という文字を
900ms 間隔で一文字づつ表示するだけのプログラムです。

ですがこの1文字づつの間隔が、
heartbeat(鼓動)のように感じられないでしょうか?

このように普段は評価軸にならない要素が
「美」として立ち現れているところに芸術を感じます。

 

終わりに

普段から詩とかよく読むのですが、コードの詩を読むのは今回が初めて。
なかなか理解が追い付かない世界に飛び込みながらも、
確かに「面白い」と感じる自分がいました。

普段コードを書く身であるからこそ、
今回のコードによる芸術の世界は、
コードに対してもっと愛着を持てるきっかけになったのではないかなと思います。

展示は2025年10月5日までやっているそうなので
興味を持たれた方は、是非足を運んでみてください。

--------------------------
開発支援・技術研修のご要望・ご相談はこちらから
--------------------------
【この技術ブログを読んだエンジニアの皆様へ】
カサレアルブログをお読みいただき、ありがとうございます!

私たちは、常に新しい技術に挑戦し、ユーザーのニーズに応えるサービスを提供しています。
もし、当社の技術への情熱や、会社・チーム・社員の雰囲気に共感いただけたなら、
ぜひ私たちと一緒に働きませんか?
現在、株式会社カサレアルでは事業拡大に伴い、新たな仲間となるエンジニアを積極的に募集しています。

少しでも興味をお持ちいただけましたら、まずは弊社のことを知っていただけると嬉しいです。
▼採用サイト
https://www.casareal.co.jp/recruit/career
▼社員インタビュー
https://hrmos.co/pages/casareal/jobs/0000016
▼エンジニアの仲間になる! エントリーはこちらから
https://hrmos.co/pages/casareal/jobs

皆様のエントリーを心よりお待ちしています!

初めて2歳児を連れて技術カンファレンスに行ってみた

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

コメント ※

名前 ※

メール ※

サイト