TurboWarp extension and toolchain overview

Copyright © 2026 Hiroya Kubo. この文書はCC BY-SA 4.0で提供します。

更新日: 2026-08-26

文書状態: TM Kamishibai v4.0.0-rc.8 文書群から公開するTurboWarp ecosystem overview

この文書は sources/turbowarp-ecosystem.json を正本として生成しています。repository、package、guide link、利用surface、関係図のnodeがずれた場合は、正本dataと生成検査を更新してください。

Concept

Scratchでの創作からTypeScriptの機能拡張、Composition API、SB3の再現可能なbuild、TM Kamishibaiの統合applicationまでを一つの道筋として説明する。

  • Scratchでの創作
  • TurboWarpと既存機能拡張の利用
  • TypeScriptによる独自機能拡張
  • Composition APIによる機能の合成
  • SB3のsource管理と再現可能なbuild
  • TM Kamishibaiという統合application

このecosystemは、Scratch作品をいきなり別言語へ移すためのものではありません。TurboWarpのblock UIで試せるStandalone extensionと、host applicationから組み合わせるComposition APIを分け、同じ機能を学習・制作・配布の流れへ接続するためのものです。

機能は一枚岩にせず、camera、recognition、input、state、asset、text、bubble、diagnostic、networkへ分けます。個々のrepositoryは小さく検証可能な責務を持ち、TM Kamishibaiはそれらを教材・作品・Web配布へ接続する統合applicationとして扱います。

Relationship Flow

flowchart LR
  scratch[Scratchでの創作] --> turbowarp[TurboWarpと既存機能拡張]
  turbowarp --> typescript[TypeScriptによる独自機能拡張]
  typescript --> vite[Vite Plugin]
  vite --> bundles[standalone bundle / manifest / Composition API]
  bundles --> sb3[SB3 Toolchain]
  camera[TurboWarp-Camera-Source] --> tm[TurboWarp TM]
  camera --> jsqr[jsQR]
  tm --> async[TurboWarp-Async-Input]
  asset[TurboWarp-Asset-Manager] --> bubble[Bubble]
  text[Text Lines] --> bubble
  svg[TurboWarp-SVG-Text] --> bubble
  async --> app[TM Kamishibai]
  asset --> app
  expression[TurboWarp-Runtime-Expression] --> app
  bubble --> app
  diagnostic[TurboWarp-Diagnostic-Overlay] --> app
  sb3 --> app
  app --> docs[Docs]
  app --> samples[Samples]

図は次の関係を示します。TypeScriptで書いた機能拡張はVite pluginでstandalone bundle、manifest、Composition API向け出力へ分かれ、SB3 ToolchainでScratch/TurboWarp projectのsource管理と再現可能buildへ接続します。Camera SourceはTurboWarp TMとjsQRへ映像sourceを渡し、Async Inputは認識・device・application eventを作品の実行tickから扱える状態へ整えます。SVG Text、Text Lines、Asset ManagerはBubbleの表示素材と台詞を支え、Diagnostic Overlayは停止理由や検証結果を画面へ出します。TM Kamishibaiはこれらを統合し、DocsとSamplesが利用者・教材作者・開発者の入口を提供します。

Inventory Policy

  • product name、package name、repository slug、Extension ID、opcodeは同じものとして扱わない。
  • current entryではTM Kamishibai、TM紙芝居、TurboWarp TM、tm-kamishibaiを使う。
  • old product name、old repository slug、old Extension ID、old opcode prefixはHistory、Migration、source provenanceだけに限定する。
  • version numberを本文に固定する場合はinventoryまたはrelease記録と一致検査できる場所へ置く。
  • docsとして扱う本文と独自図はCC BY-SA 4.0、build scriptとsite codeはMPL-2.0、第三者素材は個別noticeに従う。

認識・入力・通信

Product Surface Responsibility Package
TurboWarp TM Standalone extension, Composition API カメラ由来の姿勢・動作状態をTurboWarp blockとComposition APIへ渡す。 @kubohiroya/turbowarp-tm
TurboWarp-Camera-Source Standalone extension, Composition API ブラウザーのカメラ入力を他の機能拡張が扱える映像sourceとして提供する。 @kubohiroya/turbowarp-camera-source
TurboWarp jsQR Standalone extension, Composition API カメラ画像からQR codeを読み取り、作品内の入力として扱う。 @kubohiroya/turbowarp-jsqr
TurboWarp-WebUSB-Pasori Standalone extension, Composition API PaSoRiなどのWebUSB機器から読み取った入力をTurboWarpへ接続する。 @kubohiroya/turbowarp-webusb-pasori
TurboWarp-Async-Input Standalone extension, Composition API 非同期の入力eventを一時保持し、Scratch/TurboWarpの実行tickから参照できる形へ整える。 @kubohiroya/turbowarp-async-input
TurboWarp-Extended-Notification Standalone extension, Composition API 作品やhost applicationから利用する通知・状態表示の入口を提供する。 @kubohiroya/turbowarp-extended-notification
TurboWarp WebRTC Standalone extension, Composition API ブラウザー間通信を作品やapplicationの入力・同期経路として扱う。 @kubohiroya/turbowarp-webrtc

