SlideShare ist ein Scribd-Unternehmen logo
1 von 111
Downloaden Sie, um offline zu lesen
geildanke.com @fischaelameer
MICHAELA LEHR
Founder · Geil,Danke! · Frontend Developer, UX Designer
@fischaelameer
Goodbye, Flatland!
An introduction to React VR
and what it means for web developers
geildanke.com @fischaelameer
You should care about WebVR.
geildanke.com @fischaelameer
VR Concepts
geildanke.com @fischaelameer
VR Concepts ReactVR
geildanke.com @fischaelameer
VR Concepts ReactVR UX Design & VR
geildanke.com @fischaelameer
Virtual Reality is tricking our eyes and
brain to think of a 2D image to be in 3D.
geildanke.com @fischaelameer
Virtual Reality changes the 

way we relate to technology.
geildanke.com @fischaelameer
Virtual Reality Concepts
geildanke.com @fischaelameer
Stereoscopic Images
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
IPD – Interpupillary distance
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
Tracking
geildanke.com @fischaelameer
geildanke.com @fischaelameer
Rotation
geildanke.com @fischaelameer
Rotation
Position
geildanke.com @fischaelameer
geildanke.com @fischaelameer
Rotation
Position
geildanke.com @fischaelameer
Browser
https://github.com/mrdoob/three.js
geildanke.com @fischaelameer
Browser
WebGL
https://github.com/mrdoob/three.js
geildanke.com @fischaelameer
Browser
WebVRWebGL
https://github.com/mrdoob/three.js
geildanke.com @fischaelameer
Browser
WebVRWebGL
https://github.com/mrdoob/three.js
three.js
Ricardo Cabello
geildanke.com @fischaelameer
Browser
WebVRWebGL
https://facebookincubator.github.io/react-vr/index.html
three.js
ReactVR
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
x: 0, y: 0, z: 0
geildanke.com @fischaelameer
x: 0, y: 0, z: 0
geildanke.com @fischaelameer
geildanke.com @fischaelameer
npm install -g react-vr-cli
react-vr init GEILDANKE_REACTVR_PANO
cd GEILDANKE_REACTVR_PANORAMA
npm start
geildanke.com @fischaelameer
/GEILDANKE_REACTVR_PANO
!"" index.vr.js
!"" node_modules
!"" package.json
!"" postinstall.js
!"" rn-cli.config.js
!"" static_assets
#   %"" vr-mountain.jpg
%"" vr
!"" client.js
%"" index.html
geildanke.com @fischaelameer
import React from 'react';
import { AppRegistry, asset, Pano, View } from 'react-vr';
class GEILDANKE_REACTVR_PANO extends React.Component {
render() {
return (
<View>
<Pano source = { asset('vr-mountain.jpg') }/>
</View>
);
}
};
AppRegistry.registerComponent('GEILDANKE_REACTVR_PANO', () => GEILDANKE_REACTVR_PANO);
index.vr.js
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
It was the pioneer days; people had to make their own interrogation rooms. Out of
cornmeal. These endless days are finally ending in a blaze. When I say, 'I love you,'
it's not because I want you or because I can't have you. It's my estimation that every
man ever got a statue made of him was one kind of sommbitch or another. Oh my god you
will never believe what happened at school today. From beneath you, it devours. I am
never gonna see a merman, ever.
It was supposed to confuse him, but it just made him peppy. It was like the Heimlich,
with stripes! How did your brain even learn human speech? I'm just so curious.
Apocalypse, we've all been there; the same old trips, why should we care? Frankly, it's
ludicrous to have these interlocking bodies and not...interlock. I just don't see why
everyone's always picking on Marie-Antoinette. You're the one freaky thing in my freaky
world that still makes sense to me. You are talking crazy-person talk.
http://www.commercekitchen.com/whedon-ipsum/
geildanke.com @fischaelameer
It was the pioneer days; people had to make their own interrogation rooms. Out of
cornmeal. These endless days are finally ending in a blaze. When I say, 'I love you,'
it's not because I want you or because I can't have you. It's my estimation that every
man ever got a statue made of him was one kind of sommbitch or another. Oh my god you
will never believe what happened at school today. From beneath you, it devours. I am
never gonna see a merman, ever.
It was supposed to confuse him, but it just made him peppy. It was like the Heimlich,
with stripes! How did your brain even learn human speech? I'm just so curious.
Apocalypse, we've all been there; the same old trips, why should we care? Frankly, it's
ludicrous to have these interlocking bodies and not...interlock. I just don't see why
everyone's always picking on Marie-Antoinette. You're the one freaky thing in my freaky
world that still makes sense to me. You are talking crazy-person talk.
http://www.commercekitchen.com/whedon-ipsum/
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
Goodbye, UX metaphors!
geildanke.com @fischaelameer
Goodbye, UX metaphors!
geildanke.com @fischaelameer
Goodbye, UX metaphors!
geildanke.com @fischaelameer
Lightning
UI
Button
GalleryImages
GalleryImage
Room
Wall
index.vr.js
geildanke.com @fischaelameer
import React from 'react';
import { AppRegistry, asset, View } from 'react-vr';
import Images from './Images';
import Lightning from './Lightning';
import Room from './Room';
import UI from './UI';
import World from './World';
class GEILDANKE_REACTVR_GALLERY extends React.Component {
render() {
return (
<View>
<Lightning />
<World />
<Room />
<Images />
<UI />
</View>
);
}
};
AppRegistry.registerComponent('GEILDANKE_REACTVR_GALLERY', () => GEILDANKE_REACTVR_GALLERY);
index.vr.js
geildanke.com @fischaelameer
import React from 'react';
import { AmbientLight, PointLight, View } from 'react-vr';
class Lightning extends React.Component {
render() {
return(
<View>
<AmbientLight intensity = { 1.2 } />
<PointLight intensity = { 0.25 }
style = {{
color: '#ffffff',
transform: [{ translate : [ 0, 4, 0.25 ] }] }} />
</View>
);
}
}
module.exports = Lightning;
Lightning.js
geildanke.com @fischaelameer
import React from 'react';
import { AmbientLight, PointLight, View } from 'react-vr';
class Lightning extends React.Component {
render() {
return(
<View>
<AmbientLight intensity = { 1.2 } />
<PointLight intensity = { 0.25 }
style = {{
color: '#ffffff',
transform: [{ translate : [ 0, 4, 0.25 ] }] }} />
</View>
);
}
}
module.exports = Lightning;
Lightning.js
geildanke.com @fischaelameer
import React from 'react';
import { AmbientLight, PointLight, View } from 'react-vr';
class Lightning extends React.Component {
render() {
return(
<View>
<AmbientLight intensity = { 1.2 } />
<PointLight intensity = { 0.25 }
style = {{
color: '#ffffff',
transform: [{ translate : [ 0, 4, 0.25 ] }] }} />
</View>
);
}
}
module.exports = Lightning;
Lightning.js
geildanke.com @fischaelameer
…
render() {
let scale = this.props.scale,
translate = this.props.translate,
wall = null,
wallMat = {mesh:asset('wall.obj'), mtl:asset('wall.mtl'), lit: true},
windowMat = {mesh:asset('window.obj'), mtl:asset('window.mtl'), lit: true};
if (this.props.hasWindow && this.props.hasWindow === true) {
wall = <Mesh style={{transform: [{translate: translate}, {scale: scale},],}} source={windowMat} />;
} else {
wall = <Mesh style={{transform: [{translate: translate}, {scale: scale},],}} source={wallMat} />;
}
return (
wall
);
}
…
Wall.js
geildanke.com @fischaelameer
…
import Wall from './Wall';
class Room extends React.Component {
render() {
return(
<View>
<Wall scale={[5, 0.2, 10]} translate={[0, -2.9, -5.02]} />
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
<Wall hasWindow scale={[5, 3, 0.02]} translate={[0, 0, 4.98]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[-5.02, 0, -5.02]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[5.02, 0, -5.02]} />
</View>
);
}
}
…
Room.js
geildanke.com @fischaelameer
…
import Wall from './Wall';
class Room extends React.Component {
render() {
return(
<View>
<Wall scale={[5, 0.2, 10]} translate={[0, -2.9, -5.02]} />
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
<Wall hasWindow scale={[5, 3, 0.02]} translate={[0, 0, 4.98]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[-5.02, 0, -5.02]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[5.02, 0, -5.02]} />
</View>
);
}
}
…
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
Room.js
geildanke.com @fischaelameer
…
import Wall from './Wall';
class Room extends React.Component {
render() {
return(
<View>
<Wall scale={[5, 0.2, 10]} translate={[0, -2.9, -5.02]} />
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
<Wall hasWindow scale={[5, 3, 0.02]} translate={[0, 0, 4.98]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[-5.02, 0, -5.02]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[5.02, 0, -5.02]} />
</View>
);
}
}
…
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
Room.js
geildanke.com @fischaelameer
…
import Wall from './Wall';
class Room extends React.Component {
render() {
return(
<View>
<Wall scale={[5, 0.2, 10]} translate={[0, -2.9, -5.02]} />
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
<Wall hasWindow scale={[5, 3, 0.02]} translate={[0, 0, 4.98]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[-5.02, 0, -5.02]} />
<Wall hasWindow scale={[0.02, 3, 10]} translate={[5.02, 0, -5.02]} />
</View>
);
}
}
…
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
Room.js
geildanke.com @fischaelameer
x
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
geildanke.com @fischaelameer
y
x
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
geildanke.com @fischaelameer
y
x
z
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
geildanke.com @fischaelameer
y
x
z
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
geildanke.com @fischaelameer
y
x
z 1 unit = 1 meter
1
1
1
<Wall scale={[5, 3, 0.2]} translate={[0, 0, -5]} />
geildanke.com @fischaelameer
3D Coordinate System, Units & Scaling
Flexbox Layout
Animations (Animated API)
React VR Components
geildanke.com @fischaelameer
3D Coordinate System, Units & Scaling
Flexbox Layout
Animations (Animated API)
React VR Components
geildanke.com @fischaelameer
…
let texture = this.props.texture,
imageWidth = this.props.width;
<Image
style={{
margin: 0.05,
width: imageWidth,
height: imageWidth,
}}
source={texture}
/>
…
GalleryImage.js
geildanke.com @fischaelameer
…
for (let i = 0; i < iMax; i += 1) {
images.push(
<GalleryImage
key={i}
texture={config[i].texture}
index={i}
length={this.numberOfImages}
width={this.imageWidth} />
);
}
…
GalleryImages.js
geildanke.com @fischaelameer
…
for (let i = 0; i < iMax; i += 1) {
images.push(
<GalleryImage
key={i}
texture={config[i].texture}
index={i}
length={this.numberOfImages}
width={this.imageWidth} />
);
}
…
…
<View>
{images}
</View>
…
GalleryImages.js
geildanke.com @fischaelameer
…
for (let i = 0; i < iMax; i += 1) {
images.push(
<GalleryImage
key={i}
texture={config[i].texture}
index={i}
length={this.numberOfImages}
width={this.imageWidth} />
);
}
…
…
<View
style={{
flexDirection: 'row',
}}
>
{images}
</View>
…
GalleryImages.js
geildanke.com @fischaelameer
geildanke.com @fischaelameer
3D Coordinate System, Units & Scaling
Flexbox Layout
Animations (Animated API)
React VR Components
geildanke.com @fischaelameer
3D Coordinate System, Units & Scaling
Flexbox Layout
Animations (Animated API)
React VR Components
geildanke.com @fischaelameer
GalleryImages.js
…
class GalleryImages extends React.Component {
constructor(props) {
super();
this.state = {
scrollValue: new Animated.Value(0),
};
}
componentWillMount() {
Animated.timing(
this.state.scrollValue,
{
toValue: 60,
duration: 2000,
easing: Easing.linear,
}
).start();
}
…
geildanke.com @fischaelameer
GalleryImages.js
…
class GalleryImages extends React.Component {
constructor(props) {
super();
this.state = {
scrollValue: new Animated.Value(0),
};
}
componentWillMount() {
Animated.timing(
this.state.scrollValue,
{
toValue: 60,
duration: 2000,
easing: Easing.linear,
}
).start();
}
…
…
<Animated.View
style={{
flexDirection: 'row',
transform: [
{translateX: this.state.scrollValue},
],
}}
>
{images}
</Animated.View>
…
geildanke.com @fischaelameer
3D Coordinate System, Units & Scaling
Flexbox Layout
Animations (Animated API)
React VR Components
geildanke.com @fischaelameer
View
Image
Core Components
Pano
Mesh
React VR Components
AmbientLight, PointLight,
geildanke.com @fischaelameer
View
Image
Text
Core Components
Pano
Mesh
React VR Components
AmbientLight, PointLight,
geildanke.com @fischaelameer
View
Image
Text
Core Components
Pano
Mesh
React VR Components
AmbientLight, PointLight,
DirectionalLight, SpotLight
geildanke.com @fischaelameer
View
Image
Text
Core Components
Pano
Mesh
React VR Components
VrButton
AmbientLight, PointLight,
DirectionalLight, SpotLight
geildanke.com @fischaelameer
View
Image
Text
Core Components
Pano
Mesh
React VR Components
VrButton
AmbientLight, PointLight,
DirectionalLight, SpotLight
Sound
geildanke.com @fischaelameer
UX Design for VR
geildanke.com @fischaelameer
Comfort
Interpretability
Usefulness
Delight
Beau Cronin
https://medium.com/@beaucronin/the-hierarchy-of-needs-in-virtual-reality-development-4333a4833acc
geildanke.com @fischaelameer
Presence
Comfort
Interpretability
Usefulness
Delight
Beau Cronin
https://medium.com/@beaucronin/the-hierarchy-of-needs-in-virtual-reality-development-4333a4833acc
geildanke.com @fischaelameer
Ergonomics
geildanke.com @fischaelameer
It was the pioneer days; people had to make their own interrogation rooms. Out of
cornmeal. These endless days are finally ending in a blaze. When I say, 'I love you,'
it's not because I want you or because I can't have you. It's my estimation that every
man ever got a statue made of him was one kind of sommbitch or another. Oh my god you
will never believe what happened at school today. From beneath you, it devours. I am
never gonna see a merman, ever.
It was supposed to confuse him, but it just made him peppy. It was like the Heimlich,
with stripes! How did your brain even learn human speech? I'm just so curious.
Apocalypse, we've all been there; the same old trips, why should we care? Frankly, it's
ludicrous to have these interlocking bodies and not...interlock. I just don't see why
everyone's always picking on Marie-Antoinette. You're the one freaky thing in my freaky
world that still makes sense to me. You are talking crazy-person talk.
http://www.commercekitchen.com/whedon-ipsum/
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
70°
geildanke.com @fischaelameer
130°
Comfortably bending 30° to each side
geildanke.com @fischaelameer
230°
Stretching 80° to each side
https://www.youtube.com/watch?v=00vzW2-PvvE
geildanke.com @fischaelameer
0.5m
20m
https://www.youtube.com/watch?v=00vzW2-PvvE
geildanke.com @fischaelameer
~20px
~10ppd
< 20px
60ppd
geildanke.com @fischaelameer
avoid eyestrain: use darker colors
avoid focussing on different depths
do not trigger phobias
use correct scales
do not move things fast towards the camera
do not attach things near the camera
make the user comfortable
geildanke.com @fischaelameer
avoid eyestrain: use darker colors
avoid focussing on different depths
do not trigger phobias
use correct scales
do not move things fast towards the camera
do not attach things near the camera
make the user comfortable
geildanke.com @fischaelameer
avoid eyestrain: use darker colors
avoid focussing on different depths
do not trigger phobias
use correct scales
do not move things fast towards the camera
do not attach things near the camera
make the user comfortable
geildanke.com @fischaelameer
avoid eyestrain: use darker colors
avoid focussing on different depths
do not trigger phobias
use correct scales
do not move things fast towards the camera
do not attach things near the camera
make the user comfortable
geildanke.com @fischaelameer
avoid eyestrain: use darker colors
avoid focussing on different depths
do not trigger phobias
use correct scales
do not move things fast towards the camera
do not attach things near the camera
make the user comfortable
geildanke.com @fischaelameer
avoid eyestrain: use darker colors
avoid focussing on different depths
do not trigger phobias
use correct scales
do not move things fast towards the camera
do not attach things near the camera
make the user comfortable
geildanke.com @fischaelameerIcon made by Freepik from www.flaticon.com
geildanke.com @fischaelameerIcon made by Freepik from www.flaticon.com
geildanke.com @fischaelameer
geildanke.com @fischaelameer
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
no acceleration
do not move the horizon or the camera
always keep a low latency and a high frame rate
avoid flicker and blur
add a stable focus point
support short usage
abstract design is better than realistic
do not make your users sick!
geildanke.com @fischaelameer
You are responsible for the 

well-being of your users!
geildanke.com @fischaelameer
http://www.uxofvr.com/
https://iswebvrready.org/
General information
https://webvr-slack.herokuapp.com/
https://www.reddit.com/r/reactvr/
Community
https://www.reddit.com/r/WebVR/
https://w3c.github.io/webvr/
https://github.com/googlevr/webvr-polyfill
https://threejs.org/
API, frameworks, libraries
https://facebookincubator.github.io/react-vr/index.html
https://facebookincubator.github.io/react-vr/docs/getting-started.html
https://github.com/facebookincubator/react-vr
geildanke.com @fischaelameer
https://geildanke.com/en/vr
Thank you!
@fischaelameer

Weitere ähnliche Inhalte

Was ist angesagt?

Yearning jQuery
Yearning jQueryYearning jQuery
Yearning jQuery
Remy Sharp
 
Звиад Кардава "Android Things + Google Weave"
Звиад Кардава "Android Things + Google Weave" Звиад Кардава "Android Things + Google Weave"
Звиад Кардава "Android Things + Google Weave"
IT Event
 

Was ist angesagt? (20)

Build the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-FrameBuild the Virtual Reality Web with A-Frame
Build the Virtual Reality Web with A-Frame
 
WebVR - JAX 2016
WebVR -  JAX 2016WebVR -  JAX 2016
WebVR - JAX 2016
 
More Ways to Make Your Users Sick – A talk about WebVR and UX Design
More Ways to Make Your Users Sick – A talk about WebVR and UX DesignMore Ways to Make Your Users Sick – A talk about WebVR and UX Design
More Ways to Make Your Users Sick – A talk about WebVR and UX Design
 
WebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive WebWebVR: Developing for the Immersive Web
WebVR: Developing for the Immersive Web
 
React-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR DevelopmentReact-VR: An Early Experiment with React and WebGL for VR Development
React-VR: An Early Experiment with React and WebGL for VR Development
 
Webrender 1.0
Webrender 1.0Webrender 1.0
Webrender 1.0
 
Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5Hacking Reality: Browser-Based VR with HTML5
Hacking Reality: Browser-Based VR with HTML5
 
Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016Introduction to WebVR Autodesk Forge 2016
Introduction to WebVR Autodesk Forge 2016
 
Browsers with Wings
Browsers with WingsBrowsers with Wings
Browsers with Wings
 
The next frontier: WebGL and WebVR
The next frontier: WebGL and WebVRThe next frontier: WebGL and WebVR
The next frontier: WebGL and WebVR
 
Yearning jQuery
Yearning jQueryYearning jQuery
Yearning jQuery
 
HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymore
 
Getting Started with Web VR
Getting Started with Web VR Getting Started with Web VR
Getting Started with Web VR
 
Web vr creative_vr
Web vr creative_vrWeb vr creative_vr
Web vr creative_vr
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScript
 
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
 
Building AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScriptBuilding AR and VR Experiences for Web Apps with JavaScript
Building AR and VR Experiences for Web Apps with JavaScript
 
Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]Backbone/Marionette recap [2015]
Backbone/Marionette recap [2015]
 
Mixed Realities for Web - Carsten Sandtner - Codemotion Amsterdam 2018
Mixed Realities for Web - Carsten Sandtner - Codemotion Amsterdam 2018Mixed Realities for Web - Carsten Sandtner - Codemotion Amsterdam 2018
Mixed Realities for Web - Carsten Sandtner - Codemotion Amsterdam 2018
 
Звиад Кардава "Android Things + Google Weave"
Звиад Кардава "Android Things + Google Weave" Звиад Кардава "Android Things + Google Weave"
Звиад Кардава "Android Things + Google Weave"
 

Ähnlich wie Goodbye, Flatland! An introduction to React VR and what it means for web developers

Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.js
Verold
 

Ähnlich wie Goodbye, Flatland! An introduction to React VR and what it means for web developers (20)

How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VRHow to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
How to Make Your Users Sick in 60 Seconds – About UX Design, WebVR and React VR
 
Migrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityMigrating your Web app to Virtual Reality
Migrating your Web app to Virtual Reality
 
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
 
Goodbye, Flatland! An introduction to WebVR and what it means for web developers
Goodbye, Flatland! An introduction to WebVR and what it means for web developersGoodbye, Flatland! An introduction to WebVR and what it means for web developers
Goodbye, Flatland! An introduction to WebVR and what it means for web developers
 
Going web native
Going web nativeGoing web native
Going web native
 
Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017
 
From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)From Idea to App (or “How we roll at Small Town Heroes”)
From Idea to App (or “How we roll at Small Town Heroes”)
 
