軽量でモダンな C++20 ベースの
クリエイティブコーディング・フレームワーク

tettou771  |  TrussC Workshop 2026

📦 最初に Visual Studio Community または Xcode、それと CMake をインストールしておいてください
— 説明の間にインストールしましょう!(次のページに手順)

IDE のインストール — 時間がかかるので先に始めよう

Windows: Visual Studio Community

  • visualstudio.microsoft.com/ja/vs/community/
    からインストーラーをダウンロード
  • インストール時のワークロード選択で
    「C++ によるデスクトップ開発」に必ずチェック
  • チェックし忘れたら、Visual Studio Installer から「変更」で後から追加できる

macOS: Xcode

  • App Store で「Xcode」を検索してインストール
  • 初回起動でライセンス同意 + コンポーネントのインストール
  • サイズが大きいので Wi-Fi と残りディスク容量に注意

両OS共通: CMake

# macOS (Homebrew)          # Windows
$ brew install cmake        $ winget install Kitware.CMake

自己紹介 tettou771(鉄塔)

image.club/tettor_hikariwotokasukikai/

TDK ジャベリンスロー

tdk.com/ja/featured_stories/tdkwithin/entry-01-javelinthrow.html

ray エントランス

TrussC で作ってる人たち

Motivation

なぜ TrussC を
作ったのか?

openFrameworks ユーザーの悩み

✓ 素晴らしいところ

  • C++ で速い
  • アドオンが多い
  • 調子が悪くても直しやすくて健康的

△ 感じていた課題

  • OpenGL 縛り — Apple は公式にサポート終了を明言
  • ライセンス — 基本契約書に「GPL 不可」案件があり、法務対応や大改造が必要になったことも

💡 ここを解決したい

3つのフレームワーク、何が違う?

🎨 Processing🔧 openFrameworks⚡ TrussC
言語JavaC++17C++20
ライフサイクルsetup / drawsetup / update / drawsetup / update / draw
バックエンドOpenGLOpenGLMetal / D3D11 / WebGPU
ライセンスGPL / LGPLMIT(依存に GPL 混在)MIT(GPL フリー)
業務利用⚠ 要注意⚠ 要注意◎ 問題なし

コア技術スタック — すべて GPL フリー

ライブラリ用途ライセンス
sokol (app/gfx/glue)ウィンドウ・入力・グラフィックスバックエンドzlib
stb_image / stb_truetype 系画像・フォントPD / MIT
Dear ImGuiイミディエイトモード GUIMIT
miniaudio / dr_wav / dr_mp3 / stb_vorbisオーディオPD / MIT-0
cpp-httplib / nlohmann json / pugixmlHTTP / JSON / XMLMIT

すべてヘッダーオンリー or 単一ファイルの軽量ライブラリ → ビルドが速く、ライセンスもクリーン

sokol

github.com/floooh/sokol — Simple STB-style cross-platform libraries

TrussC × sokol アーキテクチャ

sokol-shdc

GLSL → HLSL / MSL
シェーダー変換

TrussC API
sokol_gl.h
sokol_gfx.h
Metal

macOS / iOS

D3D11

Windows

WebGPU

Web / WASM

Immediate mode API
TrussC の draw 系関数のベース

GPU 抽象レイヤー
バッファ / シェーダー / パイプライン

映像などの OS 固有機能は AVFoundation / Media Foundation / FFmpeg を直接使用 — GPL 依存なし

projectGenerator

  • プロジェクト名と場所を入れて Generate するだけで CMake 構成が完成
  • アドオンをチェックで追加
  • IDE を選択 — VSCode / Xcode / Visual Studio
  • Web (Emscripten) ビルドもチェック 1 つ
  • 既存プロジェクトは Import → 再生成
TrussC Project Generator

trusscli

projectGenerator の中身は trusscli — 引数なしで起動すると GUI、コマンドで叩けば CLI。AI エージェントもこれを使ってビルド・実行する

$ trusscli new myApp -a tcxOsc    # create a project (addons included)
$ trusscli run                    # build & launch
$ trusscli addon add tcxIME       # add an addon later
$ trusscli update                 # regenerate build files
$ trusscli doctor                 # check the dev environment

Live Demo

何ができる?

ブラウザ上で WASM で動く公式サンプル集

trussc.org/examples

Examples (wasm)

Addons

距離画像センサ、MIDI、物理シミュレーションなどのアドオンで機能を拡張できる

Demo: Color graphics

色は 255 ではなく 0.0〜1.0 の正規化値 — シェーダーと自然に統合。知覚均一な OKLCH も標準搭載で、美しいグラデーションが簡単

Demo: Tween animation

ビルトインの Tween — createTween()->from(0)->to(100)->ease(Elastic)->start()。Elastic / Bounce / Cubic など、完了判定も簡単

Demo: シェーダー graphics

GLSL で書けば sokol-shdc が Metal / D3D11 / WebGPU 用に自動変換 — 同じコードが全プラットフォームで動く

Demo: 縦書き組版 font

