📱 A powerful iOS app for generating, viewing, and experiencing 3D models
Features • Installation • Usage • Supported Formats • Requirements
- Text-to-3D: Generate 3D models from text descriptions
- Image-to-3D: Create 3D models from photos
- Texture Control: Optional high-quality texture generation
- Camera Integration: Take photos directly for 3D generation
- Interactive 3D Viewer: Rotate, scale, and explore models
- Multi-format Support: USDZ, GLB, GLTF, DAE, OBJ
- Real-time Rendering: Smooth 60fps performance with SceneKit
- File Import: Load models from Files app or other sources
- Immersive AR Experience: View models in your real environment
- Smart Placement: Automatic plane detection for realistic positioning
- Gesture Controls: Intuitive pinch, rotate, and drag interactions
- Scale Adjustment: Automatic sizing for optimal viewing
- SwiftUI Interface: Clean, native iOS design
- Dual Modes: Creation and browsing modes
- History Management: Keep track of all generated models
- Editable Names: Customize project names
- Collapsible Panels: Optimized for model viewing
- 🎨 UI Improvements
- 📤 Export & Sharing
- 🖨️ 3D Printing Integration
- ...
- Xcode 15.0+
- iOS 17.0+
- CocoaPods
-
Clone the repository
git clone <repository-url> cd Viu3D
-
Install dependencies
pod install
-
Open the workspace
open Viu3D.xcworkspace
-
Configure API (Optional)
- Update API endpoints in
GenerationModels.swift
- Configure your backend URL in
APIConfig
- Update API endpoints in
-
Build and run
- Select your target device or simulator
- Press ⌘+R to build and run
-
Launch the app - Start in Creation Mode
-
Choose generation method:
- 📝 Text: Enter a description (e.g., "A red sports car")
- 📷 Image: Take a photo or select from library
- 📁 File: Import existing 3D model
-
Generate - Wait for AI processing
-
View & Interact - Automatically switches to Browsing Mode
- Open any model in Browsing Mode
- Tap the AR Preview button in the model info panel
- Point camera at a flat surface
- Tap to place the model
- Use gestures to interact:
- Pinch: Scale the model
- Rotate: Change orientation
- Drag: Move position
- Access via the History button (top-left)
- View all previously generated models
- Tap any item to load the model
- Long-press to delete individual items
- Clear all history with confirmation
Format | Import | Export | AR Support |
---|---|---|---|
USDZ | ✅ | ✅ | ✅ |
USD | ✅ | ❌ | ✅ |
GLB | ✅ | ✅ | ✅ |
GLTF | ✅ | ✅ | ✅ |
DAE | ✅ | ❌ | ✅ |
OBJ | ✅ | ❌ | ✅ |
- iOS: 17.0 or later
- Device: iPhone/iPad with A12 Bionic chip or newer
- Camera: Required for AR features and image-to-3D
- Storage: 1GB+ recommended for model files
- Camera: For AR preview and photo capture
- Photo Library: For image-to-3D generation
- Files Access: For importing/exporting models
- ContentView: Main app coordinator and UI state management
- ModelData: 3D model loading and property management
- ARPreviewView: ARKit-based augmented reality viewer
- GenerationService: AI model generation and API communication
- HistoryManager: Persistent storage and model organization
- SwiftUI: Modern declarative UI framework
- SceneKit: High-performance 3D rendering
- ARKit + RealityKit: Augmented reality experiences
- GLTFSceneKit: glTF/GLB format support
- Swift Concurrency: Async/await for smooth performance
Update the API configuration in GenerationModels.swift
:
struct APIConfig {
static let baseURL = "https://your-api-endpoint.com"
static let textToModelEndpoint = "/generate/text"
static let imageToModelEndpoint = "/generate/image"
// ... other settings
}
- Generated models are saved to the app's Documents directory
- History metadata is stored in UserDefaults
- Files are automatically cleaned up when history items are deleted
This project is licensed under the MIT License - see the LICENSE file for details.
- SceneKit - 3D rendering engine
- GLTFSceneKit - GLB/GLTF format support
- Apple's ARKit - Augmented reality capabilities
Made with ❤️ for the 3D community