Geometry(0.15, 32, 16),
        new THREE.MeshBasicMaterial({ color: 0xff0000 })
      );

      reticle.matrixAutoUpdate = true;
      reticle.visible = false;
      scene.add(reticle);

      updateState();

      window.addEventListener('resize', onWindowResize);
    }

    function buildController(data) {

      let geometry, material;

      switch (data.targetRayMode) {
        case 'tracked-pointer':
          geometry = new THREE.BufferGeometry();
          geometry.setAttribute('position', new THRE