Una aplicación Flutter para Android que permite visualizar modelos 3D superpuestos sobre la vista de la cámara en tiempo real, creando una experiencia de realidad aumentada (AR).
- ✅ Vista de cámara en tiempo real - Acceso completo a la cámara del dispositivo
- ✅ Superposición de modelos 3D - Renderizado de modelos GLB/GLTF sobre la cámara
- ✅ Control de escala - Ajustar el tamaño del modelo 3D con slider interactivo
- ✅ Control de rotación - Rotar el modelo en el eje Y para mejor visualización
- ✅ Mostrar/Ocultar modelo - Toggle para activar/desactivar la visualización
- ✅ Reset de transformaciones - Restaurar modelo a su estado original
- ✅ Interfaz moderna - UI/UX optimizada con Material Design 3
- ✅ Gestión de permisos - Manejo automático de permisos de cámara
- ✅ Optimizado para Android - Configuración específica para rendimiento Android
- Astronauta (
Astronaut.glb) - Modelo 3D de un astronauta espacial - Hamburguesa (
hamburguesa.glb) - Modelo 3D de una hamburguesa realista
- Flutter SDK: 3.0.0 o superior
- Dart SDK: 3.0.0 o superior
- Android SDK: API level 21 (Android 5.0) o superior
- Dispositivo: Cámara trasera funcional
- Almacenamiento: ~50MB para la aplicación y modelos
dependencies:
flutter:
sdk: flutter
model_viewer_plus: ^1.7.2 # Renderizado de modelos 3D
camera: ^0.10.5+9 # Acceso a la cámara
permission_handler: ^11.3.1 # Gestión de permisos
cupertino_icons: ^1.0.2 # Iconos iOSgit clone https://github.com/DenovanMonroy/ar_3d_viewer.git
cd ar_3d_viewerflutter pub getColoca tus archivos de modelos 3D en la carpeta:
assets/models/
├── Astronaut.glb
└── hamburguesa.glb
flutter runlib/
├── main.dart # Punto de entrada de la aplicación
└── screens/
├── home_screen.dart # Pantalla principal con lista de modelos
└── ar_camera_screen.dart # Pantalla de cámara AR con controles
assets/
└── models/
├── Astronaut.glb # Modelo 3D del astronauta
└── hamburguesa.glb # Modelo 3D de la hamburguesa
android/
├── app/
│ ├── build.gradle.kts # Configuración de construcción Android
│ └── src/main/
│ ├── AndroidManifest.xml # Configuración de permisos
│ └── res/xml/network_security_config.xml # Configuración de red
La aplicación requiere los siguientes permisos en AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />Para permitir el servidor HTTP local del model_viewer_plus:
<application
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config">- Seleccionar modelo: Toca cualquier tarjeta de modelo para iniciar AR
- Permisos automáticos: La app solicita permisos de cámara si es necesario
- Mostrar modelo: Presiona el botón azul "Mostrar" para superponer el modelo 3D
- Controlar escala: Usa el slider superior para ajustar el tamaño (0.3x - 2.5x)
- Controlar rotación: Usa el slider inferior para rotar el modelo (-180° a 180°)
- Ocultar modelo: Presiona el botón rojo "Ocultar" para desactivar AR
- Reset: Presiona el botón naranja "Reset" para restaurar transformaciones
Solución: Asegúrate de que el archivo network_security_config.xml esté creado correctamente y referenciado en AndroidManifest.xml.
Posibles causas:
- Archivo GLB corrupto o formato incompatible
- Ruta incorrecta en
pubspec.yaml - Permisos de red bloqueados
Solución: Verifica permisos de cámara y reinicia la aplicación.
Optimizaciones:
- Usar modelos 3D optimizados (< 5MB recomendado)
- Cerrar aplicaciones en segundo plano
- Usar dispositivos con Android 7.0+