BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

コードが入力され、アートが出力されます: 誰もが NFT アーティストです

Block unicorn
特邀专栏作者
この記事は約7151文字で、全文を読むには約11分かかります
ジェネレーティブ アートの未来では、誰もが NFT アーティストです。
AI要約
ジェネレーティブ アートの未来では、誰もが NFT アーティストです。

この講演は Clojure/conj 2018 で行われ、ジェネレーティブ アートの実践に関するいくつかの興味深い問題に焦点を当てています。NFT実施した。

みなさん、ようこそ。ありがとう。ご来場いただき誠にありがとうございました。私が本当に大好きなアートワークについて話すことに興奮しています。具体的には、プログラミングによって作成されたアートワーク、いわゆるジェネレーティブ アートワークについて話します。この講演では、ジェネレーティブ アートの作成などの技術的な実践ガイドを提供するのではなく、実践の周囲で生じるいくつかの興味深い哲学的疑問を探求します。ジェネレーティブ アートは比較的新しいメディアであり、それ以前の伝統的なアート形式とは大きく異なります。そのため、非常に興味深いと思われる新しい問題がたくさんあり、それらは特に私たちプログラマーに関連しています。実際のソフトウェアのセットアップと使用するツールについて少し時間をかけてお話します。

私が作るアートワークには通常、インプットがありません。これは、いかなる種類のデータ視覚化や画像操作でもありません。画像の生成に必要なものはすべてプログラム自体の中に含まれており、プログラムが出力するものはすべて最終製品となります。通常、私は最終製品としてデジタル画像を扱いますが、厳密にそうするわけではありません。時々、私は物理世界に侵入して、このようなプロッター絵画のようなものを作成します。これは本物の絵画ですが、後で説明する単純なロボットであるプロッターを使用して作成されました。私は主に抽象的な画像を扱っていますが、最近は手描きのコンポーネントを統合しようとしているため、ワコム タブレットを介したデジタル描画の入力をアルゴリズムの開始点として使用できるカスタム インターフェイスを作成しました。この場合、私は図形の輪郭を描き、そこから引き継ぐアルゴリズムに渡し、それをさまざまな形に分解し、すべての色と詳細を割り当てますが、主にこの [最終画像] は私がこれまでに行ってきたものです。過去5年ほど取り組んでいます。

私が使用しているツールは次のとおりです。 私は Clojure ライブラリである Quil を使用しています。これは、Processing という別の Java ライブラリのラッパーで、10 年か 15 年前から存在していると思います。 Processing は基本的なグラフィック ライブラリです。図形、線、画像を操作するための比較的シンプルな API を備えています。 Processing は元々、独自の奇妙な IDE を備えた Java ライブラリとして作成されましたが、Quil を使用して Clojure でラップすることができます。処理も Java Script に移植されており、Quil も ClojureScript でラップしています。使用するプラットフォームを選択できます。

これは、セットアップがどのようなものかを理解するための非常に単純なプログラムです。ボイラープレートはほとんどありません。このプログラムは特に面白いものを描いているわけではありません。これは画像の周りに単なるごちゃ混ぜな線が並んでいるだけですが、これの良い点は、画像の作成を開始するだけで済み、API も比較的シンプルであることです。

一番下では、(begin-shape)、(vertex) への一連の呼び出し、そして (end-shape) を取得しています。これが、これらの API の使用方法の 90% です。場合によっては、レイヤーやマスクなどのより高度な作業を行うこともありますが、それが中心です。システムをベクター グラフィックスまたはラスター グラフィックスとして使用できるため、実際のピクセル配列にアクセスできます。使用する別のレンダラーを選択できます。 2D または 3D で作業できますが、私自身は 2D で作業することを好みます。これを使用するとアニメーションを実行できるので、それに加えて、それを停止するために (ループなしの) 呼び出しを用意していますが、通常はフレームごとにdraw を繰り返し呼び出します。そのため、リフレッシュして再描画できるため、人々はアニメーションのように作成します。彼らはこの方法でインタラクティブなソフトウェアも作成します。キーボード入力、マウス入力、ワコム タブレットなどを受け入れることができるのに、なぜそのために Clojure を選んだのでしょうか?

実際にこれを行うためのツールがあることを知ってからは、さらに良くなりました。残念ながら、私は Matplotlib から始めましたが、これは想像できるほど使いにくいものでしたが、Clojure の方がはるかに優れています。主な理由は、ビジュアル イメージの作成が実際には一種のデータ処理であるためだと思います。これらの形状、曲線、点、ピクセルを扱っています。これらはすべて、単純なデータ構造として非常に便利に表現されるため、単純なデータ構造上でこれらのデータ変換パイプラインを設定する典型的な Clojure スタイルの操作に非常によく対応します。これはこの分野に非常に応用でき、オーディオにも非常に応用できるため、生成オーディオを作成できる Overtone のような Clojure ライブラリがあり、非常にうまく機能します。

