NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible
These very simple principles allow for rich interactions and dynamic querying
key | type | example (JSON) | function | existing compatibility |
---|---|---|---|---|
@bg | string | "@bg":"#cube" | bg: binds fog near/far based to cube x/y/z (anim) values | custom property in 3D fileformats |
@fog | string | "@fog":"#cube" | fog: binds fog near/far based to cube x/y (anim) values | custom property in 3D fileformats |
@scroll | string | "@scroll":"#cube" | texturescrolling: binds texture x/y/rot based to cube x/y/z (anim) values | custom property in 3D fileformats |
@emissive | string | "@emissive":"#cube" | day/night/mood: binds material's emissive value to cube x/y/z (anim) values | custom property in 3D fileformats |
custom property | value | trigger when |
---|---|---|
!clickme | bg=1,1,1&foo=2 | object clicked |
custom property | value | trigger when |
---|---|---|
# | foo=1 | scene |
!clickme | q=foo>2&bg=1,1,1 | object clicked and foo > 2 |
when a user clicks an object with the custom properties above, it should set the backgroundcolor to 1,1,1 when foo is greater than 2 (see previous example)
custom property | value | trigger when |
---|---|---|
!cycleme | day|noon|night | object clicked |
day | bg=1,1,1 | roundrobin |
noon | bg=0.5,0.5,0.5 | roundrobin |
night | bg=0,0,0&foo=2 | roundrobin |
when a user clicks an object with the custom properties above, it should trigger either day noon or night in roundrobin fashion.
custom property | value | trigger when |
---|---|---|
# | random | scene loaded |
#random | random | URL contains #random |
!random | day|noon|night | #random, # or click |
day | bg=1,1,1 | roundrobin |
noon | bg=0.5,0.5,0.5 | roundrobin |
night | bg=0,0,0&foo=2 | roundrobin |
custom property | value | trigger when |
---|---|---|
!random | !day | !noon |
!day | bg=1,1,1 | clicked in contextmenu |
!noon | bg=0.5,0.5,0.5 | clicked in contextmenu |
!night | bg=0,0,0&foo=2 | clicked in contextmenu |
When interacting with an object with more than one !-macro, the XR Browser should offer a contextmenu to execute a macro.
Note that only macro's can trigger roundrobin values or contextmenu's, as well as roundrobin values never ending up in the toplevel URL.
definition | explanation |
---|---|
scene | a (local/remote) 3D scene or 3D file (index.gltf e.g.) |
3D object | an object inside a scene characterized by vertex-, face- and customproperty data. |
XR fragments | URI Fragment with spatial hints like #pos=0,0,0&t=1,100 e.g. |
query | an URI Fragment-operator which queries object(s) from a scene like #q=cube |
FPS | frames per second in spatial experiences (games,VR,AR e.g.), should be as high as possible |
â—» | ascii representation of an 3D object/mesh |
(un)obtrusive | obtrusive: wrapping human text/thought in XML/HTML/JSON obfuscates human text into a salad of machine-symbols and words |