< html >
< head >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< / head >
< body >
Send text and commands to the immersive space :
< form >
< textarea rows = "5" cols = "33" >
< / textarea >
< br >
< input type = button onclick = replaceWithThisText(this) value = Clear > < / input >
< input type = button onclick = sendtovr(this) value = Send > < / input >
< / form >
< br >
Examples, tap to add, optionally modify and send :
< ul >
< li > < a onclick = replaceWithThisText(this) > jxr qs a-sphere sa color green< / a > < / li >
< li > < a onclick = replaceWithThisText(this) > jxr toggleVisibilityEntitiesFromClass('fot')< / a > < / li >
< / ul >
Share this URL to the browser using e.g < a id = "shareablelink" href = "https://hmd.link" > hmd.link< / a > on the same WiFi network.
< hr >
< iframe width = "100%" id = "pastcommands" > < / iframe >
< hr >
Remote preview, if available :< br / >
< img height = "400px" id = "remotepreview" / >
< hr >
< br >
Documentation as :
< ul >
< li > < a href = https://fabien.benetou.fr/PIMVRdata/FoT > what has already been added by others< / a > in a PIM as a wiki (also editable),< / li >
< li > < a href = https://fabien.benetou.fr/PIMVRdata/CabinCommands?action=source > example of instructions and commands already positioned< / a > ,< / li >
< li > < a href = https://fabien.benetou.fr/pub/home/future_of_text_demo/engine/ > live result< / a > (ideally in VR) and< / li >
< li > open-source < a href = https://git.benetou.fr/utopiah/text-code-xr-engine/issues > code repository< / a > of the code and to make your own suggestions via issues. < / li >
< li > < a href = qrcode.png > QRcode< / a > of this page to share with others also on mobile.< / li >
< li > < a href = https://fabien.benetou.fr/pub/home/future_of_text_demo/engine/?background=../content/future_of_text_symposium/HORN-2001-FutureOfHumanCognomeCL.png&fontcolor=lightgray > background< / a > as URL parameter. Feel free to use your own content.< / li >
< li > to create a room to work together in, add or change the ?roomname=< b > YourRoomName< / b > in the browser URL
< / ul >
< script >
function replaceWithThisText(element){
document.querySelector("textarea").value = element.innerText
}
let pagename
const queryString = window.location.search
const urlParams = new URLSearchParams(queryString)
let = forcedPagename = urlParams.get('roomname')
forcedPagename?pagename=forcedPagename:pagename='FoT'
const baseURL = 'https://fabien.benetou.fr/PIMVRdata/'+pagename
const url = baseURL+'?action='
document.getElementById("pastcommands").src = baseURL+'?action=source'
document.getElementById("shareablelink").href = "https://hmd.link/?https://fabien.benetou.fr/pub/home/future_of_text_demo/engine/?roomname="+pagename
function refreshPreview(){
document.getElementById("remotepreview").src = "https://fabien.benetou.fr/uploads/PIMVRdata/"+pagename+".jpg#"+Date.now()
}
// seems to get cached properly, i.e only transferring when update
setInterval( _ => refreshPreview(), 1000)
function sendtovr(cabin){
text = document.querySelector("textarea").value
document.querySelector("textarea").value = ''
if (text) fetch(url+'source')
.then( response => { return response.text() } )
.then( data => {
fetch(url+'edit', {
method: 'POST',
headers: {'Content-Type':'application/x-www-form-urlencoded'},
body: "post=1& author=PIMVR& authpw=edit_password& text="+ data+'%0a'+text }).then(res => res).then(res => console.log("saved remotely", res))
})
else alert("empty text, please write something and try again")
}
< / script >
< / body >
< / html >