XR - TizenTeam/webthing-iotjs GitHub Wiki
WoTxR : WoT to XR(VR/AR)
WORK IN PROGRESS
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 introducing to A-Frame:
Work is still in progress at:
DEMO
Usage:
- https://is.gd/wotxr (WebApp)
- https://is.gd/webxr (doc page)
- http://purl.org/aframe-twins
- https://glitch.com/@rzr
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
- 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
TWINS
- http://rzr.github.io/twins/aframe/ (on HTTP)
- http://rzr.github.io/twins/aframe/?url=https://rzr-twins.glitch.me (on HTTP)
- http://rzr.github.io/twins/aframe/?url=http://192.168.1.13:8888 (on HTTP)
- https://rzr-twins.glitch.me/properties
- https://rzr-twins.glitch.me/
COMPONENTS:
- 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
CONTROLLER:
-
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
WEBAPP:
More details on WebApp page
TODO
How to clean cache of sVRbrowser ?
- Settings app/ Force stop...
- https://refreshyourcache.com/en/cache-test/
- https://videos.support.samsung.com/detail/video/5689392646001
XR
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
MISC
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:
A-FRAME:
ANDROID:
adb="sudo adb" # TODO: setup udev
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
SVRBROWER
- 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
adb="sudo adb" # or setup udev
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
LOGIN:
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}"
AR:
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}"
- https://creator.magicleap.com/learn/guides/prismatic-getting-started
- https://glitch.com/edit/#!/ml1?path=index.html:20:1
SETUP
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')
);
BABYLONJS: (WIP)
ACTUATOR
NOTES
CORS
- http://samsunginter.net/color-sensor-js/example/color-sensor-webthing/extra/aframe.html?&url=https://color-sensor-webthing.glitch.me#
- http://rzr.github.io/twins/aframe/?url=https://rzr-twins.glitch.me# (on HTTP)
It appears that Glitch uses cookies, it would break CORS if rejected:
GLTF:
- https://sourceforge.net/p/sweethome3d/feature-requests/871/
- https://gltf-viewer.donmccurdy.com/#kiosk=1&model=https://storage.googleapis.com/blocks-town/tmp/busterDrone/busterDrone.gltf#
- https://sketchfab.com/search?features=downloadable&q=tag%3Agltf&sort_by=-likeCount&type=models#
- https://blog.mozvr.com/a-saturday-night-gltf-workflow/# GLTF
- https://github.com/KhronosGroup/glTF-Blender-IO/issues/403#
- https://fabien.benetou.fr/Events/BlenderWorkshopIMALAugust2017#Wednesday#
- https://blog.mozvr.com/gltf-exporter-in-three-js-and-a-frame/#
sudo snap install --classic blender # 2.80
/snap/blender/current/blender assets/house/house.blend
LINKS:
- 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#
- https://kigiri.github.io/fetch/#
- https://github.com/mimeindustries/MeArm/issues/5# OSHW
- https://en.wikipedia.org/wiki/COLLADA#