Visualización 3D · WebGL · Showroom

SARS-CoV-2 · Visualizador 3D

Visualizador 3D del coronavirus en el navegador

Modelo molecular científicamente validado del SARS-CoV-2 (~80 MB, 181 mallas, materiales atómicos) corriendo nativamente en cualquier navegador moderno. Sin plugins. Sin descargas. Hotspots educativos sobre las espículas, glicanos, subunidades S1/S2 y membrana viral, presets de cámara, AR para mobile.

SARS-CoV-2 · Visualizador 3D

El reto

Mostrar a un cliente que una visualización 3D científica seria — no una caja con un cubo girando — puede correr directamente en su navegador, sin plugins ni instalaciones. Y que la barrera de entrada para llevar este tipo de UX a una custom app empresarial (configuradores de producto, gemelos digitales, equipo industrial, planos CAD interactivos, training inmersivo) es mucho más baja de lo que la gente cree.

Para eso elegimos el modelo más denso que conseguimos: el SARS-CoV-2 científicamente validado, ~80 MB de geometría, 181 mallas, materiales explícitos para subunidades S1/S2/S3, glicanos y átomos individuales (oxígeno, nitrógeno, sulfuro). Si esto corre fluido, casi cualquier modelo industrial real lo hará.

La solución

Un showroom 3D autocontenido construido como una página dentro del sitio Hugo, accesible vía URL directa (no indexada, no listada en el menú — es una demo, no contenido SEO). Toda la lógica vive en un layout reutilizable (layouts/_default/showroom-3d.html) que acepta cualquier GLTF en su page bundle.

Visor

  • <model-viewer> 4.x de Google como base — web component nativo, sin Three.js manual, soporte transparente de Draco compression (nuestro modelo lo usa) y WebXR/Scene Viewer/Quick Look para AR en mobile.
  • Auto-rotate continuo a 20°/s desde el primer frame para que se sienta vivo.
  • Drag para rotar manualmente, scroll para zoom, pinch en touch — controles nativos del web component.

Feedback de carga

Como el modelo pesa ~80 MB, el primer load puede tomar varios segundos según la conexión. En lugar de un canvas en blanco:

  • Loading poster custom dentro del slot poster del web component: spinner cyan, título “Cargando modelo del SARS-CoV-2”, barra de progreso con gradient brand, porcentaje en vivo alimentado por el evento progress y un hint sobre el peso.
  • El poster se oculta automáticamente cuando termina la descarga (lo gestiona model-viewer internamente).

Hotspots educativos

Cuatro etiquetas ancladas a coordenadas 3D del modelo, usando el sistema nativo de hotspots de model-viewer (slot hotspot-N + data-position + data-visibility-attribute):

  • Proteína espícula (S) — el “trídente” que se une a las células
  • Glicanos — azúcares que evaden el sistema inmune
  • Subunidades S1 / S2 — S1 reconoce ACE2; S2 fusiona membranas
  • Membrana viral — bicapa lipídica robada de la célula huésped

Cada hotspot es un punto cyan pulsante sobre el modelo. Hover/tap revela un tooltip con título + descripción biomédica corta. Cuando un hotspot queda detrás del modelo (por la rotación), model-viewer lo oculta automáticamente.

Controles flotantes

Panel con backdrop-blur sobre el stage oscuro:

  • Rotación: Pausar / Lenta (10°/s) / Normal (20°/s) / Rápida (45°/s)
  • Cámara: Frontal / Cenital / Lateral / Acercar — con interpolación animada vía la propiedad cameraOrbit del web component

AR mode

En móviles aparece automáticamente un botón AR. En Android abre Scene Viewer, en iOS abre Quick Look, en navegadores con WebXR usa el inmersivo. El usuario ve el virus a escala en su entorno real sin instalar nada.

Dev helper

Para calibrar nuevos hotspots con precisión, Shift+click sobre el modelo imprime en consola las coordenadas world exactas del punto clickeado (positionAndNormalFromPoint), listas para pegar en data-position. Convierte un trabajo de adivinanza en un copy-paste.

Resultados

  • End-to-end funcionando en Chrome, Safari, Firefox, Edge sin instalar nada.
  • Patrón reutilizable: el mismo layout showroom-3d.html sirve para cualquier futuro showroom — basta con copiar el GLTF al page bundle, ajustar 4 hotspots, y se tiene una nueva URL en producción.
  • Caso comercial directo: prueba viva para clientes que evalúan llevar visualizaciones 3D a sus plataformas — sectores médico, industrial, educativo, real estate, e-commerce.
  • HTML/CSS/JS de la página: < 100 KB. Los 80 MB son sólo el modelo, lazy-loaded.

Ver demo en vivo →