I Can't Believe It's Not Flash
I Can't Believe It's Not FlashI Can't Believe It's Not Flash
I Can't Believe It's Not Flash
 
Reactive Type-safe WebComponents
Reactive Type-safe WebComponentsReactive Type-safe WebComponents
Reactive Type-safe WebComponents
 
Desktop, Web e Mobile
Desktop, Web e MobileDesktop, Web e Mobile
Desktop, Web e Mobile
 
Augmented reality in web rtc browser
Augmented reality in web rtc browserAugmented reality in web rtc browser
Augmented reality in web rtc browser
 
React, Flux and a little bit of Redux
React, Flux and a little bit of ReduxReact, Flux and a little bit of Redux
React, Flux and a little bit of Redux
 
React && React Native workshop
React && React Native workshopReact && React Native workshop
React && React Native workshop
 
Vue JS @ MindDoc. The progressive road to online therapy
Vue JS @ MindDoc. The progressive road to online therapyVue JS @ MindDoc. The progressive road to online therapy
Vue JS @ MindDoc. The progressive road to online therapy
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.js
 
Yeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web appsYeoman AngularJS and D3 - A solid stack for web apps
Yeoman AngularJS and D3 - A solid stack for web apps
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint Workshop
 
Reactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJSReactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJS
 
The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...
The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...
The Web Components interoperability challenge - Horacio Gonzalez - Codemotion...
 
