SlideShare a Scribd company logo
Web 3D
[ semantic standards, webgl, hci ]
@victorporof	
  
                                         GSoC	
  student	
  at	
  Mozilla	
  
                graphics
              programmer
                                         h8p://github.com/victorporof	
  



embedded
  devices
 enthusiast



                     passionate about
                   low-level 3D coding
Web 3D
Web 3.0D
Web3D - Semantic standards, WebGL, HCI
Web 3.0?



“computer is generating new information,
        rather than humans”


                              Conrad Wolfram
Web 3.0?

Definitions vary greatly

¤ Sematic web
  ¤  “web of data” that enables machines to understand the
      semantics, or meaning of information
  ¤  machine-readable metadata about pages and how they
      are related to each other

¤ Personalization
Web 3.0?



     “first generation Metaverse”



                                    John Smart
Metaverse

¤  web development layer

¤  extension of Web 2.0's technologies (and social networks)

¤  open video

¤  3D simulations

¤  augmented reality

¤  human-constructed semantic standards
3.0D?




        © pl4n3
3.0D?

                     The wrong way
¤  X3D/ VRML (slow, XML)

¤  Java 3D (slower)

¤  QuickTime VR (fake panoramas)

¤  3DMLW (similar to X3D, scripting in Lua)

¤  Flash (proprietary, limited, and of course - slow)
3.0D?


¤  software library

¤  extends the capability of JavaScript

¤  generate interactive 3D graphics

¤  any compatible web browser

¤  context of the canvas HTML element
3.0D?


¤  software library

¤  extends the capability of JavaScript

¤  generate interactive 3D graphics

¤  any compatible web browser

¤  context of the canvas HTML element
3.0D?


¤  software library

¤  extends the capability of JavaScript

¤  generate interactive 3D graphics

¤  any compatible web browser

¤  context of the canvas HTML element
WebGL

   3D computer graphics API
        without the use of plug-ins
WebGL

   3D computer graphics API
        without the use of plug-ins
WebGL

   3D computer graphics API
        without the use of plug-ins
WebGL

   3D computer graphics API
        without the use of plug-ins
Big players

     The WebGL working group includes

 Apple, Google, Mozilla, and Opera
Big players

     The WebGL working group includes

 Apple, Google, Mozilla, and Opera
                              J
                                    their browser
                                doesn’t support WebGL
When?

¤  Canvas 3D experiments started by Vladimir Vukićević
  ¤  at Mozilla


¤  prototype in 2006

¤  end of 2007: both Mozilla and Opera had made their
    own separate implementations

¤  early 2009: Mozilla and Khronos started the WebGL
    Working Group
Libraries

¤  GLGE

¤  C3DL

¤  Copperlicht

¤  SpiderGL

¤  SceneJS

¤  Processing.js

¤  Three.js
Libraries

¤  GLGE

¤  C3DL

¤  Copperlicht

¤  SpiderGL

¤  SceneJS

¤  Processing.js

¤  Three.js
Libraries

¤  GLGE

¤  C3DL

¤  Copperlicht

¤  SpiderGL

¤  SceneJS

¤  Processing.js

¤  Three.js
We’ll see some three.js demos
Hot on the internet a while ago…
http://www.chromeexperiments.com/webgl
Yup, it’s made using WebGL
http://chrome.angrybirds.com/
Hot on the internet right now…
http://www.pixelnerve.com/webgl/sss/sss_singlelight.html
How does it work?
How does it work?
Web3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCI
The three laws of a GPU:

    1.  It’s not a CPU
    2.  loves geometry &
        pixel algebra
    3.  thinks like a SIMD*
The three laws of a GPU:

                                                                              1.  It’s not a CPU
                                                                              2.  loves geometry &
                                                                                  pixel algebra
                                                                              3.  thinks like a SIMD*




*SIMD = is a class of parallel computers: single instruction, multiple data
Web3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCI
Programs

¤  Vertex shader

¤  Fragment shader

¤  Geometry shader
  ¤  Hot out of the oven
  ¤  Not very used
  ¤  Not quite supported
  ¤  Not really useful (arguable)
GLSL

¤  GLslang J

¤  high level shading language

¤  based on the C programming language
  ¤  (yes, it’s high level!)


¤  looks a lot better than first shader languages
Horror

 DEFINE LUMINANCE = {0.299, 0.587, 0.114, 0.0};
 TEX H0, f[TEX0], TEX4, 2D;
 TEX H1, f[TEX2], TEX5, CUBE;
 DP3X H1.xyz, H1, LUMINANCE;
 MULX H0.w, H0.w, LUMINANCE.w;
 MULX H1.w, H1.x, H1.x;
 MOVH H2, f[TEX3].wxyz;
 MULX H1.w, H1.x, H1.w;
 DP3X H0.xyz, H2.xzyw, H0;
 MULX H0.xyz, H0, H1.w;
 TEX H1, f[TEX0], TEX1, 2D;
 TEX H3, f[TEX0], TEX3, 2D;
 MULX H0.xyz, H0, H3;
 MADX H1.w, H1.w, 0.5, 0.5;
Better

 #version 140
 uniform Transformation {
    mat4 projection;
    mat4 modelview;
 };

 in vec3 vertex;

 void main() {
   gl_Position = projection * modelview * vec4(vertex, 1.0);
 }
