--- title: DesignIA - Recomendador de Muebles (TFM) emoji: 🛋️ colorFrom: blue colorTo: indigo sdk: streamlit # IMPORTANTE: La app_file debe apuntar a app.py app_file: app.py --- # DesignIA - Recomendador de Muebles Inteligente DesignIA es una aplicación inteligente que te ayuda a diseñar tu salón ideal. A partir de una imagen panorámica (360°) de tu habitación vacía, la aplicación detecta automáticamente la geometría del espacio (paredes, puertas, ventanas) y te sugiere una distribución óptima de muebles, recomendándote productos reales de IKEA que se ajustan a tu estilo y presupuesto. ## Características * **Escaneo de Habitación 3D**: Utiliza **HorizonNet** para detectar la estructura de la habitación a partir de una sola imagen panorámica. * **Diseño Automático**: Algoritmos de optimización espacial para colocar muebles respetando zonas de paso y distancias de visualización (TV-Sofá). * **Recomendación Estilística**: Un modelo basado en **BERT** analiza el estilo de los muebles para sugerir combinaciones coherentes. * **Visualización Interactiva**: Visualiza tu futuro salón en 3D directamente en el navegador. * **Presupuesto Ajustable**: Define cuánto quieres gastar y la IA buscará la mejor combinación calidad/precio. ## Requisitos Previos Debido al uso de modelos de Inteligencia Artificial avanzados, este proyecto requiere descargar archivos de gran tamaño. 1. **Python 3.8+** 2. **Git LFS (Large File Storage)**: Imprescindible para descargar los modelos de IA. * Instalación: [https://git-lfs.com/](https://git-lfs.com/) * O ejecuta: `git lfs install` ## Instalación 1. **Clonar el repositorio** Asegúrate de tener Git LFS instalado antes de clonar. ```bash git lfs install git clone https://github.com/agerhund/DesignIA.git cd DesignIA ``` *Nota: La descarga puede tardar unos minutos debido a los modelos (~1.7 GB).* 2. **Crear un entorno virtual (Recomendado)** ```bash python -m venv venv # En Windows: venv\Scripts\activate # En Mac/Linux: source venv/bin/activate ``` 3. **Instalar dependencias** ```bash pip install -r requirements.txt ``` ## Ejecución Para iniciar la aplicación web localmente: ```bash streamlit run app.py ``` La aplicación se abrirá automáticamente en tu navegador (usualmente en `http://localhost:8501`). ## Notas sobre el Rendimiento * **Memoria RAM**: Se recomienda disponer de al menos **8 GB de RAM**, ya que los modelos de visión y lenguaje se cargan en memoria. * **GPU**: Si dispones de una GPU NVIDIA (CUDA) o un Mac con chip M-series (MPS), la aplicación intentará usarla para acelerar la detección. De lo contrario, funcionará en CPU (más lento). * **Streamlit Cloud**: Es posible que esta aplicación **no funcione** en la capa gratuita de Streamlit Cloud debido a las limitaciones de memoria y almacenamiento (los modelos exceden el límite habitual). Se recomienda ejecutar en local o en un servidor con mayores recursos. ## Estructura del Proyecto * `app.py`: Punto de entrada de la aplicación Streamlit. * `logic.py`: Lógica principal (IA, geometría, recomendación). * `models/`: Contiene los pesos de los modelos (HorizonNet y BERT Encoder). * `data/`: Base de datos de muebles (CSV). * `horizonnet/`: Código fuente del modelo de visión computacional. ## Autor **Andrés Gerlotti Slusnys** Máster de Data Science, Business Analytics y Big Data Universidad Complutense de Madrid © 2025