Webpack Encore Symfony Live 2017 San Francisco
Webpack Encore Symfony Live 2017 San FranciscoWebpack Encore Symfony Live 2017 San Francisco
Webpack Encore Symfony Live 2017 San Francisco
 

Mehr von GeilDanke

Mehr von GeilDanke (10)

WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
WebXR: A New Dimension For The Web Writing Virtual and Augmented Reality Apps...
 
Using New Web APIs For Your Own Pleasure – How I Wrote New Features For My Vi...
Using New Web APIs For Your Own Pleasure – How I Wrote New Features For My Vi...Using New Web APIs For Your Own Pleasure – How I Wrote New Features For My Vi...
Using New Web APIs For Your Own Pleasure – How I Wrote New Features For My Vi...
 
Using New Web APIs For Your Own Pleasure
Using New Web APIs For Your Own PleasureUsing New Web APIs For Your Own Pleasure
Using New Web APIs For Your Own Pleasure
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web Technology
 
Creating Augmented Reality Apps with Web Technology
Creating Augmented Reality Apps with Web TechnologyCreating Augmented Reality Apps with Web Technology
Creating Augmented Reality Apps with Web Technology
 
2016 First steps with Angular 2 – enterjs
2016 First steps with Angular 2 – enterjs2016 First steps with Angular 2 – enterjs
2016 First steps with Angular 2 – enterjs
 
2014 HTML und CSS für Designer – Pubkon
2014 HTML und CSS für Designer – Pubkon2014 HTML und CSS für Designer – Pubkon
2014 HTML und CSS für Designer – Pubkon
 
2013 Digitale Magazine erstellen - Konzeption und Redaktion
2013 Digitale Magazine erstellen - Konzeption und Redaktion2013 Digitale Magazine erstellen - Konzeption und Redaktion
2013 Digitale Magazine erstellen - Konzeption und Redaktion
 
2014 Adobe DPS Update 29
2014 Adobe DPS Update 292014 Adobe DPS Update 29
2014 Adobe DPS Update 29
 
2012 Digital Publishing IDUG Stuttgart
2012 Digital Publishing IDUG Stuttgart2012 Digital Publishing IDUG Stuttgart
2012 Digital Publishing IDUG Stuttgart
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Goodbye, Flatland! An introduction to React VR and what it means for web developers