@prefix :        <https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8Levels.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Immersive' ;
  x3do:version '3.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.0.xsd' .
:head a owl:NamedIndividual, x3do:head ;
  x3do:hasParent :X3D ;
  x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8, :meta_1_9, :meta_1_10 .
:meta_1_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Chess8Levels.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Multi-layered Chess Board in 3 dimensions.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'John W. Carls' ;
  x3do:name 'creator' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '9 August 2002' ;
  x3do:name 'created' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '20 October 2019' ;
  x3do:name 'modified' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '0.3' ;
  x3do:name 'version' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'functionality incomplete for full game play' ;
  x3do:name 'warning' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8Levels.x3d' ;
  x3do:name 'identifier' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "Chess8Levels.x3d" .
:meta dcterms:description "Multi-layered Chess Board in 3 dimensions." .
:meta dcterms:creator "John W. Carls" .
:meta dcterms:created "9 August 2002" .
:meta dcterms:modified "20 October 2019" .
:meta dcterms:version "0.3" .
:meta dcterms:warning "functionality incomplete for full game play" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8Levels.x3d" .
:meta dcterms:generator "X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:license "../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1, :board, :RedPawn1, :RedPawn2, :RedPawn3, :RedPawn4, :RedPawn5, :RedPawn6, :RedPawn7, :RedPawn8, :RedCastle1, :RedKnight1, :RedBishop1, :RedKing, :RedQueen, :RedBishop2, :RedKnight2, :RedCastle2, :BluePawn1, :BluePawn2, :BluePawn3, :BluePawn4, :BluePawn5, :BluePawn6, :BluePawn7, :BluePawn8, :BlueCastle1, :BlueKnight1, :BlueBishop1, :BlueKing, :BlueQueen, :BlueBishop2, :BlueKnight2, :BlueCastle2, :RedSide, :BlueSide, :BlueLeft, :RedLeft, :Corner1, :Corner2, :Corner3, :Corner4, :TopAngle1, :TopAngle2, :TopAngle3, :TopAngle4, :TopCorner1, :TopCorner2, :TopCorner3, :TopCorner4, :BottomAngle1, :BottomAngle2, :BottomAngle3, :BottomAngle4, :BottomCorner1, :BottomCorner2, :BottomCorner3, :BottomCorner4, :Background_2_59, :BackgroundCyan-ish .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'Chess8Levels.x3d' .
:board a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :X_Plane, :Transform_2_2_2, :Transform_2_2_3, :Transform_2_2_4, :Transform_2_2_5, :Transform_2_2_6, :Transform_2_2_7, :Transform_2_2_8, :Transform_2_2_9 ;
  x3do:DEF 'board' .
:X_Plane a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :Row1, :Transform_2_2_1_2, :Transform_2_2_1_3, :Transform_2_2_1_4, :Transform_2_2_1_5, :Transform_2_2_1_6, :Transform_2_2_1_7, :Transform_2_2_1_8 ;
  x3do:DEF 'X_Plane' .
:Row1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Transform_2_2_1_1_1, :Transform_2_2_1_1_2, :Transform_2_2_1_1_3, :Transform_2_2_1_1_4, :Transform_2_2_1_1_5, :Transform_2_2_1_1_6, :Transform_2_2_1_1_7, :Transform_2_2_1_1_8 ;
  x3do:DEF 'Row1' .
:Transform_2_2_1_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :GreenSquare .
:GreenSquare a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_1 ;
  x3do:hasGeometry :Box_2_2_1_1_1_1_1 ;
  x3do:hasAppearance :Appearance_2_2_1_1_1_1_2 ;
  x3do:DEF 'GreenSquare' .
:Box_2_2_1_1_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :GreenSquare ;
  x3do:size ( 1 0.01 1 ) .
:Appearance_2_2_1_1_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :GreenSquare ;
  x3do:hasMaterial :Material_2_2_1_1_1_1_2_1 .
:Material_2_2_1_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_1_1_1_1_2 ;
  x3do:diffuseColor ( .25 1 .25 ) ;
  x3do:transparency .125 .
:Transform_2_2_1_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :BlueSquare ;
  x3do:translation ( 1 0 0 ) .
:BlueSquare a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_2 ;
  x3do:hasGeometry :Box_2_2_1_1_2_1_1 ;
  x3do:hasAppearance :Appearance_2_2_1_1_2_1_2 ;
  x3do:DEF 'BlueSquare' .
:Box_2_2_1_1_2_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :BlueSquare ;
  x3do:size ( 1 0.01 1 ) .
:Appearance_2_2_1_1_2_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :BlueSquare ;
  x3do:hasMaterial :Material_2_2_1_1_2_1_2_1 .
:Material_2_2_1_1_2_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_1_1_2_1_2 ;
  x3do:diffuseColor ( .25 .25 1 ) ;
  x3do:transparency .125 .
:Transform_2_2_1_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :GreenSquare-USE-1 ;
  x3do:translation ( 2 0 0 ) .
:GreenSquare-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_3 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_1_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :BlueSquare-USE-1 ;
  x3do:translation ( 3 0 0 ) .
:BlueSquare-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_4 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_1_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :BlueSquare-USE-2 ;
  x3do:translation ( -1 0 0 ) .
:BlueSquare-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_5 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_1_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :GreenSquare-USE-2 ;
  x3do:translation ( -2 0 0 ) .
:GreenSquare-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_6 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_1_7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :BlueSquare-USE-3 ;
  x3do:translation ( -3 0 0 ) .
:BlueSquare-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_7 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_1_8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row1 ;
  x3do:hasChildren :GreenSquare-USE-3 ;
  x3do:translation ( -4 0 0 ) .
:GreenSquare-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_1_8 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row2 ;
  x3do:translation ( 0 0 -1 ) .
:Row2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_2 ;
  x3do:hasChildren :Transform_2_2_1_2_1_1, :Transform_2_2_1_2_1_2, :Transform_2_2_1_2_1_3, :Transform_2_2_1_2_1_4, :Transform_2_2_1_2_1_5, :Transform_2_2_1_2_1_6, :Transform_2_2_1_2_1_7, :Transform_2_2_1_2_1_8 ;
  x3do:DEF 'Row2' .
:Transform_2_2_1_2_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :BlueSquare-USE-4 .
:BlueSquare-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_1 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_2_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :GreenSquare-USE-4 ;
  x3do:translation ( 1 0 0 ) .
:GreenSquare-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_2 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_2_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :BlueSquare-USE-5 ;
  x3do:translation ( 2 0 0 ) .
:BlueSquare-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_3 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_2_1_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :GreenSquare-USE-5 ;
  x3do:translation ( 3 0 0 ) .
:GreenSquare-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_4 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_2_1_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :GreenSquare-USE-6 ;
  x3do:translation ( -1 0 0 ) .
:GreenSquare-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_5 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_2_1_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :BlueSquare-USE-6 ;
  x3do:translation ( -2 0 0 ) .
:BlueSquare-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_6 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_2_1_7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :GreenSquare-USE-7 ;
  x3do:translation ( -3 0 0 ) .
:GreenSquare-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_7 ;
  owl:sameAs :GreenSquare . # DEF matching this USE
:Transform_2_2_1_2_1_8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Row2 ;
  x3do:hasChildren :BlueSquare-USE-7 ;
  x3do:translation ( -4 0 0 ) .
:BlueSquare-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_2_1_2_1_8 ;
  owl:sameAs :BlueSquare . # DEF matching this USE
:Transform_2_2_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row1-USE-1 ;
  x3do:translation ( 0 0 -2 ) .
:Row1-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_3 ;
  owl:sameAs :Row1 . # DEF matching this USE
:Transform_2_2_1_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row2-USE-1 ;
  x3do:translation ( 0 0 -3 ) .
:Row2-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_4 ;
  owl:sameAs :Row2 . # DEF matching this USE
:Transform_2_2_1_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row1-USE-2 ;
  x3do:translation ( 0 0 -4 ) .
:Row1-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_5 ;
  owl:sameAs :Row1 . # DEF matching this USE
:Transform_2_2_1_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row2-USE-2 ;
  x3do:translation ( 0 0 1 ) .
:Row2-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_6 ;
  owl:sameAs :Row2 . # DEF matching this USE
:Transform_2_2_1_7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row1-USE-3 ;
  x3do:translation ( 0 0 2 ) .
:Row1-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_7 ;
  owl:sameAs :Row1 . # DEF matching this USE
:Transform_2_2_1_8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :X_Plane ;
  x3do:hasChildren :Row2-USE-3 ;
  x3do:translation ( 0 0 3 ) .
:Row2-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_2_1_8 ;
  owl:sameAs :Row2 . # DEF matching this USE
:Transform_2_2_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-1 ;
  x3do:translation ( 0 -4 0 ) .
:X_Plane-USE-1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_2 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-2 ;
  x3do:rotation ( 0 1 0 1.57 ) ;
  x3do:translation ( 0 -3 -1 ) .
:X_Plane-USE-2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_3 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-3 ;
  x3do:translation ( 0 -2 0 ) .
:X_Plane-USE-3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_4 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-4 ;
  x3do:rotation ( 0 1 0 1.57 ) ;
  x3do:translation ( 0 -1 -1 ) .
:X_Plane-USE-4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_5 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-5 ;
  x3do:rotation ( 0 1 0 1.57 ) ;
  x3do:translation ( 0 1 -1 ) .
:X_Plane-USE-5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_6 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-6 ;
  x3do:translation ( 0 2 0 ) .
:X_Plane-USE-6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_7 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-7 ;
  x3do:rotation ( 0 1 0 1.57 ) ;
  x3do:translation ( 0 3 -1 ) .
:X_Plane-USE-7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_8 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:Transform_2_2_9 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :board ;
  x3do:hasChildren :X_Plane-USE-8 ;
  x3do:translation ( 0 4 0 ) .
:X_Plane-USE-8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_2_9 ;
  owl:sameAs :X_Plane . # DEF matching this USE
:RedPawn1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn, :RedPawn1TouchSensor, :REDPAWN1CLOCK, :RedPawn1PathInterpolator, :RedPawn1PlaneSensor, :Group_2_3_6, :Group_2_3_7 ;
  x3do:DEF 'RedPawn1' ;
  x3do:translation ( -4 0 -3 ) .
:redpawn a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn1 ;
  x3do:hasChildren :Transform_2_3_1_1, :redpiecebase ;
  x3do:DEF 'redpawn' .
:Transform_2_3_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :redpawn ;
  x3do:hasChildren :Transform_2_3_1_1_1 ;
  x3do:translation ( 0 .415 0 ) .
:Transform_2_3_1_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_3_1_1 ;
  x3do:hasChildren :Shape_2_3_1_1_1_1 .
:Shape_2_3_1_1_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_3_1_1_1 ;
  x3do:hasGeometry :Sphere_2_3_1_1_1_1_1 ;
  x3do:hasAppearance :Red .
:Sphere_2_3_1_1_1_1_1 a owl:NamedIndividual, x3do:Sphere ;
  x3do:hasParent :Shape_2_3_1_1_1_1 ;
  x3do:radius .1875 .
:Red a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_1_1_1_1 ;
  x3do:hasMaterial :Material_2_3_1_1_1_1_2_1 ;
  x3do:DEF 'Red' .
:Material_2_3_1_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Red ;
  x3do:diffuseColor ( 1 .25 .25 ) .
:redpiecebase a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :redpawn ;
  x3do:hasChildren :chesspiecebase, :redpiecepost ;
  x3do:DEF 'redpiecebase' .
:chesspiecebase a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :redpiecebase ;
  x3do:hasChildren :Shape_2_3_1_2_1_1 ;
  x3do:DEF 'chesspiecebase' ;
  x3do:translation ( 0 0.04 0 ) .
