OSS探訪GitHubでログイン

Three.js sceneをReact componentとJSXで宣言的に構築するReact renderer

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
32,733
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/02
ページ内ナビ

概要

React Three FiberはThree.jsをReact reconciliation modelへ接続するrendererです。Canvas内でmesh、light、geometry、material等をJSXとして宣言し、React state・hooks・component compositionを3D sceneへ適用できます。Three.js ecosystemの機能をReactの構成で扱うための基盤です。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Three.js objectをJSX elementとして宣言的に構築する

<mesh>、<boxGeometry>、<meshStandardMaterial>等のJSXは対応するThree.js objectへ変換され、React componentとしてscene graphを構成できます。

出典:[1]

React state・event・useFrameを3D render loopへ統合する

component stateやpointer eventをsceneへ利用でき、useFrameでframeごとの処理をrender loopへ登録できます。UI logicと3D behaviorを同じReact component modelで管理できます。

出典:[1]

Three.jsのfeatureとReact ecosystemを組み合わせる

rendererはThree.js objectを表現するため、新しいThree.js featureもJSXから利用できます。drei、postprocessing、XR等の周辺ecosystemもあります。

出典:[1]

向いている用途

React application内でinteractive 3D・visualization・WebGL sceneをcomponent化したい場合に向く

Reactのstate管理・component compositionとThree.js renderingを同一application architectureへ統合したい3D UIやdata visualization、interactive contentに適します。

出典:[1]

導入前の確認

9.8.1はReact 19系とThree.js 0.156以上を要求する

package metadataはReact/React DOM >=19 <19.4、Three.js >=0.156をpeer dependencyとして定義します。READMEもR3F v9はReact 19とpairすることを明示しています。

出典:[2][1]

9.8.1はCanvas lifecycleとReact Activity visibility周辺を修正する

9.8.1ではCanvas unmount時のrenderer dispose、React Activity/Suspenseでのvisibility保持、Canvas rerender時にruntime settingがresetされるcase等が修正されています。

出典:[3]

参考にした公式資料

  1. [1]React Three Fiber v9.8.1 README(2026-10-05)
  2. [2]@react-three/fiber 9.8.1 package metadata(2026-10-05)
  3. [3]React Three Fiber v9.8.1 release(2026-10-05)
  4. [4]React Three Fiber MIT license(2026-10-05)
編集部からの補足

Three.jsを隠すwrapperではなくReact rendererです。Three.jsのscene/camera/material等の基礎理解が前提になり、v9はReact 19系と組み合わせる必要があります。

3ステップで試す

  1. 1

    React Three Fiber 9.8.1を固定して導入する

    一時npm projectへR3F、React 19、Three.jsを固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/r3f.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact @react-three/fiber@9.8.1 react@19.2.0 react-dom@19.2.0 three@0.180.0
  2. 2

    package versionを確認する

    review対象のrenderer versionが導入されていることを確認します。

    test "$(node -e "console.log(JSON.parse(require('fs').readFileSync('node_modules/@react-three/fiber/package.json')).version)")" = '9.8.1'
  3. 3

    renderer APIのexportを確認する

    browser/WebGL contextを起動せず、Canvas・createRoot・useFrameの主要renderer APIを確認します。実描画はbrowser/GPU環境で別途検証してください。

    test "$(node --input-type=module -e "import * as R from '@react-three/fiber'; console.log(['Canvas','createRoot','useFrame'].every(k=>k in R))")" = 'true'
公式READMEで確認

成長

成長の推移 · 直近30日

32,733 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
36
Open PR
3

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • react
  • threejs
  • fiber
  • renderer
  • 3d
  • animation
Stars
32,733
Forks
2,005
Watchers
215
Open Issues
13
Contributors
226
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?