橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

YCAM Interlab Camp #5 「ホモ・コーデンス」対談

Homo Codence

対談 高尾俊介さん と

何を話そうかな?

色々湧いた疑問

  • 木原さんの質問に対してPeter Bauman - Gen ArtはSystem Artのsubsystem
    • Le Randomのあのきじ
    • コントロールを機械側にわたすか否か
  • Code-base のCodeってどこまでがcode?
    • Sol LeWittのように自然言語によるinstruction artか、pogramming languageのように形式言語であるべきか
    • へのへのもへじ
  • Bauman氏自身はどこまで日々ジェネり散らかしてるのか
    • 久保田 晃弘先生みたく、comp. artを評価したりキュレーションする側も、実装レベルで「ジェネ」というのを身体的に理解してたほうがいいよね派もいらっしゃる

Terminology

  • ジェネ: ざっくり捉えたもの
    • パラでもよかったのだが、動詞化しづらい
  • チマ: 手動であること、反復的に、個別的に。
  • よさ: 成果物が示す何らかの適応度。制作とはf: 作品の特徴 → goodness という目的関数を最大化する行為

Disambiguation

緊張して言葉の選び方が雑になった反省の一覧

  • 探索空間(Search Space)と潜在空間(Latent Space)
    • 探索空間は、そのメディウムが持つ外的に操作可能なパラメーター全てが張る空間
      • 画像の全画素、全チャンネルが張る空間(16x16のアイコン = 16x16x3 = 768次元)
    • 潜在空間は、モデルに埋め込まれたよりコンパクトな空間。意味的、知覚的な近縁性をより正確に保つ
      • T-sneは潜在空間を更に人の目にわかりやすいよう次元圧縮したものであって、潜在空間の直接的なビジュアライズではないことに留意
  • チマとジェネはひとまずリテラルに受け取ってください
    • とりまコンピュテーションの力を用いて意識的に何らかの抽象化をしていればジェネ、膨大な一つ一つのパラメーターを個別具体的にチューニングしていればチマ
    • 高尾さんのデイリーコーディングは、行為としては「コツコツ」かもしれないですが、スケッチの中でやらんとしていること自体はジェネかなぁと。コマ撮りはチマです
    • 「そう解釈できないこともない」をし始めるとキリがないので
  • パラメーター(parameter)とハイパーパラメーター(hyperparameter)
    • 文字詰めにおけるtrackingは、複合的なパラメ―ターではあるものの、別にハイパーパラメーターじゃないです
    • 最適化アルゴリズムという文脈では、最適化したい値がパラメーター、アルゴリズム自体の挙動をコントロールするための値がハイパーパラメーター
      • 遺伝的アルゴリズム(GA)におけるパラメーターは個体が持つ遺伝子、ハイパーパラメーターは、遺伝の機序をコントロールするための交叉率や変異率
  • Peter Bauman的に
    • creative codingにおけるアティチュードの違いは僕も前書いたよ〜
    • Demystifying Generative Art - Le Random Editorial
      • Process(課程厨) - Casey Reasとか
      • Results (結果の見た目厨) - Zach Lieberman
      • Concept (コンセプト厨) - Ania Catherine
      • Autonomy (自律性厨) - qubibi(勅使河原さん)
        • Results派、というかもはやアウトサイダー・ジェネラティブ・アート寄りな印象があったけど…。
    • ZachとCaseyは、雰囲気バトってたらしい(いや、本人間に不和は無いだろうけど、なんかスタンスの違いからしてそういうふうに見えてたらしいw)

自己紹介

  • 高尾俊介です / 橋本麦です
  • こんなことやってます
    • takawoさん:
    • baku89.icon: 映像をメインで。クリエイティブコーディング的な手法を用いることもあるが、あくまで一手法として

ジェネを雑に捉える Generalization of the term “Generative”

  • そもそもの発端はこのツイートでした
    • ジェネジェネ人間というよりチマチマ人間の自分には
      baku89.icon さんの文章は毎回ぐさぐさ刺さるんだけど,プロダクションにおけるコンセプトとクラフトの関係への言及は特にここ数日何度も読み返している.