TurboWarp TM

  • Repository: kubohiroya/turbowarp-tm
  • Package: @kubohiroya/turbowarp-tm
  • Surface: Standalone extension, Composition API
  • Input: camera frame, pose model output
  • Output: motion state, TM events
  • Direct dependencies: turbowarp-camera-source
  • Optional integrations: turbowarp-async-input, tm-kamishibai
  • Representative use case: 身体の動きで紙芝居やScratch作品を進める。
  • License policy: MPL-2.0 for software.
  • Status: current
  • Extension ID: kubohiroyatm

TurboWarp-Camera-Source

  • Repository: kubohiroya/turbowarp-camera-source
  • Package: @kubohiroya/turbowarp-camera-source
  • Surface: Standalone extension, Composition API
  • Input: MediaDevices camera stream
  • Output: video frame source
  • Direct dependencies: none
  • Optional integrations: turbowarp-tm, turbowarp-jsqr
  • Representative use case: 認識系拡張へ共通のカメラ入力を渡す。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp jsQR

  • Repository: kubohiroya/turbowarp-jsqr
  • Package: @kubohiroya/turbowarp-jsqr
  • Surface: Standalone extension, Composition API
  • Input: video frame source
  • Output: QR payload
  • Direct dependencies: turbowarp-camera-source
  • Optional integrations: tm-kamishibai
  • Representative use case: 会場や教材でQR codeから作品・台本・設定を選ぶ。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp-WebUSB-Pasori

  • Repository: kubohiroya/turbowarp-webusb-pasori
  • Package: @kubohiroya/turbowarp-webusb-pasori
  • Surface: Standalone extension, Composition API
  • Input: WebUSB device data
  • Output: device input event
  • Direct dependencies: none
  • Optional integrations: turbowarp-async-input
  • Representative use case: カードや外部デバイスで作品の分岐を操作する。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp-Async-Input

  • Repository: kubohiroya/turbowarp-async-input
  • Package: @kubohiroya/turbowarp-async-input
  • Surface: Standalone extension, Composition API
  • Input: TM event, device event, application event
  • Output: queued input state
  • Direct dependencies: none
  • Optional integrations: turbowarp-tm, turbowarp-webusb-pasori, tm-kamishibai
  • Representative use case: 複数入力を作品側の分岐条件へ安定して渡す。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp-Extended-Notification

  • Repository: kubohiroya/turbowarp-extended-notification
  • Package: @kubohiroya/turbowarp-extended-notification
  • Surface: Standalone extension, Composition API
  • Input: message request, status request
  • Output: notification UI state
  • Direct dependencies: none
  • Optional integrations: tm-kamishibai
  • Representative use case: 入力待ち、完了、警告を作品利用者に伝える。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp WebRTC

  • Repository: kubohiroya/turbowarp-webrtc
  • Package: @kubohiroya/turbowarp-webrtc
  • Surface: Standalone extension, Composition API
  • Input: WebRTC message
  • Output: peer message event
  • Direct dependencies: none
  • Optional integrations: tm-kamishibai
  • Representative use case: 複数端末を使う作品や会場運用で状態を共有する。
  • License policy: MPL-2.0 for software.
  • Status: current

状態・素材

Product Surface Responsibility Package
TurboWarp-Asset-Manager Standalone extension, Composition API 画像・音声・台本素材などのasset参照と読み込み状態を管理する。 @kubohiroya/turbowarp-asset-manager
TurboWarp-Text-Lines Standalone extension, Composition API 複数行の台詞・文章を作品から扱いやすい単位へ分割し、順番に参照できるようにする。 @kubohiroya/turbowarp-text-lines
TurboWarp-Runtime-Expression Standalone extension, Composition API application runtimeの値を式として参照・評価し、台本やblockの条件分岐へ接続する。 @kubohiroya/turbowarp-runtime-expression

