SlideShare a Scribd company logo
1 of 20
Download to read offline
Samsung Open Source Group 1 https://social.samsunginter.net/@rzr #LavalVirtual2019
WoTxR:
From Web of Things to XR
using Free Libre Open Source Software
Philippe Coval
Samsung Open Source Group / SRUK
mailto:p.coval@samsung.com
The 21st international Exhibition and Conference
https://is.gd/webxr #LavalVirtual2019, Laval, France <2019-03-20>
Samsung Open Source Group 2 https://social.samsunginter.net/@rzr #LavalVirtual2019
$ who is Philippe Coval
●
Software engineer for Samsung OSG
– Belongs to SRUK team, based in Rennes, France
– Interest: Web of Things with “Privacy by Design”
●
Not an XR expert but past 3D experiences*:
– Studied 3D at University (Toulouse, 2000), more VR/AR at INRIA, Orange
– Diet3D, OpenGL, VRML/EAI, ARToolkitPlus…
●
In 2019 at FOSDEM, met famous XR expert Fabien Benetou:
– And we hacked WoTxR PoC: bridge between WoT+XR (check @MozHacks)
●
Ping me online: https://social.samsunginter.net/@rzr
Samsung Open Source Group 3 https://social.samsunginter.net/@rzr #LavalVirtual2019
WoTxR: Realtime webthings + XR twins
https://youtu.be/s3r8pQtzhAU#wotxr-20190320rzr
Samsung Open Source Group 4 https://social.samsunginter.net/@rzr #LavalVirtual2019
Javascript the language of Web (of Things)
●
IoT.js an alternative runtime inspired by Node.js:
– Powered by JerryScript engine designed for micro-controllers
– Base features: IO (I2C, GPIO...), Network (HTTP/S, MQTT, WS) …
●
Modules: mastodon-lite, generic-sensors-lite
– Supporting: RT, GNU/Linux ...
●
WebThings can be build using webthing-iotjs module:
– Standalone HTTP servers exposing Mozilla Things API:
●
RESTful architecture: read, update operations
– Can be connected to MozIoT “PrivacyByDesign” gateway
– Or queried from the browser in SVG, HTML or 3D !
Samsung Open Source Group 5 https://social.samsunginter.net/@rzr #LavalVirtual2019
Run a “color sensor WebThing” with IoT.js
●
Install IoT.js for WebThing-IotJs (GNU/Linux, TizenRT, WLS...)
– https://github.com/rzr/webthing-iotjs/wiki/IotJs
●
git clone https://github.com/samsunginternet/color-sensor-js
– cd color-sensor-js
– iotjs lib/tcs34725.js # => log: value=[7779,36778,11173,42766]
– make -C example/color-sensor-webthing start
– curl http://localhost:8888/properties/ # => {"color": "#af0695"}
●
Or run webthing in the cloud:
– https://color-sensor-webthing.glitch.me
Samsung Open Source Group 6 https://social.samsunginter.net/@rzr #LavalVirtual2019
●
function ColorProperty(thing) {
webthing.Property.call(this, thing, 'color',
new webthing.Value(‘#000000’),
{ '@type': 'colorProperty', type: 'string',
readOnly: true });
}
//…
●
var thing = new webthing.Thing
(‘ColorSensor’[‘ColorControl’]);
●
thing.addProperty(new ColorProperty(thing));
//…
●
server.start();
Implementing WebThings
$ curl http://localhost:8888
{ ...
"properties":{"color": ...
"links":[
{"rel":"property",
"href":"/properties/color"
…
Samsung Open Source Group 7 https://social.samsunginter.net/@rzr #LavalVirtual2019
Sensor updating webthing
var ColorSensor = require("color-sensor-js/example");
function ColorProperty(thing) {
var that = this;
Webthing.Property.call(..., "color", new webthing.Value...
this.sensor = new ColorSensor();
this.sensor.onreading = function() {
that.value.notifyOfExternalUpdate(self.sensor.color);
};
this.sensor.start();
}
$ curl http://localhost:8888/properties # => {"color": "#af0695"}
Samsung Open Source Group 8 https://social.samsunginter.net/@rzr #LavalVirtual2019
Immersive Web
●
Not new idea:
– VRML97 plugins controlled by Java applets (EAI, RMI...)
●
But a successful evolution:
– HTML5, WebGL, Three.js, WebVR, OpenVR, WebXR, OpenXR...
●
A-Frame: Free and Libre opensource framework
– Originally from Mozilla, HTML for VR, Uses Web components
– Support: VR headsets, GearVR, GearVR2017 (with controller)
●
Using most workbrowsers: SamungInternet (svrbrowser), Firefox or chromium based...
●
Exokit: Native VR/AR/XR engine for JavaScript (WebGL)
Samsung Open Source Group 9 https://social.samsunginter.net/@rzr #LavalVirtual2019
A-Frame’s scene in DOM
●
<script src="https://aframe.io/releases/0.9.0/aframe.min.js">
</script>
●
<a-scene>
●
<a-sphere id="color" color="#FF0000" position="0 0 -5">
</a-sphere>
●
<a-cylinder id="base" color="#777"
radius=".6" position="0 -1 -5">
</a-cylinder>
●
</a-scene>
Samsung Open Source Group 10 https://social.samsunginter.net/@rzr #LavalVirtual2019
DOM manipulation from Javascript
<script>
setTimeout(function(){
var el = document.getElementById("color");
el.setAttribute("color", "#00FF00");
}, 1000);
</script>
●
<script src="https://aframe.io/releases/0.9.0/aframe.min.js">
</script>
●
<a-scene>
●
<a-sphere id="color" color="#FF0000" position="0 0 -5">
</a-sphere>
●
<a-cylinder ...
●
</a-scene>
Samsung Open Source Group 11 https://social.samsunginter.net/@rzr #LavalVirtual2019
●
// TODO: Update with your webthing IP in LAN : eg: http://localhost:8888
●
const url = "https://samsunginternet-color-sensor-js.glitch.me";
const name = "color";
●
const el = document.getElementById(name); // The light bulb’s sphere
fetch(url)
.then(function(response) { return response.json(); })
.then(function(json) { el.setAttribute(name, json[name]); });
●
// Challenge: use PUT to update properties of actuators’
Updating device property to his 3D twin
Samsung Open Source Group 12 https://social.samsunginter.net/@rzr #LavalVirtual2019
Let’s boot digital worlds on the web of thing
●
Build more webthings using your favorite language
●
Install Mozilla gateway in your home network
●
Connect your webthings to gateway
– Control them using the progressive web app
●
Try the alternate Progressive Web App to browse them in XR:
– http://github.com/samsunginternet/webthings-webapp
●
More to come:
– https://github.com/rzr/webthing-iotjs/wiki/XR
Samsung Open Source Group 13 https://social.samsunginter.net/@rzr #LavalVirtual2019
References
●
https://github.com/rzr/webthing-iotjs/wiki/
– https://github.com/rzr/webthing-iotjs/wiki/Sensor
●
https://github.com/SamsungInternet/color-sensor-js
●
https://github.com/rzr/webthing-iotjs/wiki/XR
– https://github.com/tizenteam/aframe-ui-widgets/pull/17#
●
https://hacks.mozilla.org/2019/03/connecting-real-things-to-virtual-worlds-using-web/
●
https://hub.samsunginter.net/
– https://github.com/immersive-web/webvr-polyfill
●
https://aframe.io/
●
https://iot.mozilla.org/
●
https://monado.dev/
●
https://www.khronos.org/openxr
●
https://github.com/webmixedreality/exokit
●
https://www.laval-virtual.com/schedule-2019/
14 https://social.samsunginter.net/@rzrSamsung Open Source Group 2019
Q&A ?
(or Extras?)
Ask now or online:
https://social.samsunginter.net/@rzr
Samsung Open Source Group 15 https://social.samsunginter.net/@rzr #LavalVirtual2019
Controlling real data & consuming OpenData
https://youtu.be/OT0Ahuy3Cv4#webthing-iotjs-opendata-20190202rzr
16 https://social.samsunginter.net/@rzrSamsung Open Source Group 2019
Demo: IoT gateway, ESP MCU, WebApp
https://youtu.be/vzoUJ-v5h38#webthing-esp8266-webapp-20180602rzr
●
●
https://vimeo.com/273037442
●
webthing-esp8266-webapp-20180602rzr
●
https://youtu.be/vzoUJ-v5h38
●
https://vimeo.com/user12599872/
●
webthing-esp8266-webapp-20180602rzr
Samsung Open Source Group 17 https://social.samsunginter.net/@rzr #LavalVirtual2019
WebThings-WebApp: Tizen or PWA (sbrowser)
https://youtu.be/S_mHYu5-iYM#webthing-webapp-pwa-20180629rzr
https://youtu.be/S
_mHYu5-iYM#we
bthing-webapp-p
wa-20180629rzr
Samsung Open Source Group 18 https://social.samsunginter.net/@rzr #LavalVirtual2019
*3D for the Web: Lessons from the past
●
Several attempts before WebGL (2011)
●
Y2K: Java applets ?
– Software rendering
●
No OpenGL
●
Just Triangles, Lines or pixels: performance impact
– Portable?
●
Applet plugins weren’t opensource first
– Until, gcj, OpenJDK
●
All failed in integration into browsers
– Bad performance
– Security policies ?
●
Same “death” as shockwave/adobe flash
●
In 2019 we can assume that JS won
Samsung Open Source Group 19 https://social.samsunginter.net/@rzr #LavalVirtual2019
Dynamic 3D scenes
●
VRML97 and VRML2
– Various VRML plugins
– Scene graph
– Descriptive script (like PoV-ray)
– OpenGL support
●
HW acceleration
– Most were closed sources
●
Except openvrml
– Superseded by Web3D (XML)
●
Still Java applets for
– Manipulating scene graph
– Javascript eventually
Samsung Open Source Group 20 https://social.samsunginter.net/@rzr #LavalVirtual2019
Real time connectivity
●
Before REST (2000)
– and WebSockets (2011)
●
Java RMI vs AJAX
– Security policies
– Custom ports
– Proxy blockers?
●
Sensors (before W3C G-sensors)
– Costly
– Closed source
●
Drivers
●
Middlewares
●
Second life was native

More Related Content

Similar to wotxr-20190320rzr

webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrPhil www.rzr.online.fr
 
Pronounced S-pro-ut-Co-re (Introduction to SproutCore)
Pronounced S-pro-ut-Co-re (Introduction to SproutCore)Pronounced S-pro-ut-Co-re (Introduction to SproutCore)
Pronounced S-pro-ut-Co-re (Introduction to SproutCore)Julio Javier Cicchelli
 
Use open source software to develop ideas at work
Use open source software to develop ideas at workUse open source software to develop ideas at work
Use open source software to develop ideas at workSammy Fung
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentJustin James
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)Samsung Open Source Group
 
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfFarHanWasif1
 
Engineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) DevelopmentEngineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) DevelopmentLiving Online
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalAdyax
 
Automated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceAutomated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceDani Llewellyn
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilitySamsung Open Source Group
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Tom Deryckere
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009Tom Deryckere
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019PhuocNT (Fresher.VN)
 
Mobile & android apps presentation
Mobile & android apps  presentationMobile & android apps  presentation
Mobile & android apps presentationAya Taleb
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 

Similar to wotxr-20190320rzr (20)

webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
 
webthing-iotjs-20181027rzr
webthing-iotjs-20181027rzrwebthing-iotjs-20181027rzr
webthing-iotjs-20181027rzr
 
Pronounced S-pro-ut-Co-re (Introduction to SproutCore)
Pronounced S-pro-ut-Co-re (Introduction to SproutCore)Pronounced S-pro-ut-Co-re (Introduction to SproutCore)
Pronounced S-pro-ut-Co-re (Introduction to SproutCore)
 
Use open source software to develop ideas at work
Use open source software to develop ideas at workUse open source software to develop ideas at work
Use open source software to develop ideas at work
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
 
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdfAstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
AstroLabs_Academy_Learning_to_Code-Coding_Bootcamp_Day1.pdf
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
IoT-javascript-2019-fosdem
IoT-javascript-2019-fosdemIoT-javascript-2019-fosdem
IoT-javascript-2019-fosdem
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
Engineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) DevelopmentEngineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) Development
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile Drupal
 
Automated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceAutomated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build Service
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 
Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019Workshop About Software Engineering Skills 2019
Workshop About Software Engineering Skills 2019
 
Mobile & android apps presentation
Mobile & android apps  presentationMobile & android apps  presentation
Mobile & android apps presentation
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 

More from Phil www.rzr.online.fr

FOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devicesFOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devicesPhil www.rzr.online.fr
 
Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529Phil www.rzr.online.fr
 

More from Phil www.rzr.online.fr (18)

Iot privacy-soscon-2019
Iot privacy-soscon-2019Iot privacy-soscon-2019
Iot privacy-soscon-2019
 
up-down-stream-flows-20190411rzr
up-down-stream-flows-20190411rzrup-down-stream-flows-20190411rzr
up-down-stream-flows-20190411rzr
 
mozilla-things-fosdem-2019
mozilla-things-fosdem-2019mozilla-things-fosdem-2019
mozilla-things-fosdem-2019
 
tizen-rt-javascript-20181011
tizen-rt-javascript-20181011tizen-rt-javascript-20181011
tizen-rt-javascript-20181011
 
osvehicle-connected-20160429
osvehicle-connected-20160429osvehicle-connected-20160429
osvehicle-connected-20160429
 
tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916
 
tizen-maintain-20150413rzr
tizen-maintain-20150413rzrtizen-maintain-20150413rzr
tizen-maintain-20150413rzr
 
Iotivity atmel-20150328rzr
Iotivity atmel-20150328rzrIotivity atmel-20150328rzr
Iotivity atmel-20150328rzr
 
Tizen store-z1-20150228rzr
Tizen store-z1-20150228rzrTizen store-z1-20150228rzr
Tizen store-z1-20150228rzr
 
Iotivity tizen-fosdem-2015
Iotivity tizen-fosdem-2015Iotivity tizen-fosdem-2015
Iotivity tizen-fosdem-2015
 
FOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devicesFOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devices
 
tizen-oshw-tds14sh
tizen-oshw-tds14shtizen-oshw-tds14sh
tizen-oshw-tds14sh
 
Tizen platform-dev-tds14sh
Tizen platform-dev-tds14shTizen platform-dev-tds14sh
Tizen platform-dev-tds14sh
 
Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603
 
tizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcovaltizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcoval
 
Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 
Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

wotxr-20190320rzr

  • 1. Samsung Open Source Group 1 https://social.samsunginter.net/@rzr #LavalVirtual2019 WoTxR: From Web of Things to XR using Free Libre Open Source Software Philippe Coval Samsung Open Source Group / SRUK mailto:p.coval@samsung.com The 21st international Exhibition and Conference https://is.gd/webxr #LavalVirtual2019, Laval, France <2019-03-20>
  • 2. Samsung Open Source Group 2 https://social.samsunginter.net/@rzr #LavalVirtual2019 $ who is Philippe Coval ● Software engineer for Samsung OSG – Belongs to SRUK team, based in Rennes, France – Interest: Web of Things with “Privacy by Design” ● Not an XR expert but past 3D experiences*: – Studied 3D at University (Toulouse, 2000), more VR/AR at INRIA, Orange – Diet3D, OpenGL, VRML/EAI, ARToolkitPlus… ● In 2019 at FOSDEM, met famous XR expert Fabien Benetou: – And we hacked WoTxR PoC: bridge between WoT+XR (check @MozHacks) ● Ping me online: https://social.samsunginter.net/@rzr
  • 3. Samsung Open Source Group 3 https://social.samsunginter.net/@rzr #LavalVirtual2019 WoTxR: Realtime webthings + XR twins https://youtu.be/s3r8pQtzhAU#wotxr-20190320rzr
  • 4. Samsung Open Source Group 4 https://social.samsunginter.net/@rzr #LavalVirtual2019 Javascript the language of Web (of Things) ● IoT.js an alternative runtime inspired by Node.js: – Powered by JerryScript engine designed for micro-controllers – Base features: IO (I2C, GPIO...), Network (HTTP/S, MQTT, WS) … ● Modules: mastodon-lite, generic-sensors-lite – Supporting: RT, GNU/Linux ... ● WebThings can be build using webthing-iotjs module: – Standalone HTTP servers exposing Mozilla Things API: ● RESTful architecture: read, update operations – Can be connected to MozIoT “PrivacyByDesign” gateway – Or queried from the browser in SVG, HTML or 3D !
  • 5. Samsung Open Source Group 5 https://social.samsunginter.net/@rzr #LavalVirtual2019 Run a “color sensor WebThing” with IoT.js ● Install IoT.js for WebThing-IotJs (GNU/Linux, TizenRT, WLS...) – https://github.com/rzr/webthing-iotjs/wiki/IotJs ● git clone https://github.com/samsunginternet/color-sensor-js – cd color-sensor-js – iotjs lib/tcs34725.js # => log: value=[7779,36778,11173,42766] – make -C example/color-sensor-webthing start – curl http://localhost:8888/properties/ # => {"color": "#af0695"} ● Or run webthing in the cloud: – https://color-sensor-webthing.glitch.me
  • 6. Samsung Open Source Group 6 https://social.samsunginter.net/@rzr #LavalVirtual2019 ● function ColorProperty(thing) { webthing.Property.call(this, thing, 'color', new webthing.Value(‘#000000’), { '@type': 'colorProperty', type: 'string', readOnly: true }); } //… ● var thing = new webthing.Thing (‘ColorSensor’[‘ColorControl’]); ● thing.addProperty(new ColorProperty(thing)); //… ● server.start(); Implementing WebThings $ curl http://localhost:8888 { ... "properties":{"color": ... "links":[ {"rel":"property", "href":"/properties/color" …
  • 7. Samsung Open Source Group 7 https://social.samsunginter.net/@rzr #LavalVirtual2019 Sensor updating webthing var ColorSensor = require("color-sensor-js/example"); function ColorProperty(thing) { var that = this; Webthing.Property.call(..., "color", new webthing.Value... this.sensor = new ColorSensor(); this.sensor.onreading = function() { that.value.notifyOfExternalUpdate(self.sensor.color); }; this.sensor.start(); } $ curl http://localhost:8888/properties # => {"color": "#af0695"}
  • 8. Samsung Open Source Group 8 https://social.samsunginter.net/@rzr #LavalVirtual2019 Immersive Web ● Not new idea: – VRML97 plugins controlled by Java applets (EAI, RMI...) ● But a successful evolution: – HTML5, WebGL, Three.js, WebVR, OpenVR, WebXR, OpenXR... ● A-Frame: Free and Libre opensource framework – Originally from Mozilla, HTML for VR, Uses Web components – Support: VR headsets, GearVR, GearVR2017 (with controller) ● Using most workbrowsers: SamungInternet (svrbrowser), Firefox or chromium based... ● Exokit: Native VR/AR/XR engine for JavaScript (WebGL)
  • 9. Samsung Open Source Group 9 https://social.samsunginter.net/@rzr #LavalVirtual2019 A-Frame’s scene in DOM ● <script src="https://aframe.io/releases/0.9.0/aframe.min.js"> </script> ● <a-scene> ● <a-sphere id="color" color="#FF0000" position="0 0 -5"> </a-sphere> ● <a-cylinder id="base" color="#777" radius=".6" position="0 -1 -5"> </a-cylinder> ● </a-scene>
  • 10. Samsung Open Source Group 10 https://social.samsunginter.net/@rzr #LavalVirtual2019 DOM manipulation from Javascript <script> setTimeout(function(){ var el = document.getElementById("color"); el.setAttribute("color", "#00FF00"); }, 1000); </script> ● <script src="https://aframe.io/releases/0.9.0/aframe.min.js"> </script> ● <a-scene> ● <a-sphere id="color" color="#FF0000" position="0 0 -5"> </a-sphere> ● <a-cylinder ... ● </a-scene>
  • 11. Samsung Open Source Group 11 https://social.samsunginter.net/@rzr #LavalVirtual2019 ● // TODO: Update with your webthing IP in LAN : eg: http://localhost:8888 ● const url = "https://samsunginternet-color-sensor-js.glitch.me"; const name = "color"; ● const el = document.getElementById(name); // The light bulb’s sphere fetch(url) .then(function(response) { return response.json(); }) .then(function(json) { el.setAttribute(name, json[name]); }); ● // Challenge: use PUT to update properties of actuators’ Updating device property to his 3D twin
  • 12. Samsung Open Source Group 12 https://social.samsunginter.net/@rzr #LavalVirtual2019 Let’s boot digital worlds on the web of thing ● Build more webthings using your favorite language ● Install Mozilla gateway in your home network ● Connect your webthings to gateway – Control them using the progressive web app ● Try the alternate Progressive Web App to browse them in XR: – http://github.com/samsunginternet/webthings-webapp ● More to come: – https://github.com/rzr/webthing-iotjs/wiki/XR
  • 13. Samsung Open Source Group 13 https://social.samsunginter.net/@rzr #LavalVirtual2019 References ● https://github.com/rzr/webthing-iotjs/wiki/ – https://github.com/rzr/webthing-iotjs/wiki/Sensor ● https://github.com/SamsungInternet/color-sensor-js ● https://github.com/rzr/webthing-iotjs/wiki/XR – https://github.com/tizenteam/aframe-ui-widgets/pull/17# ● https://hacks.mozilla.org/2019/03/connecting-real-things-to-virtual-worlds-using-web/ ● https://hub.samsunginter.net/ – https://github.com/immersive-web/webvr-polyfill ● https://aframe.io/ ● https://iot.mozilla.org/ ● https://monado.dev/ ● https://www.khronos.org/openxr ● https://github.com/webmixedreality/exokit ● https://www.laval-virtual.com/schedule-2019/
  • 14. 14 https://social.samsunginter.net/@rzrSamsung Open Source Group 2019 Q&A ? (or Extras?) Ask now or online: https://social.samsunginter.net/@rzr
  • 15. Samsung Open Source Group 15 https://social.samsunginter.net/@rzr #LavalVirtual2019 Controlling real data & consuming OpenData https://youtu.be/OT0Ahuy3Cv4#webthing-iotjs-opendata-20190202rzr
  • 16. 16 https://social.samsunginter.net/@rzrSamsung Open Source Group 2019 Demo: IoT gateway, ESP MCU, WebApp https://youtu.be/vzoUJ-v5h38#webthing-esp8266-webapp-20180602rzr ● ● https://vimeo.com/273037442 ● webthing-esp8266-webapp-20180602rzr ● https://youtu.be/vzoUJ-v5h38 ● https://vimeo.com/user12599872/ ● webthing-esp8266-webapp-20180602rzr
  • 17. Samsung Open Source Group 17 https://social.samsunginter.net/@rzr #LavalVirtual2019 WebThings-WebApp: Tizen or PWA (sbrowser) https://youtu.be/S_mHYu5-iYM#webthing-webapp-pwa-20180629rzr https://youtu.be/S _mHYu5-iYM#we bthing-webapp-p wa-20180629rzr
  • 18. Samsung Open Source Group 18 https://social.samsunginter.net/@rzr #LavalVirtual2019 *3D for the Web: Lessons from the past ● Several attempts before WebGL (2011) ● Y2K: Java applets ? – Software rendering ● No OpenGL ● Just Triangles, Lines or pixels: performance impact – Portable? ● Applet plugins weren’t opensource first – Until, gcj, OpenJDK ● All failed in integration into browsers – Bad performance – Security policies ? ● Same “death” as shockwave/adobe flash ● In 2019 we can assume that JS won
  • 19. Samsung Open Source Group 19 https://social.samsunginter.net/@rzr #LavalVirtual2019 Dynamic 3D scenes ● VRML97 and VRML2 – Various VRML plugins – Scene graph – Descriptive script (like PoV-ray) – OpenGL support ● HW acceleration – Most were closed sources ● Except openvrml – Superseded by Web3D (XML) ● Still Java applets for – Manipulating scene graph – Javascript eventually
  • 20. Samsung Open Source Group 20 https://social.samsunginter.net/@rzr #LavalVirtual2019 Real time connectivity ● Before REST (2000) – and WebSockets (2011) ● Java RMI vs AJAX – Security policies – Custom ports – Proxy blockers? ● Sensors (before W3C G-sensors) – Costly – Closed source ● Drivers ● Middlewares ● Second life was native