橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

クリエイターのためのGNU的なるものを作りたい (メモ)

このページは個人的なメモ書きです。何かあればご連絡ください。

久保田 晃弘先生が、クリエイターやデザイナーが目指せる工芸でも現代美術でもない第3の道としてそっとお話されていた「GNU的なるもの」というアイディアが忘れられない。

ぼくも必要だと思う。というか、プログラマにとっての開発者ツールや、研究者にとってのPython、R言語、LaTeXのように、映像作家やデザイナーの道具立ても、公共化されてもいい時期なんじゃないかって思う。Adobe製品の限界も近いし。3DCGやVFXの世界は事実そうなり始めている1

人類には、ベジェ曲線を操作するためのユーティリティも、素敵カラーピッカーも、JAGDAやTDC界隈みたいな豊かなグラフィック表現を可能にするライブラリも、圧倒的に足りていない。別に「打倒Adobe」とかそういうんじゃない。けど、そういうレディーメイドな道具ではカバーできないような表現の裾野を探索したいモノ好きな制作者が、自分自身の絵筆を道具鍛治するための、ほどよい抽象度のツールキットはこの世界に必要。

これは、映像作家としてのbaku89.iconとはまた別軸の、ちょっとしたライフワークかも。

  • プロジェクト名は適当に決めたいな。再帰的頭字語で。
  • 線形代数ライブラリからグラフィックライブラリまで、少しずつブートストラップしていき、その頂点には制作アプリが来る
  • 最終的には個々の機能を可鍛可能にし、さらに汎用的なグラフィック・モーショングラフィックスアプリとして抽象化したい
  • 戦略: ライブラリは寛容的ライセンスで。アプリはコピーレフトで。

アプリケーション(GPL)

ライブラリ(MIT)

  • Linearly: 線形代数
  • Pave: スプライン操作
  • Geome: 幾何学ライブラリ。当たり判定や、三角形の外心などの計算。
  • Fanvas: 宣言的なグラフィック描画。WebGL, SVG, Gコードなど、さまざまなレンダーエンジンを提供
  • Glisp: 制作ツールをEnd-User Development可能にするための、基盤となるLisp言語。プロジェクトファイル、スクリプティング、エクスプレッション、環境設定などに一貫して使用される。普段はその構文木がそのままVue.jsなどのコンポーネントに流し込まれたり、Direct Manipulatableなビューポート操作をサポートすることで、S式そのものはカジュアルユーザーから隠蔽されている。GUI上ではある種のビジュアルプログラミング環境としてラップされている。
  • Tweeq: クリエイティブアプリケーションのための、さまざまなパラメーター型のためのインプットや、マイクロインタラクションを実装したウィジェット集。
    • v1.0からGPLでも良いと思っている。
  • Gcnc: CNC(3Dプリンタ、ペンプロッター等)をWeb技術(WebSerial等)で制御。
  • Bndr: キーボードショートカットやMIDIデバイス、ゲームコントローラーなどのHIDデバイス、OSCやカメラなどの入出力を、アプリ内のアクションのトリガーやパラメーターにアサインするための統合的なライブラリ。今は独自実装だけど、RxJSの拡張にしてあげたほうが汎用性が高いかもしれない。
  • Tethr: Picture Transfer ProtocolのWebUSB実装。ウェブカムもサポート。将来的にはEthernet越しの監視カメラにも使えるかも。