TurboWarp-Asset-Manager

  • Repository: kubohiroya/turbowarp-asset-manager
  • Package: @kubohiroya/turbowarp-asset-manager
  • Surface: Standalone extension, Composition API
  • Input: asset URL, asset manifest
  • Output: resolved asset, asset loading state
  • Direct dependencies: none
  • Optional integrations: turbowarp-bubble, turbowarp-svg-text, tm-kamishibai
  • Representative use case: 作品の場面や台詞に対応する素材を再現可能に読み込む。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp-Text-Lines

  • Repository: kubohiroya/turbowarp-text-lines
  • Package: @kubohiroya/turbowarp-text-lines
  • Surface: Standalone extension, Composition API
  • Input: text asset, line selection
  • Output: line text, cursor state
  • Direct dependencies: none
  • Optional integrations: turbowarp-bubble, tm-kamishibai
  • Representative use case: 紙芝居の台詞を一行ずつ表示・進行する。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp-Runtime-Expression

  • Repository: kubohiroya/turbowarp-runtime-expression
  • Package: @kubohiroya/turbowarp-runtime-expression
  • Surface: Standalone extension, Composition API
  • Input: runtime variable, expression
  • Output: evaluated value
  • Direct dependencies: none
  • Optional integrations: tm-kamishibai
  • Representative use case: 台本変数とTurboWarpの状態を同じ条件判断に使う。
  • License policy: MPL-2.0 for software.
  • Status: current

表示・対話

Product Surface Responsibility Package
TurboWarp-SVG-Text Standalone extension, Composition API SVGとして扱える文字表示を生成し、作品の見た目と文字品質を安定させる。 @kubohiroya/turbowarp-svg-text
TurboWarp Bubble Standalone extension, Composition API 吹き出し表示と台詞presentationを、作品とhost applicationの両方から利用できるようにする。 @kubohiroya/turbowarp-bubble
TurboWarp-Diagnostic-Overlay Standalone extension, Composition API 検証結果・実行状態・失敗理由を画面上に重ねて表示する。 @kubohiroya/turbowarp-diagnostic-overlay

TurboWarp-SVG-Text

  • Repository: kubohiroya/turbowarp-svg-text
  • Package: @kubohiroya/turbowarp-svg-text
  • Surface: Standalone extension, Composition API
  • Input: text, font setting, layout setting
  • Output: SVG text asset
  • Direct dependencies: none
  • Optional integrations: turbowarp-bubble, tm-kamishibai
  • Representative use case: 紙芝居の台詞や見出しを画像素材として整える。
  • License policy: MPL-2.0 for software.
  • Status: current
  • Extension ID: kubohiroyasvgtext

TurboWarp Bubble

  • Repository: kubohiroya/turbowarp-bubble
  • Package: @kubohiroya/turbowarp-bubble
  • Surface: Standalone extension, Composition API
  • Input: line text, speaker state, asset state
  • Output: bubble rendering request
  • Direct dependencies: turbowarp-svg-text
  • Optional integrations: turbowarp-text-lines, turbowarp-asset-manager, tm-kamishibai
  • Representative use case: 紙芝居の登場人物の台詞を画面に表示する。
  • License policy: MPL-2.0 for software.
  • Status: current

TurboWarp-Diagnostic-Overlay

  • Repository: kubohiroya/turbowarp-diagnostic-overlay
  • Package: @kubohiroya/turbowarp-diagnostic-overlay
  • Surface: Standalone extension, Composition API
  • Input: diagnostic event, runtime status
  • Output: overlay message
  • Direct dependencies: none
  • Optional integrations: tm-kamishibai
  • Representative use case: 会場運用や開発中に、止まった理由を画面で確認する。
  • License policy: MPL-2.0 for software.
  • Status: current

開発・配布基盤

Product Surface Responsibility Package
TurboWarp-Extension-Template CLI TypeScriptでTurboWarp機能拡張を作るためのrepository標準と初期構成を提供する。 @kubohiroya/turbowarp-extension-template
Vite Plugin for TurboWarp Extensions CLI TurboWarp standalone bundle、manifest、Composition API向け出力をVite buildへ接続する。 vite-plugin-turbowarp-extension
SB3 Toolchain CLI Scratch/TurboWarp projectのsource管理、manifest検査、再現可能なSB3 buildを担う。 @kubohiroya/sb3-toolchain

TurboWarp-Extension-Template

  • Repository: kubohiroya/turbowarp-extension-template
  • Package: @kubohiroya/turbowarp-extension-template
  • Surface: CLI
  • Input: extension source
  • Output: extension repository skeleton
  • Direct dependencies: none
  • Optional integrations: vite-plugin-turbowarp-extension
  • Representative use case: 新しい機能拡張を共通のlint、build、release手順で始める。
  • License policy: MPL-2.0 for software template files unless stated otherwise.
  • Status: current

