#Webbr2017 @marinalimeira_

Ois,
me chamo Marina :)

marinalimeira.com


       

Agenda

  • Histórico
  • WebVR
  • Mozilla
  • A-frame
  • ECS
  • Inspector
  • AR.js
  • Comunidade
  • Fim.

No início...

aka época do NetScape

1994

Proposta de uma linguagem de marcação para realidade virtual na web

VRML

Virtual Reality Markup Language

Porém, a web não estava preparada :(

2014

WebVR

WebVR

Browsers ganham suporte
a dispositivos de ✧VR✧

HTC VIVE,
Oculus Rift,
Samsung Gear VR,
Google Daydream
webvr.rocks

WebVR !== WebGL

sensores de um óculos VR x renderização de gráficos

w3c.github.io/webvr

"The specification is currently under active developement."

"It is not a W3C Standard nor is it on the W3C Standards Track."

Mozilla WebVR

mozvr.com

"Web é a plataforma"

Firefox OS não era uma
plataforma nova, era *a web*

Manifesto Mozilla

"As pessoas precisam ter a capacidade de moldar a Internet e suas experiências com ela."

A-frame

aframe.io

TL;DR

Construir coisas em 3D utilizando HTML

*Mesma proposta do VRML!*

Web 3D > Web 2D

e.g. Street View 3D > Google Maps 2D

Three.js

threejs.org

(ReactVR também é feito com Three.js)


A-blast
Demo: Hello, World!
            
<a-scene>
  <a-entity
    text-geometry="value: Olar, Web.br!"
    position="-2.7 1 -4"
    material="color: white"
  ></a-entity>
</a-scene>
            
          

Images 360°!

Demo: Pedra do Bauzinho - São Bento do Sapucaí/SP
            
<a-scene>
   <a-assets>
     <img id="pedra-do-bauzinho" crossorigin="anonymous"
     src="images/pedra-do-bauzinho.jpg">
   </a-assets>
   <a-sky src="#pedra-do-bauzinho"></a-sky>
</a-scene>
            
          

Entity Component System (ECS)

"entidade-componente-sistema"

Entity Component System (ECS)

  • Composição ao invés de herança
  • Cada objeto, uma entidade - que é formada por componentes

Sistema

            
<a-scene></a-scene>
            
          

Sistema

  • Escopo global e gerenciamento dos componentes
  • aka "func main()" -- ou uma thread

Entidade

            
<a-entity></a-entity>
            
          

Entidade

  • Base de todos os objetos
  • Uma entidade sem componentes === <div></div>

Componente

            
<a-entity
  geometry="primitive: box"
  material="color: purple"
  position="-1 0.5 -3"
  rotation="0 45 0"
></a-entity>
            
          
Demo: Box

Componente

  • Atributos das entidades;
  • Aparência, comportamento e funcionalidades;

Primitivas

          
<a-box
  color="purple"
  position="-1 0.5 -3"
  rotation="0 45 0"
></a-box>
          
          

Objetos em 3D!

Clara.io é uma ótima
fonte de objetos 3D

Demo: Pokemons
Demo: Pokemons w/ 360
          
<a-entity
  obj-model="obj: url(obj/pikachu/pikachu.obj);
               mtl: url(obj/pikachu/pikachu.mtl)"
></a-entity>
          
          

Web inspector

<ctrl> + <alt> + <i>

Demo: Pokemons

Realidade Aumentada

AR.js

medium.com/arjs
Hello, AR!
          
<a-scene embedded arjs>
  <a-entity
    obj-model="obj: url(obj/pokeball/pokeball.obj);
    mtl: url(obj/pokeball/pokeball.mtl)"
    position="0 0.5 0"
    scale="0.02 0.02 0.02"
    rotation="90 180 0"
  ></a-entity>
  <a-marker-camera preset='hiro'></a-marker-camera>
</a-scene>
          

Comunidade

Referências

www.w3.org/People/Raggett/vrml/vrml.html
www.mozilla.org/about/manifesto aframe.io/blog/arjs

Obrigada! :D

marinalimeira.com