@takawo

  • 「ジェネジェネ人間」「チマチマ人間」とは?
  • 僕の造語です
  • 〈ジェネ〉は、コードとかアルゴリズムとか
  • 〈チマ〉は、反復、マニュアル、手技
  • そんでいうと、僕が興味があるのはその狭間〈ハイブリッド〉なんですよね
  • ってのは、Creative Codingの態度をJoshua Davisが二分したという話があって。(→ Purist / Hybrids
    • 川野洋の「Art Simulation by Computer / Computer-Aided Art」もこの枠組みで捉えることができますよね
  • 純粋主義とかいうけど、どう「純粋」たりえるの?
    • 自律性: パラメーター、ハイパーパラメーター、あるいはコードそのものに常に「作為」が宿っている
    • ハイプ: AIアート然り、昨今のジェネラティブ・アートは複雑化、ブラックボックス化している。人の手でプログラムされたものと、そこから創発されたものとの区別が一般聴衆にはつかない。むしろそこを意図してボカし、実際の実装以上にジェネラティブに生成されているかのように見せる手口も
    • コード・ベース: キーボードでタイピングすることと、マウスやスタイラスでアナログ入力すること、Direct Manipulationとの間に明瞭な区別はつけられない。TouchDesigner、Comfy UIのようなビジュアルプログラミング環境も。畢竟、すべての制作ツールは高度にグラフィカルで、文字列としてのプログラムが隠蔽されたコードエディタとして捉えることも出来る
  • ジェネラティブであること、コーディングであることに厳格であろうとすると、色々とめんどうよね
  • ここで一度ジェネを、狭義の「ジェネラティブ・アート」や「クリエイティブ・コーディング」とは切り離して、より雑にふんわりと捉えてみる

制作を空間的に捉える Spatial Analogy of Creation

  • 制作を単純化した例として、みんな大好き、2π = τ = TAUの文字詰めについて考えてみる
  • T-AA-U間のカーニングで、2次元の探索空間が描ける。そしてそこに「よさ」という高さが加わり、ある種地形のようなものがたち現れる。→ 適応度地形
  • 個別の文字間のカーニングを調整するということは、この適応度地形上を昔のRPGのように上下左右にしか動けないことを意味する
  • そこで導入されるのがトラッキング。トラッキングは斜め方向の交通手段を提供する。よさの尾根に沿って移動しやすくなる
  • YCAM のように一文字増えたとしても、トラッキングというパラメーターの導入は探索空間を効率的に圧縮してくれる
  • こうして捉えてみると、制作は最適化問題、より噛み砕いていうならば「山登り」として、空間的に捉えることが出来る。それを、時には極地法、時にはアルパインスタイルで、集団的に攻めるのが我々制作者
  • 制作の空間的なメタファーは昔から存在する
  • 「山」にはいろんなかたちがある
    • 単峰性、多峰性
    • 探索空間そのものが広がることもある
    • 経時変化する地形
    • 登山者自身が地形に影響を及ぼす
  • 文字詰めの例に限らず、ツールやメディア、フォーマットは、それぞれに距離空間を持っている
    • アフォーダンス
    • 数学的な意味での「距離」の定義は満たさないが
    • 機能空間と操作距離: トランスフォームの手数
    • フォーマット空間: 物理的なスペクトラムがなす無限次元のベクトル空間を、人間の錐体細胞が感じ取れる3次元に圧縮したのがRGB。より認知的な質感に合わせて円筒座標に変換されたのが、HSLやOkLabといった色空間
    • インターフェース空間: 混合栓のたとえ
  • 「よさ」の尾根を大域的に攻めやすいよう、空間を畳み込んだり、交通網を整備する行為が「ジェネ」
  • より局所的なよさのピークを探索するために、ジェネの持つコンパクトな潜在空間から逸脱し、元の広大な探索空間を徒歩で歩くのが「チマ」
  • よさの山を攻めるのにいい潜在空間を都度選びながら、「ジェネ」と「チマ」の両輪で制作していくのがいいよね
  • そして、Creative codingは、よさの山に「ジェネ」的なアプローチで主体的に関与する手段
    • 他には、ツール開発や誤用(ハック、サーキットベンディング)なども

Creative Codingっぽさ (Affordance of Creative Coding)

  • Creative Codingはメディウムに内在する探索空間に作用し、「作り方をつくる」ためのメタ手法でありながら、結局一つの様式になっちゃってない?
  • 言語相対論なんか耳タコなんだけど、今一度Creative coding環境がアフォードするものについて、至極具体的に考えてみみる
  • ベクターグラフィック
    • Canvas APIやSVG
  • 手続き性
    • Phillip Galanter (2003) によるGenerative Artの定義を見ていると「手続き(Procedural)」という言葉が出てくる
    • p5のコードは、一行一行は命令形として読み下せる。コンピューターという他者に、「描き方」の手続き、手順を教えるという考え方
      • 祖先にあたるDesign By Numbers、PostScriptが既にタートルグラフィック的だから
    • 一方、SVGをみてみると、ネストされた名詞節として読み下せる。それが何であるのかを宣言的に記述する
    • 命令的なコードは組み合わせづらい
      • p5は一度描かれたものを再利用したり、加工したり、組み合わせるという発想が湧きづらい
      • e.g. 「矩形の角を丸めて、うねうねさせたものをミラーリングする」
        • moveTo, cubicBezierTo だとなかなか描こうとおもわないよね
    • そういうのを作ってます → Pave.js
      • p5用にポートしました! ワークショップで使ってね!
    • あとは、論理型のジェネラティブアートというものもあるよね
      • Fusion 360のコンストレイント
  • 操作とオブジェクトの峻別
    • f(a) という構文は、関数と引数に非対称性を感じさせる。f(a + b) は自然、(flag ? f : g)(a) は思いつきづらくなる
      • e.g. (Math.random() > .5 ? rect : ellipse)(10, 10, 40, 80)
    • これをLispのように (f a) とS式で表現すると、() (カッコ)こそが「関数適用」という作用をもち、fa も文法構造的に並列となる。引数も関数も同様に式をネストすることができる、と容易に想像できる
      • 関数、あるいは副作用もまた、数値やパスと同様に「オブジェクト」であり、プログラムによる操作の対象となり得る
      • (Smalltalk的な意味での)オブジェクト指向は、オブジェクトとメッセージを峻別する

ジェネの辺境 (Interdisciprinary Fields of so-called Generative Art)

  • NFTブームを経て、ジェネラティブ・アートは以前に増して「アート」を指向するようになった
  • アートワールドを目指すということは、コンセプト、立ち位置が鮮明でないといけない
    • 「自律性」を前面化する、とか
    • 歴史化、文脈形成へのオブセッション
    • 色んな要素がある中で、部分的に creative codingっぽいやつを混ぜ込んでみました〜みたいなのが、評価されづらい
    • よりハードコアなコントラクト・アート、フルオンチェーン、コード・ポエトリー、Quineみたいなのが、「Creative Coding」としてキャラ付けしやすい
  • そうじゃないジェネの辺縁があっても良いんでないかな
    • デザインとの統合
      • RNDR、Moniker、DIGRAPH、信用ベータ
      • 建築系は昔からそういうパラメトリック・デザインとの協力関係があるよね
    • アウトサイダー・ジェネラティブ・アート
      • なんかイジイジしてるうちに、ジェネっぽい何かができちゃったや
      • 折笠 良さんトーク / qubibi / Natalia Stuyk / Dirk Koy / Brenna Murphy / kwgt / Nic Hamilton / Kao Terada
    • 道具制作のためのェネ

…というのを、むちゃくちゃコンパクトに、20分くらいで終わらす。