Creative Coding Framework for C++ / トラスシー

Thin, Modern, and Native.

openFrameworksの精神を受け継ぎ、
現代のGPUに最適化した軽量クリエイティブコーディング環境。

MIT License C++20 Metal / DX12 / Vulkan

Philosophy

次の10年を戦うための、新しい足場(Truss)

脱・肥大化

必要な機能だけを厳選し、バイナリサイズを極小に保つ。 コンパイルが爆速で、実行ファイルも軽量。

脱・GPL

商用利用を前提とし、MIT / Zlib / Public Domain ライセンスのみで構成。 GPL汚染のリスクがない。

脱・ブラックボックス

重厚なラッパーで隠蔽せず、OSネイティブAPIへのアクセスを容易にする「薄い」設計。 Metal / DX12 / Vulkan を直接触れる。

Simple & Intuitive

1行書けば、絵が出る。その魔法は変わらない。

tcApp.cpp
#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();
}
main.cpp
#include "TrussC.h"
#include "tcApp.h"

// バックエンド実装定義
#define SOKOL_IMPL
#include "sokol_app.h"

// これだけで起動!
TC_MAIN(tcApp)

Tech Stack

「自前実装」と「高品質な軽量ライブラリ」のハイブリッド構成

Core

sokol_app

ウィンドウ・入力・コンテキスト管理

zlib
Graphics

sokol_gfx

Metal / DX12 / Vulkan バックエンド

zlib
Scene

Node System

シーングラフ・イベント伝播

自前実装
Math

C++20 Template

ベクトル・行列演算

Public Domain
Image

stb_image

画像読み込み・書き出し

Public Domain
Font

stb_truetype

フォントレンダリング

Public Domain
Audio

sokol_audio + dr_libs

音声入出力・ファイル再生

zlib / PD
Video

Native Wrapper

AVFoundation / Media Foundation

自前実装

For oF Users

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 (同期タイマー)

TrussCが提供するもの

商用利用に安心

MIT / zlib / Public Domain のみで構成。GPL汚染の心配がない。

シーングラフ標準装備

Nodeで親子関係を管理。回転した親の中のボタンも簡単に判定できる。

ローカル座標でイベント

マウス座標が自動変換され、各ノードのローカル座標で届く。

安全な同期タイマー

callAfter / callEvery でメインスレッドから安全に遅延実行。

ビルドが爆速

必要最小限の構成で、コンパイル時間もバイナリサイズも極小。

ネイティブGPU対応

Metal / DirectX 12 / Vulkan で最新ハードウェアの性能を引き出す。

Get Started

3ステップで始めるTrussC

1

リポジトリをクローン

git clone https://github.com/TrussC-org/TrussC.git
2

CMakeでビルド

cd TrussC && mkdir build && cd build
cmake .. && make
3

サンプルを実行

./examples/hello_world