:Shape_2_3_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :chesspiecebase ;
  x3do:hasGeometry :Cylinder_2_3_1_2_1_1_1 .
:Cylinder_2_3_1_2_1_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_3_1_2_1_1 ;
  x3do:height .0625 ;
  x3do:radius .1875 .
:redpiecepost a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :redpiecebase ;
  x3do:hasChildren :Shape_2_3_1_2_2_1 ;
  x3do:DEF 'redpiecepost' ;
  x3do:translation ( 0 .165 0 ) .
:Shape_2_3_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :redpiecepost ;
  x3do:hasGeometry :Cylinder_2_3_1_2_2_1_1 ;
  x3do:hasAppearance :Red-USE-1 .
:Cylinder_2_3_1_2_2_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_3_1_2_2_1 ;
  x3do:height .25 ;
  x3do:radius .0825 .
:Red-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_3_1_2_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:RedPawn1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn1 ;
  x3do:DEF 'RedPawn1TouchSensor' .
:REDPAWN1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn1 ;
  x3do:DEF 'REDPAWN1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn1 ;
  x3do:DEF 'RedPawn1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn1 ;
  x3do:DEF 'RedPawn1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -4 1 -2 ) .
:Group_2_3_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn1 ;
  x3do:hasROUTE :ROUTE_2_3_6_1, :ROUTE_2_3_6_2, :ROUTE_2_3_6_3 .
:ROUTE_2_3_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_3_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN1CLOCK' .
:ROUTE_2_3_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_3_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn1PathInterpolator' .
:ROUTE_2_3_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_3_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn1' .
:Group_2_3_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn1 ;
  x3do:hasROUTE :ROUTE_2_3_7_1 .
:ROUTE_2_3_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_3_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn1' .
:RedPawn2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-1, :RedPawn2TouchSensor, :REDPAWN2CLOCK, :RedPawn2PathInterpolator, :RedPawn2PlaneSensor, :Group_2_4_6, :Group_2_4_7 ;
  x3do:DEF 'RedPawn2' ;
  x3do:translation ( -3 0 -3 ) .
:redpawn-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn2 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn2 ;
  x3do:DEF 'RedPawn2TouchSensor' .
:REDPAWN2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn2 ;
  x3do:DEF 'REDPAWN2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn2 ;
  x3do:DEF 'RedPawn2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn2 ;
  x3do:DEF 'RedPawn2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -3 -1 -2 ) .
:Group_2_4_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn2 ;
  x3do:hasROUTE :ROUTE_2_4_6_1, :ROUTE_2_4_6_2, :ROUTE_2_4_6_3 .
:ROUTE_2_4_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_4_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN2CLOCK' .
:ROUTE_2_4_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_4_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn2PathInterpolator' .
:ROUTE_2_4_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_4_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn2' .
:Group_2_4_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn2 ;
  x3do:hasROUTE :ROUTE_2_4_7_1 .
:ROUTE_2_4_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_4_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn2' .
:RedPawn3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-2, :RedPawn3TouchSensor, :REDPAWN3CLOCK, :RedPawn3PathInterpolator, :RedPawn3PlaneSensor, :Group_2_5_6, :Group_2_5_7 ;
  x3do:DEF 'RedPawn3' ;
  x3do:translation ( -2 0 -3 ) .
:redpawn-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn3 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn3TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn3 ;
  x3do:DEF 'RedPawn3TouchSensor' .
:REDPAWN3CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn3 ;
  x3do:DEF 'REDPAWN3CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn3PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn3 ;
  x3do:DEF 'RedPawn3PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn3PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn3 ;
  x3do:DEF 'RedPawn3PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -2 1 -2 ) .
:Group_2_5_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn3 ;
  x3do:hasROUTE :ROUTE_2_5_6_1, :ROUTE_2_5_6_2, :ROUTE_2_5_6_3 .
:ROUTE_2_5_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_5_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn3TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN3CLOCK' .
:ROUTE_2_5_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_5_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN3CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn3PathInterpolator' .
:ROUTE_2_5_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_5_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn3PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn3' .
:Group_2_5_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn3 ;
  x3do:hasROUTE :ROUTE_2_5_7_1 .
:ROUTE_2_5_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_5_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn3PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn3' .
:RedPawn4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-3, :RedPawn4TouchSensor, :REDPAWN4CLOCK, :RedPawn4PathInterpolator, :RedPawn4PlaneSensor, :Group_2_6_6, :Group_2_6_7 ;
  x3do:DEF 'RedPawn4' ;
  x3do:translation ( -1 0 -3 ) .
:redpawn-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn4 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn4TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn4 ;
  x3do:DEF 'RedPawn4TouchSensor' .
:REDPAWN4CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn4 ;
  x3do:DEF 'REDPAWN4CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn4PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn4 ;
  x3do:DEF 'RedPawn4PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn4PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn4 ;
  x3do:DEF 'RedPawn4PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -1 2 -2 ) .
:Group_2_6_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn4 ;
  x3do:hasROUTE :ROUTE_2_6_6_1, :ROUTE_2_6_6_2, :ROUTE_2_6_6_3 .
:ROUTE_2_6_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_6_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn4TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN4CLOCK' .
:ROUTE_2_6_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_6_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN4CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn4PathInterpolator' .
:ROUTE_2_6_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_6_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn4PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn4' .
:Group_2_6_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn4 ;
  x3do:hasROUTE :ROUTE_2_6_7_1 .
:ROUTE_2_6_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_6_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn4PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn4' .
:RedPawn5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-4, :RedPawn5TouchSensor, :REDPAWN5CLOCK, :RedPawn5PathInterpolator, :RedPawn5PlaneSensor, :Group_2_7_6, :Group_2_7_7 ;
  x3do:DEF 'RedPawn5' ;
  x3do:translation ( 0 0 -3 ) .
:redpawn-USE-4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn5 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn5TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn5 ;
  x3do:DEF 'RedPawn5TouchSensor' .
:REDPAWN5CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn5 ;
  x3do:DEF 'REDPAWN5CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn5PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn5 ;
  x3do:DEF 'RedPawn5PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn5PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn5 ;
  x3do:DEF 'RedPawn5PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 -2 -2 ) .
:Group_2_7_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn5 ;
  x3do:hasROUTE :ROUTE_2_7_6_1, :ROUTE_2_7_6_2, :ROUTE_2_7_6_3 .
:ROUTE_2_7_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_7_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn5TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN5CLOCK' .
:ROUTE_2_7_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_7_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN5CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn5PathInterpolator' .
:ROUTE_2_7_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_7_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn5PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn5' .
:Group_2_7_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn5 ;
  x3do:hasROUTE :ROUTE_2_7_7_1 .
:ROUTE_2_7_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_7_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn5PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn5' .
:RedPawn6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-5, :RedPawn6TouchSensor, :REDPAWN6CLOCK, :RedPawn6PathInterpolator, :RedPawn6PlaneSensor, :Group_2_8_6, :Group_2_8_7 ;
  x3do:DEF 'RedPawn6' ;
  x3do:translation ( 1 0 -3 ) .
:redpawn-USE-5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn6 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn6TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn6 ;
  x3do:DEF 'RedPawn6TouchSensor' .
:REDPAWN6CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn6 ;
  x3do:DEF 'REDPAWN6CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn6PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn6 ;
  x3do:DEF 'RedPawn6PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn6PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn6 ;
  x3do:DEF 'RedPawn6PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 1 1 -1 ) .
:Group_2_8_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn6 ;
  x3do:hasROUTE :ROUTE_2_8_6_1, :ROUTE_2_8_6_2, :ROUTE_2_8_6_3 .
:ROUTE_2_8_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_8_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn6TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN6CLOCK' .
:ROUTE_2_8_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_8_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN6CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn6PathInterpolator' .
:ROUTE_2_8_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_8_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn6PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn6' .
:Group_2_8_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn6 ;
  x3do:hasROUTE :ROUTE_2_8_7_1 .
:ROUTE_2_8_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_8_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn6PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn6' .
:RedPawn7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-6, :RedPawn7TouchSensor, :REDPAWN7CLOCK, :RedPawn7PathInterpolator, :RedPawn7PlaneSensor, :Group_2_9_6, :Group_2_9_7 ;
  x3do:DEF 'RedPawn7' ;
  x3do:translation ( 2 0 -3 ) .
:redpawn-USE-6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn7 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn7TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn7 ;
  x3do:DEF 'RedPawn7TouchSensor' .
:REDPAWN7CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn7 ;
  x3do:DEF 'REDPAWN7CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn7PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn7 ;
  x3do:DEF 'RedPawn7PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn7PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn7 ;
  x3do:DEF 'RedPawn7PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 2 1 -1 ) .
:Group_2_9_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn7 ;
  x3do:hasROUTE :ROUTE_2_9_6_1, :ROUTE_2_9_6_2, :ROUTE_2_9_6_3 .
:ROUTE_2_9_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_9_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn7TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN7CLOCK' .
:ROUTE_2_9_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_9_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN7CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn7PathInterpolator' .
:ROUTE_2_9_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_9_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn7PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn7' .
:Group_2_9_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn7 ;
  x3do:hasROUTE :ROUTE_2_9_7_1 .
:ROUTE_2_9_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_9_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn7PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn7' .
:RedPawn8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :redpawn-USE-7, :RedPawn8TouchSensor, :REDPAWN8CLOCK, :RedPawn8PathInterpolator, :RedPawn8PlaneSensor, :Group_2_10_6, :Group_2_10_7 ;
  x3do:DEF 'RedPawn8' ;
  x3do:translation ( 3 0 -3 ) .
:redpawn-USE-7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn8 ;
  owl:sameAs :redpawn . # DEF matching this USE
:RedPawn8TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedPawn8 ;
  x3do:DEF 'RedPawn8TouchSensor' .
:REDPAWN8CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedPawn8 ;
  x3do:DEF 'REDPAWN8CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedPawn8PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedPawn8 ;
  x3do:DEF 'RedPawn8PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedPawn8PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedPawn8 ;
  x3do:DEF 'RedPawn8PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 3 0 -2 ) .
:Group_2_10_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn8 ;
  x3do:hasROUTE :ROUTE_2_10_6_1, :ROUTE_2_10_6_2, :ROUTE_2_10_6_3 .
:ROUTE_2_10_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_10_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedPawn8TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDPAWN8CLOCK' .
:ROUTE_2_10_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_10_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDPAWN8CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedPawn8PathInterpolator' .
:ROUTE_2_10_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_10_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedPawn8PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedPawn8' .
:Group_2_10_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedPawn8 ;
  x3do:hasROUTE :ROUTE_2_10_7_1 .
:ROUTE_2_10_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_10_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedPawn8PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedPawn8' .
:RedCastle1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_11_1, :RedCastle1TouchSensor, :REDCASTLE1CLOCK, :RedCastle1PathInterpolator, :RedCastle1PlaneSensor, :Group_2_11_6, :Group_2_11_7 ;
  x3do:DEF 'RedCastle1' ;
  x3do:translation ( -4 0 -4 ) .
:Group_2_11_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedCastle1 ;
  x3do:hasChildren :redpiecebase-USE-1, :Group_2_11_1_2 .
:redpiecebase-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_11_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Group_2_11_1_2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_11_1 ;
  x3do:hasChildren :Transform_2_11_1_2_1, :Transform_2_11_1_2_2, :Transform_2_11_1_2_3 .
:Transform_2_11_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_11_1_2 ;
  x3do:hasChildren :Shape_2_11_1_2_1_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_11_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_11_1_2_1 ;
  x3do:hasGeometry :Box_2_11_1_2_1_1_1 ;
  x3do:hasAppearance :Red-USE-2 .
:Box_2_11_1_2_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_11_1_2_1_1 ;
  x3do:size ( .3 .45 .3 ) .
