25
Visualización de datos con WebGL Migsar Navarro @MigsarNavarro [email protected] Tu foto

Migsar Navarro @MigsarNavarro [email protected] Tu foto

Embed Size (px)

Citation preview

Page 1: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Visualización de datos con WebGL

Migsar Navarro

@MigsarNavarro [email protected]

Tu foto

Page 2: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

WebGL. (Web Graphics Library) is a JavaScript API for rendering interactive 3D graphics and 2D graphics within any compatible web browser without the use of plug-ins.

Big data is an all-encompassing term for any collection of data sets so large and complex that it becomes difficult to process them using traditional data processing applications.

Wikipedia

Visualización de datos con WebGL

www.bigdataconf.mx

Page 3: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Actualmente las capacidades de modelado de las computadoras sobrepasan por mucho las capacidades de visualización del ser humano.

El problema no es saber mostrar muchos datos, sino hacer que sea fácilmente comprensible toda esa información.

Visualización de datos con WebGL

www.bigdataconf.mx

Page 4: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

www.bigdataconf.mx

Visualización de datos con WebGL

http://en.wikipedia.org/wiki/Big_data#mediaviewer/File:Viegas-UserActivityonWikipedia.gif

Page 5: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

www.bigdataconf.mx

Visualización de datos con WebGL

http://web.cs.ucdavis.edu/~ma/img/ebay_clickstream.jpg

Page 6: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

www.bigdataconf.mx

Visualización de datos con WebGL

http://www.theguardian.com/world/interactive/2013/apr/30/violence-guns-best-selling-video-games

Page 7: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

¿Cantidad o calidad?

Es impresionante el mostrar una cantidad enorme de datos, pero ¿cuánta información

puede obtener el usuario al verlos?

Entre tantos datos las relaciones se vuelven

complejas...

www.bigdataconf.mx

Page 8: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Número de variables representadas

WebGL además de permitir utilizar la profundidad está

diseñado para añadir animación, es decir,

tiempo.

Generalmente se buscan formas

creativas de mostrar en dos dimensiones

cada vez más variables y sus

relaciones.

www.bigdataconf.mx

Page 9: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Ejemplo de PhiloGL: World Flightswww.bigdataconf.mx

Page 10: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Ejemplo de Three.js: Buffer Geometrywww.bigdataconf.mx

Page 11: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Propiedades a utilizar

Cada una de las propiedades puede vincularse con una

variable a representar.

Ejes X, Z y Y Color

Tiempo Perspectiva

www.bigdataconf.mx

Page 12: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Ejes X, Y y Z

Stemkoski Three.js Examples: Helpers

Ejes ortogonales. Pantalla 2D.

Problemas con la profundidad.

www.bigdataconf.mx

Page 13: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Color

Ejemplo de Three.js: Color Blender

Incluye la transparencia.

WebGL utiliza shaders que permiten un

control muy preciso.

www.bigdataconf.mx

Page 14: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Tiempo

No tiene que asociarse con una

variable temporal del modelo.

Permite almacenar y mostrar estados

complejos. Puede asociarse con

objetos.

www.bigdataconf.mx

Page 15: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Perspectiva

Stemkoski Three.js Examples: Viewports - Dual

Posición de la cámara. Permite favorecer

alguna otra de las propiedades.

www.bigdataconf.mx

Page 16: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Interacción: Scripts

Ejemplo de PhiloGL: World temperature changes

Objetos WebGL. Objetos HTML. Eventos HTML. APIs externos.

www.bigdataconf.mx

Page 17: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Aspectos técnicos

Debido a la infinidad de configuraciones del

cliente la obtención y el manejo de datos se complica, aún si la

mayoría del procesamiento es

externo.

Diferencias de hardware.

Velocidad de conexión.

www.bigdataconf.mx

Page 18: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Hardware

Ejemplo de XTK: The SPL/NAC Brain Atlas

WebGL utiliza mucho el GPU.

Corre en un navegador, no es

bueno suponer nada. Siempre hay que

tener un Plan B.

www.bigdataconf.mx

Page 19: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Cargado asíncrono de datos

Mostrar un loader.

No interrumpe la experiencia del

usuario.

No sólo a través de AJAX.

Websockets es una opción atractiva.

www.bigdataconf.mx

Page 20: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Cargado progresivo de datos

Implica cierto control del servidor en el que

se encuentran los datos.

Permite que el usuario vea resultados desde

el inicio.

No es cargado secuencial.

Se puede utilizar web workers.

www.bigdataconf.mx

Page 21: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Objetos WebGL

Todo son triángulos.

Existen muchos frameworks.

Los objetos consumen más recursos y su

acceso es más lento.

Typed Arrays

www.bigdataconf.mx

Page 22: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Typed Arrays

Acceso a datos binarios en bruto.

Bloques secuenciales con tamaño fijo y optimizados para

WebGL..

www.bigdataconf.mx

Page 23: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Asociando arreglos y objetos

Los objetos permiten una programación semántica, OOP.

Es posible asociar arreglos u objetos

simples con objetos complejos.

Es posible asociar el índice con objetos que representan los datos.

La función de mapeo se tiene que diseñar en base a los datos.

www.bigdataconf.mx

Page 24: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

Frameworks

Three.js es el más usado pero no está

orientado a visualización de datos.

PhiloGL de Sencha Labs sí está diseñado para la visualización

de datos.

X Toolkit (XTK), WebGL para visualización

científica.

www.bigdataconf.mx

Page 25: Migsar Navarro @MigsarNavarro migsar.navarro@gmail.com Tu foto

GraciasMigsar Navarro

@MigsarNavarro [email protected]