Ficha técnica de proyecto
Hogar conectado · Visualización 3D en tiempo real
Gemelo digital 3D de una vivienda
Gemelo 3D navegable de una vivienda dentro de Home Assistant: del plano de Sweet Home 3D a un GLB ligero que muestra luces, energía y estancias en vivo.
- Tipo
- Producto propio
- Periodo
- Desde agosto de 2026
- Estado
- En producción · Versión 2.15.1 en el panel de la casa
- Áreas
- Experiencias digitales, Desarrollo de software, Infraestructura e IoT
- Categorías
- IoT y domótica, Software y plataformas, Desarrollo web
Alcance
El plano se dibuja en Sweet Home 3D. Un script en Python extrae del archivo las estancias, los muros, las lámparas y las plantas, y Blender, ejecutado sin interfaz desde Python, convierte la exportación OBJ en un GLB comprimido con Draco y con los objetos nombrados para poder tocarlos. Una tarjeta propia para Lovelace, hecha con three.js, carga ese modelo en la tablet de pared: enciende las lámparas que están encendidas, abre el detalle de cada estancia, muestra el flujo de energía de los paneles a la batería y permite elegir qué estancias limpia la aspiradora.
Funciones principales
- Plano navegable por plantas. La casa se gira, se acerca y se mira por dentro. Las plantas superiores se ocultan para ver las inferiores, se pueden mostrar varias a la vez y cada dispositivo recuerda su selección con botones de icono en la barra.
- Estancias y lámparas con estado. Tocar el suelo de una estancia abre su detalle en Home Assistant. Las lámparas encendidas brillan con un emisivo cálido y al tocarlas se encienden o apagan. Solo se dibujan las que están asociadas a una entidad real.
- Energía sobre el plano. Los paneles solares del tejado brillan según la producción, y unas chispas recorren el camino de los paneles al inversor y del inversor a la batería, en verde al cargar y en azul al descargar.
- Limpieza por estancias desde el plano. En la vista de limpieza se tocan las estancias del plano para elegir dónde pasa la aspiradora; quedan marcadas en verde con borde punteado, y desde ahí se lanza, se pausa o se manda a la base.
- Calidad progresiva. Mientras se gira, el render es directo para seguir el dedo. Al soltar se promedian entre 12 y 32 fotogramas desplazados con una secuencia de Halton, con oclusión ambiental y sombras suaves, y la calidad se ajusta según el dispositivo.
- Muebles realistas sustitutos. Los muebles más visibles se sustituyen por modelos CC0 de Poly Haven colocados en la caja exacta del original. Un script de Blender los reduce, los apoya en el suelo y los deja listos para la tablet.
Arquitectura
- Modelado
- Sweet Home 3D (plano por plantas) · Exportador OBJ con texturas
- Procesado
- Extracción de datos en Python desde Home.xml · Blender headless con scripts en Python · Verificador de 13 invariantes · Generador de texturas periódicas por FFT
- Artefactos
- casa.glb con compresión Draco · casa_datos.json con estancias, lámparas y niveles · Muebles sustitutos en GLB
- Visor
- Tarjeta Lovelace propia con three.js r169 incluido en el servidor · GLTFLoader y DRACOLoader · Render progresivo con GTAO y bloom · Perfiles de calidad alta, media y baja
- Datos en vivo
- Home Assistant (luces, energía, aspiradora) · Sensores solares publicados por MQTT
Tecnologías
- Interfaz
- three.js
- Backend
- Python
- IoT, domótica y 3D
- Sweet Home 3D, Blender, Home Assistant, glTF / GLB
- Calidad
- pytest
Resultados medidos
- 3,1 MB de modelo GLB a partir de 54 MB de OBJ exportado. Fuente: Cifras de referencia de la cadena en scripts/casa3d/LEEME.md (commit d7d746c) · 2026-08
- 411 llamadas de dibujado frente a las 1.281 mallas originales. Fuente: Cifras de referencia de la cadena en scripts/casa3d/LEEME.md (commit d7d746c) · 2026-08