Vite Plugin for TurboWarp Extensions

  • Repository: kubohiroya/vite-plugin-turbowarp-extension
  • Package: vite-plugin-turbowarp-extension
  • Surface: CLI
  • Input: TypeScript extension source, extension metadata
  • Output: standalone bundle, extension manifest, composition bundle
  • Direct dependencies: Vite
  • Optional integrations: turbowarp-extension-template
  • Representative use case: 機能拡張の配布物を同じ規則で生成する。
  • License policy: MPL-2.0 for software.
  • Status: current

SB3 Toolchain

  • Repository: kubohiroya/sb3-toolchain
  • Package: @kubohiroya/sb3-toolchain
  • Surface: CLI
  • Input: SB3 source tree, extension manifest, migration plan
  • Output: validated SB3, build report
  • Direct dependencies: none
  • Optional integrations: tm-kamishibai, turbowarp-extension-template
  • Representative use case: 作品や教材をソース管理し、同じ入力から同じSB3を生成する。
  • License policy: MPL-2.0 for software.
  • Status: current

統合application/content

Product Surface Responsibility Package
TM Kamishibai Application, CLI 複数のTurboWarp機能拡張、台本、素材、build手順を統合し、Web配布できる紙芝居applicationとして提供する。 @kubohiroya/tm-kamishibai
TM紙芝居ドキュメント Docs TM Kamishibaiの利用者、台本作者、開発者、workshop運営者向け文書を公開する。 @kubohiroya/tm-kamishibai-docs
TM紙芝居 作品library Samples TM Kamishibaiで試せる作品、教材、配布用sampleを整理して公開する。 @kubohiroya/tm-kamishibai-samples

TM Kamishibai

  • Repository: kubohiroya/tm-kamishibai
  • Package: @kubohiroya/tm-kamishibai
  • Surface: Application, CLI
  • Input: script, asset, extension bundle, runtime setting
  • Output: web application, SB3 artifact, publication artifact
  • Direct dependencies: turbowarp-tm, turbowarp-asset-manager, turbowarp-async-input, turbowarp-runtime-expression, turbowarp-bubble, turbowarp-diagnostic-overlay, sb3-toolchain
  • Optional integrations: turbowarp-jsqr, turbowarp-webrtc
  • Representative use case: 教材、作品、ワークショップ用の紙芝居を配布・実行する。
  • License policy: Software is MPL-2.0; documents and content follow their own notices.
  • Status: current

TM紙芝居ドキュメント

  • Repository: kubohiroya/tm-kamishibai-docs
  • Package: @kubohiroya/tm-kamishibai-docs
  • Surface: Docs
  • Input: Markdown source, publication metadata
  • Output: HTML publication, PDF where applicable
  • Direct dependencies: @vivliostyle/cli
  • Optional integrations: tm-kamishibai, tm-kamishibai-samples
  • Representative use case: 利用者の入口と開発者向けの正規ガイドをまとめる。
  • License policy: Documents are CC BY-SA 4.0 unless another notice applies; site code is MPL-2.0.
  • Status: current

TM紙芝居 作品library

  • Repository: kubohiroya/tm-kamishibai-samples
  • Package: @kubohiroya/tm-kamishibai-samples
  • Surface: Samples
  • Input: sample source, asset, metadata
  • Output: sample catalog, playable publication
  • Direct dependencies: tm-kamishibai
  • Optional integrations: tm-kamishibai-docs
  • Representative use case: 初めての利用者が動く作品から試し、教材作者が出発点を選ぶ。
  • License policy: Each sample declares its own rights notice.
  • Status: current

upstream fork

Product Surface Responsibility Package
scratch-render fork Fork 上流Scratch rendererの検証やpatch候補を扱うforkであり、独自product一覧とは分けて管理する。 scratch-render

scratch-render fork

  • Repository: kubohiroya/scratch-render
  • Package: scratch-render
  • Surface: Fork
  • Input: upstream Scratch renderer source
  • Output: patch verification branch
  • Direct dependencies: none
  • Optional integrations: tm-kamishibai
  • Representative use case: 上流挙動の確認と、必要なpatchの検証を行う。
  • License policy: Follows upstream license terms.
  • Status: upstream fork

Repository Integration Checklist

主要repositoryのREADMEには、この文書と同じ一覧を複製しません。各READMEには短い導線だけを置き、詳細な相互関係はこの中央indexへ集約します。

  • TurboWarp機能拡張: READMEからこのoverviewへ一文で案内する。
  • templateとVite plugin: 新規機能拡張を作る開発者向けに、このoverviewを設計背景として案内する。
  • SB3 Toolchain: manifest、migration plan、reproducible buildの説明からこのoverviewへ接続する。
  • TM Kamishibai: applicationが統合するpackage群をこのoverviewへ委譲し、READMEには利用者向け導線を残す。
  • DocsとSamples: 公開siteの入口から、このoverview、チュートリアル、作品libraryを行き来できるようにする。