存在しない天然石の標本を作れる「LAPIDARIUM」を公開した
——天然石ジェネレーター制作記
天然石には前から興味があって、先日、見たこともない石が表紙になった天然石特集の雑誌に出会ったのが、この構想の始まりです。ブラウザの中で天然石の標本を掘り出すツール「LAPIDARIUM」を作って、公開しました。
作ったもの
LAPIDARIUM(ラピダリウム)は、ブラウザ上で天然石の標本を生成して、眺めて、蒐集できる無料ツール。インストールも登録も要らない。スマホでも動く。
天然石はもともと身近な素材で、当社で取り扱っているコアフォース製品にも、ラピスラズリやブラックスピネルといった天然石が使われている。ただ、あの雑誌の表紙のような「同じものが二つとない」石との出会いは、また別の体験。それをブラウザの中に作りたかった。
ボタンを押すと石を「掘り出す」。スライダーで石を追い込む。気に入ったら棚に納めて、図鑑風の標本カードPNGとして保存する。それだけのツール。ただ、作っていた時間の大半は「石らしさとは何か」を考える時間だった。
まず「掘り出す」を押す
「✦ 掘り出す」を押すたび、新しい石が出てくる。形態8種(単結晶・群晶・母岩付き・磨き石・丸玉・針入り・庭園水晶・立方晶)と色と質感の組み合わせが乱数で決まる。仕組みとしてはガチャ。ただ、出てくるのはレアリティの序列ではなく、名前のついた一点もの。
この記事のために6回掘ったら、紅梅葡萄玉、琥珀華、宵蒼石、宵菫黄金輝石、琥珀藤玉、瑠璃藤輝石が出た。銘(めい)は自動で付く。和名は色彩語の合成、洋名は鉱物学の語尾(-ite / -ine / -yst)を模していて、Rosametyst のような「ありそうで実在しない」名前になる。この銘を眺めているだけで、僕はけっこう満足してしまった。気に入らなければ「銘を練り直す」。自分で入力してもいい。
すべての石はシード(乱数の種)から生成されていて、同じシードなら同じ石が再現される。ただ、掘るたびにシードは変わるので、同じ石は二度と出ない。「再結晶」は同じ設定のまま結晶し直すボタンで、出てくるのは同じ性質を持った別の個体。機能の名前は、できるだけ鉱物の語彙に寄せている。
スライダーで追い込む
偶然に任せるだけでは終わらないようにした。色相2本とゾーニング(単色/バイカラー/縞)、色の深さ、透明度、内包物、条線(じょうせん・結晶面に走る筋)、歪み、結晶の伸び。計9本のスライダーで、頭の中にある石へ寄せていける。母岩(ぼがん・結晶の土台になる岩)付きなら、母岩の色も5種類から選べる。
照明も切り替えられる。暖色・寒色・暗室・洞窟の4種類。洞窟にすると、真っ暗な空間に一本吊りのスポットライトだけが石に落ちる。本物の洞窟は光源1〜2個と岩肌の反射で成立している、という観察からの設計で、博物館の展示室のような劇的な見え方になる。
照明を落とすと、ツールのUIごと暗くなる。展示室の照明を落とせば、部屋も暗くなるので。
蒐集棚と標本カード
気に入った石は「棚に納める」。蒐集棚には24個まで並んで、クリックすると石が完全な形で戻ってくる。縮小画像を保存しているのではなく、シードと設定から同じ石を再生成している。保存先はブラウザの中(localStorage)で、当社のサーバーには何も送っていない。
「標本カード」を押すと、図鑑風のカードになる。標本番号、銘、硬度、比重、晶系(しょうけい・結晶の対称性による分類)、光沢、劈開(へきかい・特定方向に割れやすい性質)、産地、日付。1080×1640のPNGで保存できるので、スマホの壁紙やSNS投稿にそのまま使える。X(Twitter)へのシェアボタンもあって、銘入りの投稿文が開く。画像は「画像保存」で保存して添付する方式。
カードの産地・硬度・比重などは、石の設定値から導出した演出上のフィクションです。メレラニ鉱区にこの石は埋まっていません。実在の鉱物との同定もしていません——このツールで作れるのは「トルマリンのような柱状結晶」であって、トルマリンではありません。
石らしさをどう作ったか
作りながら決めた方針がひとつある。石らしさは、形ではなく質感で決まる。六角柱を立てて色を塗っただけでは、どう見ても鉱物にならない。作っては直すうちに、CGっぽさの正体はだいたい質感の嘘だとわかってきた。
鍵は3つ。翡翠の奥に光が透けるような表面下散乱、水晶のきらつきを作る屈折と分散、そして実写ベースの環境光。どれか一つが欠けると、とたんに作り物めいて見える。
実装はthree.js(r184)によるWebGLで、外部の3Dモデルは使っていない。形もテクスチャも、すべてその場で計算して組み立てている。質感は物理ベースのマテリアル設定への写像で、「透明度」スライダーは透過(transmission)へ、「色の深さ」は光が石の中で吸収される量へ、という対応。屈折率は1.62に固定して、宝石で言うファイア——分散も少し入れている。
色ムラは頂点ごとの色で塗り分けていて、縞は高さとノイズのしきい値、内包物は3Dノイズによる乳白の混色。条線の凹凸や磨きムラは、Canvasでその場で描いたテクスチャ。磨き石の表面をよく見ると、磨きは意外と均質でない。その観察を、ツヤのムラ(roughnessMap)としてそのまま入れた。母岩付きは、変形させた球体に光線を飛ばして着地点に結晶を植えている。この辺は書き出すときりがないので、このくらいで。
AI仕上げの使い方
理想を言えば、ツールの中でボタン一つ、フォトリアルな実物っぽい画像まで生成したかった。ただ、それには画像生成AIのAPI組み込みが必要になりそうで、無料で公開するツールとしては見送った。
だから「AI仕上げ」ボタンは、橋渡しに徹している。1024×1024の下絵PNGと、石の設定から自動で組んだプロンプト(ポジティブ/ネガティブ)を書き出すところまでがこのツールの仕事。撮影はこちらで済ませたので、現像はみなさんにおまかせします、という分担。
形と構図と色は3Dが決める。AIは質感だけ足す。
実際に、母岩付きの群晶をChatGPTで仕上げてみた。下絵を添付して、構図と色はそのままで実写の鉱物標本写真に、と頼んだだけ。結晶の本数も配置も色の移りもほぼそのままに、質感だけが実写になって返ってきた。
Stable Diffusionを使うなら、img2imgに下絵を読み込んでdenoising strength 0.35〜0.55。形が崩れるならControlNet(Depth / Canny)を強度0.6前後で併用する。なお、生成した画像の利用規約や商用可否は、お使いの生成AI各サービスの定めに従ってください。
まとめ
LAPIDARIUMは無料で、登録も要りません。石は一つずつしか出てこないので、良い石が出たら棚に納めて、カードにして、誰かに自慢してください。掘るほどに、実在の鉱物を検索して見比べたくなると思います。そうなったら、このツールの勝ちです。
クレジット:3D描画は three.js(MIT License)。暖色・寒色スタジオの環境光には Poly Haven の実写HDRI(CC0)を使用。フォントは Google Fonts(Shippori Mincho B1 / Zen Kaku Gothic New / Cormorant Garamond)。ツール制作記の前作はホムペジェネレーター制作記へ。
← コラム一覧へ