禁則・ぶら下げ・縦中横(桁数で Combine / Rotate 切替)まで入った縦書き組版。getStringPath も縦書きレイアウトを透過的に通る

Demo: ChipSound sound

コア組み込みの 8bit シンセ — アセットファイルなしで SE が鳴る。{ .wave = Wave::Square, .hz = 440 } で 1 音、ADSR・ノイズ・タイムライン合成も

Demo: Node システム node

oF だと自作しがちな階層構造・クリック判定が標準搭載。親子で transform が自動伝播、機能は Mod(LayoutMod, TweenMod ...)で後付け

tcxNodeInspector addon

Unity 風の Hierarchy + Inspector + ギズモを 1 行で。TC_REFLECT したメンバーは実行中に編集でき、キャンバス上のクリックで選択・ドラッグで移動/回転。GUI で配置した値は MCP(tc_get_node_tree)で読み取ってコードに焼き込める

ヘッドレスモード

return tc::runHeadlessApp<tcApp>(
    tc::HeadlessSettings().setFps(tc::EVENT_DRIVEN));

Agentic Coding

Agentic Coding × MCP

  • アプリ自体が MCP サーバーになる — AI が実行中のアプリに直接接続
  • 標準ツール: スクリーンショット / ヘルスチェック(fps・メモリ) / ノードツリーの読み取り / 録画
  • mcp::registerControlTools()マウス・キー入力の注入も解禁
    → 特定の操作手順を AI が再現してデバッグできる
  • mcp::tool() で自作ツールも生やせる
$ TRUSSC_MCP=1 ./myApp
Claude Code が cube を青に塗り替えて実行結果を確認している様子

「キューブの照明をいい感じにして」→ AI が編集・ビルド・実行して確認

録画機能 — ffmpeg 不要、ネイティブエンコーダ

void tcApp::keyPressed(int key) {
    if (key == 'R') {
        if (isRecording()) stopRecording();
        else startRecording("out.mp4");
    }
}

Ops

AnchorBolt

AnchorBolt

kiosk 端末・展示機などで、置きっぱなしのアプリを安定稼働させるコマンドラインツール

開発
> trusscli run
本番(kiosk)
> anchorbolt start

github.com/tettou771/anchorbolt

ローカル機能 — サーバなしで完結、アプリ側のコード変更ゼロ

会場マシン
自動再起動
anchorbolt(スーパーバイザ)
↓ 子プロセスとして起動・監視
(落ちた? / 固まった?)
myApp
stdout / stderr
logs/ ├ log-2026-07-20.jsonl ├ log-2026-07-21.jsonl ← today └ ... 日次ローテーション 古いものは自動削除(--log-keep)

サーバ接続 — 離れた場所から全台を見る

構成

会場 Aanchorbolt start
会場 Banchorbolt start
会場 Canchorbolt start
サムネ / ログ
/ ヘルス
サーバanchorbolt serve
The Wall — 全アプリを一覧
Slack / Discord 通知
リモート更新・遠隔操作

TrussC アプリは MCP に対応しているので、アプリの追加変更なしで実現している

The Wall live

The Wall

anchorbolt.tettou771.cloud を新しいタブで開く ↗

Workshop

Let's Code!

ここから 1 時間、実際に手を動かします

環境構築

  1. CMake をインストール
    $ brew install cmake    # Windows: winget install Kitware.CMake
  2. TrussC を clone
    $ git clone https://github.com/TrussC-org/TrussC
  3. trusscli (ProjectGenerator) をビルド
    $ TrussC/tools/build_mac.command    # Windows: build_win.bat / Linux: build_linux.sh
  4. docs/FOR_AI_ASSISTANT.md を AI に読ませる
    # プロンプト例
    TrussC/docs/FOR_AI_ASSISTANT.md を読んでから作業して

trussc.org  |  github.com/TrussC-org/TrussC

Workshop リポジトリを clone

$ git clone https://github.com/tettou771/TrussC-Workshop

…他、基本 API のレクチャー多数!

ProjectGenerator — 新規作成

  1. フォルダを選択(D&D でも可)
  2. プロジェクト名を書く
  3. IDE を選択
  4. Generate をクリック
  5. Open in IDE をクリック
TrussC Project Generator

ProjectGenerator — 既存のプロジェクト

  1. プロジェクトを選択(またはドラッグ&ドロップ)
    例) 0-graphics をドラッグ&ドロップ
  2. IDE を選択して Update
  3. Open in IDE
TrussC Project Generator

trusscli を使う場合

新規作成

# create a new project
$ trusscli new myApp

# build & launch
$ cd myApp
$ trusscli run

既存のプロジェクト

# regenerate build files
$ cd 0-graphics
$ trusscli update

# build & launch
$ trusscli run

AI エージェントに任せる場合も、AI がこのコマンドを叩く

編集するのは src 以下 — .h 材料一覧 / .cpp 材料のコード

Community

Discord QR

Discord: TrussC — discord.gg/7MRRny56VQ

trussc-workshop-9207.pages.dev
< >