もちろん、ここにいる誰もが Clojure の記述が速いことを知っており、それが私たち全員が Clojure を気に入っている理由の 1 つであると思いますが、特にアートワークの場合、そのアーキテクチャを事前に計画する必要はありません。どちらかというと探索的な実験モードで、単に接続して実行して、どのようになるかを確認するだけです。したがって、特に REPL との統合では、モジュールをリロードしてコードを再実行できるため、この種の探索的な作業に最適な非常に緊密なフィードバック ループになります。もちろん、他の Lisp 方言に対する Clojure の大きな利点の 1 つは、優れたエンジニアリングであり優れたエコシステムである JVM にアクセスできることです。ランダムに必要になる Java ライブラリがすべて用意されており、毎回すべてを最初から作成する必要がないのは便利です。もちろん、JVM のパフォーマンスは比較的高いです。大きなヒープ サイズでもうまく機能します。

多数の配列操作を最適化する必要がある場合は、Java を使用すると非常に簡単に実行できますが、これは非常にまれなことだと思います。もちろん、本当にブラウザにデプロイしたい場合は、ClojureScript を通じて実行できます。インタラクティブなソフトウェアを作成している場合は、同時に動作する可能性のある共有状態を処理する必要があるため、アトムとエージェント、特にエージェントの標準的な Clojure ツールキットがこの作業方法に役立つ傾向があります。アニメーション スレッドをブロックしないように注意してください。そのため、このスタイルの作業を行うには core.async などのツールが非常に便利です。最後の点は少し推測の域を出ませんが、より柔軟な言語を持っていると、この種のクリエイティブな仕事をするときにより良い心構えができるように感じます。

それで、私がジェネレーティブ アートに取り組んできた数年間で、多くの時間を費やして考えてきた大きな疑問がいくつかありますが、それらの疑問に対する答えはそれほど単純ではありません。驚くべきことではないかもしれませんが、興味深いものになると思います。そこで、最初に話したいのは、プログラムで興味深いアートワークを作成する方法です。つまり、それこそがジェネレーティブ アートワークの鍵なのです。ただし、ここで言うことには注意が必要です。「面白いアート」という言葉は重い言葉です。これはいったい何を意味するのでしょうか?それは多くのことを意味します。アートはさまざまな点で興味深いものですが、ここでの相対的な特性は、優れたアートは私たちが予期しなかった方法で物事を実現するということだと思います。それは私たちを驚かせたり、何か新しいことを教えたり、物事を別の視点から見ることができる能力を持っています。これが優れた芸術と工芸の違いです。しかし、芸術作品を理解する必要もあります。

それをしっかりと理解できないのは本当に嫌です。一部のアートワークは消化するのが難しい場合があり、それは問題ありませんが、最終的にはアートワークの背後に何らかの意味、構造、組織があるように感じたいと考えています。むやみやたらに束ねることはできません。たとえ論理的に理解することができなかったとしても、芸術作品を鑑賞するためには、芸術作品を直感的に理解する必要があります。では、予期せぬアートを鑑賞した場合、プログラミング時に問題が生じるのでしょうか?プログラミングは、それを便利なツールにする強みの 1 つであり、非常に予測可能です。特定の状態で何が起こるかを知らせるシステムを作成することができ、何らかのエラーがなければ、これは非常に予測可能な動作方法です。

これは、予測不可能なアートワークを作成したいという私たちの願望と矛盾しているように見えるかもしれませんが、多くのジェネレーティブ アーティストがこの問題にうまく取り組んでいるので、いくつかの回避策について説明します。私自身のアプローチ、そして私がフォローしている何人かのアーティストも同様に使用しているようですが、実際にはプログラミング スタイルであり、何を作成すべきかを正確に説明するというよりもガイドラインに近いものです。ここで視覚的な例を示すために、これらは同じプログラムから作成された 2 つの画像です。

コードを変更せずに、複数回実行するだけで 2 つのまったく異なる結果が得られますが、それでも、いくつかの点で美的に非常に関連しているように見えます。かろうじて 1 つのピクセルが一致しますが、どういうわけかそれらは結合されます。これを達成する方法は、高レベルの構造から細部、色の選択などの要素に至るまで、ランダム性を非常に選択的かつ慎重に使用することです。

