Submit Search
Upload
WebGL for Graphics and Data Visualization
•
6 likes
•
5,608 views
AI-enhanced title
philogb
Follow
More demos on http://philogb.github.io
Read less
Read more
Report
Share
Report
Share
1 of 44
Download now
Download to read offline
Recommended
WebGL Fundamentals
WebGL Fundamentals
Sencha
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
philogb
New Tools for Visualization in JavaScript - Sept. 2011
New Tools for Visualization in JavaScript - Sept. 2011
philogb
Three.js basics
Three.js basics
Vasilika Klimova
Introduction to threejs
Introduction to threejs
Gareth Marland
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Alina Vilk
3D Web Programming [Thanh Loc Vo , CTO Epsilon Mobile ]
3D Web Programming [Thanh Loc Vo , CTO Epsilon Mobile ]
JavaScript Meetup HCMC
Power of WebGL (FSTO 2014)
Power of WebGL (FSTO 2014)
Verold
Recommended
WebGL Fundamentals
WebGL Fundamentals
Sencha
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
philogb
New Tools for Visualization in JavaScript - Sept. 2011
New Tools for Visualization in JavaScript - Sept. 2011
philogb
Three.js basics
Three.js basics
Vasilika Klimova
Introduction to threejs
Introduction to threejs
Gareth Marland
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Alina Vilk
3D Web Programming [Thanh Loc Vo , CTO Epsilon Mobile ]
3D Web Programming [Thanh Loc Vo , CTO Epsilon Mobile ]
JavaScript Meetup HCMC
Power of WebGL (FSTO 2014)
Power of WebGL (FSTO 2014)
Verold
Sergey Shamruk - Building Project From Scratch
Sergey Shamruk - Building Project From Scratch
Flash Conference
Web Design Course - Lecture 10 - Floating, Align, navigation bar, Image galle...
Web Design Course - Lecture 10 - Floating, Align, navigation bar, Image galle...
Al-Mamun Sarkar
LSPE Meetup talk on Graphite
LSPE Meetup talk on Graphite
Dave Mangot
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
Allan Glen
GIS in the Rockies 2011: Building Distributed JavaScript Map Widgets with Ope...
GIS in the Rockies 2011: Building Distributed JavaScript Map Widgets with Ope...
Allan Glen
The Next Generation Qt Item Views
The Next Generation Qt Item Views
account inactive
WebGL in Native Applications
WebGL in Native Applications
Ida-Maria Mannonen
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.js
davrous
AngularJS preso with directives and route resolve
AngularJS preso with directives and route resolve
Brent Goldstein
Fast rendering with starling
Fast rendering with starling
Flash Conference
Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013
Minko3D
Sergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with Starling
Flash Conference
Angular.js Directives for Interactive Web Applications
Angular.js Directives for Interactive Web Applications
Brent Goldstein
WebGL - 3D programming
WebGL - 3D programming
Minh Ng
Implementing CATiledLayer
Implementing CATiledLayer
Jesse Collis
The next frontier: WebGL and WebVR
The next frontier: WebGL and WebVR
Codemotion
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)
vitalipe
Data visualization for the web
Data visualization for the web
philogb
Principles of Analytical Design - Visually Meetup - Sept. 2011
Principles of Analytical Design - Visually Meetup - Sept. 2011
philogb
Nuevas herramientas de visualizacion en JavaScript
Nuevas herramientas de visualizacion en JavaScript
philogb
Flex Olap Components
Flex Olap Components
tyler frieling
Web GL - Presentation
Web GL - Presentation
Jeffrey Macko
More Related Content
What's hot
Sergey Shamruk - Building Project From Scratch
Sergey Shamruk - Building Project From Scratch
Flash Conference
Web Design Course - Lecture 10 - Floating, Align, navigation bar, Image galle...
Web Design Course - Lecture 10 - Floating, Align, navigation bar, Image galle...
Al-Mamun Sarkar
LSPE Meetup talk on Graphite
LSPE Meetup talk on Graphite
Dave Mangot
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
Allan Glen
GIS in the Rockies 2011: Building Distributed JavaScript Map Widgets with Ope...
GIS in the Rockies 2011: Building Distributed JavaScript Map Widgets with Ope...
Allan Glen
The Next Generation Qt Item Views
The Next Generation Qt Item Views
account inactive
WebGL in Native Applications
WebGL in Native Applications
Ida-Maria Mannonen
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.js
davrous
AngularJS preso with directives and route resolve
AngularJS preso with directives and route resolve
Brent Goldstein
Fast rendering with starling
Fast rendering with starling
Flash Conference
Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013
Minko3D
Sergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with Starling
Flash Conference
Angular.js Directives for Interactive Web Applications
Angular.js Directives for Interactive Web Applications
Brent Goldstein
WebGL - 3D programming
WebGL - 3D programming
Minh Ng
Implementing CATiledLayer
Implementing CATiledLayer
Jesse Collis
The next frontier: WebGL and WebVR
The next frontier: WebGL and WebVR
Codemotion
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)
vitalipe
What's hot
(17)
Sergey Shamruk - Building Project From Scratch
Sergey Shamruk - Building Project From Scratch
Web Design Course - Lecture 10 - Floating, Align, navigation bar, Image galle...
Web Design Course - Lecture 10 - Floating, Align, navigation bar, Image galle...
LSPE Meetup talk on Graphite
LSPE Meetup talk on Graphite
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
GIS in the Rockies 2011: Building Distributed JavaScript Map Widgets with Ope...
GIS in the Rockies 2011: Building Distributed JavaScript Map Widgets with Ope...
The Next Generation Qt Item Views
The Next Generation Qt Item Views
WebGL in Native Applications
WebGL in Native Applications
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.js
AngularJS preso with directives and route resolve
AngularJS preso with directives and route resolve
Fast rendering with starling
Fast rendering with starling
Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013
Sergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with Starling
Angular.js Directives for Interactive Web Applications
Angular.js Directives for Interactive Web Applications
WebGL - 3D programming
WebGL - 3D programming
Implementing CATiledLayer
Implementing CATiledLayer
The next frontier: WebGL and WebVR
The next frontier: WebGL and WebVR
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Qt Graphics View Framework (Qt Developers Meetup Isreal)
Viewers also liked
Data visualization for the web
Data visualization for the web
philogb
Principles of Analytical Design - Visually Meetup - Sept. 2011
Principles of Analytical Design - Visually Meetup - Sept. 2011
philogb
Nuevas herramientas de visualizacion en JavaScript
Nuevas herramientas de visualizacion en JavaScript
philogb
Flex Olap Components
Flex Olap Components
tyler frieling
Web GL - Presentation
Web GL - Presentation
Jeffrey Macko
PhiloGL - WebGLCamp Google HQs - June 2011
PhiloGL - WebGLCamp Google HQs - June 2011
philogb
Firefox WebGL developer tools
Firefox WebGL developer tools
Victor Porof
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
philogb
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
philogb
ENEI16 - WebGL with Three.js
ENEI16 - WebGL with Three.js
José Ferrão
Learning's Big Data Problem: Measuring & Analyzing Impact
Learning's Big Data Problem: Measuring & Analyzing Impact
Watershed
UX Analytics for Data-driven Product Development
UX Analytics for Data-driven Product Development
Trieu Nguyen
Lessons From Edward Tufte
Lessons From Edward Tufte
Mika Aldaba
Modern UI Development With Node.js
Modern UI Development With Node.js
Ryan Anklam
Facebook's Growth Hacker on how they put Facebook on the Path to 1 Billion Users
Facebook's Growth Hacker on how they put Facebook on the Path to 1 Billion Users
growthhackersconference
State of the Word 2016
State of the Word 2016
photomatt
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisation
Robin Hawkes
Viewers also liked
(17)
Data visualization for the web
Data visualization for the web
Principles of Analytical Design - Visually Meetup - Sept. 2011
Principles of Analytical Design - Visually Meetup - Sept. 2011
Nuevas herramientas de visualizacion en JavaScript
Nuevas herramientas de visualizacion en JavaScript
Flex Olap Components
Flex Olap Components
Web GL - Presentation
Web GL - Presentation
PhiloGL - WebGLCamp Google HQs - June 2011
PhiloGL - WebGLCamp Google HQs - June 2011
Firefox WebGL developer tools
Firefox WebGL developer tools
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
From Data Journalism to Data Illustration - Visualizing Data with JavaScript ...
ENEI16 - WebGL with Three.js
ENEI16 - WebGL with Three.js
Learning's Big Data Problem: Measuring & Analyzing Impact
Learning's Big Data Problem: Measuring & Analyzing Impact
UX Analytics for Data-driven Product Development
UX Analytics for Data-driven Product Development
Lessons From Edward Tufte
Lessons From Edward Tufte
Modern UI Development With Node.js
Modern UI Development With Node.js
Facebook's Growth Hacker on how they put Facebook on the Path to 1 Billion Users
Facebook's Growth Hacker on how they put Facebook on the Path to 1 Billion Users
State of the Word 2016
State of the Word 2016
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisation
Similar to WebGL for Graphics and Data Visualization
RasterFrames - FOSS4G NA 2018
RasterFrames - FOSS4G NA 2018
Simeon Fitch
RasterFrames: Enabling Global-Scale Geospatial Machine Learning
RasterFrames: Enabling Global-Scale Geospatial Machine Learning
Astraea, Inc.
Scaling your GraphQL applications with Dgraph
Scaling your GraphQL applications with Dgraph
Karthic Rao
Graphs
Graphs
Steve Loughran
『繋がり』を見る: Cytoscapeと周辺ツールを使ったグラフデータ可視化入門
『繋がり』を見る: Cytoscapeと周辺ツールを使ったグラフデータ可視化入門
Keiichiro Ono
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World
Achim Friedland
Magellan FOSS4G Talk, Boston 2017
Magellan FOSS4G Talk, Boston 2017
Ram Sriharsha
Graph Databases
Graph Databases
Sergey Enin
Processing Large Graphs
Processing Large Graphs
Nishant Gandhi
PyDX Presentation about Python, GeoData and Maps
PyDX Presentation about Python, GeoData and Maps
Hannes Hapke
BUILDING WHILE FLYING
BUILDING WHILE FLYING
Kamal Shannak
Neo4j - Rik Van Bruggen
Neo4j - Rik Van Bruggen
bigdatalondon
Grails goes Graph
Grails goes Graph
darthvader42
Follow the money with graphs
Follow the money with graphs
Stanka Dalekova
A Golang Application - Wireless communication
A Golang Application - Wireless communication
ssk
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
Databricks
Using Graph Analysis and Fraud Detection in the Fintech Industry
Using Graph Analysis and Fraud Detection in the Fintech Industry
Stanka Dalekova
Using Graph Analysis and Fraud Detection in the Fintech Industry
Using Graph Analysis and Fraud Detection in the Fintech Industry
Stanka Dalekova
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Ontico
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Alexey Zinoviev
Similar to WebGL for Graphics and Data Visualization
(20)
RasterFrames - FOSS4G NA 2018
RasterFrames - FOSS4G NA 2018
RasterFrames: Enabling Global-Scale Geospatial Machine Learning
RasterFrames: Enabling Global-Scale Geospatial Machine Learning
Scaling your GraphQL applications with Dgraph
Scaling your GraphQL applications with Dgraph
Graphs
Graphs
『繋がり』を見る: Cytoscapeと周辺ツールを使ったグラフデータ可視化入門
『繋がり』を見る: Cytoscapeと周辺ツールを使ったグラフデータ可視化入門
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World
Magellan FOSS4G Talk, Boston 2017
Magellan FOSS4G Talk, Boston 2017
Graph Databases
Graph Databases
Processing Large Graphs
Processing Large Graphs
PyDX Presentation about Python, GeoData and Maps
PyDX Presentation about Python, GeoData and Maps
BUILDING WHILE FLYING
BUILDING WHILE FLYING
Neo4j - Rik Van Bruggen
Neo4j - Rik Van Bruggen
Grails goes Graph
Grails goes Graph
Follow the money with graphs
Follow the money with graphs
A Golang Application - Wireless communication
A Golang Application - Wireless communication
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
Using Graph Analysis and Fraud Detection in the Fintech Industry
Using Graph Analysis and Fraud Detection in the Fintech Industry
Using Graph Analysis and Fraud Detection in the Fintech Industry
Using Graph Analysis and Fraud Detection in the Fintech Industry
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
More from philogb
The Geography of Tweets - BBC Developer Conference
The Geography of Tweets - BBC Developer Conference
philogb
Hacking public-facing data visualizations at Twitter
Hacking public-facing data visualizations at Twitter
philogb
#interactives at Twitter
#interactives at Twitter
philogb
#interactives at Twitter
#interactives at Twitter
philogb
La visualisation de données comme outil pour découvrir et partager des idées ...
La visualisation de données comme outil pour découvrir et partager des idées ...
philogb
Exploring Web standards for data visualization
Exploring Web standards for data visualization
philogb
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
philogb
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
philogb
InfoVis para la Web: Teoria, Herramientas y Ejemplos.
InfoVis para la Web: Teoria, Herramientas y Ejemplos.
philogb
Una web todos los dispositivos.
Una web todos los dispositivos.
philogb
Creating Interactive Data Visualizations for the Web - YOW! Developer Confere...
Creating Interactive Data Visualizations for the Web - YOW! Developer Confere...
philogb
JavaScript InfoVis Toolkit - Create interactive data visualizations for the web
JavaScript InfoVis Toolkit - Create interactive data visualizations for the web
philogb
JavaScript InfoVis Toolkit Overview
JavaScript InfoVis Toolkit Overview
philogb
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
philogb
More from philogb
(14)
The Geography of Tweets - BBC Developer Conference
The Geography of Tweets - BBC Developer Conference
Hacking public-facing data visualizations at Twitter
Hacking public-facing data visualizations at Twitter
#interactives at Twitter
#interactives at Twitter
#interactives at Twitter
#interactives at Twitter
La visualisation de données comme outil pour découvrir et partager des idées ...
La visualisation de données comme outil pour découvrir et partager des idées ...
Exploring Web standards for data visualization
Exploring Web standards for data visualization
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
InfoVis para la Web: Teoria, Herramientas y Ejemplos.
InfoVis para la Web: Teoria, Herramientas y Ejemplos.
Una web todos los dispositivos.
Una web todos los dispositivos.
Creating Interactive Data Visualizations for the Web - YOW! Developer Confere...
Creating Interactive Data Visualizations for the Web - YOW! Developer Confere...
JavaScript InfoVis Toolkit - Create interactive data visualizations for the web
JavaScript InfoVis Toolkit - Create interactive data visualizations for the web
JavaScript InfoVis Toolkit Overview
JavaScript InfoVis Toolkit Overview
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
WebGL for Graphics and Data Visualization
1.
WEBGL FOR GRAPHICS AND
DATA VISUALIZATION NICOLAS GARCIA BELMONTE - @PHILOGB UBER - I’M HIRING!
2.
AGENDA •WHAT IS WEBGL
? •WHAT CAN WEBGL BE USED FOR ? •HOW DOES WEBGL WORK ? •WHAT DOES WEBGL CODE LOOK LIKE ?
3.
WHAT IS WEBGL?
4.
WHAT IS WEBGL? WEBGL
IS AN API TO ACCESS THE GPU
5.
6.
WHAT IS WEBGL? OPENGL
OPENGL ES WEBGL
7.
WHAT CAN WEBGL
BE USED FOR?
8.
WEBGL USE-CASES •EXPLORATORY VISUALIZATIONS •REAL-TIME
DATA ANALYSIS •STORYTELLING •SCIENTIFIC VISUALIZATION •DATA ART/ILLUSTRATION
9.
WORLD FLIGHTS EXPLORATORY VISUALIZATIONS
10.
EXPLORATORY VISUALIZATIONS
11.
REAL-TIME DATA ANALYSIS REAL-TIME
COLOR DECOMPOSITION
12.
STORYTELLING
13.
SCIENTIFIC VISUALIZATION LINE INTEGRAL
CONVOLUTION
14.
DATA ART
15.
HOW DOES WEBGL
WORK?
16.
JAVASCRIPT GPU (COMPILED PROGRAM) WEBGL
JS API WEBGL API
17.
JAVASCRIPT FRAGMENT SHADER WEBGL JS
API VERTEX SHADERGLSL API GLSL API WEBGL API
18.
VERTEX SHADER WEBGL PIPELINE
19.
VERTEX SHADER TRIANGLE ASSEMBLY WEBGL
PIPELINE
20.
VERTEX SHADER TRIANGLE ASSEMBLY RASTERIZATION WEBGL
PIPELINE
21.
VERTEX SHADER TRIANGLE ASSEMBLY RASTERIZATION FRAGMENT
SHADER WEBGL PIPELINE
22.
GLSL A DSL FOR
GRAPHICS •C-LIKE •BUILT-IN TYPES, FUNCTIONS FOR GRAPHICS •OPERATOR OVERLOADING
23.
1 vec4 vector
= vec4( 0, 1, vec2(0, 0) ); 2 vec3 point = vector.xyz; 3 vec3 rgb = vector.rgb; 4 mat4 m = mat4(vector); 5 vec4 ans = vector * m; 6 7 float delta = 0.3; 8 vec4 from = vec4(0); 9 vec4 to = vec4(1); 10 vec4 current = from + (to - from) * delta; 11 vec4 current2 = mix(from, to, delta); GLSL SYNTAX
24.
GLSL BUILT-IN FUNCTIONS radians degrees
sin cos tan asin acos atan pow exp log exp2 log2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize faceforward reflect refract matrixCompMult
25.
EXAMPLE: HOPF FIBRATION
26.
HOPF FIBRATION •HOPF MAP
DEFINITION •DATA MODEL •FIBERS VIEW •INTERACTIONS
27.
WHAT IS THE
HOPF MAP 1 POINT IN A (3D) SPHERE MAPS TO A CIRCLE IN A 4D SPHERE
28.
WHAT IS THE
HOPF MAP 1 POINT IN A (3D) SPHERE MAPS TO A CIRCLE IN A 4D SPHERE ?
29.
WHAT IS THE
HOPF MAP PROJECT THE 4D CIRCLES INTO 3D SPACE USING A MAP PROJECTION
30.
DEMO
31.
HOPF MAP IN
GLSL
32.
DATA MODEL
33.
IDEALLY… DATA MODEL
34.
INSTANCED ARRAYS TO
THE RESCUE!
35.
FIBERS VIEW
36.
FIBERS VIEW
37.
FIBERS VIEW
38.
FIBERS VIEW 0 2π 0 2π GLSL
39.
GLSL0 2π FIBERS VIEW
40.
INTERACTIONS
41.
INTERACTIONS (0, 0, 0)
(1, 0, 0) (0, 0, 1) (1, 0, 1) Every pixel maps to a unique color Every color is mapped to a lat/lon position [(0, 0, 0), (1, 0, 0)] => [0, 2π] [(0, 0, 0), (0, 0, 1)] => [-π, π]
42.
KEY TAKEAWAYS
43.
KEY TAKEAWAYS •USES THE
GPU: SPEED & SCALE •FROM DATA ART AND EXPLORATORY VIS •LOW-LEVEL API: USE A LIBRARY
44.
THANK YOU! NICOLAS GARCIA
BELMONTE - @PHILOGB UBER - I’M HIRING!
Download now