SpaSca : open SCAffolding to SPAcially and textualy explore interfaces
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.
Fabien Benetou 334f9c56c4 link to branch and issue 3 months ago license 2 years ago link to branch and issue 3 months ago
index.html modifier example 2 years ago
submit.html background URL parameter example in submit.html interface 2 years ago

Self Editing Tool

In this environment you will be able to directly manipulate text and even execute the text as code by pinching these short snippets.

3 min demonstration video

You can test it live at

See also the AR version

Note that the master branch is never the most up to date branch. Instead see for an overview. To explore branches in VR see

In order to have a better view of the different features accross branches see and which act as a kind of live documentation of the process.

Manipulation prevew image

Preview image

First communicated on as way to work on (WebXR) code during a flight.

Minimalist example

See for details the minimalist-template branch and deployment issue.

<!DOCTYPE html>
<html lang="en">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>JXR minimalist template</title>
    <script src=""></script>
    <script src=""></script>
    <script src=""></script>

    <script src=""></script>
        <!-- use to define targets and left/right pinch interactions, respectively execute code and move targets -->
    <div style="position:fixed;z-index:1; top: 0%; left: 0%; border-bottom: 70px solid transparent; border-left: 70px solid #eee;">
        <a href="">
                <img style="position:fixed;left:10px;" title="code repository" 

 <button id="mainbutton" style="display:none; z-index: 1; position: absolute; width:50%; margin: auto; text-align:center; top:45%; left:30%; height:30%;" onclick="startExperience()">Start the experience (hand tracking recommended)</button>
      <a-entity id="rig">
                <a-entity id="player"
                        hud camera look-controls wasd-controls waistattach="target: .movebypinch" position="0 1.6 0"></a-entity>
                <a-entity id="rightHand" pinchprimary hand-tracking-controls="hand: right;"></a-entity>
                <a-entity id="leftHand" pinchsecondary wristattachsecondary="target: #box" hand-tracking-controls="hand: left;"></a-entity>

      <a-troika-text value="SpaSca : Spatial Scaffolding" anchor="left" outline-width="5%" font="" position="-5.26197 6.54224 -1.81284"
        scale="4 4 5" rotation="90 0 0" troika-text="outlineWidth: 0.01; strokeColor: #ffffff" material="flatShading: true; blending: additive; emissive: #c061cb"></a-troika-text>
      <a-sky hide-on-enter-ar color="black"></a-sky>
      <a-entity hide-on-enter-ar="" id="environmentsky" class="hidableenvironment" ></a-entity>
      <a-troika-text anchor="left" target value="instructions : \n--right pinch to move\n--left pinch to execute" position="0 0.65 -0.2" scale="0.1 0.1 0.1"></a-troika-text>

      <a-troika-text anchor=left target id="locationreload" value="jxr location.reload()" position="0 1.20 -0.1" scale="0.1 0.1 0.1"></a-troika-text>
      <a-troika-text anchor=left target id="makeAnchorsVisibleOnTargets" value="jxr makeAnchorsVisibleOnTargets()" position="0 1.05 -0.1" scale="0.1 0.1 0.1"></a-troika-text>

      <a-console position="0 1.1 -0.8" rotation="-45 0 0" font-size="34" height="0.5" skip-intro="true"></a-console>