{"id":50241473,"url":"https://github.com/ut42tech/llmeta-app","last_synced_at":"2026-05-26T21:05:36.103Z","repository":{"id":321933561,"uuid":"1087678900","full_name":"ut42tech/llmeta-app","owner":"ut42tech","description":"Project LLMeta. Beyond limits, with AI.","archived":false,"fork":false,"pushed_at":"2026-01-11T07:01:05.000Z","size":78292,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T10:57:31.099Z","etag":null,"topics":["ai","communication","metaverse"],"latest_commit_sha":null,"homepage":"https://llmeta.ut42tech.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ut42tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-01T12:19:22.000Z","updated_at":"2026-01-11T07:03:43.000Z","dependencies_parsed_at":"2025-11-16T15:05:20.750Z","dependency_job_id":null,"html_url":"https://github.com/ut42tech/llmeta-app","commit_stats":null,"previous_names":["ut42tech/llmeta-client-desktop","ut42tech/llmeta-client"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/ut42tech/llmeta-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut42tech%2Fllmeta-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut42tech%2Fllmeta-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut42tech%2Fllmeta-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut42tech%2Fllmeta-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ut42tech","download_url":"https://codeload.github.com/ut42tech/llmeta-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ut42tech%2Fllmeta-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33538735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","communication","metaverse"],"created_at":"2026-05-26T21:05:35.312Z","updated_at":"2026-05-26T21:05:36.096Z","avatar_url":"https://github.com/ut42tech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LLMeta App\n\n\u003e 🎓 **Graduation Research Project (2025)** — Nagasaki University Setozaki Lab.\n\nThe web application for **Project LLMeta** — an AI-powered metaverse platform where each user is paired with a dedicated AI agent in an immersive 3D virtual world.\n\n## Concept\n\n**Project LLMeta** is centered on enhancing user-to-user communication through AI assistance.\n\nEach user is paired with a personal AI agent that facilitates communication between users by:\n\n- 📝 **Contextual Explanations** — Providing real-time clarifications based on conversation context\n- 📋 **Summaries** — Condensing discussions to help users stay aligned\n- 🎨 **Image Generation** — Creating visuals to support idea sharing\n- 🤝 **Understanding Enhancement** — Reducing misunderstandings and improving comprehension\n\n## Features\n\n- 🌐 **3D Metaverse** — Immersive virtual world powered by React Three Fiber\n- 🤖 **Personal AI Agent** — Each user is paired with a dedicated AI agent\n- 🎭 **VRM Avatar Support** — 3D character models via @react-three/viverse\n- 🎙️ **Real-time Voice Chat** — WebRTC-based voice communication via LiveKit\n- 💬 **Text Chat** — Real-time messaging with chat bubbles\n- 🌍 **Multi-language Support** — English and Japanese localization\n- ✨ **Modern UI** — Smooth animations with Motion and shadcn/ui components\n\n## Tech Stack\n\n| Category | Technologies |\n|----------|-------------|\n| **Core** | Next.js 16 (App Router), React 19, TypeScript |\n| **3D/VR** | Three.js, React Three Fiber, @react-three/viverse, @react-three/xr, @pixiv/three-vrm |\n| **Real-time** | LiveKit, Deepgram |\n| **AI** | Vercel AI SDK, OpenAI |\n| **Auth** | Supabase Auth (@supabase/ssr) |\n| **UI** | shadcn/ui, Tailwind CSS v4, Motion, Lucide Icons |\n| **State** | Zustand |\n| **i18n** | next-intl |\n| **Testing** | Vitest, Testing Library, Playwright, Storybook 10 |\n| **Linting** | Biome |\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n- pnpm\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/ut42tech/llmeta-app.git\ncd llmeta-app\n\n# Install dependencies\npnpm install\n```\n\n### Environment Variables\n\nCopy `.env.example` to `.env.local` and configure:\n\n```bash\ncp .env.example .env.local\n```\n\n| Variable | Description |\n|----------|-------------|\n| `NEXT_PUBLIC_SUPABASE_URL` | Supabase project URL |\n| `NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY` | Supabase publishable (anon) key |\n| `LIVEKIT_API_KEY` | LiveKit API key |\n| `LIVEKIT_API_SECRET` | LiveKit API secret |\n| `LIVEKIT_URL` | LiveKit WebSocket URL |\n| `DEEPGRAM_PROJECT_ID` | Deepgram project ID |\n| `DEEPGRAM_API_KEY` | Deepgram API key |\n| `OPENAI_API_KEY` | OpenAI API key |\n| `BLOB_READ_WRITE_TOKEN` | Vercel Blob token |\n\n### Development\n\n```bash\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n\n## Project Structure\n\n```\nsrc/\n├── app/                     # Next.js App Router pages\n│   ├── (auth)/              # Authentication pages (login, signup)\n│   ├── (hub)/               # Main hub with sidebar\n│   │   ├── instance/        # Instance lobby page\n│   │   ├── settings/        # User settings page\n│   │   └── world/           # World detail page\n│   ├── actions/             # Server actions\n│   ├── api/                 # API routes\n│   │   ├── ai/              # AI endpoints (chat, conversations)\n│   │   ├── auth/            # Authentication endpoints\n│   │   ├── blob/            # Blob storage endpoints\n│   │   ├── deepgram/        # Speech-to-text endpoints\n│   │   ├── livekit/         # LiveKit token endpoints\n│   │   └── messages/        # Message endpoints\n│   └── experience/          # Full-screen 3D world experience\n├── components/\n│   ├── ai-elements/         # AI agent UI components (30 components)\n│   ├── character/           # VRM character \u0026 player components (8 components)\n│   ├── common/              # Shared utilities (5 components)\n│   ├── home/                # Home page components (1 component)\n│   ├── hud/                 # HUD overlays (25 components)\n│   │   ├── ai-chat/         # AI chat sidebar, window \u0026 image (5 components)\n│   │   ├── caption/         # Caption window \u0026 waveform (2 components)\n│   │   ├── chat/            # Text chat input \u0026 stream (2 components)\n│   │   ├── dock/            # Control buttons \u0026 drawers (10 components)\n│   │   └── status-bar/      # Connection \u0026 player status badges (3 components)\n│   ├── layout/              # Hub layout (3 components)\n│   ├── providers/           # Context providers (4 providers)\n│   ├── scene/               # 3D scene components (4 components)\n│   ├── ui/                  # Shared shadcn/ui components (35 components)\n│   └── world/               # World cards \u0026 instance cards (2 components)\n├── constants/               # App constants (animations, avatars, sync, world)\n├── hooks/                   # Custom React hooks (22 hooks)\n│   ├── ai-chat/             # AI chat history hooks (1 hook)\n│   ├── auth/                # Authentication hooks (1 hook)\n│   ├── chat/                # Text chat hooks (2 hooks)\n│   ├── common/              # Common utility hooks (1 hook)\n│   ├── livekit/             # LiveKit integration (6 hooks)\n│   ├── scene/               # 3D scene hooks (6 hooks)\n│   ├── services/            # Service layer hooks (2 hooks)\n│   ├── transcription/       # Speech-to-text hooks (2 hooks)\n│   └── voice-chat/          # Voice chat hooks (1 hook)\n├── i18n/                    # Internationalization (en, ja)\n├── lib/                     # Utility libraries\n│   └── supabase/            # Supabase client (server/browser/middleware)\n├── stores/                  # Zustand state stores (8 stores)\n├── types/                   # TypeScript types (7 type files)\n└── utils/                   # Utility functions (8 utilities)\n```\n\n## Scripts\n\n| Command | Description |\n|---------|-------------|\n| `pnpm dev` | Start development server |\n| `pnpm build` | Build for production |\n| `pnpm start` | Start production server |\n| `pnpm lint` | Run Biome linter |\n| `pnpm format` | Format code with Biome |\n| `pnpm typecheck` | Run TypeScript type checking |\n| `pnpm test` | Run unit tests with Vitest |\n| `pnpm test:e2e` | Run E2E tests with Playwright |\n| `pnpm test:all` | Run all tests (unit + E2E) |\n| `pnpm storybook` | Start Storybook dev server |\n| `pnpm build-storybook` | Build Storybook for deployment |\n\n## License\n\n**Copyright (c) 2026 Takuya UEHARA. All Rights Reserved.**\n\nThis project is developed as part of a graduation research project.\nSource code is provided for **review and portfolio purposes only**.\n\n🚫 **No License for Reuse:**\nYou may not use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software without explicit written permission from the author.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fut42tech%2Fllmeta-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fut42tech%2Fllmeta-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fut42tech%2Fllmeta-app/lists"}