OpenFrameworksのMetal/DX12/Vulkan化という夢の途中

投稿日: 2024/12/25 20:47:11

カテゴリ: Processing Reborn

サムネイル: なし


このブログ、実名でいろいろ好き勝手書いている影響で、なんだか無性に不安になるときがあって、不定期に非公開にしたり戻したりしているけれど、勘弁してもらえれば嬉しいなと思う。

そういえば、こないだ配列関係の面白い動画があって、年末ゆっくり観ようと思って実はまだチラッとしか見ていないけど、年末観るのを楽しみにしてる。

www.youtube.com

このブログは基本的に新下駄配列で書いているけれど、このブログが長く続いているのも、そしてこのブログを書いているときだけは心が穏やかで平穏なのも、新配列によってゆったり穏やかに、そしてそれでいて迅速に効率よく打てるお陰様なので、本当に配列やキーボードには感謝したい。

・・・さて、いきなり脱線しまくりだけれど、最近少し夢ができて、いまその夢を叶えようと少しずつ動いている。

その夢というのは、現代的な描画基盤の上にクリエイティブコーディングを再構築したいというもので、それは、クリエイティブコーディング自体に対する危機感が半分 (= 1/2)、現代の描画基盤への興味がさらにその半分 (= 1/4)、そしてGL抽象レイヤー (PGL等) のリライトを通じてのOpenGLへのリスペクトとレトロスペクトが残りの半分 (= 1/4)。

やっていることはタイトルの通りで、最終的にはOpenFrameworksをMetal/DX12/Vulkan化できたらと思っているけれど、今は一旦というかいきなり本命ともいうべきか、ProcessingのLWJGL + BGFX化を進めていて、全くわからないなりにも毎日少しずつ進めている。

github.com

いろいろわからないことがあって、本当は色んな人に質問でもしながらやりたいのだけれど、毎日GitHubのコード検索とAPIリファレンス引き引き、少しずつ進めている。今現在のステータスはまだウィンドウが出せただけだけれど、少しずつ、背景色が出せたり、四角形が描けたりみたいなところからグレードアップさせていきたい。

なんでこんなにこれがやりたいのか、もう何年も考え過ぎて逆によくわからなくなってきているのだけれど、とにかくいえるのは、Processing等がまたUnity等と対等に並んで使われる夢をみたいし、画材としてのコードの価値を高めたいということに尽きるのかもしれないし、自分自身のUnityやUE等に対するささやかな対抗心なのかもしれない。1

けれど、OpenFrameworks等をもう長く使っていてだいぶ愛着が湧いているのも事実だし、ユーザが年々減っている実感もあるし、この楽しさにもっと人を引き留めていたいし、それで素晴らしい革新が起きてほしいという気持ちがただただあるのかもしれない。

ちなみに本当はSokolというフレームワークから手を付けていこうとしたのだけれど、最近Androidを買ったというのもあってVulkanを切り捨てる気になれず、BGFXを使う方向でスイッチして、そしたらたまたまLWJGL3に含まれていることを知った。

github.com

github.com

LWJGLに含まれているということは、Processingフォークも夢じゃないと思っていたら、やっぱりGLだけどやっている人がいて、いまそのフォークを元にフォークしている。走り始められたのは本当に大きいし、OpenFrameworksのフォークだけだったらとうに挫折していたかもしれないと思う。

自分は前々からClojureという言語が神がかり的に好きで、いつかClojureに戻っていきたいという気持ちがあって、最近Javaにメモリセグメントやアリーナアロケータ、スタックアロケータがあることを知って少しワクワクしている。

正直、GCやスタートアップ時間以外でJVM以外を使おうと思った要因はあまりなかったように思うので、あとはLWJGLのような軽量の低レイヤーバインディングがあればもう本当にJVMを使っていけるかもしれないので、このプロジェクトの最終ゴール自体はタイトルの通りなのだけれど、理想通り行ったなら、自分自身もしかするとProcessingやJVM、Clojureを使うという夢の途中なのかもしれない。

ただ、最近はMoonbitやMojoのような新勢力も台頭してきているし、来年自分が何言語をメインに使っているか、ちょっと楽しみな自分も居るのも事実。

www.moonbitlang.com

冒頭の脱線部の新配列ではないけれど、やっぱり何事も選択肢が多いというのが一番幸せだし、試行錯誤の間が一番楽しい。


  1. Processing-likeな形式でなければ、自分自身Qiita等で記事を書いているようにBevy Engineがあるのだけれど、やはり自分自身、Processingの素朴な楽しさがどうしても忘れられなくて、それが原動力になっているように思う。↩