A powerful, browser-based 3D CAD application that enables users to create and manipulate 3D objects with AI assistance. Built with React, TypeScript, Babylon.js, and powered by OpenAI's API through an MCP (Model Context Protocol) server.
- Node.js 18+
- npm or yarn
- OpenAI API key (for AI features)
-
Clone the repository
git clone https://github.com/VibeCAD/gui-clean.git cd gui-clean
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
When you first launch the application, you'll be prompted to enter your OpenAI API key. This enables the AI-powered scene manipulation features.
Note: Your API key is stored locally in your browser and never sent to external servers.
๐ฏ 3D Creation: Primitives (cube, sphere, cylinder, etc.) and housing elements with full transform controls
๐ค AI Integration: Natural language commands for scene manipulation via OpenAI API
๐ ๏ธ Professional Tools: Multi-select, snap-to-grid, camera controls, wireframe mode
๐จ Modern UI: Dropdown toolbar, real-time status, keyboard shortcuts, responsive design
- Frontend: React 18 + TypeScript + Vite
- 3D Engine: Babylon.js for WebGL rendering
- State Management: Zustand for application state
- AI Integration: OpenAI API with MCP Server
- Styling: Custom CSS with modern design system
useBabylonScene
: Main hook managing 3D scene lifecycleSceneStore
: Centralized state management for 3D objectsAISidebar
: AI-powered natural language interfaceGizmoManager
: Interactive 3D transform controlsObjectFactory
: 3D primitive and housing creation system
- Click Create in the toolbar
- Select from Primitives or Housing elements
- Object appears in the 3D scene at a random position
- Use transform tools to position and modify
- Open the AI sidebar (right panel)
- Enter natural language commands like:
- "Create a red cube next to the sphere"
- "Make all objects blue"
- "Arrange objects in a circle"
- "Delete everything except the house"
- Select an object in the 3D scene
- Choose transform mode: Select, Move, Rotate, or Scale
- Use gizmo handles for precise manipulation
- Hold Ctrl for multi-select operations
- Mouse: Left-click and drag to rotate
- Wheel: Zoom in/out
- Toolbar: Quick camera positions (Front, Top, etc.)
src/
โโโ babylon/ # Babylon.js integration
โ โโโ hooks/ # React hooks for 3D scene
โ โโโ objectFactory.ts
โ โโโ sceneManager.ts
โ โโโ gizmoManager.ts
โโโ components/ # React components
โ โโโ sidebar/ # AI and properties panels
โโโ state/ # State management
โ โโโ sceneStore.ts
โโโ types/ # TypeScript definitions
โโโ ai/ # AI service integration
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
This repository represents a clean, open-source version of the Moorph GUI platform:
- โ No Authentication: No login/signup required
- โ No Database: No server-side data persistence
- โ No Cloud Services: Runs entirely in the browser
- โ Pure 3D Creation: Focus on core 3D manipulation features
- โ AI Integration: Full OpenAI API support
- โ Open Source: MIT licensed for community development
Perfect for developers who want to:
- Learn 3D web development with Babylon.js
- Integrate AI into 3D applications
- Build upon a solid CAD foundation
- Contribute to open-source 3D tools
We welcome contributions! This clean version is designed for community development:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details.
Built with โค๏ธ by Moorph Labs
Transform your 3D ideas into reality with the power of AI and modern web technologies.