Generate, refine, and visualize three-dimensional models from text descriptions and photos using AI — directly on your Android device.
[PASTE IMAGE]
- Overview
- Screenshots
- Tech Stack
- Architecture
- AI Description Flow
- Core Features
- Setup & Configuration
- Supported Formats
- Testing
This Android application lets users create accurate 3D models through a guided AI conversation or by uploading a photo. Models can then be explored in an interactive 3D scene or placed into the real world via Augmented Reality.
Key capabilities:
- AI-assisted prompt refinement via GPT before generation
- Text-to-3D and image/photo-to-3D via Meshy AI
- Interactive 3D viewer (Filament) and AR placement (ARCore)
- Model library with category filtering, history, and deletion
- Cloud-synced user data via Firebase + Firestore
| Tool / Service | Purpose |
|---|---|
| Meshy AI | 3D model generation API — text-to-3D and image-to-3D |
| OpenAI GPT API | Conversational assistant for refining model prompts |
| Firebase Authentication | User sign-in and session management |
| Firestore | NoSQL cloud database for user data and model metadata |
| Amazon S3 | Object storage for generated 3D model assets |
| Retrofit | HTTP client — maps REST endpoints to Kotlin interfaces |
| Hilt | Dependency injection |
| WorkManager | Background task scheduling for long-running generation jobs |
| Filament | Real-time 3D rendering engine |
| ARCore | Augmented Reality placement and tracking |
The app follows Clean Architecture with three layers: UI → Domain → Data.
UI Layer ViewModel ←→ UseCase
↕
Domain Layer Repository (interface)
↕
Data Layer RepositoryImpl → Remote API / Firestore / S3
Example flow — text-to-3D:
ChatScreen → ChatViewModel → SendMessageUseCase → GPT RepositoryImpl → OpenAI API
↓
GenerateModelFromTextUseCase
↓
WorkManagerMeshyRepo → GetTextModelIdWorker
→ GetTextModelWorker
→ SaveModelWorker
Key component roles:
- ViewModel — holds and exposes UI state; survives configuration changes
- UseCase — single-responsibility business logic unit
- Repository — abstracts data sources behind a stable interface
- Workers — run generation polling in the background via WorkManager
Before submitting a prompt to Meshy, the user refines it through a structured GPT conversation.
| Trigger | Behavior |
|---|---|
| Regular user message | GPT asks targeted follow-up questions (color, size, shape, material, style, quality) |
Message contains NEXT |
GPT continues asking refinement questions |
Message contains END |
GPT immediately outputs the final description |
Final response always begins with: FINAL object is …
fantasy · cartoon · sci-fi · futurist · realistic · ancient · elegant · ultra realistic · trending on artstation · masterpiece · cinema 4d · unreal engine · octane render
highly detailed · high resolution · highest quality · best quality · 4K · 8K · HDR · studio quality
- Text-to-3D — describe an object through the GPT assistant; the refined prompt is sent to Meshy AI for generation
- Image/Photo-to-3D — upload a photo from the gallery or capture with camera; Meshy AI reconstructs a 3D model
- Browse all generated models in a list with category filter chips
- View model metadata and generation history
- Delete unwanted models
- Real-time interactive rendering powered by Filament
- Rotate, zoom, and pan the model in a full 3D scene
- Place any generated model into the real world via ARCore
- Walk around and inspect the model at true scale
- Post-generation improvement workflow to re-submit or adjust prompts
- Sign in with Firebase Authentication
- All model metadata and user preferences synced with Firestore
- Model assets stored in Amazon S3
Note: API keys and service credentials are required before building.
- Meshy AI — add your API key to
local.properties:MESHY_API_KEY=your_key_here - OpenAI — add your API key:
OPENAI_API_KEY=your_key_here - Firebase — place your
google-services.jsoninapp/ - Amazon S3 — configure bucket name and credentials in
local.propertiesor environment variables - Sync Gradle and build the project
Models can be exported and loaded in the following formats:
| Format | Use case |
|---|---|
| GLB | Filament 3D viewer, general-purpose |
| FBX | DCC tools (Blender, Maya, etc.) |
| USDZ | iOS AR Quick Look (cross-platform sharing) |
Manual testing was conducted using structured use-case scenarios covering all core user flows. See the full test documentation:
TESTING.md — Use Cases 3.1 – 3.8 (авторизація, реєстрація, створення моделі, перегляд, видалення, налаштування, зміна паролю)