Best

 Make the triangle pretty
 Color it red
 Kthxbye
Best

 Make the triangle pretty
 Color it red
 Kthxbye
Shader toy
Web3D - Semantic standards, WebGL, HCI
Interaction

¤  Display/ computer screen is 2D

¤  Most input devices are 2D
  ¤  Mouse, trackpad etc.


¤  3D environments are 3D
Interaction

¤  Display/ computer screen is 2D

¤  Most input devices are 2D
  ¤  Mouse, trackpad etc.


¤  3D environments are 3D
Interaction

¤  Display/ computer screen is 2D

¤  Most input devices are 2D
  ¤  Mouse, trackpad etc.


¤  3D environments are 3D
3D interaction

¤  a form of human-computer interaction

¤  users are should be able to move and perform
    interaction in 3D space

¤  the 3D space used for interaction can be
  ¤  the real physical space
  ¤  virtual space representation simulated in the computer
  ¤  a combination of both
3D interaction

¤  1962 – Sensorama simulator (Morton Heilig)
  ¤  3D video feedback
  ¤  motion
  ¤  audio
  ¤  haptic (tactile)
3D interaction

¤  1962 – Sensorama simulator (Morton Heilig)
  ¤  3D video feedback
  ¤  motion
  ¤  audio
  ¤  haptic (tactile)
Web3D - Semantic standards, WebGL, HCI
3D interaction

¤  should be intuitive
   ¤  after all, humans interact in three dimensions in the real world


¤  interaction devices – 3D interfaces
   ¤  used in applications that feature virtual environments, and
       augmented and mixed realities
3D interaction

¤  should be intuitive
   ¤  after all, humans interact in three dimensions in the real world


¤  interaction devices – 3D interfaces
   ¤  used in applications that feature virtual environments, and
       augmented and mixed realities
3D interaction - Output

  “Currently, users still have difficulty in
   interpreting 3D space visuals and
 understanding how interaction occurs”
3D interaction - Output

¤  visual displays
   ¤  Head-mounted displays and CAVEs
       Cave Automatic Virtual Environment
   ¤  semi-immersive displays allow users to see both

¤  auditory displays
   ¤  specially useful when supplying location and spatial
       information to the users

¤  haptic displays
   ¤  tactile feedback or feeling
3D interaction - Output

¤  natural way for humans to move around in a three-
    dimensional world

¤  many sensory cues present in real environments are
    missing from virtual environments

¤  sensory cue = “a statistic or signal that can be extracted
    from the sensory input by a perceiver, that indicates the
    state of some property of the world that the perceiver is
    interested in perceiving”

¤  2D surface = inconsistencies in depth perception
3D interaction - Input

“Using 3D representations is not enough to
          create 3D interaction.
The users must have a way of performing
          actions in 3D as well”
3D interaction - Input

¤  special/ modified input devices
   ¤  ex: 3D mouse

¤  trackers
   ¤  detect or monitor head, hand or body movements
   ¤  important for presenting the correct viewpoint
   ¤  coordinate the spatial and sound information
   ¤  ex: motion trackers, eye trackers, data gloves, bodysuits
3D interaction input techniques

¤  selection and manipulation
  ¤  selecting, rotating and moving an object
  ¤  direct-hand manipulation is the most natural technique

¤  navigation
  ¤  wayfinding
  ¤  travel

¤  system control (menus, gestures, voice commands)

¤  symbolic input (add or edit text, ex: annotation)
Edusim

¤  free and open source

¤  3D virtual worlds on an interactive whiteboard

¤  direct manipulation
  ¤  3D virtual learning models
  ¤  Constructionist Learning
Open Cobalt Project

¤  free and open source software platform (Smalltalk)

¤  constructing, accessing, and sharing virtual world
  ¤  on local area networks
  ¤  across the Internet
  ¤  without any requirement for centralized servers

¤  create deeply collaborative and hyperlinked multi-user
    virtual workspaces
Web3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCI
Mozilla - Tilt Project

¤  3D visualization of a webpage
  ¤  WebGL
  ¤  visualization tool
  ¤  a developer-friendly environment for debugging

¤  information displayed on request:
  ¤  document’s structure
  ¤  nesting of the DOM tree
  ¤  each node’s type, class, id, and other attributes if available
Web3D - Semantic standards, WebGL, HCI
Mozilla – Tilt Project

¤  https://github.com/victorporof/Tilt

¤  http://blog.mozilla.com/Tilt



¤  Shedule: April 25th – August 22nd

¤  Deliverables:
   ¤  Firefox extension + export to compatible browsers
   ¤  WebGL javascript library designed to facilitate creating web
       page DOM visualizations
Questions?   O_o




                   © pl4n3

More Related Content

What's hot (20)

Svcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilderSvcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilder
Andres Almiray
 
Svcc Groovy Testing
Svcc Groovy TestingSvcc Groovy Testing
Svcc Groovy Testing
Andres Almiray
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
jeresig
 
Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7
Pasi Kellokoski
 
Introduction to jQuery
Introduction to jQueryIntroduction to jQuery
Introduction to jQuery
Nagaraju Sangam
 
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGroovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Guillaume Laforge
 
