O / OGENERATIVE STUDY 001
A SELF-REPRODUCING RUBY ARTWORK

OUROBOROS

自分を描く、自分に還る。

始まりも、終わりも、同じ一行。
∞THE CODE IS THE CANVAS01 / 24
MOVE YOUR POINTER TO BEND THE LIGHT
THE ART OF SELF-REFERENCE

自分を描く、
自分に還る。

輪を編んでいるのは、プログラム自身の文字です。呼吸する48本の光の糸に、Rubyの文字が流れ続けます。

ダウンロードしたRubyを実行すると、次の姿を持ったRubyを出力します。24回実行すると、最初のソースと全バイト一致で戻ります。--shaderを付けると、自分のソースを内包したGLSLが生まれます。画面のRubyには小さな点の列で各文字の8ビットも描いています。その描画ピクセルを読み、ブラウザ内のRubyで実行し、glslkitで生成GLSLを検証して次の姿へ進みます。

Ruby 世代 n→GLSL / GPU→Ruby 世代 n+1

glslkitがシェーダーを検証し、uniformの型とsetterを抽出。Railsではglslkit-railsのヘルパーとPropshaftを使って配信します。

Inspired by Quineから始めるRuby超絶技巧プログラミング入門 / RubyKaigi 2024をきっかけにQuineに入門してみた
A PROGRAM IN THE SHAPE OF ITS OWN IDEA

コードも、輪になる。

現在描いているRuby。文字の下の点もソースの一部です。保存したコードを実行すると次の輪になり、24世代で戻ります。

ruby frame.rb > next.rb
ruby next.rb > after.rb
ruby frame.rb --shader > frame.frag

生成した frame.frag をビューアで開く ↗