<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='Chess8Levels.x3d' name='title'/>
    <meta content='Multi-layered Chess Board in 3 dimensions.' name='description'/>
    <meta content='John W. Carls' name='creator'/>
    <meta content='9 August 2002' name='created'/>
    <meta content='20 October 2019' name='modified'/>
    <meta content='0.3' name='version'/>
    <meta content='functionality incomplete for full game play' name='warning'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8Levels.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <!-- Multi-layered chess board construction. -->
    <WorldInfo title='Chess8Levels.x3d'/>
    <Group DEF='board'>
      <Transform DEF='X_Plane'>
        <Group DEF='Row1'>
          <Transform>
            <Shape DEF='GreenSquare'>
              <Box size='1 0.01 1'/>
              <Appearance>
                <Material diffuseColor='.25 1 .25' transparency='.125'/>
              </Appearance>
            </Shape>
          </Transform>
          <Transform translation='1 0 0'>
            <Shape DEF='BlueSquare'>
              <Box size='1 0.01 1'/>
              <Appearance>
                <Material diffuseColor='.25 .25 1' transparency='.125'/>
              </Appearance>
            </Shape>
          </Transform>
          <Transform translation='2 0 0'>
            <Shape USE='GreenSquare'/>
          </Transform>
          <Transform translation='3 0 0'>
            <Shape USE='BlueSquare'/>
          </Transform>
          <Transform translation='-1 0 0'>
            <Shape USE='BlueSquare'/>
          </Transform>
          <Transform translation='-2 0 0'>
            <Shape USE='GreenSquare'/>
          </Transform>
          <Transform translation='-3 0 0'>
            <Shape USE='BlueSquare'/>
          </Transform>
          <Transform translation='-4 0 0'>
            <Shape USE='GreenSquare'/>
          </Transform>
        </Group>
        <Transform translation='0 0 -1'>
          <Group DEF='Row2'>
            <Transform>
              <Shape USE='BlueSquare'/>
            </Transform>
            <Transform translation='1 0 0'>
              <Shape USE='GreenSquare'/>
            </Transform>
            <Transform translation='2 0 0'>
              <Shape USE='BlueSquare'/>
            </Transform>
            <Transform translation='3 0 0'>
              <Shape USE='GreenSquare'/>
            </Transform>
            <Transform translation='-1 0 0'>
              <Shape USE='GreenSquare'/>
            </Transform>
            <Transform translation='-2 0 0'>
              <Shape USE='BlueSquare'/>
            </Transform>
            <Transform translation='-3 0 0'>
              <Shape USE='GreenSquare'/>
            </Transform>
            <Transform translation='-4 0 0'>
              <Shape USE='BlueSquare'/>
            </Transform>
          </Group>
        </Transform>
        <Transform translation='0 0 -2'>
          <Group USE='Row1'/>
        </Transform>
        <Transform translation='0 0 -3'>
          <Group USE='Row2'/>
        </Transform>
        <Transform translation='0 0 -4'>
          <Group USE='Row1'/>
        </Transform>
        <Transform translation='0 0 1'>
          <Group USE='Row2'/>
        </Transform>
        <Transform translation='0 0 2'>
          <Group USE='Row1'/>
        </Transform>
        <Transform translation='0 0 3'>
          <Group USE='Row2'/>
        </Transform>
      </Transform>
      <Transform translation='0 -4 0'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform rotation='0 1 0 1.57' translation='0 -3 -1'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform translation='0 -2 0'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform rotation='0 1 0 1.57' translation='0 -1 -1'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform rotation='0 1 0 1.57' translation='0 1 -1'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform translation='0 2 0'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform rotation='0 1 0 1.57' translation='0 3 -1'>
        <Transform USE='X_Plane'/>
      </Transform>
      <Transform translation='0 4 0'>
        <Transform USE='X_Plane'/>
      </Transform>
    </Group>
    <Transform DEF='RedPawn1' translation='-4 0 -3'>
      <Group DEF='redpawn'>
        <Transform translation='0 .415 0'>
          <Transform>
            <Shape>
              <Sphere radius='.1875'/>
              <Appearance DEF='Red'>
                <Material diffuseColor='1 .25 .25'/>
              </Appearance>
            </Shape>
          </Transform>
        </Transform>
        <Group DEF='redpiecebase'>
          <Transform DEF='chesspiecebase' translation='0 0.04 0'>
            <Shape>
              <Cylinder height='.0625' radius='.1875'/>
            </Shape>
          </Transform>
          <Transform DEF='redpiecepost' translation='0 .165 0'>
            <Shape>
              <Cylinder height='.25' radius='.0825'/>
              <Appearance USE='Red'/>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='RedPawn1TouchSensor'/>
      <TimeSensor DEF='REDPAWN1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-4 1 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn1TouchSensor' toField='set_enabled' toNode='REDPAWN1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN1CLOCK' toField='set_fraction' toNode='RedPawn1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn1PathInterpolator' toField='set_rotation' toNode='RedPawn1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn1PlaneSensor' toField='set_translation' toNode='RedPawn1'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn2' translation='-3 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn2TouchSensor'/>
      <TimeSensor DEF='REDPAWN2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-3 -1 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn2TouchSensor' toField='set_enabled' toNode='REDPAWN2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN2CLOCK' toField='set_fraction' toNode='RedPawn2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn2PathInterpolator' toField='set_rotation' toNode='RedPawn2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn2PlaneSensor' toField='set_translation' toNode='RedPawn2'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn3' translation='-2 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn3TouchSensor'/>
      <TimeSensor DEF='REDPAWN3CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn3PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn3PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-2 1 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn3TouchSensor' toField='set_enabled' toNode='REDPAWN3CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN3CLOCK' toField='set_fraction' toNode='RedPawn3PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn3PathInterpolator' toField='set_rotation' toNode='RedPawn3'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn3PlaneSensor' toField='set_translation' toNode='RedPawn3'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn4' translation='-1 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn4TouchSensor'/>
      <TimeSensor DEF='REDPAWN4CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn4PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn4PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-1 2 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn4TouchSensor' toField='set_enabled' toNode='REDPAWN4CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN4CLOCK' toField='set_fraction' toNode='RedPawn4PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn4PathInterpolator' toField='set_rotation' toNode='RedPawn4'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn4PlaneSensor' toField='set_translation' toNode='RedPawn4'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn5' translation='0 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn5TouchSensor'/>
      <TimeSensor DEF='REDPAWN5CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn5PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn5PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 -2 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn5TouchSensor' toField='set_enabled' toNode='REDPAWN5CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN5CLOCK' toField='set_fraction' toNode='RedPawn5PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn5PathInterpolator' toField='set_rotation' toNode='RedPawn5'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn5PlaneSensor' toField='set_translation' toNode='RedPawn5'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn6' translation='1 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn6TouchSensor'/>
      <TimeSensor DEF='REDPAWN6CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn6PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn6PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='1 1 -1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn6TouchSensor' toField='set_enabled' toNode='REDPAWN6CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN6CLOCK' toField='set_fraction' toNode='RedPawn6PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn6PathInterpolator' toField='set_rotation' toNode='RedPawn6'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn6PlaneSensor' toField='set_translation' toNode='RedPawn6'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn7' translation='2 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn7TouchSensor'/>
      <TimeSensor DEF='REDPAWN7CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn7PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn7PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='2 1 -1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn7TouchSensor' toField='set_enabled' toNode='REDPAWN7CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN7CLOCK' toField='set_fraction' toNode='RedPawn7PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn7PathInterpolator' toField='set_rotation' toNode='RedPawn7'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn7PlaneSensor' toField='set_translation' toNode='RedPawn7'/>
      </Group>
    </Transform>
    <Transform DEF='RedPawn8' translation='3 0 -3'>
      <Group USE='redpawn'/>
      <TouchSensor DEF='RedPawn8TouchSensor'/>
      <TimeSensor DEF='REDPAWN8CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedPawn8PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedPawn8PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='3 0 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedPawn8TouchSensor' toField='set_enabled' toNode='REDPAWN8CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDPAWN8CLOCK' toField='set_fraction' toNode='RedPawn8PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedPawn8PathInterpolator' toField='set_rotation' toNode='RedPawn8'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedPawn8PlaneSensor' toField='set_translation' toNode='RedPawn8'/>
      </Group>
    </Transform>
    <Transform DEF='RedCastle1' translation='-4 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Group>
          <Transform translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Red'/>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 0.52' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Red'/>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 1.04' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Red'/>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='RedCastle1TouchSensor'/>
      <TimeSensor DEF='REDCASTLE1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedCastle1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedCastle1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-4 3 -4'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedCastle1TouchSensor' toField='set_enabled' toNode='REDCASTLE1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDCASTLE1CLOCK' toField='set_fraction' toNode='RedCastle1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedCastle1PathInterpolator' toField='set_rotation' toNode='RedCastle1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedCastle1PlaneSensor' toField='set_translation' toNode='RedCastle1'/>
      </Group>
    </Transform>
    <Transform DEF='RedKnight1' translation='-3 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cylinder height='0.45' radius='0.125'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
        <Transform rotation='1 0 0 5.27' translation='0 0.55 0.075'>
          <Shape>
            <Cone bottomRadius='0.1' height='0.4'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='RedKnight1TouchSensor'/>
      <TimeSensor DEF='REDKNIGHT1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedKnight1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedKnight1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-2 0 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedKnight1TouchSensor' toField='set_enabled' toNode='REDKNIGHT1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDKNIGHT1CLOCK' toField='set_fraction' toNode='RedKnight1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedKnight1PathInterpolator' toField='set_rotation' toNode='RedKnight1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedKnight1PlaneSensor' toField='set_translation' toNode='RedKnight1'/>
      </Group>
    </Transform>
    <Transform DEF='RedBishop1' translation='-2 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cone bottomRadius='.15' height='.5'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='RedBishop1TouchSensor'/>
      <TimeSensor DEF='REDBISHOP1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedBishop1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedBishop1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 -4 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedBishop1TouchSensor' toField='set_enabled' toNode='REDBISHOP1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDBISHOP1CLOCK' toField='set_fraction' toNode='RedBishop1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedBishop1PathInterpolator' toField='set_rotation' toNode='RedBishop1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedBishop1PlaneSensor' toField='set_translation' toNode='RedBishop1'/>
      </Group>
    </Transform>
    <Transform DEF='RedKing' translation='-1 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Transform translation='0 0.4 0'>
          <Shape>
            <Cone bottomRadius='.10' height='.25'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
        <Transform scale='.035 .035 .035' translation='0 0.4 0'>
          <Shape DEF='RedBolt'>
            <IndexedFaceSet convex='false' coordIndex='0 1 2 3 4 5 6 -1 0 12 11 10 9 8 7 -1 0 7 1 -1 1 7 8 2 -1 2 8 9 3 -1 3 9 10 4 -1 4 10 11 5 -1 5 11 12 6 -1 6 12 0'>
              <Coordinate point='0.0 0.0 0.0 5.5 5.0 0.88 4.0 5.5 0.968 7.0 8.0 1.408 4.0 9.0 1.584 1.0 5.0 0.88 2.5 4.5 0.792 5.5 5.0 -0.88 4.0 5.5 -0.968 7.0 8.0 -1.408 4.0 9.0 -1.584 1.0 5.0 -0.88 2.5 4.5 -0.792'/>
            </IndexedFaceSet>
            <Appearance USE='Red'/>
          </Shape>
          <Transform rotation='0 1 0 45'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 90'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 135'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 180'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 225'>
            <Shape USE='RedBolt'/>
          </Transform>
        </Transform>
        <Transform translation='0 .8 0'>
          <Group>
            <Shape>
              <Box size='.25 .02 .02'/>
              <Appearance USE='Red'/>
            </Shape>
            <Shape>
              <Box size='.02 .25 .02'/>
              <Appearance USE='Red'/>
            </Shape>
            <Shape>
              <Box size='.02 .02 .25'/>
              <Appearance USE='Red'/>
            </Shape>
          </Group>
        </Transform>
      </Group>
      <TouchSensor DEF='RedKingTouchSensor'/>
      <TimeSensor DEF='REDKINGCLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedKingPathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedKingPlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-1 1 -4'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedKingTouchSensor' toField='set_enabled' toNode='REDKINGCLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDKINGCLOCK' toField='set_fraction' toNode='RedKingPathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedKingPathInterpolator' toField='set_rotation' toNode='RedKing'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedKingPlaneSensor' toField='set_translation' toNode='RedKing'/>
      </Group>
    </Transform>
    <Transform DEF='RedQueen' translation='0 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Transform translation='0 0.4 0'>
          <Shape>
            <Cone bottomRadius='.10' height='.25'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
        <Transform scale='.035 .035 .035' translation='0 0.4 0'>
          <Shape USE='RedBolt'/>
          <Transform rotation='0 1 0 45'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 90'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 135'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 180'>
            <Shape USE='RedBolt'/>
          </Transform>
          <Transform rotation='0 1 0 225'>
            <Shape USE='RedBolt'/>
          </Transform>
        </Transform>
      </Group>
      <TouchSensor DEF='RedQueenTouchSensor'/>
      <TimeSensor DEF='REDQUEENCLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedQueenPathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedQueenPlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 3 3'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedQueenTouchSensor' toField='set_enabled' toNode='REDQUEENCLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDQUEENCLOCK' toField='set_fraction' toNode='RedQueenPathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedQueenPathInterpolator' toField='set_rotation' toNode='RedQueen'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedQueenPlaneSensor' toField='set_translation' toNode='RedQueen'/>
      </Group>
    </Transform>
    <Transform DEF='RedBishop2' translation='1 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cone bottomRadius='.15' height='.5'/>
            <Appearance>
              <Material diffuseColor='1 .25 .25'/>
            </Appearance>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='RedBishop2TouchSensor'/>
      <TimeSensor DEF='REDBISHOP2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedBishop2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedBishop2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 4 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedBishop2TouchSensor' toField='set_enabled' toNode='REDBISHOP2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDBISHOP2CLOCK' toField='set_fraction' toNode='RedBishop2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedBishop2PathInterpolator' toField='set_rotation' toNode='RedBishop2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedBishop2PlaneSensor' toField='set_translation' toNode='RedBishop2'/>
      </Group>
    </Transform>
    <Transform DEF='RedKnight2' translation='2 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cylinder height='0.45' radius='0.125'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
        <Transform rotation='1 0 0 5.27' translation='0 0.55 0.075'>
          <Shape>
            <Cone bottomRadius='0.1' height='0.4'/>
            <Appearance USE='Red'/>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='RedKnight2TouchSensor'/>
      <TimeSensor DEF='REDKNIGHT2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedKnight2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedKnight2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 0 -2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedKnight2TouchSensor' toField='set_enabled' toNode='REDKNIGHT2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDKNIGHT2CLOCK' toField='set_fraction' toNode='RedKnight2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedKnight2PathInterpolator' toField='set_rotation' toNode='RedKnight2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedKnight2PlaneSensor' toField='set_translation' toNode='RedKnight2'/>
      </Group>
    </Transform>
    <Transform DEF='RedCastle2' translation='3 0 -4'>
      <Group>
        <Group USE='redpiecebase'/>
        <Group>
          <Transform translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance>
                <Material diffuseColor='1 .25 .25'/>
              </Appearance>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 0.52' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance>
                <Material diffuseColor='1 .25 .25'/>
              </Appearance>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 1.04' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance>
                <Material diffuseColor='1 .25 .25'/>
              </Appearance>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='RedCastle2TouchSensor'/>
      <TimeSensor DEF='REDCASTLE2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='RedCastle2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='RedCastle2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='3 -4 -4'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='RedCastle2TouchSensor' toField='set_enabled' toNode='REDCASTLE2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='REDCASTLE2CLOCK' toField='set_fraction' toNode='RedCastle2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='RedCastle2PathInterpolator' toField='set_rotation' toNode='RedCastle2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='RedCastle2PlaneSensor' toField='set_translation' toNode='RedCastle2'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn1' translation='-4 0 2'>
      <Group DEF='aquapawn'>
        <Transform translation='0 .415 0'>
          <Transform>
            <Shape>
              <Sphere radius='.1875'/>
              <Appearance DEF='Aqua'>
                <Material diffuseColor='.25 1 1'/>
              </Appearance>
            </Shape>
          </Transform>
        </Transform>
        <Group DEF='bluepiecebase'>
          <Transform translation='0 0.04 0'>
            <Shape>
              <Cylinder height='.0625' radius='.1875'/>
            </Shape>
          </Transform>
          <Transform DEF='bluepiecepost' translation='0 .165 0'>
            <Shape>
              <Cylinder height='.25' radius='.0825'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='BluePawn1TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-4 1 2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn1TouchSensor' toField='set_enabled' toNode='BLUEPAWN1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN1CLOCK' toField='set_fraction' toNode='BluePawn1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn1PathInterpolator' toField='set_rotation' toNode='BluePawn1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn1PlaneSensor' toField='set_translation' toNode='BluePawn1'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn2' translation='-3 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn2TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-3 1 1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn2TouchSensor' toField='set_enabled' toNode='BLUEPAWN2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN2CLOCK' toField='set_fraction' toNode='BluePawn2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn2PathInterpolator' toField='set_rotation' toNode='BluePawn2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn2PlaneSensor' toField='set_translation' toNode='BluePawn2'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn3' translation='-2 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn3TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN3CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn3PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn3PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-2 2 2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn3TouchSensor' toField='set_enabled' toNode='BLUEPAWN3CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN3CLOCK' toField='set_fraction' toNode='BluePawn3PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn3PathInterpolator' toField='set_rotation' toNode='BluePawn3'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn3PlaneSensor' toField='set_translation' toNode='BluePawn3'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn4' translation='-1 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn4TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN4CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn4PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn4PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-1 1 2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn4TouchSensor' toField='set_enabled' toNode='BLUEPAWN4CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN4CLOCK' toField='set_fraction' toNode='BluePawn4PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn4PathInterpolator' toField='set_rotation' toNode='BluePawn4'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn4PlaneSensor' toField='set_translation' toNode='BluePawn4'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn5' translation='0 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn5TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN5CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn5PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn5PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 -1 1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn5TouchSensor' toField='set_enabled' toNode='BLUEPAWN5CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN5CLOCK' toField='set_fraction' toNode='BluePawn5PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn5PathInterpolator' toField='set_rotation' toNode='BluePawn5'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn5PlaneSensor' toField='set_translation' toNode='BluePawn5'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn6' translation='1 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn6TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN6CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn6PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn6PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='1 1 1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn6TouchSensor' toField='set_enabled' toNode='BLUEPAWN6CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN6CLOCK' toField='set_fraction' toNode='BluePawn6PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn6PathInterpolator' toField='set_rotation' toNode='BluePawn6'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn6PlaneSensor' toField='set_translation' toNode='BluePawn6'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn7' translation='2 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn7TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN7CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn7PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn7PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='2 1 2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn7TouchSensor' toField='set_enabled' toNode='BLUEPAWN7CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN7CLOCK' toField='set_fraction' toNode='BluePawn7PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn7PathInterpolator' toField='set_rotation' toNode='BluePawn7'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn7PlaneSensor' toField='set_translation' toNode='BluePawn7'/>
      </Group>
    </Transform>
    <Transform DEF='BluePawn8' translation='3 0 2'>
      <Group USE='aquapawn'/>
      <TouchSensor DEF='BluePawn8TouchSensor'/>
      <TimeSensor DEF='BLUEPAWN8CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BluePawn8PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BluePawn8PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='3 1 2'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BluePawn8TouchSensor' toField='set_enabled' toNode='BLUEPAWN8CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEPAWN8CLOCK' toField='set_fraction' toNode='BluePawn8PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BluePawn8PathInterpolator' toField='set_rotation' toNode='BluePawn8'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BluePawn8PlaneSensor' toField='set_translation' toNode='BluePawn8'/>
      </Group>
    </Transform>
    <Transform DEF='BlueCastle1' translation='-4 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Group>
          <Transform translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 0.52' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 1.04' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='BlueCastle1TouchSensor'/>
      <TimeSensor DEF='BLUECASTLE1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueCastle1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueCastle1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-4 4 3'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueCastle1TouchSensor' toField='set_enabled' toNode='BLUECASTLE1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUECASTLE1CLOCK' toField='set_fraction' toNode='BlueCastle1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueCastle1PathInterpolator' toField='set_rotation' toNode='BlueCastle1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueCastle1PlaneSensor' toField='set_translation' toNode='BlueCastle1'/>
      </Group>
    </Transform>
    <Transform DEF='BlueKnight1' translation='-3 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cylinder height='0.45' radius='0.125'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
        <Transform rotation='-1 0 0 5.27' translation='0 0.55 -0.075'>
          <Shape>
            <Cone bottomRadius='0.1' height='0.4'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='BlueKnight1TouchSensor'/>
      <TimeSensor DEF='BLUEKNIGHT1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueKnight1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueKnight1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-4 0 1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueKnight1TouchSensor' toField='set_enabled' toNode='BLUEKNIGHT1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEKNIGHT1CLOCK' toField='set_fraction' toNode='BlueKnight1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueKnight1PathInterpolator' toField='set_rotation' toNode='BlueKnight1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueKnight1PlaneSensor' toField='set_translation' toNode='BlueKnight1'/>
      </Group>
    </Transform>
    <Transform DEF='BlueBishop1' translation='-2 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Group>
          <Transform translation='0 0.45 0'>
            <Shape>
              <Cone bottomRadius='.15' height='.5'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='BlueBishop1TouchSensor'/>
      <TimeSensor DEF='BLUEBISHOP1CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueBishop1PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueBishop1PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-2 3 0'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueBishop1TouchSensor' toField='set_enabled' toNode='BLUEBISHOP1CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEBISHOP1CLOCK' toField='set_fraction' toNode='BlueBishop1PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueBishop1PathInterpolator' toField='set_rotation' toNode='BlueBishop1'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueBishop1PlaneSensor' toField='set_translation' toNode='BlueBishop1'/>
      </Group>
    </Transform>
    <Transform DEF='BlueKing' translation='-1 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Transform translation='0 0.4 0'>
          <Shape>
            <Cone bottomRadius='.10' height='.25'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
        <Transform scale='.035 .035 .035' translation='0 0.4 0'>
          <Shape DEF='BlueBolt'>
            <IndexedFaceSet convex='false' coordIndex='0 1 2 3 4 5 6 -1 0 12 11 10 9 8 7 -1 0 7 1 -1 1 7 8 2 -1 2 8 9 3 -1 3 9 10 4 -1 4 10 11 5 -1 5 11 12 6 -1 6 12 0'>
              <Coordinate point='0.0 0.0 0.0 5.5 5.0 0.88 4.0 5.5 0.968 7.0 8.0 1.408 4.0 9.0 1.584 1.0 5.0 0.88 2.5 4.5 0.792 5.5 5.0 -0.88 4.0 5.5 -0.968 7.0 8.0 -1.408 4.0 9.0 -1.584 1.0 5.0 -0.88 2.5 4.5 -0.792'/>
            </IndexedFaceSet>
            <Appearance USE='Aqua'/>
          </Shape>
          <Transform rotation='0 1 0 45'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 90'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 135'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 180'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 225'>
            <Shape USE='BlueBolt'/>
          </Transform>
        </Transform>
        <Transform translation='0 .8 0'>
          <Group>
            <Shape>
              <Appearance USE='Aqua'/>
              <Box size='.25 .02 .02'/>
            </Shape>
            <Shape>
              <Appearance USE='Aqua'/>
              <Box size='.02 .25 .02'/>
            </Shape>
            <Shape>
              <Appearance USE='Aqua'/>
              <Box size='.02 .02 .25'/>
            </Shape>
          </Group>
        </Transform>
      </Group>
      <TouchSensor DEF='BlueKingTouchSensor'/>
      <TimeSensor DEF='BLUEKINGCLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueKingPathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueKingPlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='-1 -1 3'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueKingTouchSensor' toField='set_enabled' toNode='BLUEKINGCLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEKINGCLOCK' toField='set_fraction' toNode='BlueKingPathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueKingPathInterpolator' toField='set_rotation' toNode='BlueKing'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueKingPlaneSensor' toField='set_translation' toNode='BlueKing'/>
      </Group>
    </Transform>
    <Transform DEF='BlueQueen' translation='0 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Transform translation='0 0.4 0'>
          <Shape>
            <Cone bottomRadius='.10' height='.25'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
        <Transform scale='.035 .035 .035' translation='0 0.4 0'>
          <Shape USE='BlueBolt'/>
          <Transform rotation='0 1 0 45'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 90'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 135'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 180'>
            <Shape USE='BlueBolt'/>
          </Transform>
          <Transform rotation='0 1 0 225'>
            <Shape USE='BlueBolt'/>
          </Transform>
        </Transform>
      </Group>
      <TouchSensor DEF='BlueQueenTouchSensor'/>
      <TimeSensor DEF='BLUEQUEENCLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueQueenPathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueQueenPlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='0 -4 -4'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueQueenTouchSensor' toField='set_enabled' toNode='BLUEQUEENCLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEQUEENCLOCK' toField='set_fraction' toNode='BlueQueenPathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueQueenPathInterpolator' toField='set_rotation' toNode='BlueQueen'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueQueenPlaneSensor' toField='set_translation' toNode='BlueQueen'/>
      </Group>
    </Transform>
    <Transform DEF='BlueBishop2' translation='1 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cone bottomRadius='.15' height='.5'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='BlueBishop2TouchSensor'/>
      <TimeSensor DEF='BLUEBISHOP2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueBishop2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueBishop2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='1 2 3'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueBishop2TouchSensor' toField='set_enabled' toNode='BLUEBISHOP2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEBISHOP2CLOCK' toField='set_fraction' toNode='BlueBishop2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueBishop2PathInterpolator' toField='set_rotation' toNode='BlueBishop2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueBishop2PlaneSensor' toField='set_translation' toNode='BlueBishop2'/>
      </Group>
    </Transform>
    <Transform DEF='BlueKnight2' translation='2 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Transform translation='0 0.45 0'>
          <Shape>
            <Cylinder height='0.45' radius='0.125'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
        <Transform rotation='-1 0 0 5.27' translation='0 0.55 -0.075'>
          <Shape>
            <Cone bottomRadius='0.1' height='0.4'/>
            <Appearance USE='Aqua'/>
          </Shape>
        </Transform>
      </Group>
      <TouchSensor DEF='BlueKnight2TouchSensor'/>
      <TimeSensor DEF='BLUEKNIGHT2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueKnight2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueKnight2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='1 0 1'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueKnight2TouchSensor' toField='set_enabled' toNode='BLUEKNIGHT2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUEKNIGHT2CLOCK' toField='set_fraction' toNode='BlueKnight2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueKnight2PathInterpolator' toField='set_rotation' toNode='BlueKnight2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueKnight2PlaneSensor' toField='set_translation' toNode='BlueKnight2'/>
      </Group>
    </Transform>
    <Transform DEF='BlueCastle2' translation='3 0 3'>
      <Group>
        <Group USE='bluepiecebase'/>
        <Group>
          <Transform translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 0.52' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
          <Transform rotation='0 1 0 1.04' translation='0 0.45 0'>
            <Shape>
              <Box size='.3 .45 .3'/>
              <Appearance USE='Aqua'/>
            </Shape>
          </Transform>
        </Group>
      </Group>
      <TouchSensor DEF='BlueCastle2TouchSensor'/>
      <TimeSensor DEF='BLUECASTLE2CLOCK' cycleInterval='4' enabled='false' loop='true'/>
      <OrientationInterpolator DEF='BlueCastle2PathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
      <PlaneSensor DEF='BlueCastle2PlaneSensor' maxPosition='3 4' minPosition='-4 -4' offset='3 -4 3'/>
      <Group>
        <ROUTE fromField='isOver' fromNode='BlueCastle2TouchSensor' toField='set_enabled' toNode='BLUECASTLE2CLOCK'/>
        <ROUTE fromField='fraction_changed' fromNode='BLUECASTLE2CLOCK' toField='set_fraction' toNode='BlueCastle2PathInterpolator'/>
        <ROUTE fromField='value_changed' fromNode='BlueCastle2PathInterpolator' toField='set_rotation' toNode='BlueCastle2'/>
      </Group>
      <Group>
        <ROUTE fromField='translation_changed' fromNode='BlueCastle2PlaneSensor' toField='set_translation' toNode='BlueCastle2'/>
      </Group>
    </Transform>
    <Viewpoint DEF='RedSide' description='Red Side' orientation='-0 -1 -0.05 3.14' position='0 2.5 -20'/>
    <Viewpoint DEF='BlueSide' description='Blue Side' position='0 2.5 20'/>
    <Viewpoint DEF='BlueLeft' description='Blue on Left Side' orientation='-0.08 0.99 0.08 1.58' position='15 1 0'/>
    <Viewpoint DEF='RedLeft' description='Red on Left Side' orientation='-0.08 -0.99 -0.08 1.58' position='-15 1 0'/>
    <Viewpoint DEF='Corner1' description='Corner Blue Left Side' orientation='-0.08 -1 -0.04 0.79' position='-15 2 15'/>
    <Viewpoint DEF='Corner2' description='Corner Blue Right Side' orientation='-0.08 1 0.04 0.79' position='15 2 15'/>
    <Viewpoint DEF='Corner3' description='Corner Red Left Side' orientation='-0.01 1 0.04 2.36' position='15 2 -15'/>
    <Viewpoint DEF='Corner4' description='Corner Red Right Side' orientation='-0.02 -1 -0.05 2.36' position='-15 2 -15'/>
    <Viewpoint DEF='TopAngle1' description='Top Angle Blue Side' orientation='-1 -0 -0 0.46' position='0 10 20'/>
    <Viewpoint DEF='TopAngle2' description='Top Angle Red Side' orientation='0 -0.97 -0.23 3.14' position='0 10 -20'/>
    <Viewpoint DEF='TopAngle3' description='Top Angle Blue on Left' orientation='-0.22 0.95 0.22 1.62' position='20 10 0'/>
    <Viewpoint DEF='TopAngle4' description='Top Angle Red on Left' orientation='-0.22 -0.95 -0.22 1.62' position='-20 10 0'/>
    <Viewpoint DEF='TopCorner1' description='Top Corner Blue Left Side' orientation='-0.59 -0.77 -0.24 0.99' position='-20 20 20'/>
    <Viewpoint DEF='TopCorner2' description='Top Corner Blue Right Side' orientation='-0.59 0.77 0.24 0.99' position='20 20 20'/>
    <Viewpoint DEF='TopCorner3' description='Top Corner Red Left Side' orientation='-0.12 0.95 0.30 2.40' position='20 20 -20'/>
    <Viewpoint DEF='TopCorner4' description='Top Corner Red Right Side' orientation='-0.12 -0.95 -0.30 2.39' position='-20 20 -20'/>
    <Viewpoint DEF='BottomAngle1' description='Bottom Angle Blue Side' orientation='1 -0 0 0.79' position='0 -20 20'/>
    <Viewpoint DEF='BottomAngle2' description='Bottom Angle Red Side' orientation='0 -0.92 0.38 3.14' position='0 -20 -20'/>
    <Viewpoint DEF='BottomAngle3' description='Bottom Angle Blue on Left' orientation='0.36 0.86 -0.36 1.72' position='20 -20 0'/>
    <Viewpoint DEF='BottomAngle4' description='Bottom Angle Red on Left' orientation='0.36 -0.86 0.36 1.72' position='-20 -20 0'/>
    <Viewpoint DEF='BottomCorner1' description='Bottom Corner Blue Left Side' orientation='0.59 -0.77 0.24 0.99' position='-20 -20 20'/>
    <Viewpoint DEF='BottomCorner2' description='Bottom Corner Blue Right Side' orientation='0.59 0.77 -0.24 0.99' position='20 -20 20'/>
    <Viewpoint DEF='BottomCorner3' description='Bottom Corner Red Left Side' orientation='0.12 0.95 -0.3 2.4' position='20 -20 -20'/>
    <Viewpoint DEF='BottomCorner4' description='Bottom Corner Red Right Side' orientation='0.12 -0.95 0.3 2.39' position='-20 -20 -20'/>
    <Background groundAngle='1.309 1.570796' groundColor='0 0 0.1 0 0.1 0.3 0.3 0.3 0.6' skyAngle='1.309 1.571' skyColor='1 0 0.8 0.5 0 0.8 0 0 0.8'/>
    <Background DEF='BackgroundCyan-ish' groundAngle='1.309 1.570796' groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0.0 0.5 1 1 1 1'/>
  </Scene>
</X3D>