SlideShare a Scribd company logo
Developing AR & VR
Applications using
React-Native
Pulkit Kakkar
Organizing Team
Facebook Developer Circle: Delhi-NCR
Independent Developer
@pulkitkkr0
www.linkedin.com/in/pulkitkkr
pulkitkkr@gmail.com
&
Agenda
WhenHowWhyWhat
All About the XR
*X ∈ { A, V, M }
History of UI & UX
Punch Cards
Key Boards
Mouse
History of UI & UX
Touch Based
UIs
Voice Controlled
UIs
“The Future is XR ”
Adaptive
filters and
Snapchat
2D Filters
Doodle
Google
Glass
Pokémon
Go
“AR Revolutions”
Is it all about just Entertainment ?
Medical Army Training
AR and it’s Applications
Types of AR Systems
Marker-Based Marker-Free
Available AR Libraries
2) Unity-3D / Unreal
• Need to learn C# scripting
• Available ArCore & ArKit Binding
• Really powerful, best if developing a game
• Not much powerful for Uis when compared to React
1) React-Native ARKit / ARCore
• Experimental
• Wrapper around Native Code
3) React-360
• Only for VR
• Limited 3D Models Support
Cross Platform
Development
• Write once, run anywhere across all mobile AR
(ARKit, ARCore) and VR (Cardboard iOS/Android,
GearVR, Daydream)
React Native
Framework
• Create apps using React Native, making it easy
for web developers to get started.
Powerful
Renderer
• Create stunning scenes with PBR, HDR, Realtime
Lighting, Physics, Particles, and more.
Rapid iteration
• Use the free Viro Testbed app to view your app
and see your changes quickly. No need to wait
for recompile. It's like refreshing a browser.
Docs
• Extensive developer support and
documentation.
Getting Started with Viro
1) react-native init ViroSample --version=0.55.1
2) cd ViroSample
3) npm install -S -E react-viro
4) Get your API Keys from https://viromedia.com/
5) Modify App.js to add your API Keys
OR
1) npm i –g react-viro-cli
2) react-viro “ProjectName”
Cross-Reality Components Nomenclature
Viro
Components
VR
<ViroVRComponent>
AR
<ViroARComponent>
XR
<ViroComponent>
Basic Componential Layout
<ViroScene>
- React-Native View
- Node(s) to ViroNavigators
- contains UI controls, 3D
objects, lights, and more
<ViroText>
- Adds Text Like <Text> or
<h1> - <h6>
- Styled Like React-Native in
general
Positioning Systems
Right Handed System
- Negative Z inside
- axis direction changed with
rotation prop
- to determine +ve rotation
use thumb rule
Left handed System
- positive Z-axis Inside
3-D Objects
• Viro have a really powerful 3-D Rendering Engine which
runs on native thread and uses graphical hardware chip of
device
• It’s Lag free but need to use optimized 3-d Files and
preferably low-poly files for mobile devices
Supported 3-D File Formats
.obj Files
- No animations
- No Conversion script required
- need .mtl materials or list of
textures
.fbx Files
- transformed to .vrx using script
at ./bin/ViroFBX
- supports skeletal animations
- use <ViroDirectionalLight>
.gltf Files
- new format
- JSON >> BIN >> PNG
Sources for 3-D models Files
Unity Assets Store
- https://assetstore.unity.com/
- hundreds of thousands of paid
and free models abailable
Mixamo
- Great project for making
avatars
- Animate them with hudreds of
free and premium animations
- https://www.mixamo.com
SketchFab
- a great place to search for free
models
- https://www.sketchfab.com
Self Modeling
- for Basics use MS Paint 3d
- Blender with textures
- Advanced Modeling MAYA 3d
Google Low-Poly
- A great open initiative by google
- Free low poly models
- Best suited models for low grade
HMDs & Mobile AR Devices
Turbo Squid
- Another great place for free 3d
Models
- https://www.turbosquid.com
3-D Objects Code Demonstration
Lightnings and it’s types
You illuminate scenes in Viro by adding lights to your ViroNode(s)
object.
Ambient Light
- illuminate all objects
- illuminate from all directions
- use <ViroAmbientLight>
Directional Light
- illuminates all objects in
range
- specified direction
- use <ViroDirectionalLight>
Spot Light
- illuminate all objects in
range
- illuminated in cone
specified by inner & outer
angle
- use <ViroSpotLight>
Point Light
- emitted from object
- diverging sphere
- use <ViroOmniLight>
Lightnings Demonstration
Point Light Spot Light
Lightnings Demonstration
Directional Light
Lightening Code Demonstration
Particle Effects
Viro's particle system enables developers to create and configure
quad emitters for building complex and intricate particle effects.
Some examples are smoke, rain, confetti, and fireworks.
Image Source
representing the
particles to emit
State the rate at
which the particle
emits and lives for
Start the emitter
When to use ViroReact ?
1) ARCore and ARKit Limitation are not an issue
2) Not a Graphic Intensive UI
3) Not building a full fledged Game
4) Not targeting High End HMDs (VR) or standalone AR
HMDs
5) Targeting Both AR & VR and maximizing cross-platform
code sharing
Thank You
Let’s build the future of UI/UX Together
@pulkitkkr0
www.linkedin.com/
in/pulkitkkr
pulkitkkr@gmail.com