このアルゴリズムは主に一種の再帰的な三角形の細分割に基づいており、各三角形を完全に分割する代わりに、中心からわずかにずれたり、直線の代わりに曲線を使用したりするためにランダム性が使用されます。一部の領域では深度まで再帰し、他の領域では再帰しない可能性があり、それらの分布を興味深い方法で維持しようとします。色は親三角形からその子に継承される可能性がありますが、さまざまな確率で別の色にランダムに切り替わる可能性もあります。したがって、実際には...プログラムは特定の方向に進んでいますが、明確にレイアウトすることはありません何が起こる必要があるのか​​。私はまだ予期せぬ結果で私を驚かせる余地をプログラムに与えようとしています、それは単なるブートストラップのランダム性です。

私はもう一人のアーティスト(マノロ・ガンボア・ナオン)がとても好きです。彼の名前は私には発音しにくいので、詳細は避けますが、ここに 2 つの画像があります。これらは同じプログラムからのものだと思われます。

繰り返しになりますが、まったく異なるものであっても、この美的一貫性が維持されているため、この方法が人気があることがわかります。このアプローチを採用していると思われるアーティストは他にも見つかります。より創発的なプロパティや創発的な構造に依存する傾向にある、非常に異なるアプローチもあります。この文脈で私が創発的と言っているのは、何も興味深いことをしそうにない非常に単純なルールのセットがあるということです。時間をかけて繰り返し実行すると、ルールを見ただけでは予測できないような大きな上部構造が現れ始めます。

この基礎は実際にはカオス理論に関係しており、カオス システムの非常に単純な例は三重振り子です。これは基本的に 3 つの相互接続された振り子です。これらのオブジェクトは、それ自体では非常に予測可能なオブジェクトですが、これらを組み合わせるとカオスなシステムができあがります。つまり、初期状態の小さな違いが最終結果の大きな違いにつながる可能性があります。

そこで、ジョナサン・マッケイブによる本当に素晴らしいアートワークをご紹介します。彼はセル オートマトンの先進的な形式に取り組んでいました。おそらく多くの人はそれが何であるかを知っていますが、知らない人にとっては、セルオートマトンであるコンウェイのライフゲームについて聞いたことがあるかもしれません。基本的に、オンまたはオフにできるセルを含むグリッドがあり、ステップスルーして、次のセルにある特定の数の近傍が開いているように、セルがいつオンまたはオフになるかを制御するいくつかの単純なルールを設定できます。ステップ。

これはより複雑なシステムです。これは彼がマルチスケール チューリング モデルと呼ぶもので、セル オートマトンを使用します。1 つはマクロスケールの機能に、もう 1 つはより詳細な機能に使用されます。しかし、ここには多種多様な出力があり、このプログラムのすべての出力は完全に異なって見えます。それは本当にワイルドですが、それでも私たちがなんとか理解できる一貫した構造を持っています。これは非常に注目すべきことです。

もう 1 つの一般的なアプローチは、セル オートマトンに似ていますが、グリッドがなく、セルよりも複雑なものです。この場合、システム内で移動するエージェントまたはアクターと呼ばれるものがあり、ある意味それに大きな影響を与えます。また、これらは相互作用する傾向があるため、2 つのエージェントが衝突すると、描画している色が変わる可能性があります。セルオートマトンの場合と同様に、これらを単純なルールで設定でき、多くのステップを実行してこの複雑なイメージを構築します。これはアニメーションでも非常にうまく機能しますが、これは単なる静止画です。

最近の発展の 1 つは機械学習です。神経学は素晴らしい用語だと思います。これはマリオ・クリンゲマンによって作られたアートワークで、ここに彼の作品のいくつかがあります。このアートワークは、敵対的生成ネットワークである GAN と呼ばれるものを使用して作成されました。これはニューラル ネットワークであり、特定のスタイルでトレーニングされますが、アーティストがこれらを使用するときに実際に使用する 2 つの手段は、まずトレーニング セット、つまりネットワークがトレーニングされる画像のコレクションです。彼らにとってのもう 1 つの実際の制御点は、目的関数です。以上が、ネットワーク自体がスコアリングする方法、またはネットワーク自体が良い仕事をしているかどうかを確認するためにスコアを付ける方法、そしてより良い仕事をするためにどのように変更する必要があるかを確認する方法ですが、さまざまなバリエーションがあります。これは彼の活動のほんの一部を垣間見ただけです。もっとチェックすることをぜひお勧めします。

これらのアートワークはすべてスタイルが大きく異なりますが、これらすべてを結び付ける共通点は、ランダム性と構造をうまく組み合わせていることです。彼らは、まだ驚くべき予測不能になるまで、この 2 つのバランスを維持することができますが、それでも、私たちが直感的にのみ理解できる、ある種の秩序を持っています。このことを私に非常に明確に示した画像の 1 つは、タイル アートを作成する John Greene の作品です。

