見出し画像

Pride Squiggle で画像をオンチェーンでダイナミックに生成するために使ったテクニック

シンギュラリティ・ソサエティ代表中島の開発が、猛烈な勢いで進んで行く、こちらは一週間で開発したとかしないとか?!自分はプログラマーではないので詳しくはわかりませんが…。開発しているSlackのやり取りは圧巻です。


Pride Squiggle でイーサリアムのオンチェーン上にダイナミックな画像を生成するために使ったテクニックに関して、解説します。
(ダイナミックな画像とは、NFT生成時にいくつかの画像を用意して、単純にその画像を表示するのではなく、プログラムのアルゴリズムによって規則に基づいて生成されたそれぞれの画像のことです)

現在、NFTコレクションは、プログラムを使って、それぞれのNFTにユニークな画像を生成する、ジェネラティブという手法で作られています。しかし、大半のものはオフチェーンで生成し、生成した画像はイーサリウムのブロックチェーンの外に置かれています。

そうする理由は、まだブロックチェーン上に画像を置くには、画像を置くストレージとしては費用が高すぎる(ガス代が高い=お金がかかる)ためです。しかし、それでは「フルオンチェーンのNFT」とは言えず、本当の意味での decentralized とは言えないのです。

そこで作られたのが、Nounsでも採用されている、SVGを使ってSolidityでドット絵を描くという手法です。これであれば、フルオンチェーンでNFTを実装出来ますが、データ削減のためや、実装の制約のために四角のドットを組み合わせるドット絵を使っているので、表現の自由度は限られています。NFTの多くが初期のファミコンのようなドット絵になっているのは、この為です。

そこで、私が試したのは、SolidityのプログラムでSVGの機能を使ってドットではない表現、直線や複雑な曲線を使ったダイナミックなアートを生成する、という手法です。ドット絵の制約もなくなるし、曲線も使えるので、自由度が圧倒的に高くなります。

プログラムでアートを作ることを「ジェネラティブ・アート」と呼び、GPUの世界ではさまざまな素晴らしい作品が作られていますが、NFTで用いられるSolidityを使った分野ではまだまだ開拓されておらず、ブルー・オーシャンです。

私はしばらく、この領域で遊ぶことに決め、その第一弾がPride Squiggleです。ソースコードは、オープンにしてあるので、ぜひともご覧ください。


おわりに
シンギュラリティ・ソサエティでは、テクノロジーがどのように社会に影響を与えるか、様々な議論をしています。 DAOなどに代表されるブロックチェーンやスマートコントラクトのテクノロジーは、社会や経済の仕組みをコード化し、透明且つ効率に仕組みに刷新する可能性を秘めています。
現在、シンギュラリティ・ソサエティでは、DAOやDeFi、Smart Contractなどの勉強や開発、NounsDAOへのプロポーザルプロジェクトなど、Web3の活動も行っています。今後もこれらに関する記事を発信していきますのでお楽しみに!


この記事が気に入ったらサポートをしてみませんか?