You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
17 KiB
337 lines
17 KiB
<h1>Documentation of parameters</h1>
|
|
|
|
The experience can be configured via its URL. This allow for customization by anyone while also allowing to share the result back with anyone else. There is no code modification needed, no saving needed. The URL itself becomes the modified experience.
|
|
<br>
|
|
<br>
|
|
|
|
Within that context there are 3 main query parameters to understand, namely <b>username</b>, <b>set</b> and <b>showfile</b>. Specifically :
|
|
<ul>
|
|
|
|
<li><code>username</code> : set a pre-defined experiment with its dedicated interface, data, etc. Note that some do require more parameters. An example could be <a target=_blank href="https://companion.benetou.fr/index.html?username=demoqueueq1">https://companion.benetou.fr/index.html?username=demoqueueq1</a> which allowed for a sequence of experiments. It required no additional parameters. Alternatively <a target=_blank href="https://companion.benetou.fr/index.html?username=q2_step_refcards_filtering&emulatexr=true">https://companion.benetou.fr/index.html?username=q2_step_refcards_filtering&emulatexr=true</a> has both a username (here q2_step_refcards_filtering ) and another parameter (emulatexr with value true). See the <a href="#username">dedicated list</a> below.
|
|
<li><code>set</code> : modify any element of the page. Typically this is done to visually modify something, showing or hiding elements. An example could be <a target=_blank href="https://companion.benetou.fr/index.html?set_a-sky_color=purple&showfile=Fortress.glb">https://companion.benetou.fr/index.html?set_a-sky_color=purple&showfile=Fortress.glb</a> which set the color of the sky to purple and show a file that is a 3D model of a castle where the user starts their experience. See the <a href="#set">dedicated list</a> below.
|
|
<li><code>showfile</code> : display the content of a file. This is done thanks to filters (see recorded video) and allows for a relatively wide range of files. The most basic ones, e.g. 3D model, show 3D models in space but some filters allow parsing of specific file formats, e.g. PmWiki lists, docx text content, zipped exports, etc. An example could be <a target=_blank href="https://companion.benetou.fr/index.html?username=q2_visualmetaexport_map_via_wordpress&showfile=https://futuretextlab.info/wp-content/uploads/Frode-dynamicviewvisualmetaexport.jsons_.zip">a remote VisualMeta export</a> hosted on a WordPress instance. The filter unpacks the zip file and display its content while making each item interactable. Note also that some specific formats, e.g. _modifications.txt files, can contain set parameters and thus multiple modifications back. Shown files can also contain layouts of displayed content in order to resume the state of a past session, e.g. <a target=_blank href="https://companion.benetou.fr/index.html?username=q2_annotated_bibliography_week2&showfile=q2_annotated_bibliography_week2_test_q2layout.json">https://companion.benetou.fr/index.html?username=q2_annotated_bibliography_week2&showfile=q2_annotated_bibliography_week2_test_q2layout.json</a>.
|
|
</ul>
|
|
|
|
<script>
|
|
const baseURL = 'https://companion.benetou.fr/index.html'
|
|
</script>
|
|
|
|
<h2>Note on live documentation of experiments</h2>
|
|
|
|
<div>
|
|
Most links should work, yes surely some will not work or won't make sense outside of XR or need some interactions.
|
|
</div>
|
|
<br>
|
|
|
|
<div>
|
|
A lot of the <code>?set</code> examples (see below) do not show a visual difference as we decided at the end of the 1st quarter to hide a lot of elements to faciliate demonstrations. This unfortunately had the side effect of preventing those examples later on despite them working back then. For example at the end of Q2 <code>?set_IDenvironment_gltf-model=world-bake.glb</code> does not show the 3D model despite the file being present and showfile working because we are not hiding the element with ID environment.
|
|
From an experimentation perspective it is arguably not useful to "fix" those historical links as doings will most likely prevent newer ones from working and thus rather unpredictively. It is though important to know that they did work.
|
|
</div>
|
|
<br>
|
|
|
|
<div>
|
|
Regardless of those technical limitations please do feel free to report links that seem, according to you, not to work as expected. Plenty do provide :
|
|
|
|
<ol>
|
|
<li>the URL (full including all parameters used),
|
|
<li>hardware used, browser used (e.g. Vision Pro with OS version 123 and browser version 456),
|
|
<li>date and hour of test (as things are live, maybe something was edited as you tried)
|
|
<li>the current behavior (what you expected to see),
|
|
<li>the expected behavior (what actually happened),
|
|
<li>any supporting materials you think would be useful, e.g. video recording, screenshots, etc.
|
|
<ol>
|
|
|
|
</div>
|
|
|
|
<h2>Parameters</h2>
|
|
<div id=parameters_to_expand>
|
|
<ul>
|
|
<li>allowNtfyFeedbackHUD
|
|
<li>emulatexr
|
|
<li>forcecontrollers
|
|
<li>itemsfile
|
|
<li>partialfilename
|
|
<li>query
|
|
<li>remote_keyboard_group // should be URL encoded, assuming for now alphanum only
|
|
<li>shareerrors
|
|
<li>showdebug
|
|
<li>showdefinitions
|
|
<li>showdemoexample
|
|
<li>sourceFromNextDemo
|
|
<li>speedup_emulatexr_test
|
|
<li>username
|
|
</ul>
|
|
<script>
|
|
// could make URLs clickable, even though some won't work or show visible changes
|
|
Array.from( parameters_to_expand.querySelectorAll('li') ).map( p => {
|
|
return // none of these are useful without the right value
|
|
let el = document.createElement('a')
|
|
el.href = baseURL + '?' + p.innerText
|
|
el.target = '_blank'
|
|
el.innerText = p.innerText
|
|
p.innerText = ''
|
|
p.appendChild( el )
|
|
})
|
|
</script>
|
|
</div>
|
|
|
|
Note that some parameters (e.g. <code>emulatorxr</code>) are only used in conjonction with other parameters. Here <code>emulatorxr</code> with <code>username</code> itself within only a range of values, see below.
|
|
|
|
<br>
|
|
<br>
|
|
Some parameters added after the creation of this documenation (early June 2025) are not documented.
|
|
|
|
<h3>How to populate that list</h3>
|
|
Ran server side
|
|
<pre>grep urlParams.get /transition/webdav/data/fotsave/fot_sloan_companion_public/index.html | sed "s/.*get//" | sort | uniq</pre>
|
|
|
|
<a id=username></a>
|
|
<h2>Username values</h2>
|
|
for username which is itself a just a parameter
|
|
|
|
<div id=usernamevalues_to_expand>
|
|
<ul>
|
|
<li>cubetester
|
|
<li>demoqueueq1
|
|
<li>icon_tags
|
|
<li>instructionsonhands
|
|
<li>jsonrefmanualtester
|
|
<li>metatester10032025
|
|
<li>metatester13032025
|
|
<li>poweruser
|
|
<li>refoncubetester
|
|
<li>ring_discovery
|
|
<li>ring_discovery_with_keyboard
|
|
<li>ring_highlights
|
|
<li>skating_rings
|
|
<li>spreadsheetcolumns
|
|
<li>tabletest
|
|
<li>temple_test
|
|
<li>thicknesstesteruser
|
|
</ul>
|
|
|
|
<h3>Quarter 1</h3>
|
|
<ul>
|
|
<li>q1_step_audio
|
|
<li>q1_step_highlights
|
|
<li>q1_step_refcards
|
|
<li>q1_step_screenshot
|
|
<li>q1_step_showfile
|
|
<li>q1_step_urlcustom
|
|
</ul>
|
|
|
|
<h3>Quarter 2</h3>
|
|
<ul>
|
|
<li>q2_annotated_bibliography
|
|
<li>q2_annotated_bibliography_week2
|
|
<li>q2_arcade
|
|
<li>q2_bbox_per_filter_source
|
|
<li>q2_drop_for_graph
|
|
<li>q2_fingersmenu
|
|
<li>q2_handswap
|
|
<li>q2_immersive_console
|
|
<li>q2_json_collaborations
|
|
<li>q2_keydrumsticks
|
|
<li>q2_keymap
|
|
<li>q2_lego_map
|
|
<li>q2_lense
|
|
<li>q2_most_recent_file
|
|
<li>q2_noneuclidian
|
|
<li>q2_nouploadfile
|
|
<li>q2_ntfy_keyboard_with_keymap_visual_feedback
|
|
<li>q2_onrelease_lookat
|
|
<li>q2_os_keyboard
|
|
<li>q2_pasting
|
|
<li>q2_picker
|
|
<li>q2_remote_ntfy_keyboard
|
|
<li>q2_ring_keyboard
|
|
<li>q2_secondarypinch_singlehanded
|
|
<li>q2_secondarypinch_singlehanded_spatial
|
|
<li>q2_spatialknowledgeobject
|
|
<li>q2_step_contextuallayouts
|
|
<li>q2_step_end
|
|
<li>q2_step_highlight
|
|
<li>q2_step_jsonedit
|
|
<li>q2_step_layout_animationtests
|
|
<li>q2_step_refcards_filtering
|
|
<li>q2_step_start
|
|
<li>q2_step_volumetric_frames
|
|
<li>q2_visualmetaexport
|
|
<li>q2_visualmetaexport_map
|
|
<li>q2_visualmetaexport_map_via_wordpress
|
|
<li>q2_visualmetaexport_map_via_wordpress_with_keyboard
|
|
<li>q2_visualmetaexport_map_via_wordpress_with_lookat
|
|
<li>q2_wrist_rotations
|
|
<li>q2_yubikeyotp
|
|
</ul>
|
|
<script>
|
|
// make URLs clickable, even though some won't work or show visible changes
|
|
Array.from( usernamevalues_to_expand.querySelectorAll('li') ).map( p => {
|
|
let el = document.createElement('a')
|
|
el.href = baseURL + '?username=' + p.innerText
|
|
el.target = '_blank'
|
|
el.innerText = p.innerText
|
|
p.innerText = ''
|
|
p.appendChild( el )
|
|
})
|
|
</script>
|
|
</div>
|
|
|
|
<h3>How to populate that list</h3>
|
|
Ran server side
|
|
<pre>grep username /transition/webdav/data/fotsave/fot_sloan_companion_public/index.html | sed "s/.*== //" | sed "s/) {//" | grep -v dictionaryForCompletion | sort | uniq</pre>
|
|
|
|
<a id=emulatorxr></a>
|
|
<h2>emulatexr working with Username values</h2>
|
|
and for test scenarii only which is with emulatexr parameter
|
|
<div id=emulaterxrvalues_to_expand>
|
|
<ul>
|
|
<li>q2_lense
|
|
<li>q2_step_layout_animationtests
|
|
<li>q2_step_refcards_filtering
|
|
<li>q2_step_volumetric_frames
|
|
</ul>
|
|
<script>
|
|
// make URLs clickable, even though some won't work or show visible changes
|
|
Array.from( emulaterxrvalues_to_expand.querySelectorAll('li') ).map( p => {
|
|
let el = document.createElement('a')
|
|
el.href = baseURL + '?emulatexr=true&username=' + p.innerText
|
|
el.target = '_blank'
|
|
el.innerText = p.innerText
|
|
p.innerText = ''
|
|
p.appendChild( el )
|
|
})
|
|
</script>
|
|
</div>
|
|
|
|
<h3>How to populate that list</h3>
|
|
Ran server side
|
|
<pre>head -300 /transition/webdav/data/fotsave/fot_sloan_companion_public/index.html | grep username | sed "s/.*== //" | sed "s/) {//" | grep -v dictionaryForCompletion | sort | uniq</pre>
|
|
|
|
there are a quite a few more from Q1 via specifically parametersViaURL because that one https://git.benetou.fr/utopiah/spasca-fot-sloan-q1/src/branch/main/data/index.html#L602 can do a lot, letting anybody changing what is shown or not, how, etc
|
|
|
|
<a id=set></a>
|
|
<h2>Set values</h2>
|
|
|
|
<h3>Syntax</h3>
|
|
<ul>
|
|
<li>selector ID environment (not # as this is not a valid URL query parameter!) or .classname
|
|
<li>attribute name (e.g. color)
|
|
<li>value, (e.g. blue)
|
|
</ul>
|
|
|
|
For example <code>?set_.pannel_color=red</code> will set to "red" the attribute named "color" for all elements of class name "pannel".
|
|
|
|
<h3>Example of values</h3>
|
|
<ul>
|
|
<li><code>color=blue</code> can be a string of HTML colors
|
|
<li><code>gltf-model=world-bake.glb</code> can be a relative or absolute URL (where CORS is supported)
|
|
<li><code>visible=false</code> to show or hide an element, a boolean string that can be either true or false (not True or False or TRUE or FALSE!)
|
|
<li><code>src=https://webdav.benetou.fr/fotsave/fot_sloan_companion_public/world-bake.glb</code> can be a full URL (where CORS is supported)
|
|
<li><code>src=pano4s.png</code> can also be the relative URL of an image, using it as texture
|
|
<li><code>scale=1%201%201</code> as a scale for width height and depth, e.g. here a uniform scale of 1 (URI encoded, where %20 becomes an empty space " ")
|
|
<li><code>position=0%201%200</code> as metric position along X, Y and Z axis, X=-1 is 1 to the left of the starting position, Y=1 is 1m up and Z=-1 is 1m ahead
|
|
<li><code>rotation=0%20-30%200</code> as angle rotation in degrees along X, Y and Z axis relative to the object center, here 0 deg pitch, -30 yaw and 0 roll (see <a href="https://aframe.io/docs/1.7.0/components/rotation.html">details</a>)
|
|
</ul>
|
|
|
|
Your browser will automatically URI encode your URL, thus one can type <code>position=0 1.4 -1</code> and get <code>position=0%201.4%20-1</code>
|
|
<br>
|
|
<br>
|
|
To get a URL to later on use as a parameter value consider using the upload function of the prototype <a target=_blank href="https://companion.benetou.fr">https://companion.benetou.fr</a> which in turns make the resulting file available at <code>https://companion.benetou.fr/filename</code>
|
|
|
|
<h3>Values used</h3>
|
|
<div id=setvalues_to_expand>
|
|
<ul>
|
|
<li>?set_.manuscript_color=blue
|
|
<li>?set_.notes_visible=false
|
|
<li>?set_IDenvironment_visible=false&set_.pannel_color=blue&set_a-sky_color=grey&showfile=Fortress.glb
|
|
<li>?set_IDenvironment_visible=false&set_.pannel_color=blue&set_a-sky_color=grey&showfile=Fortress.glb&showfile=augmented_paper.pdf-0.jpg
|
|
<li>?set_IDenvironment_visible=false&set_.pannel_color=blue&set_a-sky_color=grey&showfile=Fortress.glb&showfile=augmented_paper.pdf-1.jpg
|
|
<li>?set_IDenvironment_visible=false&set_.pannel_color=blue&set_a-sky_color=grey&showfile=Fortress.glb&showfile=fabien_modifications_test.txt
|
|
<li>?set_IDenvironment_visible=false&showfile=Apartment.glb
|
|
<li>?set_IDmanuscript_color=blue
|
|
<li>?set_IDmanuscript_color=lightbrown
|
|
<li>?set_IDmanuscript_color=lightyellow
|
|
<li>?set_a-sky_src=Solstice-sunrise-cylinder-105-degrees.png
|
|
<li>?set_a-sky_src=Solstice-sunrise-cylinder-105-degrees.png
|
|
<li>?set_a-sky_src=Solstice-sunrise-cylinder-105-degrees.png&set_IDgroundfor360_visible=true
|
|
<li>?set_a-sky_src=Solstice-sunrise-cylinder-105-degrees.png&set_IDgroundfor360_visible=true
|
|
<li>?set_a-sky_src=faded-ground-keithm.jpg
|
|
<li>?set_a-sky_src=faded-ground-keithm.jpg&set_IDgroundfor360_visible=true
|
|
<li>?set_a-sky_src=office%20windows%20closed%20edited.jpg
|
|
<li>?set_a-sky_src=office%20windows%20closed%20edited.jpg
|
|
<li>?set_a-sky_src=office-windows-closed-edited25.png
|
|
<li>?set_a-sky_src=pano3s.png
|
|
<li>?set_a-sky_src=pano4s.png
|
|
<li>?set_a-sky_src=spacemed.jpg&set_IDgroundfor360_visible=true
|
|
<li>?set_a-sky_src=spacemed.jpg&set_IDgroundfor360_visible=true
|
|
<li>?set_a-sky_src=spacemed.jpg&set_IDgroundfor360_visible=true
|
|
<li>?set_a-sky_src=spacemed.jpg&set_IDgroundfor360_visible=true&set_IDgroundfor360_scale=2%202%202
|
|
<li>?set_a-sky_src=spacemed.jpg&set_IDgroundfor360_visible=true&set_IDgroundfor360_scale=20%202%2020
|
|
<li>?set_environmentsky_color=green
|
|
<li>?set_environmentsky_color=red
|
|
</ul>
|
|
|
|
Known problematic ones (usually not a bug, just not visible change)
|
|
<ul>
|
|
<li>?set_.notes_visible=false&set_IDpanopticonpannels_visible=false
|
|
<li>?set_IDenvironment_visible=false&set_.pannels_color=blue
|
|
<li>?set_IDenvironment_visible=false&set_IDpanopticonpannels_visible=false
|
|
<li>?set_IDenvironment_src=https://webdav.benetou.fr/fotsave/fot_sloan_companion_public/world-bake.glb
|
|
<li>?set_IDenvironment_visible=false&set_.pannel_color=blue
|
|
<li>?set_IDenvironment_visible=false&set_.pannel_color=blue&set_a-sky_color=grey
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201&set_IDenvironment_position=0%200%200
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201&set_IDenvironment_position=0%201%200&set_IDenvironment_rotation=0%20-30%200
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201&set_IDenvironment_position=0%201%200&set_IDenvironment_rotation=0%200%200
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201&set_IDenvironment_position=0%201%200&set_IDenvironment_rotation=0%2030%200
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201&set_IDenvironment_position=0%202%20-7&set_IDenvironment_rotation=0%20-30%200
|
|
<li>?set_IDenvironment_gltf-model=world-bake.glb&set_IDenvironment_scale=1%201%201&set_IDenvironment_position=0%203%200&set_IDenvironment_rotation=0%20-30%200
|
|
<li>?set_.pannel_color=blue
|
|
<li>?set_.pannel_color=red
|
|
<li>?set_.environment_visible=false&set_.panopticonpannels_visible=false
|
|
<li>?set_IDpanopticonpannels_position=0%200%200&set_IDpanopticonpannels_rotation=0%2045%200
|
|
<li>?set_IDpanopticonpannels_position=0%200%200&set_IDpanopticonpannels_rotation=0%2090%200
|
|
<li>?set_IDpanopticonpannels_position=0%200.5%200
|
|
<li>?set_IDpanopticonpannels_position=0%200.5%200&set_IDpanopticonpannels_rotation=0%2045%200
|
|
<li>?set_IDpanopticonpannels_position=0%202%200
|
|
<li>?set_panopticonpannels_position=0%201%200
|
|
<li>?set_panopticonpannels_scale=.1%20.1%20.1
|
|
<li>?set_panopticonpannels_scale=2%202%202
|
|
<li>?set_IDenvironment_src=url(world-bake.glb)
|
|
<li>?set_IDenvironment_src=world_bake.glb
|
|
<li>?set_environment_glb=Fortress.glb
|
|
<li>?set_environment_glb=url(Fortress.glb)
|
|
<li>?set_environment_gltf-model=url(Fortress.glb)
|
|
<li>?set_environment_gltf-model=url(Fortress.glb)&set_environment_position=0%20-1%200
|
|
<li>?set_environment_gltf-model=url(Fortress.glb)&set_environment_position=0%20-10%200
|
|
<li>?set_environment_gltf-model=url(Fortress.glb)&set_environment_position=0%200%200
|
|
<li>?set_environment_visible=false&set_panopticonpannels_visible=false
|
|
<li>?set_environment_visible=false&set_panopticonpannels_visible=false
|
|
</ul>
|
|
<script>
|
|
// make URLs clickable, even though some won't work or show visible changes
|
|
Array.from( setvalues_to_expand.querySelectorAll('li') ).map( p => {
|
|
let el = document.createElement('a')
|
|
el.href = baseURL + p.innerText
|
|
el.target = '_blank'
|
|
el.innerText = p.innerText
|
|
p.innerText = ''
|
|
p.appendChild( el )
|
|
})
|
|
</script>
|
|
</div>
|
|
|
|
<h3>How to populate that list</h3>
|
|
Ran client side
|
|
<pre>sqlite3 /home/fabien/Prototypes/places.sqlite "select url from moz_places where url like '%?set_%';" | sort | uniq</pre>
|
|
|
|
<hr>
|
|
<h2>See also</h2>
|
|
<ul>
|
|
<li>listing of Q1 demos https://companion.benetou.fr/demos_example.html?filename=demo_q1.json
|
|
<li>listing of Q2 demos (still to be edited) https://companion.benetou.fr/demos_example.html?filename=demo_q2.json
|
|
<li>to provide feedback on demo sets https://companion.benetou.fr/demos_feedback_example.html
|
|
<li>to visually edit a demo set https://companion.benetou.fr/demos_editor_example.html
|
|
</ul>
|
|
|