万華鏡は、子どものおもちゃで終わらない
万華鏡というと、小学校の工作で作った記憶がある方も多いのではないでしょうか。筒をくるくる回すたびに、形と色が次々に変わり、思いがけない模様が現れる。子どものころはただ夢中でのぞいていましたが、あらためて考えると、あれはまさに光と色彩のシンフォニーでした。
万華鏡の魅力は、のぞいた先の模様だけにとどまりません。外側の造形と、内側に広がる映像表現、その両方がそろって初めてひとつの作品になります。
外側もまた、ひとつのアート
万華鏡の外観には、ガラス、陶器、木材、金属、プラスチック、紙など、実にさまざまな素材が使われています。形も筒形に限らず、こけしのようなもの、望遠鏡のようなもの、建物や人形を思わせるものまであり、中には工芸品やアート作品と呼びたくなるようなものも少なくありません。
手に取ったときの質感や佇まいも含めて、万華鏡は見るための道具であると同時に、それ自体が鑑賞の対象なのだと感じます。

内部に広がる、終わりのない変化
内部に使われるオブジェクトもまた実に多彩です。ガラス片、ビーズ、天然石、プラスチック片、ドライフラワーなど、さまざまな小片が組み合わさって無数のパターンを生み出します。
同じものは二度と現れない――少なくとも、そう感じさせるところが万華鏡のすごいところです。現れては消え、消えてはまた新しい像が立ち上がる。その儚さと、尽きることのない変化の連続。その両方を同時に持っているところに、万華鏡の奥深さがあるのだと思います。

華麗な夢の世界 万華鏡
編者:照木 公子
発行日:2003年5月8日 第3刷
出版社: 文化出版局
ISBN-10:4579207319)
それをアプリで再現してみたくなった
そんな幻想的な世界を、アプリで作れないだろうか。そう思ったのが今回の始まりでした。
もちろん、万華鏡アプリ自体は世の中にたくさんあります。いまさらと言えばいまさらです。でも、美しいものは何度見てもいい。子どものころ、母の鏡台についていた虹色にきらめく小さな飾りや、本で見た王冠の宝石に心を奪われた記憶が、いまだにどこかに残っています。光りものに目がないあたり、昔から少々カラス寄りだったのかもしれません。
まずは要件定義から
そこで、いつものようにChatGPTに要望を整理してもらい、まずは要件定義を作ることにしました。今回作りたかったのは、macOS上で動くデジタル万華鏡アプリです。画面は左にキャンバス、右にコントロールパネルという構成。操作はタブ式にして、見た目の整理と使いやすさを両立させたいと考えました。ほとんどメニューを使わないので操作が楽です。
特にこだわったのは、「平面的な図形の繰り返し」に見えないことです。単なる幾何学模様ではなく、本物の万華鏡のように、光がにじみ、重なり、奥行きが感じられること。さらに、グロー効果は必須。色についても、ただの単色ではなく、オパールやシャボン玉、モルフォ蝶の羽のような、見る角度や動きによって印象が変わる偏光色、構造色、干渉色のような表現を取り入れたいと考えました。
素材も色も、できるだけ豊かに
内部の素材も、できるだけ豊かにしたい。ガラス片のようなもの、宝石のようなもの、光る粒子、フィルム片、有機的な断片など、さまざまなオブジェクトをプレート上に置き、それを鏡で反射・複製して万華鏡模様を作る構想です。
ミラーの角度は、30-60-90、45-45-90、60-60-60といった三角形セルを切り替えられるようにし、プレート自体も移動や回転ができるようにしたい。色もブレンドモードも変えられて、さらに動きに合わせて色や輝きが少し変わる。そんな、見ていて飽きない仕組みを目指しました。

要件定義が、一気に輪郭を与えてくれた
ChatGPTがまとめてくれた要件定義はかなり本格的で、SwiftUI(Apple製品(iOS, macOSなど)の画面を、少ないコードで直感的に作れる現代的なフレームワーク)をベースにしつつ、高速描画が必要な部分はMetal(GPU(画像処理装置)の能力を最大限に引き出すための技術)を使う構成になりました。目的は、対称図形を並べることではなく、「光る素材片を鏡で増幅していく万華鏡体験」をデジタルで再現すること。その方向性がはっきりしたことで、作るべきものの輪郭がかなり見えてきました。
Codexで実装してみたら……
そして、それをもとにCodexに実装してもらったところ、最初のプロトタイプは数十分で形になってしまいました。ここは正直かなり驚きました。
もちろん、そこから先はそう簡単にはいきません。実際に動かしてみると、「ここはもっとこうしたい」「この色はもう少し深くしたい」「動きが少し素直すぎる」など、こちらの注文がどんどん増えていきます。いわば、作る側の欲がむくむくと育ってくるわけです。
でも、そのわがままに付き合って、黙々と手を入れてくれるのが妙にうれしい。人間相手なら少し遠慮しそうなことでも、こちらは容赦なく投げられる。しかも、ちゃんと形になって返ってくる。そのやりとり自体が、ものづくりの新しい面白さだと感じました。いくつもアプリを作ってきたおかげで、Codexも分かってくれているので、エラーログもしっかり組み込んでくれました。

