{"action":"created","issue":{"url":"https://api.github.com/repos/immersive-web/webxr/issues/330","repository_url":"https://api.github.com/repos/immersive-web/webxr","labels_url":"https://api.github.com/repos/immersive-web/webxr/issues/330/labels{/name}","comments_url":"https://api.github.com/repos/immersive-web/webxr/issues/330/comments","events_url":"https://api.github.com/repos/immersive-web/webxr/issues/330/events","html_url":"https://github.com/immersive-web/webxr/issues/330","id":304913173,"node_id":"MDU6SXNzdWUzMDQ5MTMxNzM=","number":330,"title":"Revisit session creation options and flow  ","user":{"login":"blairmacintyre","id":1348861,"node_id":"MDQ6VXNlcjEzNDg4NjE=","avatar_url":"https://avatars3.githubusercontent.com/u/1348861?v=4","gravatar_id":"","url":"https://api.github.com/users/blairmacintyre","html_url":"https://github.com/blairmacintyre","followers_url":"https://api.github.com/users/blairmacintyre/followers","following_url":"https://api.github.com/users/blairmacintyre/following{/other_user}","gists_url":"https://api.github.com/users/blairmacintyre/gists{/gist_id}","starred_url":"https://api.github.com/users/blairmacintyre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blairmacintyre/subscriptions","organizations_url":"https://api.github.com/users/blairmacintyre/orgs","repos_url":"https://api.github.com/users/blairmacintyre/repos","events_url":"https://api.github.com/users/blairmacintyre/events{/privacy}","received_events_url":"https://api.github.com/users/blairmacintyre/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-03-13T19:57:44Z","updated_at":"2018-08-23T12:41:29Z","closed_at":null,"author_association":"NONE","body":"XR session creation is structured as it was in WebVR, which had a much more limited set of use cases and possible display structures.\r\n\r\nI would suggest we need to do a few things to make session creation more flexible and usable.  Here are a list of possibilities, to spur discussion.\r\n\r\nFirst, the combination of `supportsSession` and `requestSession` seem reasonable, but we need a way to handle the case where an external action may activate a session.  Is there an implication that the UA can fire off an XRSession event when there is not currently a session?  For example, a UA may have it's own UI for activating VR or AR, which might include allowing the user to specify the sort of session.  Or, if a user follows a link while in AR of VR, the next page should auto-create a session corresponding to the previous page's session.\r\n\r\nSecond, we should update the XRSessionCreationOptions to reflect the diversity of sessions we might get, and have a corresponding set of attributes on the XRSession.\r\n\r\n1. Get rid of “exclusive” … it always seemed like something of a hack to deal with the fact that we may want different sorts of connections to devices.  \r\n2. There 3 sorts of sessions type's we've been talking about displays supporting: \"immersive\" (i.e., 3D probably head-worn displays), \"portal\" (i.e., the magic window type, where a non-headworn display is tracked and presents either AR or VR on a display), and \"flat\"  (e.g., is just 3D graphics in a DIV in page on the display, with no WebXR specific exclusive rendering, but might use some form of sensing).   Additional ones may be added in the future, depending on platform.  E.g., “projective” may support projection AR (like Microsoft's RoomAlive) if that was something someone wanted to support.  Not sure what to call this:  \"xrType\"?\r\n3. To support some of the current use of \"exclusive\", add a capability to distinguish between VR and AR. Not sure what to call it, perhaps “reality”?  With possible values “virtual, augmented”?\r\n4. Add “worldAligned” as a capability to request that the local tracking frame of reference is aligned with geospatial components.  \r\n5. A capability to differentiate between 3DOF and 6DOF.  Again, not sure what to call it, perhaps \"spatialTracking\"?\r\n\r\nOne of the assumptions I'm making here is that a given implementation would support one or more of these combinations, as they see fit and are able.  A 6DOF device could support 3DOF _if_ it wanted;  it's not required to.  A device that doesn't have a magnetometer may not support \"worldAligned\".  \r\n\r\nA phone like a DayDream and ARCore capable Android phone could end up supporting a range of realities that provide some combinations of\r\n- reality = virtual AND augmented\r\n- spatialTracking = 3DOF AND 6DOF\r\n-  xrType = immersive AND portal AND flat\r\n- perhaps it DOES NOT support \"worldAligned\" (can't recall if ARCore supports that out of the box)\r\n\r\nBy exposing these as options, and properties, we also allow developers to inspect the current session to see what the setup is, and create an appropriate UI."},"comment":{"url":"https://api.github.com/repos/immersive-web/webxr/issues/comments/415400167","html_url":"https://github.com/immersive-web/webxr/issues/330#issuecomment-415400167","issue_url":"https://api.github.com/repos/immersive-web/webxr/issues/330","id":415400167,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNTQwMDE2Nw==","user":{"login":"blairmacintyre","id":1348861,"node_id":"MDQ6VXNlcjEzNDg4NjE=","avatar_url":"https://avatars3.githubusercontent.com/u/1348861?v=4","gravatar_id":"","url":"https://api.github.com/users/blairmacintyre","html_url":"https://github.com/blairmacintyre","followers_url":"https://api.github.com/users/blairmacintyre/followers","following_url":"https://api.github.com/users/blairmacintyre/following{/other_user}","gists_url":"https://api.github.com/users/blairmacintyre/gists{/gist_id}","starred_url":"https://api.github.com/users/blairmacintyre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blairmacintyre/subscriptions","organizations_url":"https://api.github.com/users/blairmacintyre/orgs","repos_url":"https://api.github.com/users/blairmacintyre/repos","events_url":"https://api.github.com/users/blairmacintyre/events{/privacy}","received_events_url":"https://api.github.com/users/blairmacintyre/received_events","type":"User","site_admin":false},"created_at":"2018-08-23T12:41:29Z","updated_at":"2018-08-23T12:41:29Z","author_association":"NONE","body":"Another.  I don't know you mean by \"AR passthrough\" in this context, like here:\r\n\r\n> This would include things like AR passthrough, which in reality can be viewed as just another data stream\r\n\r\nA WebXR session needs to know if the device is AR (there is a view of the world, either via composited video or transparency) or VR (there is nothing seen by the user except what the session renders), in order to decide on what to render (e.g., skybox?).  \r\n\r\nA WebXR session may want to know if it's video passthrough or optical see-through AR, so it can decide on some rendering approaches (since those displays show things differently).\r\n\r\n\"Requesting AR passthrough\" does not make sense in this context, so I'm not sure what you mean by it. "}}
{"actor":{"display_login":"blairmacintyre"}}