๐ Installation Guide โ quick start, manual setup, and troubleshooting
Beautiful React Tailwind VR Worlds Control Center integrating Avatar MCP, Blender MCP, VRChat MCP, Resonite MCP, OSC MCP, Unity3D MCP with ikubaysan dual-STT AI chatbot architecture.
git clone https://github.com/sandraschi/myvrworlds
cd myvrworlds
justThis opens an interactive dashboard showing all available commands. Run just bootstrap to install dependencies, then just serve or just dev to start.
If you don't have just installed:
- Avatar MCP: Real-time avatar creation and animation control
- Blender MCP: 3D modeling and rendering integration
- VRChat MCP: OSC-based VRChat avatar and world control
- Resonite MCP: Session management and Logix scripting
- OSC MCP: Open Sound Control protocol handling
- Unity MCP: Unity game engine VR development integration
- Dual STT Pipeline: Sphinx wake-word detection + Google Cloud accurate transcription
- Multi-Provider LLM Support: Local (Ollama, LM Studio) + Cloud (OpenAI, Anthropic, Gemini)
- Character State Machine: Wandering โ Conversing โ Performing Actions
- Structured AI Responses: TYPE_NORMAL, TYPE_ENDING, TYPE_YES, TYPE_NO, TYPE_CMD
- Physical Embodiment: Voice-controlled VR avatar behaviors
- React 18 with TypeScript for type safety
- Tailwind CSS for beautiful, responsive design
- Radix UI components for accessibility
- React Query for efficient data fetching
- Dark theme optimized for VR control interfaces
MyVRWorlds is part of the Sandraschi port management system. All web applications run on ports above 11000 to avoid system conflicts.
- MyVRWorlds: 11101 (VR MCP Control Center)
- Advanced Memory MCP Frontend: 11102 (planned)
- OCR Webapp: 11103
- Robotics Webapp: 11104
- Home Automation: 11105
- Calibre Plus: 11106
- Plex Plus: 11107
- Immich Plus: 11108
- Document Viewer: 11109
- Video Generator: 11110
- Voice AI Suite: 11111
- Research Assistant: 11112
- Code Assistant: 11113
- Character Conversation: 11114
- Gemini Tools: 11115
- Bob & Alice: 11116
- Teams Debate: 11117
# Check if a port is available
node scripts/port-manager.js check 11101
# List all assigned ports
node scripts/port-manager.js list
# Assign next available port to new app
node scripts/port-manager.js assign my-new-app
# Validate all port assignments
node scripts/port-manager.js validate
# Update app configuration
node scripts/port-manager.js update myvrworlds status active- All ports must be above 11000
- Ports 11000-11004 are reserved for system services
- Port format: 11XXX (where XXX is sequential)
- Document all changes in
config/ports.json - Use the port manager script for all assignments
๐ค Audio Input โ Sphinx Wake Detection โ Google Cloud Transcription โ AI Processing โ Voice Response
โ โ โ โ โ
Always-on Fast keyword High accuracy Context-aware Physical actions
Low CPU spotting transcription responses & gestures
- WanderingState: Random movements, wake word listening
- ConversingState: Active voice interaction, AI responses
- PerformingActionState: Executing movement/gesture commands
- Node.js 18+
- npm or yarn
- VR MCP servers running (see individual repos)
- Local LLM Option: Ollama or LM Studio (recommended for privacy)
- Cloud LLM Option: OpenAI, Anthropic, or Google API keys
Option 1: Ollama (Most Popular)
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Pull a conversational model
ollama pull llama2
# Start Ollama server (runs automatically)
ollama serveOption 2: LM Studio (User-Friendly)
# Download from https://lmstudio.ai/
# Load any GGUF model
# Start local server (default: localhost:1234)# Clone the repository
git clone https://github.com/sandraschi/myvrworlds.git
cd myvrworlds
# Install dependencies
npm install
# Start development server (port 11101)
npm run devOpen http://localhost:11101 in your browser
Note: MyVRWorlds uses port 11101 as part of the Sandraschi port management system. All web applications run on ports 11000+ to avoid conflicts.
- Go to Settings โ LLM Configuration
- Choose your preferred LLM provider:
- Ollama (local, private, no API costs)
- LM Studio (local, easy to use)
- OpenAI/Anthropic/Gemini (cloud, requires API keys)
- Configure your model settings
- Test the connection
- Start using voice control in VR!
Start the required MCP servers before using the interface:
# Terminal 1: Avatar MCP
cd ../avatar-mcp && python -m src.avatar_mcp.server
# Terminal 2: VRChat MCP
cd ../vrchat-mcp && python -m src.vrchat_mcp.server
# Terminal 3: OSC MCP
cd ../osc-mcp && python -m src.osc_mcp.server
# ... start other VR MCP servers as needed- Sphinx Wake Detection: Always listening for character names ("ringo", "hey ringo")
- Google Cloud Transcription: High-accuracy full conversation processing
- AI Response Classification: Structured responses for avatar behaviors
- Physical Actions: Voice-controlled movements and gestures
- Wake Words: "ringo", "hey ringo", "listen ringo"
- Action Commands: "turn left", "move forward", "stop"
- Conversation Control: "bye", "goodbye" to end sessions
- Character wanders randomly (listening for wake words)
- User says "Hey ringo" โ Character enters conversation mode
- Full transcription via Google Cloud STT
- AI generates contextual response
- Character performs appropriate gestures/voice response
- Real-time blendshape animation
- OSC parameter manipulation
- Gesture recognition and playback
- IK rigging control
- VRChat instance joining/leaving
- Resonite session control
- Asset synchronization
- Multi-user coordination
- Frontend: React 18, TypeScript, Tailwind CSS
- UI Components: Radix UI, Lucide Icons
- State Management: React Query, Context API
- 3D Integration: React Three Fiber (planned)
- Real-time: Socket.io, WebRTC
- Voice Processing: Web Audio API, MediaRecorder
src/
โโโ components/
โ โโโ ui/ # Radix UI components
โ โโโ Layout.tsx # Main app layout
โโโ pages/ # Route components
โโโ hooks/ # Custom React hooks
โโโ lib/ # Utilities
โโโ types/ # TypeScript definitions
docs/
โโโ integrations/ # MCP server docs
โโโ README.md # Main documentation
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
npm run type-check # Run TypeScript checks- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- ikubaysan for the revolutionary dual STT architecture
- Anthropic for the MCP protocol
- VR Community for inspiration and feedback
- โ Basic React Tailwind interface
- โ VR MCP server integration structure
- โ Dual STT voice pipeline implementation
- โ Character state machine
- โ Multi-provider LLM support (local + cloud)
- ๐ Real-time 3D avatar preview
- ๐ Multi-character voice interactions
- ๐ Advanced gesture recognition
- ๐ World streaming capabilities
- ๐ Production backend API integration
- ๐ Neural voice synthesis
- ๐ Emotion recognition
- ๐ Multi-language support
- ๐ Cloud deployment options
- ๐ Advanced avatar animation blending