More Related Content

Similar to Byte Conf React Native 2018

iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
Axway Appcelerator
 
sdc-2016-gvrf-and-io_public
sdc-2016-gvrf-and-io_publicsdc-2016-gvrf-and-io_public
sdc-2016-gvrf-and-io_public
Rick Lau
 

Similar to Byte Conf React Native 2018 (20)

AR and VR development tools and platforms
AR and VR development tools and platformsAR and VR development tools and platforms
AR and VR development tools and platforms
 
Building Your Robot using AWS Robomaker
Building Your Robot using AWS RobomakerBuilding Your Robot using AWS Robomaker
Building Your Robot using AWS Robomaker
 
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
 
Christine Perey (Perey Research & Consulting) A Survey of Commercial Enterpri...
Christine Perey (Perey Research & Consulting) A Survey of Commercial Enterpri...Christine Perey (Perey Research & Consulting) A Survey of Commercial Enterpri...
Christine Perey (Perey Research & Consulting) A Survey of Commercial Enterpri...
 
HoloLens.pdf
HoloLens.pdfHoloLens.pdf
HoloLens.pdf
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 
ReactConf 2018: Developing Immersive cross-platform AR and VR Apps using Reac...
ReactConf 2018: Developing Immersive cross-platform AR and VR Apps using Reac...ReactConf 2018: Developing Immersive cross-platform AR and VR Apps using Reac...
ReactConf 2018: Developing Immersive cross-platform AR and VR Apps using Reac...
 
Ferguson VR Hackathon - May 6, 2017
Ferguson VR Hackathon - May 6, 2017Ferguson VR Hackathon - May 6, 2017
Ferguson VR Hackathon - May 6, 2017
 
React Native e IoT - Un progetto complesso
React Native e IoT - Un progetto complessoReact Native e IoT - Un progetto complesso
React Native e IoT - Un progetto complesso
 
Build UI of the Future with React 360
Build UI of the Future with React 360Build UI of the Future with React 360
Build UI of the Future with React 360
 
ARE 2011 AR Authoring
ARE 2011 AR AuthoringARE 2011 AR Authoring
ARE 2011 AR Authoring
 
Augmenting reality: Bring digital objects into the real world
Augmenting reality: Bring digital objects into the real worldAugmenting reality: Bring digital objects into the real world
Augmenting reality: Bring digital objects into the real world
 
Making Augmented Reality Applications with Android NDK
Making Augmented Reality Applications with Android NDKMaking Augmented Reality Applications with Android NDK
Making Augmented Reality Applications with Android NDK
 
Immerge yourself in a new Reality - Alessandro Pozone - Codemotion Rome 2018
Immerge yourself in a new Reality - Alessandro Pozone - Codemotion Rome 2018Immerge yourself in a new Reality - Alessandro Pozone - Codemotion Rome 2018
Immerge yourself in a new Reality - Alessandro Pozone - Codemotion Rome 2018
 
Immerge yourself in a new Reality
Immerge yourself in a new RealityImmerge yourself in a new Reality
Immerge yourself in a new Reality
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
 
sdc-2016-gvrf-and-io_public
sdc-2016-gvrf-and-io_publicsdc-2016-gvrf-and-io_public
sdc-2016-gvrf-and-io_public
 
Augmented reality
Augmented realityAugmented reality
Augmented reality
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanet
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