Javascript
JavascriptJavascript
Javascript
Vishwa Patel
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
Jeado Ko
 
MVC pattern for widgets
MVC pattern for widgetsMVC pattern for widgets
MVC pattern for widgets
Behnam Taraghi
 
JavaScript Best Pratices
JavaScript Best PraticesJavaScript Best Pratices
JavaScript Best Pratices
ChengHui Weng
 
140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js
angelliya00
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
ICS
 
Even more java script best practices
Even more java script best practicesEven more java script best practices
Even more java script best practices
ChengHui Weng
 
UIWebViewでつくるUI
UIWebViewでつくるUIUIWebViewでつくるUI
UIWebViewでつくるUI
cocopon
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
Ryunosuke SATO
 
Reactive Type-safe WebComponents
Reactive Type-safe WebComponentsReactive Type-safe WebComponents
Reactive Type-safe WebComponents
Martin Hochel
 
An Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScriptAn Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScript
Peter-Paul Koch
 
Lesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ayLesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ay
Codecademy Ren
 
Swift - One step forward from Obj-C
Swift -  One step forward from Obj-CSwift -  One step forward from Obj-C
Swift - One step forward from Obj-C
Nissan Tsafrir
 
Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications  Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications
Juliana Lucena
 
Svcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilderSvcc Building Rich Applications with Groovy's SwingBuilder
Svcc Building Rich Applications with Groovy's SwingBuilder
Andres Almiray
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
jeresig
 
Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7Qt and QML performance tips & tricks for Qt 4.7
Qt and QML performance tips & tricks for Qt 4.7
Pasi Kellokoski
 
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGroovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Guillaume Laforge
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
Jeado Ko
 
MVC pattern for widgets
MVC pattern for widgetsMVC pattern for widgets
MVC pattern for widgets
Behnam Taraghi
 
JavaScript Best Pratices
JavaScript Best PraticesJavaScript Best Pratices
JavaScript Best Pratices
ChengHui Weng
 
140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js
angelliya00
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
ICS
 
Even more java script best practices
Even more java script best practicesEven more java script best practices
Even more java script best practices
ChengHui Weng
 
UIWebViewでつくるUI
UIWebViewでつくるUIUIWebViewでつくるUI
UIWebViewでつくるUI
cocopon
 
Reactive Type-safe WebComponents
Reactive Type-safe WebComponentsReactive Type-safe WebComponents
Reactive Type-safe WebComponents
Martin Hochel
 
An Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScriptAn Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScript
Peter-Paul Koch
 
Lesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ayLesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ay
Codecademy Ren
 
Swift - One step forward from Obj-C
Swift -  One step forward from Obj-CSwift -  One step forward from Obj-C
Swift - One step forward from Obj-C
Nissan Tsafrir
 
Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications  Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications
Juliana Lucena
 

Viewers also liked (19)

COLLADA & WebGL
COLLADA & WebGLCOLLADA & WebGL
COLLADA & WebGL
Remi Arnaud
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGL
gerbille
 
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TKConf
 
Пора учить WebGL
Пора учить WebGLПора учить WebGL
Пора учить WebGL
Anton Korzunov
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
Yukio Andoh
 
David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)
David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)
David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)
David W. Deeds
 
MICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) Schools
MICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) SchoolsMICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) Schools
MICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) Schools
David W. Deeds
 
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
philogb
 
The Power of WebGL - Hackeando sua GPU com JavaScript
The Power of WebGL - Hackeando sua GPU com JavaScriptThe Power of WebGL - Hackeando sua GPU com JavaScript
The Power of WebGL - Hackeando sua GPU com JavaScript
Raphael Amorim
 
3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time 3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time
Pascal Rettig
 
3 d display technique
3 d display technique3 d display technique
3 d display technique
Priya Ashok
 
Introduction to WebGL and Three.js
Introduction to WebGL and Three.jsIntroduction to WebGL and Three.js
Introduction to WebGL and Three.js
James Williams
 
Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014
Arun Gupta
 
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
FITC
 
Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphics
Kamal Acharya
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
Manish Shekhawat
 
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
Robin Hawkes
 
WebGL and Three.js
WebGL and Three.jsWebGL and Three.js
WebGL and Three.js
yomotsu
 
3d internet
3d internet3d internet
3d internet
Vikas Sarwara
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGL
gerbille
 
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TKConf
 
Пора учить WebGL
Пора учить WebGLПора учить WebGL
Пора учить WebGL
Anton Korzunov
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
Yukio Andoh
 
David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)
David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)
David W. Deeds: Teaching/Training with 3D Virtual Worlds (in Schools)
David W. Deeds
 
MICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) Schools
MICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) SchoolsMICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) Schools
MICA Presentation: Best Practices: 3D Virtual Worlds in (K-12/Int'l) Schools
David W. Deeds
 
Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012Leaving Flatland: Getting Started with WebGL- SXSW 2012
Leaving Flatland: Getting Started with WebGL- SXSW 2012
philogb
 
The Power of WebGL - Hackeando sua GPU com JavaScript
The Power of WebGL - Hackeando sua GPU com JavaScriptThe Power of WebGL - Hackeando sua GPU com JavaScript
The Power of WebGL - Hackeando sua GPU com JavaScript
Raphael Amorim
 
3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time 3D in the Browser via WebGL: It's Go Time
3D in the Browser via WebGL: It's Go Time
Pascal Rettig
 
3 d display technique
3 d display technique3 d display technique
3 d display technique
Priya Ashok
 
Introduction to WebGL and Three.js
Introduction to WebGL and Three.jsIntroduction to WebGL and Three.js
Introduction to WebGL and Three.js
James Williams
 
Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014Introduce Programming to Kids at Geecon 2014
Introduce Programming to Kids at Geecon 2014
Arun Gupta
 
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
Bringing Virtual Reality to the Web: VR, WebGL and CSS – Together At Last!
FITC
 
Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphics
Kamal Acharya
 
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
Robin Hawkes
 
WebGL and Three.js
WebGL and Three.jsWebGL and Three.js
WebGL and Three.js
yomotsu
 

Similar to Web3D - Semantic standards, WebGL, HCI (20)

is three.js better for developing web-based 3d games?
is three.js better for developing web-based 3d games?is three.js better for developing web-based 3d games?
is three.js better for developing web-based 3d games?
DigiPrima Technologies
 
3D Internet
3D Internet3D Internet
3D Internet
Sravan Narra
 
BB8 RUN - A Star Wars video game
BB8 RUN - A Star Wars video gameBB8 RUN - A Star Wars video game
BB8 RUN - A Star Wars video game
Roberto Falconi
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
David Galeano
 
HoloLens.pdf
HoloLens.pdfHoloLens.pdf
HoloLens.pdf
Vishwas N
 
Drupal 3D - Intro to Using Web 3D with Drupal
Drupal 3D - Intro to Using Web 3D with DrupalDrupal 3D - Intro to Using Web 3D with Drupal
Drupal 3D - Intro to Using Web 3D with Drupal
Brian Hay
 
Introduction to three.js & Leap Motion
Introduction to three.js & Leap MotionIntroduction to three.js & Leap Motion
Introduction to three.js & Leap Motion
Lee Trout
 
3D Design Fundamentals
3D Design Fundamentals3D Design Fundamentals
3D Design Fundamentals
St. Petersburg College
 
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4Gmago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
SANGHEE SHIN
 
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive  3D graphics for web with three.js, Andrey Vedilin, DataArtInteractive  3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Alina Vilk
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
Paul Bakaus
 
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
Sebastien Kuntz
 
3D Internet
3D Internet 3D Internet
3D Internet
Abhishek Abhi
 
Sx sw speaker proposal slides
Sx sw speaker proposal slidesSx sw speaker proposal slides
Sx sw speaker proposal slides
Mitch Williams
 
3d computing
3d computing3d computing
3d computing
manoj kumar reddy annapareddy
 
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Lviv Startup Club
 
SWT - Technical Deep Dive
SWT - Technical Deep DiveSWT - Technical Deep Dive
SWT - Technical Deep Dive
Eclipse Day India
 
3D INTERNET Technical Seminar
3D INTERNET Technical Seminar3D INTERNET Technical Seminar
3D INTERNET Technical Seminar
vindhya Mudududla
 
3 d internet
3 d internet3 d internet
3 d internet
Ankur Prakash Singh
 
Software Is Details
Software Is DetailsSoftware Is Details
Software Is Details
Kevlin Henney
 
is three.js better for developing web-based 3d games?
is three.js better for developing web-based 3d games?is three.js better for developing web-based 3d games?
is three.js better for developing web-based 3d games?
DigiPrima Technologies
 
BB8 RUN - A Star Wars video game
BB8 RUN - A Star Wars video gameBB8 RUN - A Star Wars video game
BB8 RUN - A Star Wars video game
Roberto Falconi
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
David Galeano
 
HoloLens.pdf
HoloLens.pdfHoloLens.pdf
HoloLens.pdf
Vishwas N
 
Drupal 3D - Intro to Using Web 3D with Drupal
Drupal 3D - Intro to Using Web 3D with DrupalDrupal 3D - Intro to Using Web 3D with Drupal
Drupal 3D - Intro to Using Web 3D with Drupal
Brian Hay
 
Introduction to three.js & Leap Motion
Introduction to three.js & Leap MotionIntroduction to three.js & Leap Motion
Introduction to three.js & Leap Motion
Lee Trout
 
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4Gmago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
SANGHEE SHIN
 
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive  3D graphics for web with three.js, Andrey Vedilin, DataArtInteractive  3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Alina Vilk
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
Paul Bakaus
 
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
Sebastien Kuntz
 
Sx sw speaker proposal slides
Sx sw speaker proposal slidesSx sw speaker proposal slides
Sx sw speaker proposal slides
Mitch Williams
 
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Данило Ульянич “C89 OpenGL for ARM microcontrollers on Cortex-M. Basic functi...
Lviv Startup Club
 
3D INTERNET Technical Seminar
3D INTERNET Technical Seminar3D INTERNET Technical Seminar
3D INTERNET Technical Seminar
vindhya Mudududla
 

More from Victor Porof (11)

Firefox WebGL developer tools
Firefox WebGL developer toolsFirefox WebGL developer tools
Firefox WebGL developer tools
Victor Porof
 
Firefox developer tools
Firefox developer toolsFirefox developer tools
Firefox developer tools
Victor Porof
 
Js in the open
Js in the openJs in the open
Js in the open
Victor Porof
 
Processing.js vs. three.js
Processing.js vs. three.jsProcessing.js vs. three.js
Processing.js vs. three.js
Victor Porof
 
Javascript, Do you speak it!
Javascript, Do you speak it!Javascript, Do you speak it!
Javascript, Do you speak it!
Victor Porof
 
Cityquest - Developing games for the mobile devices
Cityquest - Developing games for the mobile devicesCityquest - Developing games for the mobile devices
Cityquest - Developing games for the mobile devices
Victor Porof
 
Chameleon game engine
Chameleon game engineChameleon game engine
Chameleon game engine
Victor Porof
 
Developing web apps using Java and the Play framework
Developing web apps using Java and the Play frameworkDeveloping web apps using Java and the Play framework
Developing web apps using Java and the Play framework
Victor Porof
 
Beginners' guide to Ruby on Rails
Beginners' guide to Ruby on RailsBeginners' guide to Ruby on Rails
Beginners' guide to Ruby on Rails
Victor Porof
 
Introduction to the XNA framework
Introduction to the XNA frameworkIntroduction to the XNA framework
Introduction to the XNA framework
Victor Porof
 
Introduction to 3D and shaders
Introduction to 3D and shadersIntroduction to 3D and shaders
Introduction to 3D and shaders
Victor Porof
 
Firefox WebGL developer tools
Firefox WebGL developer toolsFirefox WebGL developer tools
Firefox WebGL developer tools
Victor Porof
 
Firefox developer tools
Firefox developer toolsFirefox developer tools
Firefox developer tools
Victor Porof
 
Processing.js vs. three.js
Processing.js vs. three.jsProcessing.js vs. three.js
Processing.js vs. three.js
Victor Porof
 
Javascript, Do you speak it!
Javascript, Do you speak it!Javascript, Do you speak it!
Javascript, Do you speak it!
Victor Porof
 
Cityquest - Developing games for the mobile devices
Cityquest - Developing games for the mobile devicesCityquest - Developing games for the mobile devices
Cityquest - Developing games for the mobile devices
Victor Porof
 
Chameleon game engine
Chameleon game engineChameleon game engine
Chameleon game engine
Victor Porof
 
Developing web apps using Java and the Play framework
Developing web apps using Java and the Play frameworkDeveloping web apps using Java and the Play framework
Developing web apps using Java and the Play framework
Victor Porof
 
Beginners' guide to Ruby on Rails
Beginners' guide to Ruby on RailsBeginners' guide to Ruby on Rails
Beginners' guide to Ruby on Rails
Victor Porof
 
Introduction to the XNA framework
Introduction to the XNA frameworkIntroduction to the XNA framework
Introduction to the XNA framework
Victor Porof
 
Introduction to 3D and shaders
Introduction to 3D and shadersIntroduction to 3D and shaders
Introduction to 3D and shaders
Victor Porof
 

Recently uploaded (20)

Packaging your App for AppExchange – Managed Vs Unmanaged.pptx
Packaging your App for AppExchange – Managed Vs Unmanaged.pptxPackaging your App for AppExchange – Managed Vs Unmanaged.pptx
Packaging your App for AppExchange – Managed Vs Unmanaged.pptx
mohayyudin7826
 
Next.js Development: The Ultimate Solution for High-Performance Web Apps
Next.js Development: The Ultimate Solution for High-Performance Web AppsNext.js Development: The Ultimate Solution for High-Performance Web Apps
Next.js Development: The Ultimate Solution for High-Performance Web Apps
rwinfotech31
 
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
David Brossard
 
Scalable Multi-Agent AI with AutoGen by Udai
Scalable Multi-Agent AI with AutoGen by UdaiScalable Multi-Agent AI with AutoGen by Udai
Scalable Multi-Agent AI with AutoGen by Udai
Udaiappa Ramachandran
 
San Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdfSan Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdf
Matt Doar
 
Leadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly Meetup
Leadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly MeetupLeadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly Meetup
Leadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly Meetup
GDG Kathmandu
 
Building High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdfBuilding High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdf
Rafael Burity
 
A General introduction to Ad ranking algorithms
A General introduction to Ad ranking algorithmsA General introduction to Ad ranking algorithms
A General introduction to Ad ranking algorithms
Buhwan Jeong
 
SAP Automation with UiPath: SAP Test Automation - Part 5 of 8
SAP Automation with UiPath: SAP Test Automation - Part 5 of 8SAP Automation with UiPath: SAP Test Automation - Part 5 of 8
SAP Automation with UiPath: SAP Test Automation - Part 5 of 8
DianaGray10
 
Testing Tools for Accessibility Enhancement Part II.pptx
Testing Tools for Accessibility Enhancement Part II.pptxTesting Tools for Accessibility Enhancement Part II.pptx
Testing Tools for Accessibility Enhancement Part II.pptx
Julia Undeutsch
 
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
DianaGray10
 
The effectiveness of ai powered educational tools in enhancing academic perfo...
The effectiveness of ai powered educational tools in enhancing academic perfo...The effectiveness of ai powered educational tools in enhancing academic perfo...
The effectiveness of ai powered educational tools in enhancing academic perfo...
aebhpmqaocxhydmajf
 
Build Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced FeaturesBuild Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced Features
V3cube
 
Research Data Management (RDM): the management of dat in the research process
Research Data Management (RDM): the management of dat in the research processResearch Data Management (RDM): the management of dat in the research process
Research Data Management (RDM): the management of dat in the research process
HeilaPienaar
 
Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎
Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎
Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎
Precisely
 
The Future of Materials: Transitioning from Silicon to Alternative Metals
The Future of Materials: Transitioning from Silicon to Alternative MetalsThe Future of Materials: Transitioning from Silicon to Alternative Metals
The Future of Materials: Transitioning from Silicon to Alternative Metals
anupriti
 
Why Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdfWhy Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdf
anjelinajones6811
 
Benefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle CloudBenefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle Cloud
AstuteBusiness
 
Innovative Web Design | Malachite Technologies
Innovative Web Design | Malachite TechnologiesInnovative Web Design | Malachite Technologies
Innovative Web Design | Malachite Technologies
malachitetechnologie1
 
Smarter RAG Pipelines: Scaling Search with Milvus and Feast
Smarter RAG Pipelines: Scaling Search with Milvus and FeastSmarter RAG Pipelines: Scaling Search with Milvus and Feast
Smarter RAG Pipelines: Scaling Search with Milvus and Feast
Zilliz
 
Packaging your App for AppExchange – Managed Vs Unmanaged.pptx
Packaging your App for AppExchange – Managed Vs Unmanaged.pptxPackaging your App for AppExchange – Managed Vs Unmanaged.pptx
Packaging your App for AppExchange – Managed Vs Unmanaged.pptx
mohayyudin7826
 
Next.js Development: The Ultimate Solution for High-Performance Web Apps
Next.js Development: The Ultimate Solution for High-Performance Web AppsNext.js Development: The Ultimate Solution for High-Performance Web Apps
Next.js Development: The Ultimate Solution for High-Performance Web Apps
rwinfotech31
 
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
AuthZEN The OpenID Connect of Authorization - Gartner IAM EMEA 2025
David Brossard
 
Scalable Multi-Agent AI with AutoGen by Udai
Scalable Multi-Agent AI with AutoGen by UdaiScalable Multi-Agent AI with AutoGen by Udai
Scalable Multi-Agent AI with AutoGen by Udai
Udaiappa Ramachandran
 
San Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdfSan Francisco Atlassian ACE - Mar 27 2025.pdf
San Francisco Atlassian ACE - Mar 27 2025.pdf
Matt Doar
 
Leadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly Meetup
Leadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly MeetupLeadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly Meetup
Leadership Spectrum by Sonam Sherpa at GDG Kathmandu March Monthly Meetup
GDG Kathmandu
 
Building High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdfBuilding High-Impact Teams Beyond the Product Triad.pdf
Building High-Impact Teams Beyond the Product Triad.pdf
Rafael Burity
 
A General introduction to Ad ranking algorithms
A General introduction to Ad ranking algorithmsA General introduction to Ad ranking algorithms
A General introduction to Ad ranking algorithms
Buhwan Jeong
 
SAP Automation with UiPath: SAP Test Automation - Part 5 of 8
SAP Automation with UiPath: SAP Test Automation - Part 5 of 8SAP Automation with UiPath: SAP Test Automation - Part 5 of 8
SAP Automation with UiPath: SAP Test Automation - Part 5 of 8
DianaGray10
 
Testing Tools for Accessibility Enhancement Part II.pptx
Testing Tools for Accessibility Enhancement Part II.pptxTesting Tools for Accessibility Enhancement Part II.pptx
Testing Tools for Accessibility Enhancement Part II.pptx
Julia Undeutsch
 
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
SAP Automation with UiPath: Solution Accelerators and Best Practices - Part 6...
DianaGray10
 
The effectiveness of ai powered educational tools in enhancing academic perfo...
The effectiveness of ai powered educational tools in enhancing academic perfo...The effectiveness of ai powered educational tools in enhancing academic perfo...
The effectiveness of ai powered educational tools in enhancing academic perfo...
aebhpmqaocxhydmajf
 
Build Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced FeaturesBuild Your Uber Clone App with Advanced Features
Build Your Uber Clone App with Advanced Features
V3cube
 
Research Data Management (RDM): the management of dat in the research process
Research Data Management (RDM): the management of dat in the research processResearch Data Management (RDM): the management of dat in the research process
Research Data Management (RDM): the management of dat in the research process
HeilaPienaar
 
Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎
Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎
Top Tips to Get Your Data AI-Ready‎ ‎ ‎‎ ‎
Precisely
 
The Future of Materials: Transitioning from Silicon to Alternative Metals
The Future of Materials: Transitioning from Silicon to Alternative MetalsThe Future of Materials: Transitioning from Silicon to Alternative Metals
The Future of Materials: Transitioning from Silicon to Alternative Metals
anupriti
 
Why Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdfWhy Outsource Accounting to India A Smart Business Move!.pdf
Why Outsource Accounting to India A Smart Business Move!.pdf
anjelinajones6811
 
Benefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle CloudBenefits of Moving Ellucian Banner to Oracle Cloud
Benefits of Moving Ellucian Banner to Oracle Cloud
AstuteBusiness
 
Innovative Web Design | Malachite Technologies
Innovative Web Design | Malachite TechnologiesInnovative Web Design | Malachite Technologies
Innovative Web Design | Malachite Technologies
malachitetechnologie1
 
Smarter RAG Pipelines: Scaling Search with Milvus and Feast
Smarter RAG Pipelines: Scaling Search with Milvus and FeastSmarter RAG Pipelines: Scaling Search with Milvus and Feast
Smarter RAG Pipelines: Scaling Search with Milvus and Feast
Zilliz
 

Web3D - Semantic standards, WebGL, HCI

  • 1. Web 3D [ semantic standards, webgl, hci ]
  • 2. @victorporof   GSoC  student  at  Mozilla   graphics programmer h8p://github.com/victorporof   embedded devices enthusiast passionate about low-level 3D coding
  • 6. Web 3.0? “computer is generating new information, rather than humans” Conrad Wolfram
  • 7. Web 3.0? Definitions vary greatly ¤ Sematic web ¤  “web of data” that enables machines to understand the semantics, or meaning of information ¤  machine-readable metadata about pages and how they are related to each other ¤ Personalization
  • 8. Web 3.0? “first generation Metaverse” John Smart
  • 9. Metaverse ¤  web development layer ¤  extension of Web 2.0's technologies (and social networks) ¤  open video ¤  3D simulations ¤  augmented reality ¤  human-constructed semantic standards
  • 10. 3.0D? © pl4n3
  • 11. 3.0D? The wrong way ¤  X3D/ VRML (slow, XML) ¤  Java 3D (slower) ¤  QuickTime VR (fake panoramas) ¤  3DMLW (similar to X3D, scripting in Lua) ¤  Flash (proprietary, limited, and of course - slow)
  • 12. 3.0D? ¤  software library ¤  extends the capability of JavaScript ¤  generate interactive 3D graphics ¤  any compatible web browser ¤  context of the canvas HTML element
  • 13. 3.0D? ¤  software library ¤  extends the capability of JavaScript ¤  generate interactive 3D graphics ¤  any compatible web browser ¤  context of the canvas HTML element
  • 14. 3.0D? ¤  software library ¤  extends the capability of JavaScript ¤  generate interactive 3D graphics ¤  any compatible web browser ¤  context of the canvas HTML element
  • 15. WebGL 3D computer graphics API without the use of plug-ins
  • 16. WebGL 3D computer graphics API without the use of plug-ins
  • 17. WebGL 3D computer graphics API without the use of plug-ins
  • 18. WebGL 3D computer graphics API without the use of plug-ins
  • 19. Big players The WebGL working group includes Apple, Google, Mozilla, and Opera
  • 20. Big players The WebGL working group includes Apple, Google, Mozilla, and Opera J their browser doesn’t support WebGL
  • 21. When? ¤  Canvas 3D experiments started by Vladimir Vukićević ¤  at Mozilla ¤  prototype in 2006 ¤  end of 2007: both Mozilla and Opera had made their own separate implementations ¤  early 2009: Mozilla and Khronos started the WebGL Working Group
  • 22. Libraries ¤  GLGE ¤  C3DL ¤  Copperlicht ¤  SpiderGL ¤  SceneJS ¤  Processing.js ¤  Three.js
  • 23. Libraries ¤  GLGE ¤  C3DL ¤  Copperlicht ¤  SpiderGL ¤  SceneJS ¤  Processing.js ¤  Three.js
  • 24. Libraries ¤  GLGE ¤  C3DL ¤  Copperlicht ¤  SpiderGL ¤  SceneJS ¤  Processing.js ¤  Three.js
  • 25. We’ll see some three.js demos
  • 26. Hot on the internet a while ago… http://www.chromeexperiments.com/webgl
  • 27. Yup, it’s made using WebGL http://chrome.angrybirds.com/
  • 28. Hot on the internet right now… http://www.pixelnerve.com/webgl/sss/sss_singlelight.html
  • 29. How does it work?
  • 30. How does it work?
  • 33. The three laws of a GPU: 1.  It’s not a CPU 2.  loves geometry & pixel algebra 3.  thinks like a SIMD*
  • 34. The three laws of a GPU: 1.  It’s not a CPU 2.  loves geometry & pixel algebra 3.  thinks like a SIMD* *SIMD = is a class of parallel computers: single instruction, multiple data
  • 38. Programs ¤  Vertex shader ¤  Fragment shader ¤  Geometry shader ¤  Hot out of the oven ¤  Not very used ¤  Not quite supported ¤  Not really useful (arguable)
  • 39. GLSL ¤  GLslang J ¤  high level shading language ¤  based on the C programming language ¤  (yes, it’s high level!) ¤  looks a lot better than first shader languages
  • 40. Horror DEFINE LUMINANCE = {0.299, 0.587, 0.114, 0.0}; TEX H0, f[TEX0], TEX4, 2D; TEX H1, f[TEX2], TEX5, CUBE; DP3X H1.xyz, H1, LUMINANCE; MULX H0.w, H0.w, LUMINANCE.w; MULX H1.w, H1.x, H1.x; MOVH H2, f[TEX3].wxyz; MULX H1.w, H1.x, H1.w; DP3X H0.xyz, H2.xzyw, H0; MULX H0.xyz, H0, H1.w; TEX H1, f[TEX0], TEX1, 2D; TEX H3, f[TEX0], TEX3, 2D; MULX H0.xyz, H0, H3; MADX H1.w, H1.w, 0.5, 0.5;
  • 41. Better #version 140 uniform Transformation { mat4 projection; mat4 modelview; }; in vec3 vertex; void main() { gl_Position = projection * modelview * vec4(vertex, 1.0); }
  • 42. Best Make the triangle pretty Color it red Kthxbye
  • 43. Best Make the triangle pretty Color it red Kthxbye
  • 46. Interaction ¤  Display/ computer screen is 2D ¤  Most input devices are 2D ¤  Mouse, trackpad etc. ¤  3D environments are 3D
  • 47. Interaction ¤  Display/ computer screen is 2D ¤  Most input devices are 2D ¤  Mouse, trackpad etc. ¤  3D environments are 3D
  • 48. Interaction ¤  Display/ computer screen is 2D ¤  Most input devices are 2D ¤  Mouse, trackpad etc. ¤  3D environments are 3D
  • 49. 3D interaction ¤  a form of human-computer interaction ¤  users are should be able to move and perform interaction in 3D space ¤  the 3D space used for interaction can be ¤  the real physical space ¤  virtual space representation simulated in the computer ¤  a combination of both
  • 50. 3D interaction ¤  1962 – Sensorama simulator (Morton Heilig) ¤  3D video feedback ¤  motion ¤  audio ¤  haptic (tactile)
  • 51. 3D interaction ¤  1962 – Sensorama simulator (Morton Heilig) ¤  3D video feedback ¤  motion ¤  audio ¤  haptic (tactile)
  • 53. 3D interaction ¤  should be intuitive ¤  after all, humans interact in three dimensions in the real world ¤  interaction devices – 3D interfaces ¤  used in applications that feature virtual environments, and augmented and mixed realities
  • 54. 3D interaction ¤  should be intuitive ¤  after all, humans interact in three dimensions in the real world ¤  interaction devices – 3D interfaces ¤  used in applications that feature virtual environments, and augmented and mixed realities
  • 55. 3D interaction - Output “Currently, users still have difficulty in interpreting 3D space visuals and understanding how interaction occurs”
  • 56. 3D interaction - Output ¤  visual displays ¤  Head-mounted displays and CAVEs Cave Automatic Virtual Environment ¤  semi-immersive displays allow users to see both ¤  auditory displays ¤  specially useful when supplying location and spatial information to the users ¤  haptic displays ¤  tactile feedback or feeling
  • 57. 3D interaction - Output ¤  natural way for humans to move around in a three- dimensional world ¤  many sensory cues present in real environments are missing from virtual environments ¤  sensory cue = “a statistic or signal that can be extracted from the sensory input by a perceiver, that indicates the state of some property of the world that the perceiver is interested in perceiving” ¤  2D surface = inconsistencies in depth perception
  • 58. 3D interaction - Input “Using 3D representations is not enough to create 3D interaction. The users must have a way of performing actions in 3D as well”
  • 59. 3D interaction - Input ¤  special/ modified input devices ¤  ex: 3D mouse ¤  trackers ¤  detect or monitor head, hand or body movements ¤  important for presenting the correct viewpoint ¤  coordinate the spatial and sound information ¤  ex: motion trackers, eye trackers, data gloves, bodysuits
  • 60. 3D interaction input techniques ¤  selection and manipulation ¤  selecting, rotating and moving an object ¤  direct-hand manipulation is the most natural technique ¤  navigation ¤  wayfinding ¤  travel ¤  system control (menus, gestures, voice commands) ¤  symbolic input (add or edit text, ex: annotation)
  • 61. Edusim ¤  free and open source ¤  3D virtual worlds on an interactive whiteboard ¤  direct manipulation ¤  3D virtual learning models ¤  Constructionist Learning
  • 62. Open Cobalt Project ¤  free and open source software platform (Smalltalk) ¤  constructing, accessing, and sharing virtual world ¤  on local area networks ¤  across the Internet ¤  without any requirement for centralized servers ¤  create deeply collaborative and hyperlinked multi-user virtual workspaces
  • 65. Mozilla - Tilt Project ¤  3D visualization of a webpage ¤  WebGL ¤  visualization tool ¤  a developer-friendly environment for debugging ¤  information displayed on request: ¤  document’s structure ¤  nesting of the DOM tree ¤  each node’s type, class, id, and other attributes if available
  • 67. Mozilla – Tilt Project ¤  https://github.com/victorporof/Tilt ¤  http://blog.mozilla.com/Tilt ¤  Shedule: April 25th – August 22nd ¤  Deliverables: ¤  Firefox extension + export to compatible browsers ¤  WebGL javascript library designed to facilitate creating web page DOM visualizations
  • 68. Questions? O_o © pl4n3