Restaurante en 3D

Modelos tridimensionales reales, con el coste de dibujo controlado escena a escena.

Web e interfaz · JavaScript · En producción

Restaurante en 3D

El problema

Meter 3D en una web es fácil de hacer mal: el resultado habitual pesa, se arrastra en el móvil y acaba pareciendo una plantilla. El reto técnico es integrar modelos reales sin que la página se arrastre: aquí se resuelve parando el dibujo de cada escena fuera de pantalla y limitando la densidad de píxel.

Qué hace

  • Integra modelos GLB reales con React Three Fiber.
  • Animaciones al desplazar y microinteracciones con GSAP ScrollTrigger.
  • Recorrido completo: portada, relato, carta en tres dimensiones y contacto.
  • Desplegado en producción.

Lo que se decidió al construirlo

Cada escena clona el modelo
El cargador de modelos guarda una sola instancia en caché y la comparte. Usar el mismo modelo en dos sitios sin clonarlo dejaba una tarjeta vacía y la otra con la pieza diminuta, porque la escala se pisaba entre las dos. Cada escena trabaja ahora sobre su propia copia.
El tamaño se normaliza midiendo la caja del modelo
Cada modelo llega en una escala distinta y algunos traen geometría de más: un plato, una base, una guarnición. Se mide la caja que lo envuelve, se centra y se escala a un tamaño objetivo, o la misma tarjeta enseña una pieza enorme y la de al lado una diminuta.
El bucle de dibujo se para fuera de la pantalla
Con cuatro escenas en la misma página, animarlas todas a la vez castiga la batería y en un equipo modesto llega a dejar modelos sin pintar. Cada lienzo se para cuando sale del área visible y arranca poco antes de entrar. Es un ahorro de dibujo, no de descarga: los modelos ya están bajados.
Balanceo, no vuelta completa
Los modelos oscilan suavemente alrededor de su orientación original en lugar de girar sobre sí mismos. Una vuelta completa acaba enseñando la base sin texturar o el interior hueco de la pieza, que es el momento exacto en que se ve que era un modelo y no comida.

Hasta dónde llega

  • Los tres modelos suman unos diecisiete megabytes sin comprimir. No hay compresión de geometría ni carga diferida: lo que está optimizado es el coste de dibujo, no el de descarga. En una conexión lenta se nota.
  • Es un sitio de demostración: carta, precios y cifras del local son inventados, y uno de los modelos está generado por inteligencia artificial.
  • No hay reservas, ni carrito, ni formulario que envíe nada. El botón de pedido no está conectado a ningún sistema.
  • Cada escena tridimensional consume un contexto de dibujo del navegador, que los limita: multiplicar las escenas de esta página no escala sin cambiar el enfoque.

Construido con

  • React
  • Three.js
  • GSAP

Respalda este servicio

Diseño de páginas web y tiendas online

Leer el código · Abrir la demo