📱 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