:Red-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_11_1_2_1_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_11_1_2_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_11_1_2 ;
  x3do:hasChildren :Shape_2_11_1_2_2_1 ;
  x3do:rotation ( 0 1 0 0.52 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_11_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_11_1_2_2 ;
  x3do:hasGeometry :Box_2_11_1_2_2_1_1 ;
  x3do:hasAppearance :Red-USE-3 .
:Box_2_11_1_2_2_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_11_1_2_2_1 ;
  x3do:size ( .3 .45 .3 ) .
:Red-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_11_1_2_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_11_1_2_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_11_1_2 ;
  x3do:hasChildren :Shape_2_11_1_2_3_1 ;
  x3do:rotation ( 0 1 0 1.04 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_11_1_2_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_11_1_2_3 ;
  x3do:hasGeometry :Box_2_11_1_2_3_1_1 ;
  x3do:hasAppearance :Red-USE-4 .
:Box_2_11_1_2_3_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_11_1_2_3_1 ;
  x3do:size ( .3 .45 .3 ) .
:Red-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_11_1_2_3_1 ;
  owl:sameAs :Red . # DEF matching this USE
:RedCastle1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedCastle1 ;
  x3do:DEF 'RedCastle1TouchSensor' .
:REDCASTLE1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedCastle1 ;
  x3do:DEF 'REDCASTLE1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedCastle1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedCastle1 ;
  x3do:DEF 'RedCastle1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedCastle1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedCastle1 ;
  x3do:DEF 'RedCastle1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -4 3 -4 ) .
:Group_2_11_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedCastle1 ;
  x3do:hasROUTE :ROUTE_2_11_6_1, :ROUTE_2_11_6_2, :ROUTE_2_11_6_3 .
:ROUTE_2_11_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_11_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedCastle1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDCASTLE1CLOCK' .
:ROUTE_2_11_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_11_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDCASTLE1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedCastle1PathInterpolator' .
:ROUTE_2_11_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_11_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedCastle1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedCastle1' .
:Group_2_11_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedCastle1 ;
  x3do:hasROUTE :ROUTE_2_11_7_1 .
:ROUTE_2_11_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_11_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedCastle1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedCastle1' .
:RedKnight1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_12_1, :RedKnight1TouchSensor, :REDKNIGHT1CLOCK, :RedKnight1PathInterpolator, :RedKnight1PlaneSensor, :Group_2_12_6, :Group_2_12_7 ;
  x3do:DEF 'RedKnight1' ;
  x3do:translation ( -3 0 -4 ) .
:Group_2_12_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKnight1 ;
  x3do:hasChildren :redpiecebase-USE-2, :Transform_2_12_1_2, :Transform_2_12_1_3 .
:redpiecebase-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_12_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Transform_2_12_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:hasChildren :Shape_2_12_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_12_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_12_1_2 ;
  x3do:hasGeometry :Cylinder_2_12_1_2_1_1 ;
  x3do:hasAppearance :Red-USE-5 .
:Cylinder_2_12_1_2_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_12_1_2_1 ;
  x3do:height 0.45 ;
  x3do:radius 0.125 .
:Red-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_12_1_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_12_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:hasChildren :Shape_2_12_1_3_1 ;
  x3do:rotation ( 1 0 0 5.27 ) ;
  x3do:translation ( 0 0.55 0.075 ) .
:Shape_2_12_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_12_1_3 ;
  x3do:hasGeometry :Cone_2_12_1_3_1_1 ;
  x3do:hasAppearance :Red-USE-6 .
:Cone_2_12_1_3_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_12_1_3_1 ;
  x3do:bottomRadius 0.1 ;
  x3do:height 0.4 .
:Red-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_12_1_3_1 ;
  owl:sameAs :Red . # DEF matching this USE
:RedKnight1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedKnight1 ;
  x3do:DEF 'RedKnight1TouchSensor' .
:REDKNIGHT1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedKnight1 ;
  x3do:DEF 'REDKNIGHT1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedKnight1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedKnight1 ;
  x3do:DEF 'RedKnight1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedKnight1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedKnight1 ;
  x3do:DEF 'RedKnight1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -2 0 -2 ) .
:Group_2_12_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKnight1 ;
  x3do:hasROUTE :ROUTE_2_12_6_1, :ROUTE_2_12_6_2, :ROUTE_2_12_6_3 .
:ROUTE_2_12_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedKnight1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDKNIGHT1CLOCK' .
:ROUTE_2_12_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDKNIGHT1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedKnight1PathInterpolator' .
:ROUTE_2_12_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedKnight1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedKnight1' .
:Group_2_12_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKnight1 ;
  x3do:hasROUTE :ROUTE_2_12_7_1 .
:ROUTE_2_12_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedKnight1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedKnight1' .
:RedBishop1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_13_1, :RedBishop1TouchSensor, :REDBISHOP1CLOCK, :RedBishop1PathInterpolator, :RedBishop1PlaneSensor, :Group_2_13_6, :Group_2_13_7 ;
  x3do:DEF 'RedBishop1' ;
  x3do:translation ( -2 0 -4 ) .
:Group_2_13_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedBishop1 ;
  x3do:hasChildren :redpiecebase-USE-3, :Transform_2_13_1_2 .
:redpiecebase-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_13_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Transform_2_13_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_13_1 ;
  x3do:hasChildren :Shape_2_13_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_13_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_13_1_2 ;
  x3do:hasGeometry :Cone_2_13_1_2_1_1 ;
  x3do:hasAppearance :Red-USE-7 .
:Cone_2_13_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_13_1_2_1 ;
  x3do:bottomRadius .15 ;
  x3do:height .5 .
:Red-USE-7 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_13_1_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:RedBishop1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedBishop1 ;
  x3do:DEF 'RedBishop1TouchSensor' .
:REDBISHOP1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedBishop1 ;
  x3do:DEF 'REDBISHOP1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedBishop1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedBishop1 ;
  x3do:DEF 'RedBishop1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedBishop1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedBishop1 ;
  x3do:DEF 'RedBishop1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 -4 -2 ) .
:Group_2_13_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedBishop1 ;
  x3do:hasROUTE :ROUTE_2_13_6_1, :ROUTE_2_13_6_2, :ROUTE_2_13_6_3 .
:ROUTE_2_13_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_13_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedBishop1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDBISHOP1CLOCK' .
:ROUTE_2_13_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_13_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDBISHOP1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedBishop1PathInterpolator' .
:ROUTE_2_13_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_13_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedBishop1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedBishop1' .
:Group_2_13_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedBishop1 ;
  x3do:hasROUTE :ROUTE_2_13_7_1 .
:ROUTE_2_13_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_13_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedBishop1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedBishop1' .
:RedKing a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_14_1, :RedKingTouchSensor, :REDKINGCLOCK, :RedKingPathInterpolator, :RedKingPlaneSensor, :Group_2_14_6, :Group_2_14_7 ;
  x3do:DEF 'RedKing' ;
  x3do:translation ( -1 0 -4 ) .
:Group_2_14_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKing ;
  x3do:hasChildren :redpiecebase-USE-4, :Transform_2_14_1_2, :Transform_2_14_1_3, :Transform_2_14_1_4 .
:redpiecebase-USE-4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_14_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Transform_2_14_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_14_1 ;
  x3do:hasChildren :Shape_2_14_1_2_1 ;
  x3do:translation ( 0 0.4 0 ) .
:Shape_2_14_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_2 ;
  x3do:hasGeometry :Cone_2_14_1_2_1_1 ;
  x3do:hasAppearance :Red-USE-8 .
:Cone_2_14_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_14_1_2_1 ;
  x3do:bottomRadius .10 ;
  x3do:height .25 .
:Red-USE-8 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_1_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_14_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_14_1 ;
  x3do:hasChildren :RedBolt, :Transform_2_14_1_3_2, :Transform_2_14_1_3_3, :Transform_2_14_1_3_4, :Transform_2_14_1_3_5, :Transform_2_14_1_3_6 ;
  x3do:scale ( .035 .035 .035 ) ;
  x3do:translation ( 0 0.4 0 ) .
:RedBolt a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_3 ;
  x3do:hasGeometry :IndexedFaceSet_2_14_1_3_1_1 ;
  x3do:hasAppearance :Red-USE-9 ;
  x3do:DEF 'RedBolt' .
:IndexedFaceSet_2_14_1_3_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :RedBolt ;
  x3do:hasCoord :Coordinate_2_14_1_3_1_1_1 ;
  x3do:convex false ;
  x3do: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_2_14_1_3_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_14_1_3_1_1 ;
  x3do: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 ) .
:Red-USE-9 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :RedBolt ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_14_1_3_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_14_1_3 ;
  x3do:hasChildren :RedBolt-USE-1 ;
  x3do:rotation ( 0 1 0 45 ) .
:RedBolt-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_3_2 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_14_1_3_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_14_1_3 ;
  x3do:hasChildren :RedBolt-USE-2 ;
  x3do:rotation ( 0 1 0 90 ) .
:RedBolt-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_3_3 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_14_1_3_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_14_1_3 ;
  x3do:hasChildren :RedBolt-USE-3 ;
  x3do:rotation ( 0 1 0 135 ) .
:RedBolt-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_3_4 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_14_1_3_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_14_1_3 ;
  x3do:hasChildren :RedBolt-USE-4 ;
  x3do:rotation ( 0 1 0 180 ) .
:RedBolt-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_3_5 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_14_1_3_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_14_1_3 ;
  x3do:hasChildren :RedBolt-USE-5 ;
  x3do:rotation ( 0 1 0 225 ) .
:RedBolt-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14_1_3_6 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_14_1_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_14_1 ;
  x3do:hasChildren :Group_2_14_1_4_1 ;
  x3do:translation ( 0 .8 0 ) .
:Group_2_14_1_4_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_14_1_4 ;
  x3do:hasChildren :Shape_2_14_1_4_1_1, :Shape_2_14_1_4_1_2, :Shape_2_14_1_4_1_3 .
:Shape_2_14_1_4_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Group_2_14_1_4_1 ;
  x3do:hasGeometry :Box_2_14_1_4_1_1_1 ;
  x3do:hasAppearance :Red-USE-10 .
:Box_2_14_1_4_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_1_4_1_1 ;
  x3do:size ( .25 .02 .02 ) .
:Red-USE-10 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_1_4_1_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Shape_2_14_1_4_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Group_2_14_1_4_1 ;
  x3do:hasGeometry :Box_2_14_1_4_1_2_1 ;
  x3do:hasAppearance :Red-USE-11 .
:Box_2_14_1_4_1_2_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_1_4_1_2 ;
  x3do:size ( .02 .25 .02 ) .
:Red-USE-11 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_1_4_1_2 ;
  owl:sameAs :Red . # DEF matching this USE
:Shape_2_14_1_4_1_3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Group_2_14_1_4_1 ;
  x3do:hasGeometry :Box_2_14_1_4_1_3_1 ;
  x3do:hasAppearance :Red-USE-12 .
:Box_2_14_1_4_1_3_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_14_1_4_1_3 ;
  x3do:size ( .02 .02 .25 ) .
:Red-USE-12 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_1_4_1_3 ;
  owl:sameAs :Red . # DEF matching this USE
:RedKingTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedKing ;
  x3do:DEF 'RedKingTouchSensor' .
:REDKINGCLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedKing ;
  x3do:DEF 'REDKINGCLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedKingPathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedKing ;
  x3do:DEF 'RedKingPathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedKingPlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedKing ;
  x3do:DEF 'RedKingPlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -1 1 -4 ) .
:Group_2_14_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKing ;
  x3do:hasROUTE :ROUTE_2_14_6_1, :ROUTE_2_14_6_2, :ROUTE_2_14_6_3 .
:ROUTE_2_14_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_14_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedKingTouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDKINGCLOCK' .
:ROUTE_2_14_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_14_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDKINGCLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedKingPathInterpolator' .
:ROUTE_2_14_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_14_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedKingPathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedKing' .
:Group_2_14_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKing ;
  x3do:hasROUTE :ROUTE_2_14_7_1 .
:ROUTE_2_14_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_14_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedKingPlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedKing' .
:RedQueen a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_15_1, :RedQueenTouchSensor, :REDQUEENCLOCK, :RedQueenPathInterpolator, :RedQueenPlaneSensor, :Group_2_15_6, :Group_2_15_7 ;
  x3do:DEF 'RedQueen' ;
  x3do:translation ( 0 0 -4 ) .
:Group_2_15_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedQueen ;
  x3do:hasChildren :redpiecebase-USE-5, :Transform_2_15_1_2, :Transform_2_15_1_3 .
:redpiecebase-USE-5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_15_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Transform_2_15_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_15_1 ;
  x3do:hasChildren :Shape_2_15_1_2_1 ;
  x3do:translation ( 0 0.4 0 ) .
:Shape_2_15_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_2 ;
  x3do:hasGeometry :Cone_2_15_1_2_1_1 ;
  x3do:hasAppearance :Red-USE-13 .
:Cone_2_15_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_15_1_2_1 ;
  x3do:bottomRadius .10 ;
  x3do:height .25 .
:Red-USE-13 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_15_1_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_15_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_15_1 ;
  x3do:hasChildren :RedBolt-USE-6, :Transform_2_15_1_3_2, :Transform_2_15_1_3_3, :Transform_2_15_1_3_4, :Transform_2_15_1_3_5, :Transform_2_15_1_3_6 ;
  x3do:scale ( .035 .035 .035 ) ;
  x3do:translation ( 0 0.4 0 ) .
:RedBolt-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_3 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_15_1_3_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_15_1_3 ;
  x3do:hasChildren :RedBolt-USE-7 ;
  x3do:rotation ( 0 1 0 45 ) .
:RedBolt-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_3_2 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_15_1_3_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_15_1_3 ;
  x3do:hasChildren :RedBolt-USE-8 ;
  x3do:rotation ( 0 1 0 90 ) .
:RedBolt-USE-8 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_3_3 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_15_1_3_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_15_1_3 ;
  x3do:hasChildren :RedBolt-USE-9 ;
  x3do:rotation ( 0 1 0 135 ) .
:RedBolt-USE-9 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_3_4 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_15_1_3_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_15_1_3 ;
  x3do:hasChildren :RedBolt-USE-10 ;
  x3do:rotation ( 0 1 0 180 ) .
:RedBolt-USE-10 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_3_5 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:Transform_2_15_1_3_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_15_1_3 ;
  x3do:hasChildren :RedBolt-USE-11 ;
  x3do:rotation ( 0 1 0 225 ) .
:RedBolt-USE-11 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_15_1_3_6 ;
  owl:sameAs :RedBolt . # DEF matching this USE
:RedQueenTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedQueen ;
  x3do:DEF 'RedQueenTouchSensor' .
:REDQUEENCLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedQueen ;
  x3do:DEF 'REDQUEENCLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedQueenPathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedQueen ;
  x3do:DEF 'RedQueenPathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedQueenPlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedQueen ;
  x3do:DEF 'RedQueenPlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 3 3 ) .
:Group_2_15_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedQueen ;
  x3do:hasROUTE :ROUTE_2_15_6_1, :ROUTE_2_15_6_2, :ROUTE_2_15_6_3 .
:ROUTE_2_15_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_15_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedQueenTouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDQUEENCLOCK' .
:ROUTE_2_15_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_15_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDQUEENCLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedQueenPathInterpolator' .
:ROUTE_2_15_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_15_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedQueenPathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedQueen' .
:Group_2_15_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedQueen ;
  x3do:hasROUTE :ROUTE_2_15_7_1 .
:ROUTE_2_15_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_15_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedQueenPlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedQueen' .
:RedBishop2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_16_1, :RedBishop2TouchSensor, :REDBISHOP2CLOCK, :RedBishop2PathInterpolator, :RedBishop2PlaneSensor, :Group_2_16_6, :Group_2_16_7 ;
  x3do:DEF 'RedBishop2' ;
  x3do:translation ( 1 0 -4 ) .
:Group_2_16_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedBishop2 ;
  x3do:hasChildren :redpiecebase-USE-6, :Transform_2_16_1_2 .
:redpiecebase-USE-6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_16_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Transform_2_16_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_16_1 ;
  x3do:hasChildren :Shape_2_16_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_16_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_16_1_2 ;
  x3do:hasGeometry :Cone_2_16_1_2_1_1 ;
  x3do:hasAppearance :Appearance_2_16_1_2_1_2 .
:Cone_2_16_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_16_1_2_1 ;
  x3do:bottomRadius .15 ;
  x3do:height .5 .
:Appearance_2_16_1_2_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_16_1_2_1 ;
  x3do:hasMaterial :Material_2_16_1_2_1_2_1 .
:Material_2_16_1_2_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_16_1_2_1_2 ;
  x3do:diffuseColor ( 1 .25 .25 ) .
:RedBishop2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedBishop2 ;
  x3do:DEF 'RedBishop2TouchSensor' .
:REDBISHOP2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedBishop2 ;
  x3do:DEF 'REDBISHOP2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedBishop2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedBishop2 ;
  x3do:DEF 'RedBishop2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedBishop2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedBishop2 ;
  x3do:DEF 'RedBishop2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 4 -2 ) .
:Group_2_16_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedBishop2 ;
  x3do:hasROUTE :ROUTE_2_16_6_1, :ROUTE_2_16_6_2, :ROUTE_2_16_6_3 .
:ROUTE_2_16_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_16_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedBishop2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDBISHOP2CLOCK' .
:ROUTE_2_16_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_16_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDBISHOP2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedBishop2PathInterpolator' .
:ROUTE_2_16_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_16_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedBishop2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedBishop2' .
:Group_2_16_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedBishop2 ;
  x3do:hasROUTE :ROUTE_2_16_7_1 .
:ROUTE_2_16_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_16_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedBishop2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedBishop2' .
:RedKnight2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_17_1, :RedKnight2TouchSensor, :REDKNIGHT2CLOCK, :RedKnight2PathInterpolator, :RedKnight2PlaneSensor, :Group_2_17_6, :Group_2_17_7 ;
  x3do:DEF 'RedKnight2' ;
  x3do:translation ( 2 0 -4 ) .
:Group_2_17_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKnight2 ;
  x3do:hasChildren :redpiecebase-USE-7, :Transform_2_17_1_2, :Transform_2_17_1_3 .
:redpiecebase-USE-7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_17_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Transform_2_17_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_17_1 ;
  x3do:hasChildren :Shape_2_17_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_17_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_17_1_2 ;
  x3do:hasGeometry :Cylinder_2_17_1_2_1_1 ;
  x3do:hasAppearance :Red-USE-14 .
:Cylinder_2_17_1_2_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_17_1_2_1 ;
  x3do:height 0.45 ;
  x3do:radius 0.125 .
:Red-USE-14 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_17_1_2_1 ;
  owl:sameAs :Red . # DEF matching this USE
:Transform_2_17_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_17_1 ;
  x3do:hasChildren :Shape_2_17_1_3_1 ;
  x3do:rotation ( 1 0 0 5.27 ) ;
  x3do:translation ( 0 0.55 0.075 ) .
:Shape_2_17_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_17_1_3 ;
  x3do:hasGeometry :Cone_2_17_1_3_1_1 ;
  x3do:hasAppearance :Red-USE-15 .
:Cone_2_17_1_3_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_17_1_3_1 ;
  x3do:bottomRadius 0.1 ;
  x3do:height 0.4 .
:Red-USE-15 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_17_1_3_1 ;
  owl:sameAs :Red . # DEF matching this USE
:RedKnight2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedKnight2 ;
  x3do:DEF 'RedKnight2TouchSensor' .
:REDKNIGHT2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedKnight2 ;
  x3do:DEF 'REDKNIGHT2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedKnight2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedKnight2 ;
  x3do:DEF 'RedKnight2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedKnight2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedKnight2 ;
  x3do:DEF 'RedKnight2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 0 -2 ) .
:Group_2_17_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKnight2 ;
  x3do:hasROUTE :ROUTE_2_17_6_1, :ROUTE_2_17_6_2, :ROUTE_2_17_6_3 .
:ROUTE_2_17_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_17_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedKnight2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDKNIGHT2CLOCK' .
:ROUTE_2_17_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_17_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDKNIGHT2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedKnight2PathInterpolator' .
:ROUTE_2_17_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_17_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedKnight2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedKnight2' .
:Group_2_17_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedKnight2 ;
  x3do:hasROUTE :ROUTE_2_17_7_1 .
:ROUTE_2_17_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_17_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedKnight2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedKnight2' .
:RedCastle2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_18_1, :RedCastle2TouchSensor, :REDCASTLE2CLOCK, :RedCastle2PathInterpolator, :RedCastle2PlaneSensor, :Group_2_18_6, :Group_2_18_7 ;
  x3do:DEF 'RedCastle2' ;
  x3do:translation ( 3 0 -4 ) .
:Group_2_18_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedCastle2 ;
  x3do:hasChildren :redpiecebase-USE-8, :Group_2_18_1_2 .
:redpiecebase-USE-8 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_18_1 ;
  owl:sameAs :redpiecebase . # DEF matching this USE
:Group_2_18_1_2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_18_1 ;
  x3do:hasChildren :Transform_2_18_1_2_1, :Transform_2_18_1_2_2, :Transform_2_18_1_2_3 .
:Transform_2_18_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_18_1_2 ;
  x3do:hasChildren :Shape_2_18_1_2_1_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_18_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_18_1_2_1 ;
  x3do:hasGeometry :Box_2_18_1_2_1_1_1 ;
  x3do:hasAppearance :Appearance_2_18_1_2_1_1_2 .
:Box_2_18_1_2_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_18_1_2_1_1 ;
  x3do:size ( .3 .45 .3 ) .
:Appearance_2_18_1_2_1_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_18_1_2_1_1 ;
  x3do:hasMaterial :Material_2_18_1_2_1_1_2_1 .
:Material_2_18_1_2_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_18_1_2_1_1_2 ;
  x3do:diffuseColor ( 1 .25 .25 ) .
:Transform_2_18_1_2_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_18_1_2 ;
  x3do:hasChildren :Shape_2_18_1_2_2_1 ;
  x3do:rotation ( 0 1 0 0.52 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_18_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_18_1_2_2 ;
  x3do:hasGeometry :Box_2_18_1_2_2_1_1 ;
  x3do:hasAppearance :Appearance_2_18_1_2_2_1_2 .
:Box_2_18_1_2_2_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_18_1_2_2_1 ;
  x3do:size ( .3 .45 .3 ) .
:Appearance_2_18_1_2_2_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_18_1_2_2_1 ;
  x3do:hasMaterial :Material_2_18_1_2_2_1_2_1 .
:Material_2_18_1_2_2_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_18_1_2_2_1_2 ;
  x3do:diffuseColor ( 1 .25 .25 ) .
:Transform_2_18_1_2_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_18_1_2 ;
  x3do:hasChildren :Shape_2_18_1_2_3_1 ;
  x3do:rotation ( 0 1 0 1.04 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_18_1_2_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_18_1_2_3 ;
  x3do:hasGeometry :Box_2_18_1_2_3_1_1 ;
  x3do:hasAppearance :Appearance_2_18_1_2_3_1_2 .
:Box_2_18_1_2_3_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_18_1_2_3_1 ;
  x3do:size ( .3 .45 .3 ) .
:Appearance_2_18_1_2_3_1_2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_18_1_2_3_1 ;
  x3do:hasMaterial :Material_2_18_1_2_3_1_2_1 .
:Material_2_18_1_2_3_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_18_1_2_3_1_2 ;
  x3do:diffuseColor ( 1 .25 .25 ) .
:RedCastle2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :RedCastle2 ;
  x3do:DEF 'RedCastle2TouchSensor' .
:REDCASTLE2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :RedCastle2 ;
  x3do:DEF 'REDCASTLE2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:RedCastle2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :RedCastle2 ;
  x3do:DEF 'RedCastle2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:RedCastle2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :RedCastle2 ;
  x3do:DEF 'RedCastle2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 3 -4 -4 ) .
:Group_2_18_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedCastle2 ;
  x3do:hasROUTE :ROUTE_2_18_6_1, :ROUTE_2_18_6_2, :ROUTE_2_18_6_3 .
:ROUTE_2_18_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_18_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'RedCastle2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'REDCASTLE2CLOCK' .
:ROUTE_2_18_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_18_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'REDCASTLE2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RedCastle2PathInterpolator' .
:ROUTE_2_18_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_18_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RedCastle2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'RedCastle2' .
:Group_2_18_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :RedCastle2 ;
  x3do:hasROUTE :ROUTE_2_18_7_1 .
:ROUTE_2_18_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_18_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'RedCastle2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'RedCastle2' .
:BluePawn1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn, :BluePawn1TouchSensor, :BLUEPAWN1CLOCK, :BluePawn1PathInterpolator, :BluePawn1PlaneSensor, :Group_2_19_6, :Group_2_19_7 ;
  x3do:DEF 'BluePawn1' ;
  x3do:translation ( -4 0 2 ) .
:aquapawn a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn1 ;
  x3do:hasChildren :Transform_2_19_1_1, :bluepiecebase ;
  x3do:DEF 'aquapawn' .
:Transform_2_19_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :aquapawn ;
  x3do:hasChildren :Transform_2_19_1_1_1 ;
  x3do:translation ( 0 .415 0 ) .
:Transform_2_19_1_1_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_19_1_1 ;
  x3do:hasChildren :Shape_2_19_1_1_1_1 .
:Shape_2_19_1_1_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_19_1_1_1 ;
  x3do:hasGeometry :Sphere_2_19_1_1_1_1_1 ;
  x3do:hasAppearance :Aqua .
:Sphere_2_19_1_1_1_1_1 a owl:NamedIndividual, x3do:Sphere ;
  x3do:hasParent :Shape_2_19_1_1_1_1 ;
  x3do:radius .1875 .
:Aqua a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_19_1_1_1_1 ;
  x3do:hasMaterial :Material_2_19_1_1_1_1_2_1 ;
  x3do:DEF 'Aqua' .
:Material_2_19_1_1_1_1_2_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Aqua ;
  x3do:diffuseColor ( .25 1 1 ) .
:bluepiecebase a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :aquapawn ;
  x3do:hasChildren :Transform_2_19_1_2_1, :bluepiecepost ;
  x3do:DEF 'bluepiecebase' .
:Transform_2_19_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :bluepiecebase ;
  x3do:hasChildren :Shape_2_19_1_2_1_1 ;
  x3do:translation ( 0 0.04 0 ) .
:Shape_2_19_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_19_1_2_1 ;
  x3do:hasGeometry :Cylinder_2_19_1_2_1_1_1 .
:Cylinder_2_19_1_2_1_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_19_1_2_1_1 ;
  x3do:height .0625 ;
  x3do:radius .1875 .
:bluepiecepost a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :bluepiecebase ;
  x3do:hasChildren :Shape_2_19_1_2_2_1 ;
  x3do:DEF 'bluepiecepost' ;
  x3do:translation ( 0 .165 0 ) .
:Shape_2_19_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :bluepiecepost ;
  x3do:hasGeometry :Cylinder_2_19_1_2_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-1 .
:Cylinder_2_19_1_2_2_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_19_1_2_2_1 ;
  x3do:height .25 ;
  x3do:radius .0825 .
:Aqua-USE-1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_19_1_2_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BluePawn1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn1 ;
  x3do:DEF 'BluePawn1TouchSensor' .
:BLUEPAWN1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn1 ;
  x3do:DEF 'BLUEPAWN1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn1 ;
  x3do:DEF 'BluePawn1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn1 ;
  x3do:DEF 'BluePawn1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -4 1 2 ) .
:Group_2_19_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn1 ;
  x3do:hasROUTE :ROUTE_2_19_6_1, :ROUTE_2_19_6_2, :ROUTE_2_19_6_3 .
:ROUTE_2_19_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_19_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN1CLOCK' .
:ROUTE_2_19_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_19_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn1PathInterpolator' .
:ROUTE_2_19_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_19_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn1' .
:Group_2_19_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn1 ;
  x3do:hasROUTE :ROUTE_2_19_7_1 .
:ROUTE_2_19_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_19_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn1' .
:BluePawn2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-1, :BluePawn2TouchSensor, :BLUEPAWN2CLOCK, :BluePawn2PathInterpolator, :BluePawn2PlaneSensor, :Group_2_20_6, :Group_2_20_7 ;
  x3do:DEF 'BluePawn2' ;
  x3do:translation ( -3 0 2 ) .
:aquapawn-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn2 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn2 ;
  x3do:DEF 'BluePawn2TouchSensor' .
:BLUEPAWN2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn2 ;
  x3do:DEF 'BLUEPAWN2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn2 ;
  x3do:DEF 'BluePawn2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn2 ;
  x3do:DEF 'BluePawn2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -3 1 1 ) .
:Group_2_20_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn2 ;
  x3do:hasROUTE :ROUTE_2_20_6_1, :ROUTE_2_20_6_2, :ROUTE_2_20_6_3 .
:ROUTE_2_20_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_20_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN2CLOCK' .
:ROUTE_2_20_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_20_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn2PathInterpolator' .
:ROUTE_2_20_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_20_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn2' .
:Group_2_20_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn2 ;
  x3do:hasROUTE :ROUTE_2_20_7_1 .
:ROUTE_2_20_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_20_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn2' .
:BluePawn3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-2, :BluePawn3TouchSensor, :BLUEPAWN3CLOCK, :BluePawn3PathInterpolator, :BluePawn3PlaneSensor, :Group_2_21_6, :Group_2_21_7 ;
  x3do:DEF 'BluePawn3' ;
  x3do:translation ( -2 0 2 ) .
:aquapawn-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn3 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn3TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn3 ;
  x3do:DEF 'BluePawn3TouchSensor' .
:BLUEPAWN3CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn3 ;
  x3do:DEF 'BLUEPAWN3CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn3PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn3 ;
  x3do:DEF 'BluePawn3PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn3PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn3 ;
  x3do:DEF 'BluePawn3PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -2 2 2 ) .
:Group_2_21_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn3 ;
  x3do:hasROUTE :ROUTE_2_21_6_1, :ROUTE_2_21_6_2, :ROUTE_2_21_6_3 .
:ROUTE_2_21_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_21_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn3TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN3CLOCK' .
:ROUTE_2_21_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_21_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN3CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn3PathInterpolator' .
:ROUTE_2_21_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_21_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn3PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn3' .
:Group_2_21_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn3 ;
  x3do:hasROUTE :ROUTE_2_21_7_1 .
:ROUTE_2_21_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_21_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn3PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn3' .
:BluePawn4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-3, :BluePawn4TouchSensor, :BLUEPAWN4CLOCK, :BluePawn4PathInterpolator, :BluePawn4PlaneSensor, :Group_2_22_6, :Group_2_22_7 ;
  x3do:DEF 'BluePawn4' ;
  x3do:translation ( -1 0 2 ) .
:aquapawn-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn4 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn4TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn4 ;
  x3do:DEF 'BluePawn4TouchSensor' .
:BLUEPAWN4CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn4 ;
  x3do:DEF 'BLUEPAWN4CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn4PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn4 ;
  x3do:DEF 'BluePawn4PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn4PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn4 ;
  x3do:DEF 'BluePawn4PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -1 1 2 ) .
:Group_2_22_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn4 ;
  x3do:hasROUTE :ROUTE_2_22_6_1, :ROUTE_2_22_6_2, :ROUTE_2_22_6_3 .
:ROUTE_2_22_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_22_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn4TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN4CLOCK' .
:ROUTE_2_22_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_22_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN4CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn4PathInterpolator' .
:ROUTE_2_22_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_22_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn4PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn4' .
:Group_2_22_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn4 ;
  x3do:hasROUTE :ROUTE_2_22_7_1 .
:ROUTE_2_22_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_22_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn4PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn4' .
:BluePawn5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-4, :BluePawn5TouchSensor, :BLUEPAWN5CLOCK, :BluePawn5PathInterpolator, :BluePawn5PlaneSensor, :Group_2_23_6, :Group_2_23_7 ;
  x3do:DEF 'BluePawn5' ;
  x3do:translation ( 0 0 2 ) .
:aquapawn-USE-4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn5 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn5TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn5 ;
  x3do:DEF 'BluePawn5TouchSensor' .
:BLUEPAWN5CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn5 ;
  x3do:DEF 'BLUEPAWN5CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn5PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn5 ;
  x3do:DEF 'BluePawn5PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn5PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn5 ;
  x3do:DEF 'BluePawn5PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 -1 1 ) .
:Group_2_23_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn5 ;
  x3do:hasROUTE :ROUTE_2_23_6_1, :ROUTE_2_23_6_2, :ROUTE_2_23_6_3 .
:ROUTE_2_23_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_23_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn5TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN5CLOCK' .
:ROUTE_2_23_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_23_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN5CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn5PathInterpolator' .
:ROUTE_2_23_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_23_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn5PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn5' .
:Group_2_23_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn5 ;
  x3do:hasROUTE :ROUTE_2_23_7_1 .
:ROUTE_2_23_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_23_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn5PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn5' .
:BluePawn6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-5, :BluePawn6TouchSensor, :BLUEPAWN6CLOCK, :BluePawn6PathInterpolator, :BluePawn6PlaneSensor, :Group_2_24_6, :Group_2_24_7 ;
  x3do:DEF 'BluePawn6' ;
  x3do:translation ( 1 0 2 ) .
:aquapawn-USE-5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn6 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn6TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn6 ;
  x3do:DEF 'BluePawn6TouchSensor' .
:BLUEPAWN6CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn6 ;
  x3do:DEF 'BLUEPAWN6CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn6PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn6 ;
  x3do:DEF 'BluePawn6PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn6PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn6 ;
  x3do:DEF 'BluePawn6PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 1 1 1 ) .
:Group_2_24_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn6 ;
  x3do:hasROUTE :ROUTE_2_24_6_1, :ROUTE_2_24_6_2, :ROUTE_2_24_6_3 .
:ROUTE_2_24_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_24_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn6TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN6CLOCK' .
:ROUTE_2_24_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_24_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN6CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn6PathInterpolator' .
:ROUTE_2_24_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_24_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn6PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn6' .
:Group_2_24_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn6 ;
  x3do:hasROUTE :ROUTE_2_24_7_1 .
:ROUTE_2_24_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_24_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn6PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn6' .
:BluePawn7 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-6, :BluePawn7TouchSensor, :BLUEPAWN7CLOCK, :BluePawn7PathInterpolator, :BluePawn7PlaneSensor, :Group_2_25_6, :Group_2_25_7 ;
  x3do:DEF 'BluePawn7' ;
  x3do:translation ( 2 0 2 ) .
:aquapawn-USE-6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn7 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn7TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn7 ;
  x3do:DEF 'BluePawn7TouchSensor' .
:BLUEPAWN7CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn7 ;
  x3do:DEF 'BLUEPAWN7CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn7PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn7 ;
  x3do:DEF 'BluePawn7PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn7PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn7 ;
  x3do:DEF 'BluePawn7PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 2 1 2 ) .
:Group_2_25_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn7 ;
  x3do:hasROUTE :ROUTE_2_25_6_1, :ROUTE_2_25_6_2, :ROUTE_2_25_6_3 .
:ROUTE_2_25_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_25_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn7TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN7CLOCK' .
:ROUTE_2_25_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_25_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN7CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn7PathInterpolator' .
:ROUTE_2_25_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_25_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn7PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn7' .
:Group_2_25_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn7 ;
  x3do:hasROUTE :ROUTE_2_25_7_1 .
:ROUTE_2_25_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_25_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn7PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn7' .
:BluePawn8 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :aquapawn-USE-7, :BluePawn8TouchSensor, :BLUEPAWN8CLOCK, :BluePawn8PathInterpolator, :BluePawn8PlaneSensor, :Group_2_26_6, :Group_2_26_7 ;
  x3do:DEF 'BluePawn8' ;
  x3do:translation ( 3 0 2 ) .
:aquapawn-USE-7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn8 ;
  owl:sameAs :aquapawn . # DEF matching this USE
:BluePawn8TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BluePawn8 ;
  x3do:DEF 'BluePawn8TouchSensor' .
:BLUEPAWN8CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BluePawn8 ;
  x3do:DEF 'BLUEPAWN8CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BluePawn8PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BluePawn8 ;
  x3do:DEF 'BluePawn8PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BluePawn8PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BluePawn8 ;
  x3do:DEF 'BluePawn8PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 3 1 2 ) .
:Group_2_26_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn8 ;
  x3do:hasROUTE :ROUTE_2_26_6_1, :ROUTE_2_26_6_2, :ROUTE_2_26_6_3 .
:ROUTE_2_26_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_26_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BluePawn8TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEPAWN8CLOCK' .
:ROUTE_2_26_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_26_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEPAWN8CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BluePawn8PathInterpolator' .
:ROUTE_2_26_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_26_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BluePawn8PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BluePawn8' .
:Group_2_26_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BluePawn8 ;
  x3do:hasROUTE :ROUTE_2_26_7_1 .
:ROUTE_2_26_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_26_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BluePawn8PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BluePawn8' .
:BlueCastle1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_27_1, :BlueCastle1TouchSensor, :BLUECASTLE1CLOCK, :BlueCastle1PathInterpolator, :BlueCastle1PlaneSensor, :Group_2_27_6, :Group_2_27_7 ;
  x3do:DEF 'BlueCastle1' ;
  x3do:translation ( -4 0 3 ) .
:Group_2_27_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueCastle1 ;
  x3do:hasChildren :bluepiecebase-USE-1, :Group_2_27_1_2 .
:bluepiecebase-USE-1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_27_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Group_2_27_1_2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_27_1 ;
  x3do:hasChildren :Transform_2_27_1_2_1, :Transform_2_27_1_2_2, :Transform_2_27_1_2_3 .
:Transform_2_27_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_27_1_2 ;
  x3do:hasChildren :Shape_2_27_1_2_1_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_27_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_27_1_2_1 ;
  x3do:hasGeometry :Box_2_27_1_2_1_1_1 ;
  x3do:hasAppearance :Aqua-USE-2 .
:Box_2_27_1_2_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_27_1_2_1_1 ;
  x3do:size ( .3 .45 .3 ) .
:Aqua-USE-2 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_27_1_2_1_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_27_1_2_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_27_1_2 ;
  x3do:hasChildren :Shape_2_27_1_2_2_1 ;
  x3do:rotation ( 0 1 0 0.52 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_27_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_27_1_2_2 ;
  x3do:hasGeometry :Box_2_27_1_2_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-3 .
:Box_2_27_1_2_2_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_27_1_2_2_1 ;
  x3do:size ( .3 .45 .3 ) .
:Aqua-USE-3 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_27_1_2_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_27_1_2_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_27_1_2 ;
  x3do:hasChildren :Shape_2_27_1_2_3_1 ;
  x3do:rotation ( 0 1 0 1.04 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_27_1_2_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_27_1_2_3 ;
  x3do:hasGeometry :Box_2_27_1_2_3_1_1 ;
  x3do:hasAppearance :Aqua-USE-4 .
:Box_2_27_1_2_3_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_27_1_2_3_1 ;
  x3do:size ( .3 .45 .3 ) .
:Aqua-USE-4 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_27_1_2_3_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BlueCastle1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueCastle1 ;
  x3do:DEF 'BlueCastle1TouchSensor' .
:BLUECASTLE1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueCastle1 ;
  x3do:DEF 'BLUECASTLE1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueCastle1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueCastle1 ;
  x3do:DEF 'BlueCastle1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueCastle1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueCastle1 ;
  x3do:DEF 'BlueCastle1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -4 4 3 ) .
:Group_2_27_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueCastle1 ;
  x3do:hasROUTE :ROUTE_2_27_6_1, :ROUTE_2_27_6_2, :ROUTE_2_27_6_3 .
:ROUTE_2_27_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_27_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueCastle1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUECASTLE1CLOCK' .
:ROUTE_2_27_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_27_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUECASTLE1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueCastle1PathInterpolator' .
:ROUTE_2_27_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_27_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueCastle1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueCastle1' .
:Group_2_27_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueCastle1 ;
  x3do:hasROUTE :ROUTE_2_27_7_1 .
:ROUTE_2_27_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_27_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueCastle1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueCastle1' .
:BlueKnight1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_28_1, :BlueKnight1TouchSensor, :BLUEKNIGHT1CLOCK, :BlueKnight1PathInterpolator, :BlueKnight1PlaneSensor, :Group_2_28_6, :Group_2_28_7 ;
  x3do:DEF 'BlueKnight1' ;
  x3do:translation ( -3 0 3 ) .
:Group_2_28_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKnight1 ;
  x3do:hasChildren :bluepiecebase-USE-2, :Transform_2_28_1_2, :Transform_2_28_1_3 .
:bluepiecebase-USE-2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_28_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Transform_2_28_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_28_1 ;
  x3do:hasChildren :Shape_2_28_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_28_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_28_1_2 ;
  x3do:hasGeometry :Cylinder_2_28_1_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-5 .
:Cylinder_2_28_1_2_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_28_1_2_1 ;
  x3do:height 0.45 ;
  x3do:radius 0.125 .
:Aqua-USE-5 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_28_1_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_28_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_28_1 ;
  x3do:hasChildren :Shape_2_28_1_3_1 ;
  x3do:rotation ( -1 0 0 5.27 ) ;
  x3do:translation ( 0 0.55 -0.075 ) .
:Shape_2_28_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_28_1_3 ;
  x3do:hasGeometry :Cone_2_28_1_3_1_1 ;
  x3do:hasAppearance :Aqua-USE-6 .
:Cone_2_28_1_3_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_28_1_3_1 ;
  x3do:bottomRadius 0.1 ;
  x3do:height 0.4 .
:Aqua-USE-6 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_28_1_3_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BlueKnight1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueKnight1 ;
  x3do:DEF 'BlueKnight1TouchSensor' .
:BLUEKNIGHT1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueKnight1 ;
  x3do:DEF 'BLUEKNIGHT1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueKnight1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueKnight1 ;
  x3do:DEF 'BlueKnight1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueKnight1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueKnight1 ;
  x3do:DEF 'BlueKnight1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -4 0 1 ) .
:Group_2_28_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKnight1 ;
  x3do:hasROUTE :ROUTE_2_28_6_1, :ROUTE_2_28_6_2, :ROUTE_2_28_6_3 .
:ROUTE_2_28_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_28_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueKnight1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEKNIGHT1CLOCK' .
:ROUTE_2_28_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_28_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEKNIGHT1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueKnight1PathInterpolator' .
:ROUTE_2_28_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_28_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueKnight1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueKnight1' .
:Group_2_28_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKnight1 ;
  x3do:hasROUTE :ROUTE_2_28_7_1 .
:ROUTE_2_28_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_28_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueKnight1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueKnight1' .
:BlueBishop1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_29_1, :BlueBishop1TouchSensor, :BLUEBISHOP1CLOCK, :BlueBishop1PathInterpolator, :BlueBishop1PlaneSensor, :Group_2_29_6, :Group_2_29_7 ;
  x3do:DEF 'BlueBishop1' ;
  x3do:translation ( -2 0 3 ) .
:Group_2_29_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueBishop1 ;
  x3do:hasChildren :bluepiecebase-USE-3, :Group_2_29_1_2 .
:bluepiecebase-USE-3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_29_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Group_2_29_1_2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_29_1 ;
  x3do:hasChildren :Transform_2_29_1_2_1 .
:Transform_2_29_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_29_1_2 ;
  x3do:hasChildren :Shape_2_29_1_2_1_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_29_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_29_1_2_1 ;
  x3do:hasGeometry :Cone_2_29_1_2_1_1_1 ;
  x3do:hasAppearance :Aqua-USE-7 .
:Cone_2_29_1_2_1_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_29_1_2_1_1 ;
  x3do:bottomRadius .15 ;
  x3do:height .5 .
:Aqua-USE-7 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_29_1_2_1_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BlueBishop1TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueBishop1 ;
  x3do:DEF 'BlueBishop1TouchSensor' .
:BLUEBISHOP1CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueBishop1 ;
  x3do:DEF 'BLUEBISHOP1CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueBishop1PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueBishop1 ;
  x3do:DEF 'BlueBishop1PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueBishop1PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueBishop1 ;
  x3do:DEF 'BlueBishop1PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -2 3 0 ) .
:Group_2_29_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueBishop1 ;
  x3do:hasROUTE :ROUTE_2_29_6_1, :ROUTE_2_29_6_2, :ROUTE_2_29_6_3 .
:ROUTE_2_29_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_29_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueBishop1TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEBISHOP1CLOCK' .
:ROUTE_2_29_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_29_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEBISHOP1CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueBishop1PathInterpolator' .
:ROUTE_2_29_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_29_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueBishop1PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueBishop1' .
:Group_2_29_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueBishop1 ;
  x3do:hasROUTE :ROUTE_2_29_7_1 .
:ROUTE_2_29_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_29_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueBishop1PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueBishop1' .
:BlueKing a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_30_1, :BlueKingTouchSensor, :BLUEKINGCLOCK, :BlueKingPathInterpolator, :BlueKingPlaneSensor, :Group_2_30_6, :Group_2_30_7 ;
  x3do:DEF 'BlueKing' ;
  x3do:translation ( -1 0 3 ) .
:Group_2_30_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKing ;
  x3do:hasChildren :bluepiecebase-USE-4, :Transform_2_30_1_2, :Transform_2_30_1_3, :Transform_2_30_1_4 .
:bluepiecebase-USE-4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_30_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Transform_2_30_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_30_1 ;
  x3do:hasChildren :Shape_2_30_1_2_1 ;
  x3do:translation ( 0 0.4 0 ) .
:Shape_2_30_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_2 ;
  x3do:hasGeometry :Cone_2_30_1_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-8 .
:Cone_2_30_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_30_1_2_1 ;
  x3do:bottomRadius .10 ;
  x3do:height .25 .
:Aqua-USE-8 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_30_1_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_30_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_30_1 ;
  x3do:hasChildren :BlueBolt, :Transform_2_30_1_3_2, :Transform_2_30_1_3_3, :Transform_2_30_1_3_4, :Transform_2_30_1_3_5, :Transform_2_30_1_3_6 ;
  x3do:scale ( .035 .035 .035 ) ;
  x3do:translation ( 0 0.4 0 ) .
:BlueBolt a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_3 ;
  x3do:hasGeometry :IndexedFaceSet_2_30_1_3_1_1 ;
  x3do:hasAppearance :Aqua-USE-9 ;
  x3do:DEF 'BlueBolt' .
:IndexedFaceSet_2_30_1_3_1_1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :BlueBolt ;
  x3do:hasCoord :Coordinate_2_30_1_3_1_1_1 ;
  x3do:convex false ;
  x3do: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_2_30_1_3_1_1_1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :IndexedFaceSet_2_30_1_3_1_1 ;
  x3do: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 ) .
:Aqua-USE-9 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :BlueBolt ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_30_1_3_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_30_1_3 ;
  x3do:hasChildren :BlueBolt-USE-1 ;
  x3do:rotation ( 0 1 0 45 ) .
:BlueBolt-USE-1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_3_2 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_30_1_3_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_30_1_3 ;
  x3do:hasChildren :BlueBolt-USE-2 ;
  x3do:rotation ( 0 1 0 90 ) .
:BlueBolt-USE-2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_3_3 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_30_1_3_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_30_1_3 ;
  x3do:hasChildren :BlueBolt-USE-3 ;
  x3do:rotation ( 0 1 0 135 ) .
:BlueBolt-USE-3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_3_4 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_30_1_3_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_30_1_3 ;
  x3do:hasChildren :BlueBolt-USE-4 ;
  x3do:rotation ( 0 1 0 180 ) .
:BlueBolt-USE-4 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_3_5 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_30_1_3_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_30_1_3 ;
  x3do:hasChildren :BlueBolt-USE-5 ;
  x3do:rotation ( 0 1 0 225 ) .
:BlueBolt-USE-5 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_30_1_3_6 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_30_1_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_30_1 ;
  x3do:hasChildren :Group_2_30_1_4_1 ;
  x3do:translation ( 0 .8 0 ) .
:Group_2_30_1_4_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Transform_2_30_1_4 ;
  x3do:hasChildren :Shape_2_30_1_4_1_1, :Shape_2_30_1_4_1_2, :Shape_2_30_1_4_1_3 .
:Shape_2_30_1_4_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Group_2_30_1_4_1 ;
  x3do:hasAppearance :Aqua-USE-10 ;
  x3do:hasGeometry :Box_2_30_1_4_1_1_2 .
:Aqua-USE-10 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_30_1_4_1_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Box_2_30_1_4_1_1_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_30_1_4_1_1 ;
  x3do:size ( .25 .02 .02 ) .
:Shape_2_30_1_4_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Group_2_30_1_4_1 ;
  x3do:hasAppearance :Aqua-USE-11 ;
  x3do:hasGeometry :Box_2_30_1_4_1_2_2 .
:Aqua-USE-11 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_30_1_4_1_2 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Box_2_30_1_4_1_2_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_30_1_4_1_2 ;
  x3do:size ( .02 .25 .02 ) .
:Shape_2_30_1_4_1_3 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Group_2_30_1_4_1 ;
  x3do:hasAppearance :Aqua-USE-12 ;
  x3do:hasGeometry :Box_2_30_1_4_1_3_2 .
:Aqua-USE-12 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_30_1_4_1_3 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Box_2_30_1_4_1_3_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_30_1_4_1_3 ;
  x3do:size ( .02 .02 .25 ) .
:BlueKingTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueKing ;
  x3do:DEF 'BlueKingTouchSensor' .
:BLUEKINGCLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueKing ;
  x3do:DEF 'BLUEKINGCLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueKingPathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueKing ;
  x3do:DEF 'BlueKingPathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueKingPlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueKing ;
  x3do:DEF 'BlueKingPlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( -1 -1 3 ) .
:Group_2_30_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKing ;
  x3do:hasROUTE :ROUTE_2_30_6_1, :ROUTE_2_30_6_2, :ROUTE_2_30_6_3 .
:ROUTE_2_30_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_30_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueKingTouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEKINGCLOCK' .
:ROUTE_2_30_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_30_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEKINGCLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueKingPathInterpolator' .
:ROUTE_2_30_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_30_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueKingPathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueKing' .
:Group_2_30_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKing ;
  x3do:hasROUTE :ROUTE_2_30_7_1 .
:ROUTE_2_30_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_30_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueKingPlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueKing' .
:BlueQueen a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_31_1, :BlueQueenTouchSensor, :BLUEQUEENCLOCK, :BlueQueenPathInterpolator, :BlueQueenPlaneSensor, :Group_2_31_6, :Group_2_31_7 ;
  x3do:DEF 'BlueQueen' ;
  x3do:translation ( 0 0 3 ) .
:Group_2_31_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueQueen ;
  x3do:hasChildren :bluepiecebase-USE-5, :Transform_2_31_1_2, :Transform_2_31_1_3 .
:bluepiecebase-USE-5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_31_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Transform_2_31_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_31_1 ;
  x3do:hasChildren :Shape_2_31_1_2_1 ;
  x3do:translation ( 0 0.4 0 ) .
:Shape_2_31_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_2 ;
  x3do:hasGeometry :Cone_2_31_1_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-13 .
:Cone_2_31_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_31_1_2_1 ;
  x3do:bottomRadius .10 ;
  x3do:height .25 .
:Aqua-USE-13 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_31_1_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_31_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_31_1 ;
  x3do:hasChildren :BlueBolt-USE-6, :Transform_2_31_1_3_2, :Transform_2_31_1_3_3, :Transform_2_31_1_3_4, :Transform_2_31_1_3_5, :Transform_2_31_1_3_6 ;
  x3do:scale ( .035 .035 .035 ) ;
  x3do:translation ( 0 0.4 0 ) .
:BlueBolt-USE-6 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_3 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_31_1_3_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_31_1_3 ;
  x3do:hasChildren :BlueBolt-USE-7 ;
  x3do:rotation ( 0 1 0 45 ) .
:BlueBolt-USE-7 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_3_2 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_31_1_3_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_31_1_3 ;
  x3do:hasChildren :BlueBolt-USE-8 ;
  x3do:rotation ( 0 1 0 90 ) .
:BlueBolt-USE-8 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_3_3 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_31_1_3_4 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_31_1_3 ;
  x3do:hasChildren :BlueBolt-USE-9 ;
  x3do:rotation ( 0 1 0 135 ) .
:BlueBolt-USE-9 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_3_4 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_31_1_3_5 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_31_1_3 ;
  x3do:hasChildren :BlueBolt-USE-10 ;
  x3do:rotation ( 0 1 0 180 ) .
:BlueBolt-USE-10 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_3_5 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:Transform_2_31_1_3_6 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_31_1_3 ;
  x3do:hasChildren :BlueBolt-USE-11 ;
  x3do:rotation ( 0 1 0 225 ) .
:BlueBolt-USE-11 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_31_1_3_6 ;
  owl:sameAs :BlueBolt . # DEF matching this USE
:BlueQueenTouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueQueen ;
  x3do:DEF 'BlueQueenTouchSensor' .
:BLUEQUEENCLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueQueen ;
  x3do:DEF 'BLUEQUEENCLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueQueenPathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueQueen ;
  x3do:DEF 'BlueQueenPathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueQueenPlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueQueen ;
  x3do:DEF 'BlueQueenPlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 0 -4 -4 ) .
:Group_2_31_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueQueen ;
  x3do:hasROUTE :ROUTE_2_31_6_1, :ROUTE_2_31_6_2, :ROUTE_2_31_6_3 .
:ROUTE_2_31_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_31_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueQueenTouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEQUEENCLOCK' .
:ROUTE_2_31_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_31_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEQUEENCLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueQueenPathInterpolator' .
:ROUTE_2_31_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_31_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueQueenPathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueQueen' .
:Group_2_31_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueQueen ;
  x3do:hasROUTE :ROUTE_2_31_7_1 .
:ROUTE_2_31_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_31_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueQueenPlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueQueen' .
:BlueBishop2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_32_1, :BlueBishop2TouchSensor, :BLUEBISHOP2CLOCK, :BlueBishop2PathInterpolator, :BlueBishop2PlaneSensor, :Group_2_32_6, :Group_2_32_7 ;
  x3do:DEF 'BlueBishop2' ;
  x3do:translation ( 1 0 3 ) .
:Group_2_32_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueBishop2 ;
  x3do:hasChildren :bluepiecebase-USE-6, :Transform_2_32_1_2 .
:bluepiecebase-USE-6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_32_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Transform_2_32_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_32_1 ;
  x3do:hasChildren :Shape_2_32_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_32_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_32_1_2 ;
  x3do:hasGeometry :Cone_2_32_1_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-14 .
:Cone_2_32_1_2_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_32_1_2_1 ;
  x3do:bottomRadius .15 ;
  x3do:height .5 .
:Aqua-USE-14 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_32_1_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BlueBishop2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueBishop2 ;
  x3do:DEF 'BlueBishop2TouchSensor' .
:BLUEBISHOP2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueBishop2 ;
  x3do:DEF 'BLUEBISHOP2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueBishop2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueBishop2 ;
  x3do:DEF 'BlueBishop2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueBishop2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueBishop2 ;
  x3do:DEF 'BlueBishop2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 1 2 3 ) .
:Group_2_32_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueBishop2 ;
  x3do:hasROUTE :ROUTE_2_32_6_1, :ROUTE_2_32_6_2, :ROUTE_2_32_6_3 .
:ROUTE_2_32_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_32_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueBishop2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEBISHOP2CLOCK' .
:ROUTE_2_32_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_32_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEBISHOP2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueBishop2PathInterpolator' .
:ROUTE_2_32_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_32_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueBishop2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueBishop2' .
:Group_2_32_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueBishop2 ;
  x3do:hasROUTE :ROUTE_2_32_7_1 .
:ROUTE_2_32_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_32_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueBishop2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueBishop2' .
:BlueKnight2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_33_1, :BlueKnight2TouchSensor, :BLUEKNIGHT2CLOCK, :BlueKnight2PathInterpolator, :BlueKnight2PlaneSensor, :Group_2_33_6, :Group_2_33_7 ;
  x3do:DEF 'BlueKnight2' ;
  x3do:translation ( 2 0 3 ) .
:Group_2_33_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKnight2 ;
  x3do:hasChildren :bluepiecebase-USE-7, :Transform_2_33_1_2, :Transform_2_33_1_3 .
:bluepiecebase-USE-7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_33_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Transform_2_33_1_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_33_1 ;
  x3do:hasChildren :Shape_2_33_1_2_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_33_1_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_33_1_2 ;
  x3do:hasGeometry :Cylinder_2_33_1_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-15 .
:Cylinder_2_33_1_2_1_1 a owl:NamedIndividual, x3do:Cylinder ;
  x3do:hasParent :Shape_2_33_1_2_1 ;
  x3do:height 0.45 ;
  x3do:radius 0.125 .
:Aqua-USE-15 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_33_1_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_33_1_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_33_1 ;
  x3do:hasChildren :Shape_2_33_1_3_1 ;
  x3do:rotation ( -1 0 0 5.27 ) ;
  x3do:translation ( 0 0.55 -0.075 ) .
:Shape_2_33_1_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_33_1_3 ;
  x3do:hasGeometry :Cone_2_33_1_3_1_1 ;
  x3do:hasAppearance :Aqua-USE-16 .
:Cone_2_33_1_3_1_1 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_33_1_3_1 ;
  x3do:bottomRadius 0.1 ;
  x3do:height 0.4 .
:Aqua-USE-16 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_33_1_3_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BlueKnight2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueKnight2 ;
  x3do:DEF 'BlueKnight2TouchSensor' .
:BLUEKNIGHT2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueKnight2 ;
  x3do:DEF 'BLUEKNIGHT2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueKnight2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueKnight2 ;
  x3do:DEF 'BlueKnight2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueKnight2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueKnight2 ;
  x3do:DEF 'BlueKnight2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 1 0 1 ) .
:Group_2_33_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKnight2 ;
  x3do:hasROUTE :ROUTE_2_33_6_1, :ROUTE_2_33_6_2, :ROUTE_2_33_6_3 .
:ROUTE_2_33_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_33_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueKnight2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUEKNIGHT2CLOCK' .
:ROUTE_2_33_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_33_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUEKNIGHT2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueKnight2PathInterpolator' .
:ROUTE_2_33_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_33_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueKnight2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueKnight2' .
:Group_2_33_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueKnight2 ;
  x3do:hasROUTE :ROUTE_2_33_7_1 .
:ROUTE_2_33_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_33_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueKnight2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueKnight2' .
:BlueCastle2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_34_1, :BlueCastle2TouchSensor, :BLUECASTLE2CLOCK, :BlueCastle2PathInterpolator, :BlueCastle2PlaneSensor, :Group_2_34_6, :Group_2_34_7 ;
  x3do:DEF 'BlueCastle2' ;
  x3do:translation ( 3 0 3 ) .
:Group_2_34_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueCastle2 ;
  x3do:hasChildren :bluepiecebase-USE-8, :Group_2_34_1_2 .
:bluepiecebase-USE-8 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_34_1 ;
  owl:sameAs :bluepiecebase . # DEF matching this USE
:Group_2_34_1_2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Group_2_34_1 ;
  x3do:hasChildren :Transform_2_34_1_2_1, :Transform_2_34_1_2_2, :Transform_2_34_1_2_3 .
:Transform_2_34_1_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_34_1_2 ;
  x3do:hasChildren :Shape_2_34_1_2_1_1 ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_34_1_2_1_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_34_1_2_1 ;
  x3do:hasGeometry :Box_2_34_1_2_1_1_1 ;
  x3do:hasAppearance :Aqua-USE-17 .
:Box_2_34_1_2_1_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_34_1_2_1_1 ;
  x3do:size ( .3 .45 .3 ) .
:Aqua-USE-17 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_34_1_2_1_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_34_1_2_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_34_1_2 ;
  x3do:hasChildren :Shape_2_34_1_2_2_1 ;
  x3do:rotation ( 0 1 0 0.52 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_34_1_2_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_34_1_2_2 ;
  x3do:hasGeometry :Box_2_34_1_2_2_1_1 ;
  x3do:hasAppearance :Aqua-USE-18 .
:Box_2_34_1_2_2_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_34_1_2_2_1 ;
  x3do:size ( .3 .45 .3 ) .
:Aqua-USE-18 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_34_1_2_2_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:Transform_2_34_1_2_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Group_2_34_1_2 ;
  x3do:hasChildren :Shape_2_34_1_2_3_1 ;
  x3do:rotation ( 0 1 0 1.04 ) ;
  x3do:translation ( 0 0.45 0 ) .
:Shape_2_34_1_2_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_34_1_2_3 ;
  x3do:hasGeometry :Box_2_34_1_2_3_1_1 ;
  x3do:hasAppearance :Aqua-USE-19 .
:Box_2_34_1_2_3_1_1 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_34_1_2_3_1 ;
  x3do:size ( .3 .45 .3 ) .
:Aqua-USE-19 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_34_1_2_3_1 ;
  owl:sameAs :Aqua . # DEF matching this USE
:BlueCastle2TouchSensor a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BlueCastle2 ;
  x3do:DEF 'BlueCastle2TouchSensor' .
:BLUECASTLE2CLOCK a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :BlueCastle2 ;
  x3do:DEF 'BLUECASTLE2CLOCK' ;
  x3do:cycleInterval '4' ;
  x3do:enabled false ;
  x3do:loop true .
:BlueCastle2PathInterpolator a owl:NamedIndividual, x3do:OrientationInterpolator ;
  x3do:hasParent :BlueCastle2 ;
  x3do:DEF 'BlueCastle2PathInterpolator' ;
  x3do:key ( 0.0 0.50 1.0 ) ;
  x3do: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 ) .
:BlueCastle2PlaneSensor a owl:NamedIndividual, x3do:PlaneSensor ;
  x3do:hasParent :BlueCastle2 ;
  x3do:DEF 'BlueCastle2PlaneSensor' ;
  x3do:maxPosition ( 3 4 ) ;
  x3do:minPosition ( -4 -4 ) ;
  x3do:offset ( 3 -4 3 ) .
:Group_2_34_6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueCastle2 ;
  x3do:hasROUTE :ROUTE_2_34_6_1, :ROUTE_2_34_6_2, :ROUTE_2_34_6_3 .
:ROUTE_2_34_6_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_34_6 ;
  x3do:fromField 'isOver' ;
  x3do:fromNode 'BlueCastle2TouchSensor' ;
  x3do:toField 'set_enabled' ;
  x3do:toNode 'BLUECASTLE2CLOCK' .
:ROUTE_2_34_6_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_34_6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'BLUECASTLE2CLOCK' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BlueCastle2PathInterpolator' .
:ROUTE_2_34_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_34_6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BlueCastle2PathInterpolator' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BlueCastle2' .
:Group_2_34_7 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :BlueCastle2 ;
  x3do:hasROUTE :ROUTE_2_34_7_1 .
:ROUTE_2_34_7_1 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_34_7 ;
  x3do:fromField 'translation_changed' ;
  x3do:fromNode 'BlueCastle2PlaneSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BlueCastle2' .
:RedSide a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'RedSide' ;
  x3do:description 'Red Side' ;
  x3do:orientation ( -0 -1 -0.05 3.14 ) ;
  x3do:position ( 0 2.5 -20 ) .
:BlueSide a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BlueSide' ;
  x3do:description 'Blue Side' ;
  x3do:position ( 0 2.5 20 ) .
:BlueLeft a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BlueLeft' ;
  x3do:description 'Blue on Left Side' ;
  x3do:orientation ( -0.08 0.99 0.08 1.58 ) ;
  x3do:position ( 15 1 0 ) .
:RedLeft a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'RedLeft' ;
  x3do:description 'Red on Left Side' ;
  x3do:orientation ( -0.08 -0.99 -0.08 1.58 ) ;
  x3do:position ( -15 1 0 ) .
:Corner1 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'Corner1' ;
  x3do:description 'Corner Blue Left Side' ;
  x3do:orientation ( -0.08 -1 -0.04 0.79 ) ;
  x3do:position ( -15 2 15 ) .
:Corner2 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'Corner2' ;
  x3do:description 'Corner Blue Right Side' ;
  x3do:orientation ( -0.08 1 0.04 0.79 ) ;
  x3do:position ( 15 2 15 ) .
:Corner3 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'Corner3' ;
  x3do:description 'Corner Red Left Side' ;
  x3do:orientation ( -0.01 1 0.04 2.36 ) ;
  x3do:position ( 15 2 -15 ) .
:Corner4 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'Corner4' ;
  x3do:description 'Corner Red Right Side' ;
  x3do:orientation ( -0.02 -1 -0.05 2.36 ) ;
  x3do:position ( -15 2 -15 ) .
:TopAngle1 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopAngle1' ;
  x3do:description 'Top Angle Blue Side' ;
  x3do:orientation ( -1 -0 -0 0.46 ) ;
  x3do:position ( 0 10 20 ) .
:TopAngle2 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopAngle2' ;
  x3do:description 'Top Angle Red Side' ;
  x3do:orientation ( 0 -0.97 -0.23 3.14 ) ;
  x3do:position ( 0 10 -20 ) .
:TopAngle3 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopAngle3' ;
  x3do:description 'Top Angle Blue on Left' ;
  x3do:orientation ( -0.22 0.95 0.22 1.62 ) ;
  x3do:position ( 20 10 0 ) .
:TopAngle4 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopAngle4' ;
  x3do:description 'Top Angle Red on Left' ;
  x3do:orientation ( -0.22 -0.95 -0.22 1.62 ) ;
  x3do:position ( -20 10 0 ) .
:TopCorner1 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopCorner1' ;
  x3do:description 'Top Corner Blue Left Side' ;
  x3do:orientation ( -0.59 -0.77 -0.24 0.99 ) ;
  x3do:position ( -20 20 20 ) .
:TopCorner2 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopCorner2' ;
  x3do:description 'Top Corner Blue Right Side' ;
  x3do:orientation ( -0.59 0.77 0.24 0.99 ) ;
  x3do:position ( 20 20 20 ) .
:TopCorner3 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopCorner3' ;
  x3do:description 'Top Corner Red Left Side' ;
  x3do:orientation ( -0.12 0.95 0.30 2.40 ) ;
  x3do:position ( 20 20 -20 ) .
:TopCorner4 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'TopCorner4' ;
  x3do:description 'Top Corner Red Right Side' ;
  x3do:orientation ( -0.12 -0.95 -0.30 2.39 ) ;
  x3do:position ( -20 20 -20 ) .
:BottomAngle1 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomAngle1' ;
  x3do:description 'Bottom Angle Blue Side' ;
  x3do:orientation ( 1 -0 0 0.79 ) ;
  x3do:position ( 0 -20 20 ) .
:BottomAngle2 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomAngle2' ;
  x3do:description 'Bottom Angle Red Side' ;
  x3do:orientation ( 0 -0.92 0.38 3.14 ) ;
  x3do:position ( 0 -20 -20 ) .
:BottomAngle3 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomAngle3' ;
  x3do:description 'Bottom Angle Blue on Left' ;
  x3do:orientation ( 0.36 0.86 -0.36 1.72 ) ;
  x3do:position ( 20 -20 0 ) .
:BottomAngle4 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomAngle4' ;
  x3do:description 'Bottom Angle Red on Left' ;
  x3do:orientation ( 0.36 -0.86 0.36 1.72 ) ;
  x3do:position ( -20 -20 0 ) .
:BottomCorner1 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomCorner1' ;
  x3do:description 'Bottom Corner Blue Left Side' ;
  x3do:orientation ( 0.59 -0.77 0.24 0.99 ) ;
  x3do:position ( -20 -20 20 ) .
:BottomCorner2 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomCorner2' ;
  x3do:description 'Bottom Corner Blue Right Side' ;
  x3do:orientation ( 0.59 0.77 -0.24 0.99 ) ;
  x3do:position ( 20 -20 20 ) .
:BottomCorner3 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomCorner3' ;
  x3do:description 'Bottom Corner Red Left Side' ;
  x3do:orientation ( 0.12 0.95 -0.3 2.4 ) ;
  x3do:position ( 20 -20 -20 ) .
:BottomCorner4 a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BottomCorner4' ;
  x3do:description 'Bottom Corner Red Right Side' ;
  x3do:orientation ( 0.12 -0.95 0.3 2.39 ) ;
  x3do:position ( -20 -20 -20 ) .
:Background_2_59 a owl:NamedIndividual, x3do:Background ;
  x3do:hasParent :Scene ;
  x3do:groundAngle ( 1.309 1.570796 ) ;
  x3do:groundColor ( 0 0 0.1 0 0.1 0.3 0.3 0.3 0.6 ) ;
  x3do:skyAngle ( 1.309 1.571 ) ;
  x3do:skyColor ( 1 0 0.8 0.5 0 0.8 0 0 0.8 ) .
:BackgroundCyan-ish a owl:NamedIndividual, x3do:Background ;
  x3do:hasParent :Scene ;
  x3do:DEF 'BackgroundCyan-ish' ;
  x3do:groundAngle ( 1.309 1.570796 ) ;
  x3do:groundColor ( 0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6 ) ;
  x3do:skyAngle ( 1.309 1.571 ) ;
  x3do:skyColor ( 0 0.2 0.7 0.0 0.5 1 1 1 1 ) .
