風呂瀬 信五

数KBに宇宙を編むデモシーン入門:極限の制約から学ぶコード表現と鑑賞術

デモシーンという文化は知っていても、作品をどこで見ればよいのか、いまのクリエイティブコーディングとどう繋がっているのかは、意外と掴みにくいものです。この記事では、デモシーン(Demoscene) の輪郭と美学を整理し、Pouët やオンラインパーティを使った鑑賞の入口を示します。シェーダーアートやWeb表現との地続きの関係を確かめたうえで、明日から自分の制作に持ち帰れる「制約」の使い方まで辿ります。

数キロバイトに凝縮された宇宙:デモシーンという特異な文化の輪郭

デモシーンは、コンピュータでリアルタイムに映像と音を生成する「デモ」を作り、見せ合うサブカルチャーです。日本では メガデモ という呼び名でも知られています。起源は1980年代の家庭用コンピュータ時代にあります。ゲームのコピープロテクトを外した作者が、名乗りの映像を冒頭に付けた「クラックトロ」が、独立した表現へ育ったと言われています。

作品の多くは、容量やコードの長さで区分された部門で競います。代表的なのは、4KBの「4k intro」や64KBの「64k intro」です。256バイトのような極端な部門を設けるイベントもあります。例えば farbrausch の「fr-08 .the .product」(2000年)は64KB級の作品として広く知られ、Future Crew の「Second Reality」(1993年)はPC時代の古典として語られます。2009年の4KB作品「Elevated」は、数KBから山岳の風景が立ち上がることを多くの人に印象づけました。

重要なのは、デモが動画ではなく 実行されるプログラム であることです。見えている映像は、手続きと数式が毎フレーム立ち上げる現象です。完成品を眺めるというより、小さな種が宇宙へ展開する過程に立ち会う体験に近いでしょう。

制約が生み出す詩学:計算資源の限界と格闘するアルゴリズムの美

制約は、デモシーンでは障害ではなく素材です。容量が数KBなら、画像や音のデータを置く余地はありません。そこで作者は、地形をノイズ関数から、音をシンセサイザーの数式から、形を距離関数から生み出します。「保存する」代わりに「計算で再現する」という発想が、この文化の中心にあります。

具体例を挙げます。シェーダーアートでよく使われるレイマーチングは、空間を「ある点から物体表面までの距離」を返す関数(符号付き距離関数)で表し、光線を少しずつ進めて形を描きます。メッシュを一枚も持たずに、複雑な形状を数十行で描けます。Inigo Quilez が公開している解説記事群は、この手法を学ぶ入口として広く参照されています。4KB級の作品では、さらに Crinkler のような実行ファイル圧縮ツールで容量を詰めるのが一般的です。

ここで起きているのは、効率化を超えた美学の成立です。短いコードで広大な世界を出せたとき、鑑賞者は映像の美しさと同時に、数式の簡潔さ に感嘆します。ただし、制約が美を保証するわけではありません。小さいこと自体が価値になる一方で、構図、色、音との同期といった総合的な判断が作品の質を分けます。技術の誇示だけで終わる作品と、技術が消えて風景だけが残る作品の差を、鑑賞のなかで探してみてください。

どこで体験し、どう鑑賞するか:Pouët、オンラインパーティ、アーカイブの歩き方

最初の入口は、作品データベースの Pouët (pouet.net) です。作品ごとにページがあり、部門、公開されたパーティ、ユーザーの投票やコメント、YouTube などの録画へのリンクがまとまっています。関連サイトの Demozoo (demozoo.org) は、作者やグループ、パーティの記録を横断して辿るのに向いています。過去作のファイルは scene.org のアーカイブに保管されています。

鑑賞の順番は、次のように進めるのが安全です。

  1. まず録画で作品の全体像と音の流れを確認する
  2. 気に入った作品は、制作者が配布している実行ファイルやWeb版でリアルタイム実行を試す
  3. 作者のコメントや制作解説があれば読み、どの部分が計算で作られているかを想像する

実行ファイルを扱う際には注意が必要です。圧縮ツールの特性上、セキュリティソフトが誤検知するケースが知られています。出所の確かな配布元かどうかを確認し、不安なら録画での鑑賞に留めてください。

イベント面では、ドイツの Revision(毎年イースター頃に開催)、フィンランドの Assembly、ドイツの Evoke などが有名です。コンペティションの様子は配信やアーカイブで追える場合が多いです。2020年以降はオンライン開催も定着し、サイズ制限作品に特化した Lovebyte のようなオンラインパーティも生まれました。ライブでシェーダーを書き合う「Shader Showdown」のような催しもあり、制作過程そのものが観客の前で上演されます。日本でも Tokyo Demo Fest などの国内イベントがあり、開催情報は各公式サイトで確認してください。

現代のWeb表現とシェーダーカルチャーへ受け継がれるDNA

デモシーンの技法と精神は、いまのWebにも流れ込んでいます。代表がブラウザ上でフラグメントシェーダーを書いて共有する Shadertoy です。Inigo Quilez と Pol Jeremias が運営し、距離関数やレイマーチングといったデモシーン由来の技法が、短いコードとともに数多く公開されています。コードがそのまま作品であり、同時に教材でもある点が、デモシーン的です。

ほかにも、文字数制限が文化になった場があります。Dwitter は140文字のJavaScriptでCanvas作品を作る場です。twigl はシェーダーを短いコードで書くためのツールとして知られ、極端な文字数削減を競う楽しみ方があります。ライブコーディングの Hydra や、シェーダーのライブ演奏に使われる Bonzomatic のようなツールも、「見せながら作る」というデモシーンの上演性を引き継いでいます。

比較すると、p5.js や Processing は「描く手順を学び、スケッチする」ことに強みがあり、シェーダーアートは「画面全体を一つの関数として捉える」ことに強みがあります。アプローチは異なっても、短いコードから豊かな視覚を引き出す点で、クリエイティブコーディングとデモシーンは同じ土壌に立っています。両者を対立で捉えず、視点の違う入口として行き来すると、表現の幅が広がります。

自らの制作に持ち帰る「極限のルール」:コードを削ぎ落とす実験の勧め

デモシーンから持ち帰れる最大の収穫は、自分に 制約を課す 習慣です。大げさな規模でなくて構いません。「20行以内」「画像と外部ライブラリを使わない」「色は2色だけ」。こうした小さなルールを決めるだけで、判断の軸が生まれ、手が動き始めます。

例として、p5.js で「ループ1つと三角関数だけ」と決めた最小のスケッチを示します。

function setup() {
  createCanvas(400, 400);
  noStroke();
}

function draw() {
  background(0, 20);
  for (let i = 0; i < 60; i++) {
    const a = i * 0.3 + frameCount * 0.01;
    circle(200 + cos(a) * i * 3, 200 + sin(a) * i * 3, 4);
  }
}

この十数行は、60個の点が描く螺旋と、残像による時間の流れだけでできています。ここから、定数を一つ変える、点の大きさに sin を掛ける、といった操作を重ねてみてください。何を足すかより、何を足さないか を選ぶ作業が、作品の性格を決めていきます。

次の行動として、Pouët で4kや64kの部門から1本を選び、録画を観たあとに、自分ならどんな最小の仕組みで再現するかを考えてみるのをお勧めします。完全に再現できなくても構いません。Shadertoy や Dwitter に小さな習作を置いてみるのも、コミュニティと繋がる良い一歩です。限られた容量のなかで世界を立ち上げる感覚は、手を動かした人にだけ静かに返ってきます。

関連記事