このようなタイリング システムは明らかに非常に秩序立っていますが、彼はまた、非常に優れた多様性を生み出す方法でランダム性を導入することに成功しています。したがって、「プログラミングでどうやって面白いアートを作るのですか?」という質問には十分に答えることができると思います。それは可能だと言えます。プログラムで驚くべき結果を作成するには、さまざまな方法があります。


したがって、次の非常に興味深い質問は、ジェネレーティブ アートの哲学と、それが将来どこに向かうのかに関係があると思います。私たちの美学をコードに変換することができます。このプログラムを書いているときに私がやろうとしているのは、プログラムを非常に正確にするのではなく、どういうわけか自分の好きなものをプログラムにエンコードすることですが、その芸術は非常に直感的な実践です。多くの直観と直感に導かれ、何をすべきかについて誤った決定を下す可能性がありますが、プログラミングはそれとはほぼ逆です。これは非常に明らかです。とても組織化されています。とても組織化されています。したがって、これはこれらのものを混ぜ合わせたり追加したりするという非常に珍しい試みです。その結果、多くのジェネレーティブ アーティストは次のような疑問を抱き始めます。


この問題を色に絞り込んでいきます。画像内の各図形の色を選択して心地よい効果を生み出すプログラムを作成するという任務を負っていると想像してください。これは実行可能なタスクのように思えます。色は三次元空間であり、非常に単純です。しかし、さらに深く掘り下げてみると、この色は非常に共感できるものです。任意の 1 つの色は、その周囲のすべての色、それらの色の近接性、およびサイズの影響を受けます。それだけでなく、色は私たちにとってこれらすべての文化的な意味合いを持っています。私たちは色をさまざまな感情と関連付けます。私たちは物体、場所、さらには時間帯に色を付けます。本当に優れたアーティストは、予期せぬ方法や皮肉な方法で色を使用するため、色が実際には単なる 3 次元空間ではないことは明らかです。


つまり、それを実際に行うために必要なのは強力な人工知能だけであり、その時点で芸術の定義は現在よりもさらに曖昧になります。マット・ピアソンには、AI アーティストを書いている人について語った興味深い短編小説があります (『Death of an Artist』、『Novelty Waves』)。チェックしてみることをお勧めします。つまり、質問に対する答えは、私たちの美学をコードに変換できるか、それができるか、しかしすべてではない、ということだと思います。それはアーティストとショーのコラボレーションでなければなりませんが、それは問題ありません。



最後の質問、そしておそらく最も重要な質問ですが、なぜこれをやりたいのですか?なぜコードでアートを作るのでしょうか?最も単純な答えは、基本的には楽しいということだと思います。私たちは、これらの信じられないほど複雑なスキルを開発するために非常に強力なツールを使用することにいつも時間を費やしていますが、それを興味深い方法で使用することはほとんどありません。


あらかじめ決められた目標もなく、実際に座ってコードを書いている人は何人いるでしょうか?そう...あなた方5人のように、おそらくあなた方の何人かにとってはかなり珍しいことです。それは通常私たちがやることではありませんし、本当にそうすべきだと思います。このスキルを使ってたまに面白いことをするのはもったいないです。この種の作業には、芸術的な課題に加えて、エンジニアリング上の興味深い課題も数多くあります。



本当に高速なコードを書きたい場合は、リアルタイム GPU シェーダーを作成できます。これらは非常に高いスループットを備えています。効率的でコンパクトなコードがお好みなら、信じられないほど小さな実行可能ファイルから何かを生成するデモ シーン アートがあります。それは 4 KB の実行可能ファイルに収まる全世界です。これはただの動画の静止画です。山、匂い、雲、海がある地形全体があり、とてもエキサイティングです。



ロボットがお好きなら、当社にはロボットがあります。誰かがこれらのクレイジーな 9 軸工業製品を入手し、肖像画を描きました。シンプルな 3 エントリーのロボットで満足する必要がありました。



これはAxiDrawです。カリフォルニアの小さな会社が作っています。スケッチや描画に使用しますが、物理的な世界で何かができるのはとても良いこともあります。ここは本当に未開発の領域なので、何かをするのが好きなら、最初にそれをやってみてください。ここではとても簡単です。わずかな時間でほぼどの方向にでも歩くことができ、新しい肥沃な土壌に足を踏み入れることができます。モチベーションに関して言えば、本当に素晴らしいです。わずか数時間の作業で、即座に視覚的なフィードバックを得ることができます。 l これは悪いフィードバックになる可能性がありますが、常にそうとは限りません。あなたは通常、自分が作ったものを楽しむので、望ましい結果を達成するまでに何か月も何年もかかるプロジェクトではありません。少なくとも私の性格上、この種のモチベーションを持つことは有益です。



