2019-07-31
そろそろ夏休みなんで、ソフトウエアを書こうと思う。
自分もいい年なのでそろそろ世の中に何かを残して役に立とうという年頃(個人がそのオリジナリティの発露として何か役に立つ物を作り上げられるということは幻想だしオリジナリティなどというのは幻想。それを拠り所に何かを作るのはよくない)正直って気乗りがしない。というのも、ソフトウエアを書くというのは多かれ少なかれ、エンジニアリングという要素が入ってくる。エンジニアリングというのは間違いなく動くとか、効率が良いというのが最高に価値を持つ。そして周辺の文化もその価値観をもとに形成されている。正直言ってそういうものに一ミリもコミットしたくない。
これからつくるものがどいういうものか、
箇条書きにでもして少しづつ輪郭を明らかにしていきたい。小さく始めるというのがソフトウエア制作のセオリー。
案
BabelプラグインとしてaltJSを作る?、対象はなんらかのパターン生成ミニ言語?
インターフェースだけ提供するミドルウェア、エンジンは他のソフトウエアにだだ乗りする、(tidalcycles hydra orca..)
IDE付きのソフトになってるのは良い
GUIがあるかどうかは慎重に決めたい、あっても良いが最低限
最少は単なるCLIアプリ
--- 2019-08-01
対象エンジンはThreejsがいいような気がしてきた、どうなんだろ
パイプラインだけ繋ぐようなインターフェースをaltjs側で用意して、あとは何もしないみたいな、使えるマテリアルとかジオメトリとか最初は一個か二個だけ。シェーダーは書けなくてもいいんじゃね?他のエディタで編集すれば。
touchがやってることcliにしたみたいな。CPU向けのhydraみたいな?
出力結果めっちゃしぼりたい、こういうトーンの絵しかできないみたいなのがいい、グリッド組むとか
言語はDSLがいい、Elmみたいな、つかElmでできないかな。Elmはreplもあるし
-- 2019-08-02
ElmはJSのコードを気軽にimportできない。ので却下。
IDE/repl部分はTypeScript、
独自AltJSミニ言語を作るかどうか
PureScript か ClojureScript ? PureScript良さげんなんだけどbower?ナンデbower..、Clojure覚えるか?
bowerじゃなくて psc-packageというのに移行してるみたい。こっちを使えばok
-- 2019/08/05
対象エンジンはThreeJS
パイプラインをつなぐためのミニ言語をPureScriptのreplで
IDEをElectron / TypeScript
まずはreplを作る、replの評価ごとにカンバス内のオブジェクトを入れ替える、(実際は一度全部リムーブして置き換えるのが良さそうだが)
イメージとしては、tdで言う所のTOPを組み立てるインターフェイスをPureScriptミニ言語で提供、カンバスに流し込むのをElectronのIDEの裏で動くTSのコントローラーで、Electronのカンバスに直接かく
IDEはAceとかで雑に作る
-- 2019/08/06
psc-package あんまりメンテされてないし移行進んでないみたい。未だBowerで行くっていうのが公式の見解っぽいなー。辛いー。何より、入門ガイドのコードでさえパッケージのインストールでつまずくの辛いー。
言語自体はと大変良さげなのにこういう周辺事項でつまずくの辛いなー
総じて辛い。
-2019/08/09
psc-packageがダメっぽいのでオルタナティブとして spagoというのがあるらしい... 雲行き怪しくなってきた...
-- 2019/08/13
12日に名古屋に移動ゆーとぴある。件のあいちトリエンナーレへ。
すでにアーティストにより展示取りやめになった作品あり。
同年代かその下の年代は特に”アルゴリズム”もしくは”再現可能性”に(直接的にではないにせよ間接的に)言及するかのような作品が見られてよかった。この辺り今までのいわゆる日本の”現代美術”にはないもののように思える。
村山悟郎、生成絵画と「デコイウォーキング」稲福がシステム作成。稲福の作ったシステムが難解でわかりづらかった、が誰かも言っているようにデュシャンを思わせる。
どちらの作品も再現可能性について言及しているようで大変興味深い、特に機械へ向けた(つまり人間以外)を対象とした絵画というのはとても良いアプローチに思える。
永田さんの「Malformed Objects」セマンティックセグメンテーションだろうか、簡単な塗り分けと推論結果だけ表示してある写真コラージュ。
今村洋平、シルクスクリーンとはいえほぼ3Dプリント、プロシージャルイメージ。出来上がるものがダイレクトにストラクチャーになっている。パターンみたいなものもある。
-- 2019/08/14
豊田市へ、名鉄初めて乗った。土地勘なさすぎて不安。
巡回クリムト展同時開催、そちらの方が明らかに人気。体力的に他会場も回ることを考えこちらは断念。
茶室が良い、一服すべき
ホー・ツーニェン、ちょっと離れた喜楽亭という料亭で、戦時中のプロパガンダ表現や京都学派の絶対無など。音響が良かった、建物揺らしてたのかも。
今回もったいないことに映像作品やパフォーミングアーツを見なかった。この数の作品をまとめてみれることはないので、今度アートフェスに行くときはもっと期間をとってじっくり見たい。
この再現可能性や、アルゴリズムに着目したアーティストはたくさんいるし作品もいっぱいあるんだけど、いまだに適切に批評して言語化されていないというのがありそう。
-- 2019/08/20
相変わらずPureScriptはパッケージマネージャー周りが紛糾してる。とりあえずhalogenで生成したDOMをElectronのBrowserWindowに表示させる、まではできた。次はThreejsをFFI経由で叩けるかがハードルぽい。
BowerからSpagoに完全に移行したいんだけどSpago使った途端に色々できなくなる...つらい
-- 2019/08/21
まあでもlistやconsの評価器は自前するの難しそう
パッケージ管理はspagoでファイナルアンサーぽい、パッケージセットにない依存関係をpackage.dhallにかけるっぽい。purescript-threeもgithubリポからインポート無事できた
無事threeがpurescript ffi経由で動いた。これで描画し放題。
あと問題はエディタからコードをパーズしてexcuteするようなreplのようなものをつくれるかどうかやなーどのみちreplを実現するには何かしらインタプリタが必要よねー。
もしくはelectronのなかでPreludeを走らせて、一行ごともしくは複数行を評価して同時にカンバスの中のシーンにアクセスできればよい。こっちのほうが良さげだ。
-- 2019/08/22
全てPureScript replから叩けばいいじゃん。ElectronのBrowserWindowもランタイムでnewできるだろ多分。
んでWebGLコンテクストにアタッチするようなインターフェースをモジュールの関数として提供してやる。Tidalっぽい。いけるやろ、多分。インタプリタ自前を考えるのは正直だるい。
Prelude replならエディタも作る必要なし。
-- 2019/08/23
preludeからElectronを起動するのが困難ぽい、辛くなってきた...
-- 2019/08/26
んーroyもしかして関数合成やパイプ演算子がないのかー?これだとあんまり旨味がない。やっぱLiveScriptにするか?
-- 2019/08/28
LiveScriptのreplは成功したので、リポジトリ立ち上げた
それぞれElectronのRepl着きエディター / インターフェース提供ライブラリ
-- 2019/08/29
LiveScript思った以上に行儀悪い、型チェックとかないし。このままだと描かれるコードの治安が悪くなる。
やはりPureScriptがベストでは。それによってエディタと言語インターフェイスが疎結合になるのは良い。その場合glContextのシェアが問題だなあ。
方針は固まりつつあって、electron内部のchild_processでpsciのreplを動かす。今あるYodakaはpurescriptで置き換えてreplから起動するアプリとする。
問題はpurescript界が盛り上がってなさげで数年前にすでに下火になっていることか...。
-- 2019/08/31
PureScriptのreplに置き換え成功した。
THREEオブジェクトのforeign importの壁があってかなりのダーティーな方法をとった。
具体的にはiframe越しにscriptタグをinjectするというアクロバットな方法。
-- 2019/09/03
ここへ来て問題発覚replの完成目前と思われたがPSCIのmulti-lineモードから抜け出すのに^Dキー(EOF)が使われている。これではプログラムから制御できない。つまり複数行のコードやインデントコードが実行できない...PureScriptでの開発は暗礁に乗り上げた..。
replは難しいんでコンパイル&ファイル書き出し -> ロード -> scripタグでインジェクション実行。の線でいけるか探ってみるか。
-- 2019/09/04
fileに一回コンパイル結果書き出す方向に。そんなにコンパイル時間思ったより気にならないのでこの方法で行ってみる
-- 2019/09/06
コンパイル時間はやはり気になる。今後モジュールが増えるごとに長くなるだろう
RenderTargetを実装した。これは進歩だ。
が、やることはいっぱいあって。特に型のデザインは未知の領域だ、抽象度が高くここのデザインが今後を左右する。
-- 2019/09/14
割とシェーダーありきのシステムになってきた。
まあいいか、色々できないこと多いけどそこは割り切ってできないことにして、いいインターフェイスだけ残していければ。
-- 2019/09/21
glsl shader chunk 周りを調べ
拾わない方向で、postprocessingも全部apiにダダ乗りしよう
--2019/09/23
俺より強い奴を作り出せないというのが、再現可能性の低いツールでは問題になっているような気がして。例えば、優れたものを作り出せる職人の使っているツールはその人が使うからこそ、その域のものが出来上がるのであって、他の人が真似たり剽窃する余地がないものだとする。とその職人の秘技で終わってしまってその人が死んだ時失われてしまう。
書いてみたら割と普通な話だった...
--2019/09/30
linux環境でもインストール&動くのを確認
第9世代のプロセッサならコンパイル時間気にならない程度の速度。結論:次の世代では気にならない
-- 2019/10/10
自分も多様なものが作られるのを望む。メディアアートはその両極のどちらでもないものを目指していた。(メディアアートといったがこれはどの表現分野でも似たようなパターンが見られると思う。これは仮説だけれど、ある成熟した分野は自己言及や自己相似などのパターンが現れるようになる(これがハイコンテクストすぎると思わせてしまう一因でももちろんあるが)表現するメディウム自体に言及するのがメディアアートと呼ばれた(一部の人にとって、もしくは日本特有の呼び名だけども)(アート分野だけのこととは限らず広く表現分野だけ見ても。例えば物語の自己言及などというのは歴史が古い。時間遡行やループ構造、劇中劇、多世界構造とかはやり尽くされた方法だ)かつてインターなにがし、第三項なにがし、のように、二限法では語れない方向から各分野に切れ込むアプローチをまとめてそう呼ばれていたりした。テクネーとアルスがかつては一体化していた時代のように、分けて考えることをやめようというのが一連の流れだった(と少なくとも習ってきた)のだがそれはどこへいったのだろう。ここ10年くらいはそれが雲散霧散して文脈が共有できない極度に単純化された「フラッシュモブ狙い」的なものばかりなのがひどく退屈だし、うんざりするようなこともたくさん起きた。みんなもそう感じていたのでは。そういう10年だったことであるなぁ。
-— 2019/11/21
この一連の制作スタイル(クリエイティブコーディングというかその中でもライブコーディングという限定的な事でだろうか)が他のスタイルとの決定的な違いはやはりレペテティブ、つまりREPLの存在だと思う。ポエティックであるとかデイリーであるとかよりももっと需要。(アレックスもしきりにレペテティブを強調している)
-- 2020/01/1~16
偶然だがクセナキスの「形式化された音楽」の7章「メタ音楽に向けて」が二つの極にいる人々への批判から始まっていた。一つの極は美的な価値を巡る基準は、情報理論によて完全に定量化でき客観的に明らかにできると考える人々(おそらくテクネに偏った人々?)。もう一方を直感に頼る人々(おそらくアルスに偏った人々?)でこちらは二つに大別できる。一つを記号的図式を偏愛する「図形主義者」もう一つをハプニングや劇的な行動など音楽以外の部分に頼る人々。こちらの極の人に共通なこととしてロマン主義的な態度にある。とのこと。
「P-Code Magazine」創刊号ジェネリック・コードとスペシフィック・コードの対比が書かれている。これは大きな示唆。スペシフィック・コードのの特徴が箇条書きで書かれている
極めて短いミニマルなコード
正しさよりも大切なものがあるコード
アルゴリズム以外の部分も重要なコード
環境や文脈に依存するコード
実行する必要のないコード
話し言葉のように生成され消滅するコード
どれも面白いが三番目が特に気になる、そのようなコードがあるかどうか見つけたらメモしたい。
同じテクストで面白い指摘がプログラム・コードが人間が作り出したものだが、人間もまたコードによっって作り出されるようになったとの記述。Ryoji Ikedaの「テスト対象は人間」にも通じるよなところがある。コードの記述、実行、評価に人間が組み込まれるという事態はREPLと対峙しているコーダー、ライブコーディングの状況にも言える。
パロールとしてのライブコーディング
Kusabiはどちらかといばジェネリック・コードにフォーカスしたプロダクトかもしれない。ただ、ジェネリックであることを前提としたメタな表現があると思っていて、それが文脈に依存するコードになっていくと思う。パロールが生まれるためには文脈が必要、文脈には形式が必要...多分。(文脈というか対応するラングが必要?)
-- 2020/04/12
このウイルスによって自分たちがどういう社会的な基盤の上で暮らしているかが炙り出されているのを見せつけられ、頭の痛い日々が続いていることと思います。お見舞い申し上げます(自分に向けて)
さて、最近ある一つの長年の疑問が晴れそうな予感がしたのでメモ。
と言ってもこんなことは普通に暮らしている限りなんでもない些細な事で、克既に気付いているよという人にとっては取るに足らない気づきなのかもしれない。文章化する事でやはり大したことではないと判明するオチが簡単に予想できる。
ここ数年考えている"抽象"という語に関してのことだそれが
この件について後日改めて書きたい
- 2020/04/24
新型コロナウイルスがサイエンスに属するものであると同時にそれ以上にソーシャルなウイルスであると誰しもが感じているのかも。サイエンス側では今のところ、物理的な接触を防ぐ、感染を遅らせる(RANポリメラーゼを遅らせる)以外の手立てはないしワクチン開発か新薬を待つしかない。完全にサイバーパンク、まさに現実は小説より奇なり。
特に感心するのは(人命がかかっているのでしている場合ではないが)いろいろな点で情報技術的な意味でのウイルスとほとんど同じ特徴を持っている点(というかこちらがオリジナルなのであたり前)コピーによって宿主を移動、増殖する。感染の増加は指数関数カーブを描く。ビルゲイツが率先してワクチン開発する。またウイルスはこの社会でハードで対処しようとすると青天井でコストがかかるが(今の自粛要請というやり方)ソフトで対処すればいとも簡単に防げる(原理的には)という点。
また本邦含め西側の社会(消費資本主義社会)がどのような基盤で成り立っているのか的確に浮き彫りしにていることに驚く。まず純粋なインフラセクションがありそれ以外のセクションがいかに大きいか(もしくは前者を蔑ろにしているかその分断が修復困難なところまで来ているか)そして「生産」と同時に「消費」という活動が生活の多くの部分を占めるまで肥大化しているのか。某天才コピーライターのツイートが支持されなかったのは"消費"する生活者の一側面からしか捉えられていないと多くの人が感じ取ったからか?時代にそぐわないと思われた、象徴的な出来事。
終息に向かった暁に政府(というか世界)に期待するのは東北の大震災の後のように20mの堤防を数十kmにわたって築くとか、大地を数十mかさ上げするとか言ったヒステリーに任せたハードでの対処ではなくてソフトでの対処を真面目にして欲しい。その時に大事なのはサイエンスというよりむしろソーシャルな技術や哲学の方がもっと重要になってくるはずだし、誰しもそれが足りてなかったと思っているのでは。
- 2020/04/25
”クリエイティブコーディング”には”ビジネスロジック”が足りない。
プログラマーのやっている仕事はテクニカルな部分を除いてゆくと記号接地の問題と対面している、究極的にはそれだけのように思える。この部分をいくつかにブレークダウンして分業することも可能だし、プログラマ以外にやらせることもあるが業務プログラミングでは”ビジネスロジック”とまとめて呼ぶことが多いと思う。つまり他のセクションとのプロトコルの策定とかだ。インターフェイス、記号操作・接地だ。じゃあ、美術においてプログラミングとは?
他のセクションとのインターフェイスを時間的にも空間的にも持たない断絶された美術様式も可能ではあると思う(ロシアアバンギャルドとか?そしてダ・ダ)でもそれはそれで過激なイデオロギーであった。
逆にイデオロギーを持たない漂白された美術様式はそれはそれで先鋭化してゆくことができる。つまり技を磨く、職能に近くなっていく。日本の近代以前の美術史ではこれが主流だったかもしれない。(本邦ではいつもこれが主流だった)
デイリーコーディングは達人になってしまうことへの何か回避策とかケアが足りない
- 2020/05/08
量子コンピューティング時代のシンセはどんなん形でどんなインターフェイスなのかを考えるのは割といいんじゃないかと漠然と思っていて。
https://www.youtube.com/watch?v=l5klVpuytOs
量子ビットがまだどう言うものかよくわかってないけど、おそらくこの壁のようなものになるんじゃないかと田中さんはおっしゃていた。量子が通過することで演算を行う。
すでにCirq https://github.com/quantumlib/Cirq が公開されてそれが実現しそうな感じだけれども今のところPythonインターフェイスで組み立てる以外のインターフェイスって予想ができないと言うか。こう言うテキストのコードのインターフェイスも(厳密な)数学的量子ビットの世界を抽象化したもので、一次的なものや周辺的な感覚がいろいろ抜け落ちている。違ったインターフェイスの形もすぐに模索されると思う。(そして何周かして結局テキストベースが一番良いじゃんてなると言う予想) - 2020/05/14
自粛中の今、家賃や固定費高い東京に住んでる意味がほんとになくて、そういう意味で仕事をどんどんリモートにして脱中央が進むのは結構だと思うしそれは良い流れかと思う。逆に何でもかんでもリモートでok全てがバーチャル空間に移行してゆくっていう流れも気持ち悪くて、どちらかというとバーチャルよりリアル空間を豊かにしたいので。まあ、思い切って仕事はリモート全振りで地方へ行くっていうのがありうる形か?地方に住むっていうのの最大のハードルは仕事があるかっていう問題だよなそこがクリアできれば。とにかく人生において仕事に就くっていう比重が大きすぎるんだよな。
- 2020/05/21
GLSLをシンセに使うっていうのがあるらしいのですが、あれはあれで変な方向に行くと面白そうというのはあるけど。ただグラボというハードがなあ、すでに過剰というか。かさばるし電気もめちゃ食いそうというイメージ。だったらマイコン上で動くとか、unixファイルシステム上で動くシンセとかの方が魅力を感じちゃうな今は。
- 2020/05/26
だめだ何を実装しても複雑なものにしすぎていると感じるようになった。GUIだろうがCUIだろうが、結局トレーサビリティは感じ方の問題で他人がしんどいと感じたらそれは再現しようとは思わない。もう一度やろうと思わせるようになっていないともう二度と触らない。他人だけでなく自分も。良さそうのは最終的なアウトプットがめちゃくちゃシンプルになっているという方向性。そもそもトレースする要素がすごく少ない。例えばドット絵とか、詩とか、どんどんアウトプット自体も抽象度を上げていくという戦略。でもそれもなんかなー。Kusabiはいいところついてると思うんだけども。あと時々勘違いしそうになるのが、自分は今何か作品を造るためのヘルパーとか治具のようなものを作っているわけではないということ。これは忘れたくない。
- 2020/05/27
zigでなんか作りたい、WebAssemblyのことはよく知らんが
- 2020/05/28
Kusabi はThreeJSと言う既に巨大なインターフェイスを持ってるものをバックエンドにしてしまったのがよくなかったのかも。もっと”何もしない”ソフトだとよかった、TidalやOrcaはパターンを生成してOSCなどを吐くだけ。エンジンとか持たない。
- 2020 /05/29
次これとこれやりたい
- 2020/06/02
Balck Lives Matter への日本人の反応はいろいろだけど、マスコミは暴徒化や略奪のセンセーションな映像に気を取られてて全然背景にある問題を伝えられてなさそう。暴力はよく無いよねっていうトーンポリシングになっちゃってる。これは恣意的なものなのか単に放送時間の短さの問題なのかはわからない。あとこれについてお得意の日本人についてはどう思いますかねえというのをアメリカ人にインタビューする奴は無さそう。まずはお前らは自国にある人種差別をどうにかしろと答えられるのがわかっているからなのかも。
ファシズム政権下では差別は合法的だ。差別をする前に法整備から始めるから。
- 2020/07/05
現職小池百合子が再選。とにかく都政に求めるのは口だけでやってる感を出すだけの首長でなるだけ経済活動に波風立てないかもっと言えば何もして欲しくないし布団のなかで寝てろということだ。候補選びは対抗勢力という仮想敵に投げつけるうんこなのだ。トランプ政権を生んだのと同じ論理だ。とにかく人を黙らせるために投げつける最もいびつな形をしている石を探しているのだ。とにかく自分が傷つきたくないから先に人を傷つけたい。不真面目で公共の意識など微塵もない。マイノリティの意見は永遠に反映されないし弱者はどこまでもいつまで経ってもほったらかされる。本邦では最低限の民主主義の運用も無理ってことなのか。ほとんど病気だと思う。
- 2020/07/11
「盗む」ならスキルを盗むとか「模倣」とかの方が面白くないっすかね。できたものを単純に盗む、だと交換価値とかつまんない方向へ収斂しそうで。