SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
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
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?
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
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
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)
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
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
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

Contenu connexe

Tendances

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 SwingBuilderAndres Almiray
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overviewjeresig
 
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.7Pasi Kellokoski
 
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGroovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGuillaume Laforge
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2Jeado Ko
 
MVC pattern for widgets
MVC pattern for widgetsMVC pattern for widgets
MVC pattern for widgetsBehnam Taraghi
 
JavaScript Best Pratices
JavaScript Best PraticesJavaScript Best Pratices
JavaScript Best PraticesChengHui Weng
 
140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.jsangelliya00
 
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 IIIICS
 
Even more java script best practices
Even more java script best practicesEven more java script best practices
Even more java script best practicesChengHui Weng
 
UIWebViewでつくるUI
UIWebViewでつくるUIUIWebViewでつくるUI
UIWebViewでつくるUIcocopon
 
Reactive Type-safe WebComponents
Reactive Type-safe WebComponentsReactive Type-safe WebComponents
Reactive Type-safe WebComponentsMartin 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 JavaScriptPeter-Paul Koch
 
Lesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ayLesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ayCodecademy 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-CNissan 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
 

Tendances (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
 
Svcc Groovy Testing
Svcc Groovy TestingSvcc Groovy Testing
Svcc Groovy Testing
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
 
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
 
Introduction to jQuery
Introduction to jQueryIntroduction to jQuery
Introduction to jQuery
 
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGroovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
 
Javascript
JavascriptJavascript
Javascript
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
 
MVC pattern for widgets
MVC pattern for widgetsMVC pattern for widgets
MVC pattern for widgets
 
JavaScript Best Pratices
JavaScript Best PraticesJavaScript Best Pratices
JavaScript Best Pratices
 
140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js140716 : 同業前端聚會分享 - webgl 與 three.js
140716 : 同業前端聚會分享 - webgl 與 three.js
 
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
 
Even more java script best practices
Even more java script best practicesEven more java script best practices
Even more java script best practices
 
UIWebViewでつくるUI
UIWebViewでつくるUIUIWebViewでつくるUI
UIWebViewでつくるUI
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Reactive Type-safe WebComponents
Reactive Type-safe WebComponentsReactive Type-safe WebComponents
Reactive Type-safe WebComponents
 
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
 
Lesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ayLesson 203 18 sep13-1500-ay
Lesson 203 18 sep13-1500-ay
 
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
 
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
 

En vedette

Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLgerbille
 
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.TKConf
 
Пора учить WebGL
Пора учить WebGLПора учить WebGL
Пора учить WebGLAnton Korzunov
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcaseYukio 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) SchoolsDavid 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 2012philogb
 
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 JavaScriptRaphael 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 techniquePriya Ashok
 
Introduction to WebGL and Three.js
Introduction to WebGL and Three.jsIntroduction to WebGL and Three.js
Introduction to WebGL and Three.jsJames 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 2014Arun 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 graphicsKamal 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 WebGLRobin Hawkes
 
WebGL and Three.js
WebGL and Three.jsWebGL and Three.js
WebGL and Three.jsyomotsu
 

En vedette (19)

COLLADA & WebGL
COLLADA & WebGLCOLLADA & WebGL
COLLADA & WebGL
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGL
 
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
TК°Conf. Ещё не поздно учить WebGL. Антон Корзунов.
 
Пора учить WebGL
Пора учить WebGLПора учить WebGL
Пора учить WebGL
 
WebGL demos showcase
WebGL demos showcaseWebGL demos showcase
WebGL demos showcase
 
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)
 
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
 
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
 
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
 
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
 
3 d display technique
3 d display technique3 d display technique
3 d display technique
 
Introduction to WebGL and Three.js
Introduction to WebGL and Three.jsIntroduction to WebGL and Three.js
Introduction to WebGL and Three.js
 
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
 
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!
 
Introduction to computer graphics
Introduction to computer graphicsIntroduction to computer graphics
Introduction to computer graphics
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
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
 
WebGL and Three.js
WebGL and Three.jsWebGL and Three.js
WebGL and Three.js
 
3d internet
3d internet3d internet
3d internet
 

Similaire à Web3D - Semantic standards, WebGL, HCI

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 gameRoberto 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 developmentDavid Galeano
 
HoloLens.pdf
HoloLens.pdfHoloLens.pdf
HoloLens.pdfVishwas 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 DrupalBrian Hay
 