言うまでもないことだと思いますが、あなたはこれを何もするつもりはありません。

これについては少し触れましたが、正直に言うと、私たちはこれらのスキルを身に付けて楽しむことができるはずです。やらない理由は本当にありません。もう少しリラックスする習慣を身につけるべきだと思います。しかし、もっと真剣に考えると、私たちは実際に社会のためにこれらのことに時間とエネルギーを費やす必要があると感じています。私たちは、世界のほとんどの人が理解していないテクノロジーとプログラミングについての知識を持っています。つまり、ほとんどの人にとって、それはまったくの謎であり、アートワークがそのギャップを埋めることができることがあります。


たとえば、最先端の機械学習について考えてみましょう。街行く人に「最先端の機械学習アルゴリズムの長所と短所は何ですか?」と尋ねても、彼らは知りません。ここにいる皆さんの中には、答えるのが難しい人もいるかもしれません。しかし、機械学習アルゴリズムによって作曲された短い音楽を聴いてもらったり、アルゴリズムによって生成された詩を読んでもらったり、芸術作品を見たりすると、彼らは何が起こっているのかをすぐに直感的に理解するでしょう。それ。彼らは聞くことができるでしょう。まあ、おそらく詳細を正確に把握できるかもしれません。これらの短い音符のシーケンスを心地よい方法でつなぎ合わせることができますが、全体像は無視されます。何のドラマもありません。話はありません。緊張感がない。


この直感的な理解は、今回の機械学習に限らず、プログラミングによって生み出されるさまざまな芸術作品でも起こり得ると思います。教育的な側面、非常に重要なコミュニケーションの側面があると思います。生成アートはまた、宇宙自体が法則と確率に基づいて生成的なものであるため、世界について私たちに説明する傾向があります。これらは、特定のパターン、創発的なパターン、生成的なアートワークを多用する処理パターンにつながります。したがって、意図的かどうかにかかわらず、生成芸術作品は、私たちが世界で見つけているのと同じパターンのいくつかに遭遇することがよくあります。素晴らしい例は貝殻です。何の種かは知りませんが、殻はちょうどよく、そこにあるパターンは、いくつかの欠陥があることを除けば、スティーブン・ウルフラムがルール 30 と呼ばれるセル オートマトンを作成 (または発見) したときのパターンと非常によく似ています。 。しかし、これらのことが自然界にどのように反映されるかは本当に注目に値します。



哲学のより深い層を掘り下げるために、生成アートワークは人間としての私たちについて重要なことも語っていると思います。芸術は基本的に、さまざまな意味で人間であることに関するものです。芸術作品についてのルールを書こうとするとき、私たちは芸術作品について何を評価するかをより明確に記述しようとします。そして、このアプローチにはすぐに限界があることが明らかになりました。芸術作品の複雑さと高次元性が明確になり、プログラムの動作方法と人間の動作方法とのギャップがより明確になりました。おそらくこれらのプログラムはアート制作の「方法」には対処できるかもしれないが、実際には「なぜ」に対処することはできないことがわかり始めており、芸術における「なぜ」の重要性と、人間としての私たちのあり方を強調しています。存在。


したがって、ジェネレーティブ アートへのこのアプローチは、少なくとも私にとっては、人間の人生の性質について多くのことを明らかにしていると思います。最後に言いたいのは、芸術作品のない文化はディストピアだということです。アートワークが健全な文化に属することを望んでいます。アートは発見を促します。熟考、コミュニケーション、人生への感謝を促します。プログラミングが基本的に世界を食い尽くしていることを考えると、プログラミングの重要性は日々高まっており、私たちの生活はますますテクノロジーに囲まれています。私たちはアートの重要性を確実に受け入れ、健全な社会を確実に構築したいのであれば、ある程度の投資をする必要があります。未来に向かう私たち全員にとって文化を創造するために、私たちは時間とエネルギーを費やしてそれを楽しみ、創造していきます。


これらの質問に対する私の最善の答えを以下に示します。ジェネレーティブ アートワークについてもっと学びたい、または独自のアートワークを作成したいと考えている人がいることを願っています。これをもって、感謝の意を表します。


ETH
NFT
Odaily公式コミュニティへの参加を歓迎します
購読グループ:
https://t.me/Odaily_News
チャットグループ:
https://t.me/Odaily_GoldenApe
公式アカウント:
https://twitter.com/OdailyChina