美しさと軽さ、そのせめぎ合い
描画にはMetalを使っているので、映像はリアルタイムでかなり滑らかに動きます。GPUの力をしっかり使っているおかげで、光のにじみや発光感も気持ちよく出せます。
ただ、その一方で、エフェクトを盛りすぎると描画が重くなり、動きが少しカクついてしまうこともあります。美しさを取るか、軽快さを取るか。このあたりのバランス調整は、なかなか悩ましいところです。万華鏡はのぞけば夢の世界ですが、作る側は意外と現実的な最適化とも向き合わされます。きれいごとだけでは済まない、というやつです。
そして今度は、動画と音へ
使っているうちに、今度は静止画だけでは物足りなくなってきました。だったら動画でも書き出したい。最初は静止画像と同じ解像度で考えていたのですが、最終的には16:9や1:1といった一般的な比率でエクスポートできるようにしました。やはり、見せる場所を考えると、このあたりの対応は欠かせません。YouTubeのアカウントを整理したら動画も載せたいと思います。
そうなると、次は音が欲しくなります。映像だけでもきれいなのですが、しばらく見ていると今度は音楽をつけたくなってきました。こうしてまた新しい欲が出てくるわけです。しかも、この音楽づけがまた、なかなかの沼でした。この話は長くなるので、続きはまた次回に回そうと思います。

万華鏡の世界は、思っていた以上に深い
最後に、今回あらためて万華鏡について調べてみると、日本には万華鏡美術館や博物館が思っていた以上にありました。それだけ長く、人を惹きつけてきた世界なのだと思います。
小さな筒の中に、驚きと美しさが無限に詰まっている。万華鏡には、そう言いたくなるだけの力があります。関連する施設もリストアップしてみましたので、興味のある方は、実物の万華鏡の世界に触れに出かけてみるのもおすすめです。
| 名称 | 所在地 | 特徴 | 公式URL | 備考 |
|---|---|---|---|---|
| 三河工芸ガラス美術館 | 愛知県西尾市 | 巨大万華鏡スフィア体感 | https://mikawakougei.com/ | 予約優先・日祝は予約のみ開館の運用あり。 |
| 京都万華鏡ミュージアム | 京都府京都市中京区 | 触れる展示+投影式万華鏡 | https://k-kaleido.org/ | 常時約50点展示・投影式上映あり(展示替え型の常設)。4 |
| 日本万華鏡博物館 | 埼玉県川口市 | 見る/作る 予約優先 | https://nihonmangekyouhakubutsukan.jimdofree.com/ | 予約優先・日祝は予約のみ開館の運用あり。5 |
| MOA美術館 | 静岡県熱海市 | 円形ホールの巨大万華鏡マッピング | https://www.moaart.or.jp/ | 万華鏡は館内スポット(関連展示):円形ホールの投影型万華鏡。 |
| アトリエ・ロッキー万華鏡館 | 静岡県伊東市 | 巨大万華鏡+制作体験 | https://www.mangekyo-kan.com/ | 作品常時展示・巨大万華鏡あり(常設)。 |
| 黄金崎クリスタルパーク・ガラスミュージアム | 静岡県賀茂郡西伊豆町 | 万華鏡も楽しめるガラス館 | https://ikoyo-nishiizu.jp/crystal/ | 現代ガラス常設+万華鏡コーナー(常設)/企画展も実施。 |
| 流山万華鏡ギャラリー&ミュージアム | 千葉県流山市 | 土蔵建築で万華鏡展示 | https://shiro-mirin.com/kaleidoscope-gallery/ | 無料公開(催し物は別料金の場合あり)/建物の由来は市サイトで明記。 |
| 小さな万華鏡美術館 | 栃木県那須郡那須町 | 作家作品展示+制作体験 | http://non-collection.net/ | 移転準備・休業情報あり(営業日・冬季休業等は観光協会側に詳細)。体験・ショップのみは入館料無料扱いの記載あり。 |
| 神戸万華鏡ミュージアム | 兵庫県神戸市中央区 | 元町の万華鏡ミュージアム | https://kobekitano.com/ | 公式ページが不具合 |
| 仙台万華鏡美術館 | 宮城県仙台市太白区 | 見て触って作れる体験型 | https://sendaikaleidoscope.com/ | 季節ごとに展示替えの記載あり(常設+入替)。 |

コメント