-
-
Notifications
You must be signed in to change notification settings - Fork 14
As a proof of concept, webthing-webapp can be also declined to use 3D widgets and provide immersive web experience:
- https://hacks.mozilla.org/2019/03/connecting-real-things-to-virtual-worlds-using-web/
- https://social.samsunginter.net/@rzr/101564201618024415
Special thanks to Fabien, for A-Frame PoC:
Work is still in progress at:
Usage:
Misc:
- https://webthings-webapp.samsunginter.net/
- https://webthings-webapp.samsunginter.net/00index.html
- https://webthings-webapp.samsunginter.net/devel.html
- https://webthings-webapp.samsunginter.net/devel.html?&viewUrl=getusermedia.html
- https://is.gd/webxr
- http://samsunginter.net/color-sensor-js/
- http://samsunginter.net/color-sensor-js/example/color-sensor-webthing/extra/aframe.html
- https://glitch.com/~color-sensor-webthing
- http://samsunginter.net/color-sensor-js/example/color-sensor-webthing/extra/aframe.html?&url=https://color-sensor-webthing.glitch.me
- http://samsunginter.net/color-sensor-js/example/color-sensor-webthing/extra/aframe.html?&url=http://192.100.0.63:8888
- http://twins.thing.cloudns.org/
- http://twins.thing.cloudns.org/?url=https://rzr-twins.glitch.me
- http://twins.thing.cloudns.org/?url=http://192.168.1.13:8888
- https://rzr-twins.glitch.me/properties
- https://github.com/caseyyee/aframe-ui-widgets# 3D Widgets
- https://github.com/etiennepinchon/aframe-material# 2D Widgets
- https://github.com/mokargas/aframe-colorwheel-component# Color
- https://github.com/supermedium/superframe/tree/master/components/event-set
-
https://glitch.com/~getusermedia
- https://glitch.com/~webcam-as-aframe-texture# GetUserMedia
-
https://www.samsung.com/uk/mobile-accessories/gear-vr-controller/#
-
https://aframe.io/docs/0.9.0/introduction/interactions-and-controllers.html
-
https://github.com/aframevr/aframe/blob/master/docs/components/laser-controls.md
-
https://github.com/aframevr/aframe/blob/master/docs/components/gearvr-controls.md
-
https://github.com/aframevr/aframe/blob/master/src/components/gearvr-controls.js
-
https://supermedium.com/superframe/components/thumb-controls/
-
https://github.com/supermedium/superframe/tree/master/components/thumb-controls
-
https://github.com/aframevr/aframe/blob/master/docs/components/tracked-controls.md
-
https://stackoverflow.com/questions/48198657/handling-gearvr-controller-events-in-aframe
-
https://github.com/caseyyee/aframe-ui-widgets/issues/11# Controller
-
https://aframe.io/docs/0.7.0/guides/building-a-basic-scene.html
-
https://github.com/aframevr/aframe/blob/master/docs/components/cursor.md#
-
https://glitch.com/~rzr-wip-gvr# Log Events
-
https://github.com/aframevr/aframe/commits/master/src/components/gearvr-controls.js
Is there any X/Y track pad events ?
com.sec.android.app.svrbrowser.apk
More details on WebApp page
How to clean cache of sVRbrowser ?
- Settings app/ Force stop ...
- https://refreshyourcache.com/en/cache-test/
- https://videos.support.samsung.com/detail/video/5689392646001
More hints to come at:
- https://github.com/rzr/webthing-iotjs/wiki/WebApp
- https://aframe.io/docs/0.2.0/components/cursor.html
- https://github.com/mayognaise/aframe-mouse-cursor-component# Released in v0.6.1
- https://github.com/wmurphyrd/aframe-super-hands-component
- https://wmurphyrd.github.io/aframe-super-hands-component/examples/mouse/# Laser
Demos:
- https://social.samsunginter.net/@rzr/101564201618024415
- https://glitch.com/~gulliver-webxr-iot
- http://gulliver.eu.org/calendrier:2019:02:09
Ideas:
- visualize opensensemap's sensors
- generic 3d browser
Log:
package=com.sec.android.app.sbrowser
url='http://is.gd/webxr'
activity='com.sec.android.app.sbrowser/.SBrowserMainActivity'
adb kill-server
adb devices -l # Plug USB before
#| List of devices attached
#| ad0ffffffffffffff device
# Stop package
adb shell am force-stop $package
# Clean cache
adb shell pm clear $package
# Start package
adb shell monkey -p $package -c android.intent.category.LAUNCHER 1
# Start activity and open URL
adb shell am start \
-n $activity \
-a android.intent.action.VIEW \
-d "$url"
# Open URL (for default browsers)
adb shell am start -a android.intent.action.VIEW -d "$url"
adb shell dumpsys package $package
adb shell ip address show dev wlan0 # note ip
adb tcpip 5555 # then disconnect usb
adb connect 192.168.1.58 # Or adapt
#| connected to 192.168.1.58:5555
- https://developer.samsung.com/internet#tech02
- https://developer.samsung.com/internet/gearvr/web-guide
- https://developer.samsung.com/internet/gearvr/releases
- https://github.com/SamsungInternet/support/issues/84# Inspect
- https://github.com/SamsungInternet/support/issues/16# Intend
- https://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=301081&messageNumber=27240&listLines=15&startId=zzzzz~&startPage=253&curPage=255
- https://immersive-web.github.io/webvr/# Legacy
- https://forums.oculusvr.com/developer/discussion/52446/samsung-internet-in-vr-mode-with-intent
package=com.sec.android.app.svrbrowser
activity=com.sec.android.app.svrbrowser/.UnityPlayerNativeActivity
application=com.sec.android.app.svrbrowser.VrBrowserApplication
url='https://is.gd/webxr'
adb shell pm list package | grep ${package}
adb shell dumpsys package $package | grep ${activity}
adb shell am force-stop $package
adb shell pm clear $package
# Plug in GearVR headset, it will switch to VR dashboard
adb shell am start -n "$activity"
# TODO: pass url
adb shell am start \
-n $activity \
-a android.intent.action.VIEW \
-d "$url"
# Workaround:
text="is.gd/webxr"
# text="http%3A%2F%2F$text"
# 1st Focus on URL bar (TODO : use adb shell input tap 300 700 ?)
adb shell input keyevent 67 && adb shell input text "$text" && adb shell input keyevent 66
- https://social.samsunginter.net/@rzr/101736969065590976
- https://github.com/SamsungInternet/blog/blob/master/content/pages/docs/remote-debugging.md
- https://stackoverflow.com/questions/45041320/adb-shell-input-text-with-space
Automated login hack:
gw_url="https://sosg.mozilla-iot.org"
token="eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ijg1NWEyYWVjLWI2NTMtNDQ3Mi04MDllLTQyNGI4ZTk1NjQyMiJ9.eyJjbGllbnRfaWQiOiJsb2NhbC10b2tlbiIsInJvbGUiOiJhY2Nlc3NfdG9rZW4iLCJzY29wZSI6Ii90aGluZ3M6cmVhZHdyaXRlIiwiaWF0IjoxNTUyNzM5MzQ4LCJpc3MiOiJodHRwczovL3Nvc2cubW96aWxsYS1pb3Qub3JnIn0.JLgc7Gd5R5IvG5AHdQb1zBG311sOyGjT4bPlqPUYma1IPaxDJYCJQvfurqkNVd2l7MtLP7IGZlBdN7B3pDLzMA"
base_url="https://webthings-webapp.samsunginter.net/"
base_url="${base_url}/login.html"
url="$base_url#?url=${gw_url}&token=${token}"
# On GNU/Linux:
xdg-open "$url"
# With exokit (TBC):
url='http://rzr.online.fr/x/vr/' # TODO
mldb launch com.webmr.exokit -v "ARGS=node --experimental-worker . ${url}"
#git clone ...
base_url="file://$PWD//"
base_url="${base_url}/login.html"
url="$base_url#?url=${gw_url}&token=${token}"
# On GNU/Linux
xdg-open "$url"
# With exokit:
mldb launch com.webmr.exokit -v "ARGS=node --experimental-worker . ${url}"
Normally it should display a cube that goes from Red to Green and then Blue:
url=http://samsunginter.net/color-sensor-js/example/color-sensor-webthing/extra/aframe.html
mldb launch com.webmr.exokit -v "ARGS=node --experimental-worker . ${url}"
See WebApp page
oauthClients.register(
new ClientRegistry(new URL('https://webthings-webapp.samsunginter.net/login.html'),
'webthings-webapp.samsunginter.net',
'WebApp Token Service',
'webthings-webapp.samsunginter.net',
'/things:readwrite')
);
oauthClients.register(
new ClientRegistry(new URL('https://webthings-webapp.samsunginter.net/index.html'),
'webthings-webapp.samsunginter.net',
'WebApp Token Service',
'webthings-webapp.samsunginter.net',
'/things:readwrite')
);
- https://immersive-web.github.io/webxr/# Specs
- https://github.com/dmarcos/document-register-element
- https://proxy-controls.donmccurdy.com/#/
- https://github.com/ianpetrarca/webvr_boilerplate
- https://www.laval-virtual.com/schedule-2019/#
- https://app.swapcard.com/widget/event/laval-virtual/planning/UGxhbm5pbmdfNTI0ODM%3D
- http://www.vorlonjs.io/
- https://codepen.io/utopiah/full/wOJgMW
- https://github.com/webmixedreality/exokit#readme
- https://github.com/aframevr/aframe/blob/master/docs/introduction/interactions-and-controllers.md
- https://github.com/Samsung/TAU#
- http://ngokevin.com/blog/aframe-component/
- https://aframe.io/examples/showcase/supercraft/
- https://deadpan-tuba.glitch.me/aframe.html
- https://glitch.com/edit/#!/airy-language?path=index.html:51:0
- http://192.168.1.12/~philippe/tmp/local/home/philippe/var/cache/url/git/ssh/github.com/rzr/webthings-webapp/src/webthings-webapp/sandbox/rzr/aframe/master/00index.html
- https://riptutorial.com/Download/aframe.pdf
- https://fabien.benetou.fr/Events/BlenderWorkshopIMALAugust2017#Thursday
Check Concept page for overview, Gateway to get started, IotJs page to install runtime to build webthing as explained in Home page.
For further experiments check Social and Sensor, or Extra parts like WebApp (for Tizen or PWA) or MCU info about running on other microcontrollers not supported by TizenRT.
While Home focus mostly on using iotjs to build webthings (on GNU/Linux or TizenRT for ARTIK05X devices).
This document is still in draft state, but reviews are always welcome, if you try to replicate it and stuck on missing instructions I would appreciate that you file issues or even better make pull request (just edit in github) that insert "TODO marks" in following chapters, like:
- TODO: please explain more this chapter and then remove this TODO line
Community contributions are welcome at:
Support is also possible, ask in:
- https://github.com/rzr/webthing-iotjs
- irc://irc.mozilla.org/#iot
WARNING: Developement branches could break over time.
Instead of maintaining "quick and dirty" demo code, I decided to split demo in smaller independents parts (which can reused) and I am upstreaming the most I can.
Then support can be done on mainline branches (or released versions).
Note that, Upstreaming can be a slow process, so snapshots links will remain until 100% of code is upstreamed.
Licence:
Reference documentation is at:
-
Concept:
- Demo Concept and Architecture
-
Gateway:
- Getting started with Mozilla IoT gateway
-
IotJs:
- Install IoT.js needed to run webthings
-
Home:
- Welcome page to build WebThings using IotJs
-
Social:
- Notification service using Mastodon FLOSS
-
TizenRT:
- webthing-iotjs on ARTIK05x
-
Sensor: and Actuator
- Physical interactions
-
Extra hints:
- Docker: About running in container
- MCU: About microcontrollers (not supported by TizenRT)
- WebApp: Alternate browser (Tizen and PWA)
- GnuLinux: Article about Edison and other
- Raspbian: Article about RaspberryPi
- Arduino: Alt For atmel or Esprissif boards
- DigitalTwins : WiP experiments
- TODO: Work in progress