Introduction to three.js & Leap Motion
Introduction to three.js & Leap MotionIntroduction to three.js & Leap Motion
Introduction to three.js & Leap MotionLee 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 FOSS4GSANGHEE 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, DataArtAlina Vilk
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQueryPaul 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 architectureSebastien Kuntz
 
Sx sw speaker proposal slides
Sx sw speaker proposal slidesSx sw speaker proposal slides
Sx sw speaker proposal slidesMitch 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 Seminarvindhya Mudududla
 
The Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceThe Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceIntel® Software
 

Similaire à Web3D - Semantic standards, WebGL, HCI (20)

3D Internet
3D Internet3D Internet
3D Internet
 
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
 
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
 
HoloLens.pdf
HoloLens.pdfHoloLens.pdf
HoloLens.pdf
 
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
 
Introduction to three.js & Leap Motion
Introduction to three.js & Leap MotionIntroduction to three.js & Leap Motion
Introduction to three.js & Leap Motion
 
3D Design Fundamentals
3D Design Fundamentals3D Design Fundamentals
3D Design Fundamentals
 
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
 
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
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
 
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
 
3D Internet
3D Internet 3D Internet
3D Internet
 
Sx sw speaker proposal slides
Sx sw speaker proposal slidesSx sw speaker proposal slides
Sx sw speaker proposal slides
 
3d computing
3d computing3d computing
3d computing
 
Данило Ульянич “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...
 
SWT - Technical Deep Dive
SWT - Technical Deep DiveSWT - Technical Deep Dive
SWT - Technical Deep Dive
 
3D INTERNET Technical Seminar
3D INTERNET Technical Seminar3D INTERNET Technical Seminar
3D INTERNET Technical Seminar
 
3 d internet
3 d internet3 d internet
3 d internet
 
Software Is Details
Software Is DetailsSoftware Is Details
Software Is Details
 
The Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceThe Next Leap in JavaScript Performance
The Next Leap in JavaScript Performance
 

Plus de Victor Porof

Firefox WebGL developer tools
Firefox WebGL developer toolsFirefox WebGL developer tools
Firefox WebGL developer toolsVictor Porof
 
Firefox developer tools
Firefox developer toolsFirefox developer tools
Firefox developer toolsVictor Porof
 
Processing.js vs. three.js
Processing.js vs. three.jsProcessing.js vs. three.js
Processing.js vs. three.jsVictor 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 devicesVictor Porof
 
Chameleon game engine
Chameleon game engineChameleon game engine
Chameleon game engineVictor 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 frameworkVictor Porof
 
Beginners' guide to Ruby on Rails
Beginners' guide to Ruby on RailsBeginners' guide to Ruby on Rails
Beginners' guide to Ruby on RailsVictor Porof
 
Introduction to the XNA framework
Introduction to the XNA frameworkIntroduction to the XNA framework
Introduction to the XNA frameworkVictor Porof
 
Introduction to 3D and shaders
Introduction to 3D and shadersIntroduction to 3D and shaders
Introduction to 3D and shadersVictor Porof
 

Plus de Victor Porof (11)

Firefox WebGL developer tools
Firefox WebGL developer toolsFirefox WebGL developer tools
Firefox WebGL developer tools
 
Firefox developer tools
Firefox developer toolsFirefox developer tools
Firefox developer tools
 
Js in the open
Js in the openJs in the open
Js in the open
 
Processing.js vs. three.js
Processing.js vs. three.jsProcessing.js vs. three.js
Processing.js vs. three.js
 
Javascript, Do you speak it!
Javascript, Do you speak it!Javascript, Do you speak it!
Javascript, Do you speak it!
 
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
 
Chameleon game engine
Chameleon game engineChameleon game engine
Chameleon game engine
 
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
 
Beginners' guide to Ruby on Rails
Beginners' guide to Ruby on RailsBeginners' guide to Ruby on Rails
Beginners' guide to Ruby on Rails
 
Introduction to the XNA framework
Introduction to the XNA frameworkIntroduction to the XNA framework
Introduction to the XNA framework
 
Introduction to 3D and shaders
Introduction to 3D and shadersIntroduction to 3D and shaders
Introduction to 3D and shaders
 

Dernier

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Dernier (20)

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

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
  • 5.
  • 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?
  • 31.
  • 32.
  • 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
  • 35.
  • 36.
  • 37.
  • 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
  • 45.
  • 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)
  • 52.
  • 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
  • 63.
  • 64.
  • 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
  • 66.
  • 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