Byte Conf React Native 2018

  • 1. Developing AR & VR Applications using React-Native
  • 2. Pulkit Kakkar Organizing Team Facebook Developer Circle: Delhi-NCR Independent Developer @pulkitkkr0 www.linkedin.com/in/pulkitkkr pulkitkkr@gmail.com &
  • 3. Agenda WhenHowWhyWhat All About the XR *X ∈ { A, V, M }
  • 4. History of UI & UX Punch Cards Key Boards Mouse
  • 5. History of UI & UX Touch Based UIs Voice Controlled UIs
  • 8. Is it all about just Entertainment ? Medical Army Training
  • 9. AR and it’s Applications
  • 10. Types of AR Systems Marker-Based Marker-Free
  • 11. Available AR Libraries 2) Unity-3D / Unreal • Need to learn C# scripting • Available ArCore & ArKit Binding • Really powerful, best if developing a game • Not much powerful for Uis when compared to React 1) React-Native ARKit / ARCore • Experimental • Wrapper around Native Code 3) React-360 • Only for VR • Limited 3D Models Support
  • 12. Cross Platform Development • Write once, run anywhere across all mobile AR (ARKit, ARCore) and VR (Cardboard iOS/Android, GearVR, Daydream) React Native Framework • Create apps using React Native, making it easy for web developers to get started. Powerful Renderer • Create stunning scenes with PBR, HDR, Realtime Lighting, Physics, Particles, and more. Rapid iteration • Use the free Viro Testbed app to view your app and see your changes quickly. No need to wait for recompile. It's like refreshing a browser. Docs • Extensive developer support and documentation.
  • 13. Getting Started with Viro 1) react-native init ViroSample --version=0.55.1 2) cd ViroSample 3) npm install -S -E react-viro 4) Get your API Keys from https://viromedia.com/ 5) Modify App.js to add your API Keys OR 1) npm i –g react-viro-cli 2) react-viro “ProjectName”
  • 15. Basic Componential Layout <ViroScene> - React-Native View - Node(s) to ViroNavigators - contains UI controls, 3D objects, lights, and more <ViroText> - Adds Text Like <Text> or <h1> - <h6> - Styled Like React-Native in general
  • 16. Positioning Systems Right Handed System - Negative Z inside - axis direction changed with rotation prop - to determine +ve rotation use thumb rule Left handed System - positive Z-axis Inside
  • 17. 3-D Objects • Viro have a really powerful 3-D Rendering Engine which runs on native thread and uses graphical hardware chip of device • It’s Lag free but need to use optimized 3-d Files and preferably low-poly files for mobile devices
  • 18. Supported 3-D File Formats .obj Files - No animations - No Conversion script required - need .mtl materials or list of textures .fbx Files - transformed to .vrx using script at ./bin/ViroFBX - supports skeletal animations - use <ViroDirectionalLight> .gltf Files - new format - JSON >> BIN >> PNG
  • 19. Sources for 3-D models Files Unity Assets Store - https://assetstore.unity.com/ - hundreds of thousands of paid and free models abailable Mixamo - Great project for making avatars - Animate them with hudreds of free and premium animations - https://www.mixamo.com SketchFab - a great place to search for free models - https://www.sketchfab.com Self Modeling - for Basics use MS Paint 3d - Blender with textures - Advanced Modeling MAYA 3d Google Low-Poly - A great open initiative by google - Free low poly models - Best suited models for low grade HMDs & Mobile AR Devices Turbo Squid - Another great place for free 3d Models - https://www.turbosquid.com
  • 20. 3-D Objects Code Demonstration
  • 21. Lightnings and it’s types You illuminate scenes in Viro by adding lights to your ViroNode(s) object. Ambient Light - illuminate all objects - illuminate from all directions - use <ViroAmbientLight> Directional Light - illuminates all objects in range - specified direction - use <ViroDirectionalLight> Spot Light - illuminate all objects in range - illuminated in cone specified by inner & outer angle - use <ViroSpotLight> Point Light - emitted from object - diverging sphere - use <ViroOmniLight>
  • 25. Particle Effects Viro's particle system enables developers to create and configure quad emitters for building complex and intricate particle effects. Some examples are smoke, rain, confetti, and fireworks. Image Source representing the particles to emit State the rate at which the particle emits and lives for Start the emitter
  • 26. When to use ViroReact ? 1) ARCore and ARKit Limitation are not an issue 2) Not a Graphic Intensive UI 3) Not building a full fledged Game 4) Not targeting High End HMDs (VR) or standalone AR HMDs 5) Targeting Both AR & VR and maximizing cross-platform code sharing
  • 27. Thank You Let’s build the future of UI/UX Together @pulkitkkr0 www.linkedin.com/ in/pulkitkkr pulkitkkr@gmail.com

Editor's Notes

  1. 1.) Greetings 2.) 3 - Key Terms Here a) Immersive Experience b) AR – VR – MR – XR (Common Reality) c) React-Native
  2. From India Started at the age of 16 Have Seen the web transitioning from ASP.Net to Jquery to React Worked on BlackBerry 10 , Nokia (PUN Intended) Finally chose Android Development and got Introduced to React Native
  3. ViroScene Vs ViroARScene VIroARSceneNavigator Vs ViroSceneNavigator 3) Generic : ViroSound, ViroText
  4. 1) Applications in ViroReact consist of Scenes, represented either by ViroScene or ViroARScene components. Scenes are the 3D equivalent of the Views found in most 2D application frameworks. They contain all the content that ViroReact renders in AR/VR: UI controls, 3D objects, lights, and more.
  5. By default, the camera is positioned at [0, 0, 0] and looks in the direction [0, 0, -1]. In frameworks with only 3DOF (3 degrees of freedom) support (like mobile VR), the camera stays at [0,0,0] until moved by the developer with the end user only able to control the rotation of the camera. On the other hand, 6DOF (6 degrees of freedom) supported frameworks allow the end user to move about their world and move the camera in the Viro Scene in response (like in AR)
  6. FBX models support skeletal animation. Skeletal animation is a hierarchical technique for animating complex geometries like humanoids. Viro supports these animations through its standard animation system. To run a skeletal animation, simply set the animation's name to the name given to the animation in the FBX file. For example, if the FBX file had an animation called "Take 001", you would run the animation like this: 2) GLTF a) A JSON-formatted file (.gltf) containing a full scene description: node hierarchy, materials, cameras, as well as descriptor information for meshes, animations, and other constructs b) Binary files (.bin) containing geometry and animation data, and other buffer-based data c) Image files (.jpg, .png) for textures