Creative Coding Framework for C++ / トラスシー
openFrameworksの精神を受け継ぎ、
現代のGPUに最適化した軽量クリエイティブコーディング環境。
次の10年を戦うための、新しい足場(Truss)
必要な機能だけを厳選し、バイナリサイズを極小に保つ。 コンパイルが爆速で、実行ファイルも軽量。
商用利用を前提とし、MIT / Zlib / Public Domain ライセンスのみで構成。 GPL汚染のリスクがない。
重厚なラッパーで隠蔽せず、OSネイティブAPIへのアクセスを容易にする「薄い」設計。 Metal / DX12 / Vulkan を直接触れる。
1行書けば、絵が出る。その魔法は変わらない。
#include "tcApp.h"
void tcApp::setup() {
// ループモード設定
setLoopMode(LoopMode::Game);
// 画像を読み込む
image = make_shared<Texture>("test.png");
}
void tcApp::update() {
angle += 1.0f;
}
void tcApp::draw() {
clear(0.1f, 0.1f, 0.1f);
pushMatrix();
translate(640, 360);
rotate(angle);
image->draw(-50, -50, 100, 100);
popMatrix();
}
#include "TrussC.h"
#include "tcApp.h"
// バックエンド実装定義
#define SOKOL_IMPL
#include "sokol_app.h"
// これだけで起動!
TC_MAIN(tcApp)
「自前実装」と「高品質な軽量ライブラリ」のハイブリッド構成
ウィンドウ・入力・コンテキスト管理
zlibMetal / DX12 / Vulkan バックエンド
zlibシーングラフ・イベント伝播
自前実装ベクトル・行列演算
Public Domain画像読み込み・書き出し
Public Domainフォントレンダリング
Public Domain音声入出力・ファイル再生
zlib / PDAVFoundation / Media Foundation
自前実装openFrameworksが築いたクリエイティブコーディングの楽しさを継承しています
TrussCは、oFが生み出した「1行書けば絵が出る」という魔法のような体験を深くリスペクトしています。
oFユーザーなら、違和感なく書き始められるはずです。
| 項目 | openFrameworks | TrussC |
|---|---|---|
| ライフサイクル | setup, update, draw | setup, update, draw 同じ |
| 即時描画 | ofDrawCircle(x, y, r) | drawCircle(x, y, r) 同じ |
| ステート管理 | ofSetColor, ofPushMatrix | setColor, pushMatrix 同じ |
| 座標系 | グローバル座標 | シーングラフ + ローカル座標 |
| 描画バックエンド | OpenGL | Metal / DX12 / Vulkan |
| メモリ管理 | ofPtr / 生ポインタ | std::shared_ptr |
| 遅延実行 | ofThread / 自前実装 | callAfter, callEvery (同期タイマー) |
MIT / zlib / Public Domain のみで構成。GPL汚染の心配がない。
Nodeで親子関係を管理。回転した親の中のボタンも簡単に判定できる。
マウス座標が自動変換され、各ノードのローカル座標で届く。
callAfter / callEvery でメインスレッドから安全に遅延実行。
必要最小限の構成で、コンパイル時間もバイナリサイズも極小。
Metal / DirectX 12 / Vulkan で最新ハードウェアの性能を引き出す。
3ステップで始めるTrussC
git clone https://github.com/TrussC-org/TrussC.git
cd TrussC && mkdir build && cd build
cmake .. && make
./examples/hello_world