Skip to content

Repository files navigation

LLMeta Bousai Edition

長崎大学 瀬戸崎研究室 ・ ソフトバンク株式会社 共同研究

AI エージェントを活用した VR 防災避難訓練コンテンツ — LLMeta(長崎大学 瀬戸崎研究室 2025年度卒業研究)をフォークし、防災(水害)教育向けにチューニングした Web アプリケーションです。長崎大学文教キャンパスが浸水した状況を 3D で再現し、専属の AI エージェントと相談しながら避難を体験できます。

コンセプト

LLMeta(LLM + Metaverse)は、AI エージェントがメタバース内でのユーザー体験を支援するプラットフォームです。防災 Edition では、VR 技術と AI を組み合わせた実践的な防災学習コンテンツを提供します。

詳細は docs/concept.md を参照してください。

フォーク元: ut42tech/llmeta-app — オリジナルの LLMeta(AI メタバースコミュニケーションプラットフォーム、2025年度卒業研究)

主な機能

  • 3D メタバース — 長崎大学文教キャンパスの水害シナリオ(大雨、洪水水面、暗い曇り空)を React Three Fiber で再現
  • AI エージェント — 各ユーザーに専属の AI エージェントが避難経路・防災グッズの相談に応答
  • VRM アバター — @pixiv/three-vrm による 3D キャラクターモデル
  • リアルタイム音声チャット — LiveKit による WebRTC ベースの音声通信
  • 音声文字起こし — Deepgram によるリアルタイム音声認識
  • 暗号化 3D モデル — キャンパスモデルの暗号化配信とプリロード
  • 多言語対応 — 英語・日本語の切り替え

技術スタック

カテゴリ 技術
コア Next.js 16 (App Router), React 19, TypeScript
3D/VR Three.js, React Three Fiber, @react-three/xr, @pixiv/three-vrm
リアルタイム LiveKit, Deepgram
AI Vercel AI SDK, OpenAI
認証 Supabase Auth (@supabase/ssr)
UI shadcn/ui, Tailwind CSS v4, Motion, Lucide Icons
状態管理 Zustand
多言語 next-intl
テスト Vitest, Testing Library, Playwright, Storybook 10
リンター Biome

セットアップ

前提条件

  • Node.js 18+
  • pnpm

インストール

# リポジトリをクローン
git clone https://github.com/SetozakiLab/llmeta-bousai.git
cd llmeta-bousai

# 依存関係をインストール
pnpm install

環境変数

.env.example.env.local にコピーして設定してください。

cp .env.example .env.local
変数 説明
NEXT_PUBLIC_SUPABASE_URL Supabase プロジェクト URL
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY Supabase 公開キー(anon key)
LIVEKIT_API_KEY LiveKit API キー
LIVEKIT_API_SECRET LiveKit API シークレット
LIVEKIT_URL LiveKit WebSocket URL
DEEPGRAM_PROJECT_ID Deepgram プロジェクト ID
DEEPGRAM_API_KEY Deepgram API キー
OPENAI_API_KEY OpenAI API キー
BLOB_READ_WRITE_TOKEN Vercel Blob トークン
MODEL_ENCRYPTION_KEY 3D モデル暗号化キー
MODEL_ENCRYPTION_IV 3D モデル暗号化 IV
MODEL_BLOB_URL 暗号化モデルの Blob URL

開発

pnpm dev

http://localhost:3000 をブラウザで開いてください。

プロジェクト構造

src/
├── app/                     # Next.js App Router ページ
│   ├── (auth)/              # 認証ページ(ログイン、サインアップ)
│   ├── (hub)/               # メインダッシュボード(サイドバー付き)
│   │   ├── instance/        # インスタンスロビー
│   │   ├── settings/        # ユーザー設定
│   │   └── world/           # ワールド詳細
│   ├── actions/             # Server Actions
│   ├── api/                 # API ルート
│   │   ├── ai/              # AI エンドポイント(チャット、会話管理)
│   │   ├── auth/            # 認証エンドポイント
│   │   ├── blob/            # Blob ストレージ
│   │   ├── deepgram/        # 音声文字起こし
│   │   ├── livekit/         # LiveKit トークン
│   │   └── messages/        # メッセージ
│   └── experience/          # フルスクリーン 3D 体験
├── components/
│   ├── ai-elements/         # AI エージェント UI
│   ├── character/           # VRM キャラクター・プレイヤー
│   ├── common/              # 共有ユーティリティ
│   ├── hud/                 # HUD オーバーレイ
│   │   ├── ai-chat/         # AI チャットサイドバー
│   │   ├── caption/         # キャプションウィンドウ
│   │   ├── chat/            # テキストチャット
│   │   ├── dock/            # コントロールボタン
│   │   └── status-bar/      # 接続・プレイヤー状態
│   ├── layout/              # レイアウト
│   ├── providers/           # コンテキストプロバイダー
│   ├── scene/               # 3D シーン(FloodWater, Rain, DefaultMap 等)
│   ├── ui/                  # shadcn/ui コンポーネント
│   └── world/               # ワールドカード・インスタンスカード
├── constants/               # 定数(アニメーション、アバター、ワールド)
├── hooks/                   # カスタム React Hooks
├── i18n/                    # 国際化(en, ja)
├── lib/                     # ユーティリティライブラリ
│   └── supabase/            # Supabase クライアント
├── stores/                  # Zustand 状態ストア
├── types/                   # TypeScript 型定義
└── utils/                   # ユーティリティ関数

スクリプト

コマンド 説明
pnpm dev 開発サーバーを起動
pnpm build プロダクションビルド
pnpm start プロダクションサーバーを起動
pnpm lint Biome リンター実行
pnpm format Biome フォーマッター実行
pnpm typecheck TypeScript 型チェック
pnpm test Vitest ユニットテスト実行
pnpm test:e2e Playwright E2E テスト実行
pnpm test:all 全テスト実行(ユニット + E2E)
pnpm storybook Storybook 開発サーバーを起動
pnpm build-storybook Storybook をビルド

ドキュメント

ファイル 内容
docs/concept.md コンセプト — 背景・目的・AIエージェントの役割
docs/usage.md 使い方ガイド — 操作方法・機能説明
docs/evaluation.md 評価プロトコル — 実施手順・準備事項
docs/questionnaire.md アンケート — 事後評価の質問項目

ライセンス

Copyright (c) 2026 Takuya UEHARA. All Rights Reserved.

本プロジェクトは長崎大学 瀬戸崎研究室とソフトバンク株式会社の共同研究の一環として開発されました。ソースコードは レビューおよび研究目的でのみ 提供されています。

再利用に関するライセンスはありません: 著者の明示的な書面による許可なく、本ソフトウェアのコピー、修正、マージ、公開、配布、サブライセンス、販売を行うことはできません。

About

AI防災学習メタバース | SoftBank 産学連携プロジェクトAWARD 2025 審査員特別賞受賞

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages