From 4b4228bf65aad20a2e62a290df36a09fe908f5ab Mon Sep 17 00:00:00 2001
From: Marcel Dreier <marcelqq7@gmail.com>
Date: Thu, 29 Sep 2022 15:21:12 +0200
Subject: [PATCH] added an UnequalFact to the Unity-Frontend

---
 .../Prefabs/UI/Icons/ConeVolume_prefab.prefab |    8 +-
 .../Prefabs/UI/Icons/CylinderVolume.prefab    |  265 +++
 .../UI/Icons/CylinderVolume.prefab.meta       |    7 +
 .../UI/Icons/EqualCirclesPrefab.prefab        |  400 +++++
 .../UI/Icons/EqualCirclesPrefab.prefab.meta   |    7 +
 .../Prefabs/UI/Icons/TestFactPrefab.prefab    |  130 ++
 .../UI/Icons/TestFactPrefab.prefab.meta       |    7 +
 .../UI/Icons/TruncatedConeVolumePrefab.prefab |   10 +-
 .../UI/Icons/UnequalCirclesPrefab.prefab      |  400 +++++
 .../UI/Icons/UnequalCirclesPrefab.prefab.meta |    7 +
 Assets/Scenes/Worlds/RiverWorld.unity         | 1566 ++++++++++++++++-
 .../InteractionEngine/FactHandling/Fact.cs    |  724 +++++++-
 .../FactHandling/FactManager.cs               |    8 +
 .../Gadgets/EqualCircleGadget.cs              |  111 ++
 .../Gadgets/EqualCircleGadget.cs.meta         |   11 +
 Assets/Scripts/InventoryStuff/DisplayFacts.cs |   11 +-
 .../Items/images/CylinderVolume.png           |    3 +
 .../Items/images/CylinderVolume.png.meta      |  160 ++
 .../Items/images/Equal circles.png            |    3 +
 .../Items/images/Equal circles.png.meta       |  160 ++
 .../Items/images/EqualCircles.png             |    3 +
 .../Items/images/EqualCircles.png.meta        |  160 ++
 .../InventoryStuff/Items/images/Square 1.png  |    3 +
 .../Items/images/Square 1.png.meta            |  160 ++
 .../Items/images/TruncatedConeVolume.png      |    4 +-
 .../Items/images/UnEqualCircles.png           |    3 +
 .../Items/images/UnEqualCircles.png.meta      |  160 ++
 .../Scripts/InventoryStuff/ScrollDetails.cs   |   19 +-
 Assets/Scripts/JSONManager.cs                 |    6 +
 29 files changed, 4445 insertions(+), 71 deletions(-)
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab.meta
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab.meta
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab.meta
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab.meta
 create mode 100644 Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs
 create mode 100644 Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs.meta
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png.meta
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/Equal circles.png
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/Equal circles.png.meta
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png.meta
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/Square 1.png
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/Square 1.png.meta
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png.meta

diff --git a/Assets/Resources/Prefabs/UI/Icons/ConeVolume_prefab.prefab b/Assets/Resources/Prefabs/UI/Icons/ConeVolume_prefab.prefab
index 1c484647..9ec0e4ef 100644
--- a/Assets/Resources/Prefabs/UI/Icons/ConeVolume_prefab.prefab
+++ b/Assets/Resources/Prefabs/UI/Icons/ConeVolume_prefab.prefab
@@ -34,7 +34,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -1.1, y: -35.8}
+  m_AnchoredPosition: {x: -4.9, y: -42.4}
   m_SizeDelta: {x: 100, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &8855531360084136872
@@ -65,7 +65,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: 
+  m_text: AAAAA
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
   m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@@ -92,8 +92,8 @@ MonoBehaviour:
   m_faceColor:
     serializedVersion: 2
     rgba: 4294967295
-  m_fontSize: 36
-  m_fontSizeBase: 36
+  m_fontSize: 28
+  m_fontSizeBase: 28
   m_fontWeight: 400
   m_enableAutoSizing: 0
   m_fontSizeMin: 18
diff --git a/Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab b/Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab
new file mode 100644
index 00000000..bf194d69
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab
@@ -0,0 +1,265 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3705838077157398664
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3254540930359715604}
+  - component: {fileID: 4683551907175501866}
+  - component: {fileID: 6630856054862537504}
+  m_Layer: 5
+  m_Name: point (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3254540930359715604
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3705838077157398664}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 7509137162853395042}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.66}
+  m_AnchoredPosition: {x: -0.3, y: -38.2}
+  m_SizeDelta: {x: 100, y: 34}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4683551907175501866
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3705838077157398664}
+  m_CullTransparentMesh: 0
+--- !u!114 &6630856054862537504
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3705838077157398664}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: AAAAB
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278190080
+  m_fontColor: {r: 0, g: 0, b: 0, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 25
+  m_fontSizeBase: 25
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 1
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 5.0387573, y: 9.987152, z: 5.7023926, w: 12.278198}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &5287418535931939099
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7509137162853395042}
+  - component: {fileID: 4650902899377139768}
+  - component: {fileID: 8448132399530171869}
+  - component: {fileID: 4549857745383475350}
+  - component: {fileID: -7338472263132780475}
+  - component: {fileID: 7240967210820331247}
+  - component: {fileID: 2130710490396271644}
+  m_Layer: 0
+  m_Name: CylinderVolume
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7509137162853395042
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 3254540930359715604}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4650902899377139768
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_CullTransparentMesh: 1
+--- !u!114 &8448132399530171869
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 352d7dd2edb65f542aba25be27d20d98, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4549857745383475350
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 77b75bbb0b640664db62cf8acb69994e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imageToChange: {fileID: 0}
+--- !u!114 &-7338472263132780475
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a091cb23127eb7347955cb7f747af431, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!225 &7240967210820331247
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!114 &2130710490396271644
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5287418535931939099}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ed0bcd3d8d9996d4f86c0a2b8b71c6bf, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab.meta b/Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab.meta
new file mode 100644
index 00000000..71722674
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/CylinderVolume.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 30d09e8685950994893b3b6388a8906c
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab b/Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab
new file mode 100644
index 00000000..053fe1f2
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab
@@ -0,0 +1,400 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &999269623253825707
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3366796833421112245}
+  - component: {fileID: 4263202893165916959}
+  - component: {fileID: 4670384714962435475}
+  m_Layer: 5
+  m_Name: point
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3366796833421112245
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 999269623253825707}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2057578581648752616}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -1.2, y: -33.4}
+  m_SizeDelta: {x: 100, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4263202893165916959
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 999269623253825707}
+  m_CullTransparentMesh: 0
+--- !u!114 &4670384714962435475
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 999269623253825707}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: A
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278190080
+  m_fontColor: {r: 0, g: 0, b: 0, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 1
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 6.2644043, y: 0, z: 3.7074585, w: 10.496887}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &2206246547044702491
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1916022202853548340}
+  - component: {fileID: 5865187638587084515}
+  - component: {fileID: 2948658129975585178}
+  m_Layer: 5
+  m_Name: point (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1916022202853548340
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2206246547044702491}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2057578581648752616}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.66}
+  m_AnchoredPosition: {x: 0.6, y: 19.6}
+  m_SizeDelta: {x: 100, y: 34}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5865187638587084515
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2206246547044702491}
+  m_CullTransparentMesh: 0
+--- !u!114 &2948658129975585178
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2206246547044702491}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: A
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278190080
+  m_fontColor: {r: 0, g: 0, b: 0, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 1
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 5.0387573, y: 9.987152, z: 5.7023926, w: 12.278198}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &7523305359074541435
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2057578581648752616}
+  - component: {fileID: 7719973282818826063}
+  - component: {fileID: 2180110340788369784}
+  - component: {fileID: 1285080900581311433}
+  - component: {fileID: 6805943141472748426}
+  - component: {fileID: 3549802384644774303}
+  - component: {fileID: 4430445033801091530}
+  m_Layer: 0
+  m_Name: EqualCirclesPrefab
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2057578581648752616
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1916022202853548340}
+  - {fileID: 3366796833421112245}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7719973282818826063
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_CullTransparentMesh: 1
+--- !u!114 &2180110340788369784
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: ad920a8c90fd4c74ba95809d3e14e6b7, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1285080900581311433
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 77b75bbb0b640664db62cf8acb69994e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imageToChange: {fileID: 0}
+--- !u!114 &6805943141472748426
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a091cb23127eb7347955cb7f747af431, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!225 &3549802384644774303
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!114 &4430445033801091530
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7523305359074541435}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ed0bcd3d8d9996d4f86c0a2b8b71c6bf, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
diff --git a/Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab.meta b/Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab.meta
new file mode 100644
index 00000000..5a6cc969
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/EqualCirclesPrefab.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5f461930be2eb074193dc12eb60e10b2
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab b/Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab
new file mode 100644
index 00000000..3a43cec8
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab
@@ -0,0 +1,130 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2846439484187545958
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6755804354927699367}
+  - component: {fileID: 3779590155575851460}
+  - component: {fileID: 5078315713010028456}
+  - component: {fileID: 2785454548719711828}
+  - component: {fileID: 156028697059819196}
+  - component: {fileID: 1224931104090066081}
+  - component: {fileID: -5313503588223420466}
+  m_Layer: 0
+  m_Name: TestFactPrefab
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6755804354927699367
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3779590155575851460
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_CullTransparentMesh: 1
+--- !u!114 &5078315713010028456
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: e706f1d2fb068e342b1c80c357d84b40, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2785454548719711828
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a091cb23127eb7347955cb7f747af431, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!225 &156028697059819196
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!114 &1224931104090066081
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ed0bcd3d8d9996d4f86c0a2b8b71c6bf, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!114 &-5313503588223420466
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2846439484187545958}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 77b75bbb0b640664db62cf8acb69994e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imageToChange: {fileID: 0}
diff --git a/Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab.meta b/Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab.meta
new file mode 100644
index 00000000..cf49f399
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/TestFactPrefab.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5dc76e187eae4214697491bfb42773e8
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/Prefabs/UI/Icons/TruncatedConeVolumePrefab.prefab b/Assets/Resources/Prefabs/UI/Icons/TruncatedConeVolumePrefab.prefab
index ca4e04e9..e8d5b381 100644
--- a/Assets/Resources/Prefabs/UI/Icons/TruncatedConeVolumePrefab.prefab
+++ b/Assets/Resources/Prefabs/UI/Icons/TruncatedConeVolumePrefab.prefab
@@ -163,7 +163,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -5, y: -40.4}
+  m_AnchoredPosition: {x: -5.3, y: -47.5}
   m_SizeDelta: {x: 100, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &860698918242124271
@@ -194,7 +194,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: 
+  m_text: AAAAA
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
   m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@@ -221,8 +221,8 @@ MonoBehaviour:
   m_faceColor:
     serializedVersion: 2
     rgba: 4294967295
-  m_fontSize: 32
-  m_fontSizeBase: 32
+  m_fontSize: 28
+  m_fontSizeBase: 28
   m_fontWeight: 400
   m_enableAutoSizing: 0
   m_fontSizeMin: 18
@@ -257,7 +257,7 @@ MonoBehaviour:
   m_VertexBufferAutoSizeReduction: 1
   m_useMaxVisibleDescender: 1
   m_pageToDisplay: 1
-  m_margin: {x: 3.288086, y: -4.9126587, z: -10.903687, w: 17.942413}
+  m_margin: {x: 3.288086, y: -4.9126587, z: -6.52417, w: 17.942413}
   m_isUsingLegacyAnimationComponent: 0
   m_isVolumetricText: 0
   m_hasFontAssetChanged: 0
diff --git a/Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab b/Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab
new file mode 100644
index 00000000..99761cdd
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab
@@ -0,0 +1,400 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3217755535904919554
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6656328133969465038}
+  - component: {fileID: 6852736761944882406}
+  - component: {fileID: 5654613262439864818}
+  m_Layer: 5
+  m_Name: point
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6656328133969465038
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3217755535904919554}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1329885387404967602}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -1.2000732, y: -33.399963}
+  m_SizeDelta: {x: 100, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6852736761944882406
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3217755535904919554}
+  m_CullTransparentMesh: 0
+--- !u!114 &5654613262439864818
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3217755535904919554}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: A
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278190080
+  m_fontColor: {r: 0, g: 0, b: 0, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 1
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 6.2644043, y: 0, z: 3.7074585, w: 10.496887}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &5769925203401971992
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1329885387404967602}
+  - component: {fileID: 8848431339215720241}
+  - component: {fileID: 7403282225673375912}
+  - component: {fileID: 3225367128346546047}
+  - component: {fileID: 4056140006323214235}
+  - component: {fileID: 8957209247582476496}
+  - component: {fileID: -6417425987847613228}
+  m_Layer: 0
+  m_Name: UnequalCirclesPrefab
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1329885387404967602
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 5090358772929881988}
+  - {fileID: 6656328133969465038}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8848431339215720241
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_CullTransparentMesh: 1
+--- !u!114 &7403282225673375912
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 269651011d5ec79458964edbef59ae70, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &3225367128346546047
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 77b75bbb0b640664db62cf8acb69994e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imageToChange: {fileID: 0}
+--- !u!114 &4056140006323214235
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a091cb23127eb7347955cb7f747af431, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!225 &8957209247582476496
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!114 &-6417425987847613228
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5769925203401971992}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ed0bcd3d8d9996d4f86c0a2b8b71c6bf, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!1 &5984757243279669606
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5090358772929881988}
+  - component: {fileID: 2730122920114417607}
+  - component: {fileID: 6694126399850149665}
+  m_Layer: 5
+  m_Name: point (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5090358772929881988
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5984757243279669606}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1329885387404967602}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.66}
+  m_AnchoredPosition: {x: 0.5999756, y: 19.600037}
+  m_SizeDelta: {x: 100, y: 34}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2730122920114417607
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5984757243279669606}
+  m_CullTransparentMesh: 0
+--- !u!114 &6694126399850149665
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5984757243279669606}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: A
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278190080
+  m_fontColor: {r: 0, g: 0, b: 0, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 1
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 5.0387573, y: 9.987152, z: 5.7023926, w: 12.278198}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
diff --git a/Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab.meta b/Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab.meta
new file mode 100644
index 00000000..9b97b2f1
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/UnequalCirclesPrefab.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 047cd3a517f781846a1f983394b4bb7b
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/Worlds/RiverWorld.unity b/Assets/Scenes/Worlds/RiverWorld.unity
index 47e93846..f6b89b03 100644
--- a/Assets/Scenes/Worlds/RiverWorld.unity
+++ b/Assets/Scenes/Worlds/RiverWorld.unity
@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.4410865, g: 0.48984045, b: 0.5699203, a: 1}
+  m_IndirectSpecularColor: {r: 0.4410664, g: 0.4898227, b: 0.5699191, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -768,6 +768,45 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 37539094}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &43684678
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 43684679}
+  m_Layer: 0
+  m_Name: light
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &43684679
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 43684678}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 707579784}
+  - {fileID: 1560055899}
+  - {fileID: 2008941472}
+  - {fileID: 1265596793}
+  - {fileID: 55659798}
+  - {fileID: 502335600}
+  - {fileID: 275141865}
+  - {fileID: 174499043}
+  - {fileID: 959346639}
+  m_Father: {fileID: 1892101862}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1001 &45912293
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -948,6 +987,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 53893722}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &55659797
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 55659798}
+  - component: {fileID: 55659800}
+  - component: {fileID: 55659799}
+  m_Layer: 0
+  m_Name: Lamp03
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &55659798
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 55659797}
+  m_LocalRotation: {x: 0.000000008089408, y: 0.99815303, z: 0.060750425, w: -0.00000013291212}
+  m_LocalPosition: {x: -0.18686707, y: 2.232217, z: -6.360401}
+  m_LocalScale: {x: 1.2480193, y: 1.2480197, z: 0.9301182}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &55659799
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 55659797}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 7626191068330388430, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &55659800
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 55659797}
+  m_Mesh: {fileID: 9127768759793400938, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &64596003
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -1909,6 +2029,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 103471796}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &111113350
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 111113351}
+  - component: {fileID: 111113353}
+  - component: {fileID: 111113352}
+  m_Layer: 0
+  m_Name: Helix002
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &111113351
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 111113350}
+  m_LocalRotation: {x: 0.6427877, y: -0, z: -0, w: 0.76604444}
+  m_LocalPosition: {x: -0.0000419548, y: -2.3787, z: 0.3713122}
+  m_LocalScale: {x: 0.4913462, y: 0.49134624, z: 0.36618823}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &111113352
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 111113350}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 7626191068330388430, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &111113353
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 111113350}
+  m_Mesh: {fileID: 6016102661566203690, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &114221650
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -3184,6 +3385,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 174119663}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &174499042
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 174499043}
+  - component: {fileID: 174499045}
+  - component: {fileID: 174499044}
+  m_Layer: 0
+  m_Name: Lamp06
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &174499043
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 174499042}
+  m_LocalRotation: {x: -0.0000000035254462, y: 0.99964947, z: -0.026475651, w: -0.00000013311137}
+  m_LocalPosition: {x: -0.18697327, y: 1.2920719, z: -6.279079}
+  m_LocalScale: {x: 3.0876324, y: 3.0876336, z: 4.1923523}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &174499044
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 174499042}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &174499045
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 174499042}
+  m_Mesh: {fileID: 7123417763800259717, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &180392428
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -5179,6 +5461,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 273981870}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &275141864
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 275141865}
+  - component: {fileID: 275141867}
+  - component: {fileID: 275141866}
+  m_Layer: 0
+  m_Name: Lamp05
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &275141865
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 275141864}
+  m_LocalRotation: {x: 0.51306266, y: -0.48658693, z: 0.5130625, w: -0.486587}
+  m_LocalPosition: {x: -0.18697327, y: 2.315078, z: -6.3159885}
+  m_LocalScale: {x: 2.7027915, y: 2.5400007, z: 1.146885}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &275141866
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 275141864}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &275141867
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 275141864}
+  m_Mesh: {fileID: -1736445758434401373, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &278735635
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -11709,6 +12072,88 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 410441062}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &411910020
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 411910021}
+  - component: {fileID: 411910023}
+  - component: {fileID: 411910022}
+  m_Layer: 0
+  m_Name: Cylinder004
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &411910021
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 411910020}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
+  m_LocalPosition: {x: -0, y: 2.2088046, z: 0}
+  m_LocalScale: {x: 1.0110741, y: 1.0110741, z: 1}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &411910022
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 411910020}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  - {fileID: -7161351915816769751, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &411910023
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 411910020}
+  m_Mesh: {fileID: -5208879343037863941, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &416948503
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -12930,6 +13375,88 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 501643327}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &502335599
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 502335600}
+  - component: {fileID: 502335602}
+  - component: {fileID: 502335601}
+  m_Layer: 0
+  m_Name: Lamp04
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &502335600
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 502335599}
+  m_LocalRotation: {x: -0.0000000035254462, y: 0.99964947, z: -0.026475651, w: -0.00000013311137}
+  m_LocalPosition: {x: -0.18697172, y: 1.9071897, z: 5.325448}
+  m_LocalScale: {x: 2.5681279, y: 2.5681279, z: 2.5400007}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &502335601
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 502335599}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  - {fileID: -7161351915816769751, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &502335602
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 502335599}
+  m_Mesh: {fileID: 6226192841892960075, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &505972503
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -13935,6 +14462,12 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 544167770}
   m_PrefabAsset: {fileID: 0}
+--- !u!4 &544271497 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: 2085357036970601581, guid: b07552db700124a4680401e6fb94c186,
+    type: 3}
+  m_PrefabInstance: {fileID: 3020720018843181009}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1001 &544431158
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -15637,7 +16170,7 @@ Mesh:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: pb_Mesh32882
+  m_Name: pb_Mesh52006
   serializedVersion: 10
   m_SubMeshes:
   - serializedVersion: 2
@@ -17095,6 +17628,45 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 704600771}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &707579783
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 707579784}
+  m_Layer: 0
+  m_Name: Group002
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &707579784
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 707579783}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+  m_LocalPosition: {x: 0.395, y: -0.143, z: 0.253}
+  m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
+  m_Children:
+  - {fileID: 1681866294}
+  - {fileID: 411910021}
+  - {fileID: 1141244209}
+  - {fileID: 111113351}
+  - {fileID: 2048471660}
+  - {fileID: 1729070474}
+  - {fileID: 1850451167}
+  - {fileID: 1138491525}
+  - {fileID: 1406854049}
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
 --- !u!1001 &715240475
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -22380,6 +22952,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 959291868}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &959346638
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 959346639}
+  - component: {fileID: 959346641}
+  - component: {fileID: 959346640}
+  m_Layer: 0
+  m_Name: Lamp07
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &959346639
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 959346638}
+  m_LocalRotation: {x: 0.000000091631094, y: 0.72558, z: 0.6881378, w: -0.000000096616816}
+  m_LocalPosition: {x: -0.1869725, y: 1.6138662, z: -0.20825356}
+  m_LocalScale: {x: 2.2279458, y: 2.5400007, z: 2.2279456}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 8
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &959346640
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 959346638}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &959346641
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 959346638}
+  m_Mesh: {fileID: -5323330051269172871, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &963166847
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -24300,6 +24953,18 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1056045989}
   m_PrefabAsset: {fileID: 0}
+--- !u!114 &1056709728 stripped
+MonoBehaviour:
+  m_CorrespondingSourceObject: {fileID: 8639532815829511938, guid: b07552db700124a4680401e6fb94c186,
+    type: 3}
+  m_PrefabInstance: {fileID: 3020720018843181009}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7eb4e0f96b3698c4fb2a5249dccf469b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
 --- !u!1001 &1065504220
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -25455,6 +26120,180 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1134471029}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1138491524
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1138491525}
+  - component: {fileID: 1138491526}
+  m_Layer: 0
+  m_Name: Omni002
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1138491525
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1138491524}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: -0.7071068}
+  m_LocalPosition: {x: -0, y: 1.2068384, z: -0.00000019378662}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!108 &1138491526
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1138491524}
+  m_Enabled: 1
+  serializedVersion: 10
+  m_Type: 0
+  m_Shape: 0
+  m_Color: {r: 0.9333334, g: 0.9294118, b: 1, a: 1}
+  m_Intensity: 10
+  m_Range: 8.412479
+  m_SpotAngle: 8.7
+  m_InnerSpotAngle: 8.7
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 2
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.2
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 1
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_UseViewFrustumForShadowCasterCull: 1
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!1 &1141244208
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1141244209}
+  - component: {fileID: 1141244211}
+  - component: {fileID: 1141244210}
+  m_Layer: 0
+  m_Name: GeoSphere002
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1141244209
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1141244208}
+  m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0, y: 2.3046205, z: 0}
+  m_LocalScale: {x: 0.9365708, y: 0.39187068, z: 0.9365708}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1141244210
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1141244208}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 8290782892783832528, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1141244211
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1141244208}
+  m_Mesh: {fileID: -5008381810204397873, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &1141827343
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -27710,6 +28549,89 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1253666226}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1265596792
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1265596793}
+  - component: {fileID: 1265596795}
+  - component: {fileID: 1265596794}
+  m_Layer: 0
+  m_Name: Lamp02
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &1265596793
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1265596792}
+  m_LocalRotation: {x: 0.000000091631094, y: 0.72558, z: 0.6881378, w: -0.000000096616816}
+  m_LocalPosition: {x: -0.1869725, y: 1.6138662, z: -0.20825356}
+  m_LocalScale: {x: 2.2279458, y: 2.5400007, z: 2.2279456}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1265596794
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1265596792}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4053520464898690182, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  - {fileID: 5967751492454651251, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1265596795
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1265596792}
+  m_Mesh: {fileID: -4516270096655458733, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &1267759517
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -29995,6 +30917,87 @@ MeshFilter:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1403024656}
   m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1406854048
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1406854049}
+  - component: {fileID: 1406854051}
+  - component: {fileID: 1406854050}
+  m_Layer: 0
+  m_Name: Tube002
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1406854049
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1406854048}
+  m_LocalRotation: {x: 0.7071068, y: 0.00000009415696, z: -0.7071067, w: 0.00000009415697}
+  m_LocalPosition: {x: -0, y: -2.359513, z: 0.40296298}
+  m_LocalScale: {x: 1.0640908, y: 1, z: 0.45152956}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 8
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1406854050
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1406854048}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1406854051
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1406854048}
+  m_Mesh: {fileID: -8429489704275616702, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &1414615871
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -32709,6 +33712,87 @@ MeshFilter:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1558248468}
   m_Mesh: {fileID: 0}
+--- !u!1 &1560055898
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1560055899}
+  - component: {fileID: 1560055901}
+  - component: {fileID: 1560055900}
+  m_Layer: 0
+  m_Name: Lamp00
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &1560055899
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1560055898}
+  m_LocalRotation: {x: 0.00000009163111, y: 0.72558, z: 0.68813795, w: -0.000000096616816}
+  m_LocalPosition: {x: -0.18697172, y: 1.9200721, z: 5.56848}
+  m_LocalScale: {x: 2.3788898, y: 0.99535114, z: 2.3788908}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1560055900
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1560055898}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 8290782892783832528, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1560055901
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1560055898}
+  m_Mesh: {fileID: -3277585872683695184, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1 &1560940259
 GameObject:
   m_ObjectHideFlags: 0
@@ -35384,6 +36468,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1680836662}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1681866293
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1681866294}
+  - component: {fileID: 1681866296}
+  - component: {fileID: 1681866295}
+  m_Layer: 0
+  m_Name: Cylinder003
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1681866294
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1681866293}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
+  m_LocalPosition: {x: -0, y: -2.1821377, z: 0}
+  m_LocalScale: {x: 1.2156034, y: 1.2156034, z: 1.6505318}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1681866295
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1681866293}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1681866296
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1681866293}
+  m_Mesh: {fileID: 8245426573784773463, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &1683375867
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -36014,6 +37179,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1725470545}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1729070473
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1729070474}
+  - component: {fileID: 1729070476}
+  - component: {fileID: 1729070475}
+  m_Layer: 0
+  m_Name: Object006
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1729070474
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1729070473}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067}
+  m_LocalPosition: {x: -0, y: -2.3663206, z: 0}
+  m_LocalScale: {x: 1.2156034, y: 1.2156034, z: 1.6505318}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1729070475
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1729070473}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1729070476
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1729070473}
+  m_Mesh: {fileID: -2639241166356525208, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &1731380964
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -38822,6 +40068,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1849607279}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1850451166
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1850451167}
+  - component: {fileID: 1850451169}
+  - component: {fileID: 1850451168}
+  m_Layer: 0
+  m_Name: Object007
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1850451167
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1850451166}
+  m_LocalRotation: {x: 0.000000059604645, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0, y: 0.027123343, z: 0}
+  m_LocalScale: {x: 0.877144, y: 1, z: 0.877144}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &1850451168
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1850451166}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1850451169
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1850451166}
+  m_Mesh: {fileID: 7733717212360752527, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &1852050573
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -39902,6 +41229,58 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 1892034780}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1892101861
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1892101862}
+  - component: {fileID: 1892101863}
+  m_Layer: 9
+  m_Name: EqualCircles
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1892101862
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1892101861}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 43684679}
+  m_Father: {fileID: 544271497}
+  m_RootOrder: 8
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1892101863
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1892101861}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3d26ac5cd1e235148b7c35538c429335, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  id: -1
+  UiName: EqualCircles Mode
+  MaxRange: 0
+  Sprite: {fileID: 21300000, guid: e35797aede3d7bd449ca9195a409b0cc, type: 3}
+  ignoreLayerMask:
+    serializedVersion: 2
+    m_Bits: 0
+  Cursor: {fileID: 1056709728}
 --- !u!1001 &1892682757
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -54927,6 +56306,87 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 2001903172}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &2008941471
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2008941472}
+  - component: {fileID: 2008941474}
+  - component: {fileID: 2008941473}
+  m_Layer: 0
+  m_Name: Lamp01
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!4 &2008941472
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2008941471}
+  m_LocalRotation: {x: -0.0000000035254462, y: 0.99964947, z: -0.026475651, w: -0.00000013311137}
+  m_LocalPosition: {x: -0.18697327, y: 1.3168347, z: -5.8119106}
+  m_LocalScale: {x: 3.0876324, y: 3.0876336, z: 4.1923523}
+  m_Children: []
+  m_Father: {fileID: 43684679}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &2008941473
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2008941471}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2008941474
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2008941471}
+  m_Mesh: {fileID: -1905102930025053637, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &2010815994
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -55362,6 +56822,88 @@ Transform:
     type: 3}
   m_PrefabInstance: {fileID: 2045440410}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &2048471659
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2048471660}
+  - component: {fileID: 2048471662}
+  - component: {fileID: 2048471661}
+  m_Layer: 0
+  m_Name: Object005
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &2048471660
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2048471659}
+  m_LocalRotation: {x: 0.000000059604645, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -0, y: 0.027123343, z: 0}
+  m_LocalScale: {x: 0.877144, y: 1, z: 0.877144}
+  m_Children: []
+  m_Father: {fileID: 707579784}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!23 &2048471661
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2048471659}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: -4963801623029300775, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  - {fileID: 5967751492454651251, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2048471662
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2048471659}
+  m_Mesh: {fileID: 9186633843763367028, guid: 1ed450acf42d68f4cbe65c36bce3da06, type: 3}
 --- !u!1001 &2058531815
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -57670,6 +59212,18 @@ PrefabInstance:
       propertyPath: walkAroundObject
       value: 
       objectReference: {fileID: 802019337}
+    - target: {fileID: 3020720019460506146, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: prefab_TestFact
+      value: 
+      objectReference: {fileID: 2846439484187545958, guid: 5dc76e187eae4214697491bfb42773e8,
+        type: 3}
+    - target: {fileID: 3020720019460506146, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: prefab_EqualFact
+      value: 
+      objectReference: {fileID: 7523305359074541435, guid: 5f461930be2eb074193dc12eb60e10b2,
+        type: 3}
     - target: {fileID: 3020720019460506146, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: prefab_AreaCircle
@@ -57700,6 +59254,12 @@ PrefabInstance:
       value: 
       objectReference: {fileID: 3080888058940174091, guid: 389563c758e86d848b3341576b90b7e4,
         type: 3}
+    - target: {fileID: 3020720019460506146, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: prefab_UnEqualFact
+      value: 
+      objectReference: {fileID: 5769925203401971992, guid: 047cd3a517f781846a1f983394b4bb7b,
+        type: 3}
     - target: {fileID: 3020720019460506146, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: prefab_OnCircleFact
@@ -57716,7 +59276,7 @@ PrefabInstance:
         type: 3}
       propertyPath: prefab_CylinderVolume
       value: 
-      objectReference: {fileID: 4509982228914264782, guid: 09974a8b56c29434a9c32f1adc92d705,
+      objectReference: {fileID: 5287418535931939099, guid: 30d09e8685950994893b3b6388a8906c,
         type: 3}
     - target: {fileID: 3020720019460506146, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Fact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Fact.cs
index 2e41547b..b7effa0f 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Fact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Fact.cs
@@ -33,7 +33,10 @@ public class ParsingDictionary {
         {MMTURIs.VolumeCone ,ConeVolumeFact.parseFact  },
         {MMTURIs.TruncatedVolumeCone ,TruncatedConeVolumeFact.parseFact  },
         {MMTURIs.RightAngle, RightAngleFact.parseFact },
-        {MMTURIs.CylinderVolume, CylinderVolumeFact.parseFact }
+        {MMTURIs.CylinderVolume, CylinderVolumeFact.parseFact },
+        {MMTURIs.TestType, TestFact.parseFact },
+        {MMTURIs.EqualityCircles, EqualCirclesFact.parseFact },
+        {MMTURIs.UnEqualityCircles, UnEqualCirclesFact.parseFact }
 
 
 
@@ -615,6 +618,10 @@ public PointFact(float a, float b, float c, string uri, FactOrganizer organizer)
     public new static PointFact parseFact(Scroll.ScrollFact fact) {
         String uri = fact.@ref.uri;
         OMA df = (OMA)((Scroll.ScrollSymbolFact)fact).df;
+
+        Debug.Log("Point decomposed :"+ParsingDictionary.MMTermToString(df));
+
+
         if (df == null)
             return null;
 
@@ -1724,9 +1731,9 @@ public CircleFact(string Pid1, string Pid2, float radius, Vector3 normal, string
             return null;
 
         Scroll.ScrollSymbolFact casted_fact = (Scroll.ScrollSymbolFact)fact;
+        
 
 
-       
         // get the mid point uri
         string parse_id_M = ParsingDictionary.MMTermToString(((OMA)casted_fact.df).arguments[1]);
 
@@ -2070,20 +2077,17 @@ protected override bool EquivalentWrapped(OnCircleFact c1, OnCircleFact c2)
 
 
 /// <summary>
-/// Angle comprised of three <see cref="PointFact">PointFacts</see> [A,B,C]
+/// Angle comprised of a line and a circle 
 /// </summary>
 public class AngleCircleLineFact : FactWrappedCRTP<AngleCircleLineFact>
 {
     /// @{ <summary>
-    /// One <see cref="Fact.Id">Id</see> of three <see cref="PointFact">PointFacts</see> defining Angle [<see cref="Pid1"/>, <see cref="Pid2"/>, <see cref="Pid3"/>].
+    /// One <see cref="Fact.Id">Id</see> of a <see cref="RayFact">RayFact</see> and a <see cref="CircleFact">CircleFact</see>  defining Angle [<see cref="Cid1"/>, <see cref="Rid2"/>].
     /// </summary>
     public string Cid1, Rid2;
     /// @}
     float angle;
 
-    /// <summary> <see langword="true"/>, if AngleFact is approximately 90° or 270°</summary>
-
-
     /// <summary> \copydoc Fact.Fact </summary>
     public AngleCircleLineFact() : base()
     {
@@ -2106,9 +2110,9 @@ public AngleCircleLineFact(AngleCircleLineFact fact, Dictionary<string, string>
     /// <summary>
     /// Standard Constructor
     /// </summary>
-    /// <param name="pid1">sets <see cref="Pid1"/></param>
-    /// <param name="pid2">sets <see cref="Pid2"/></param>
-    /// <param name="pid3">sets <see cref="Pid3"/></param>
+    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="rid2">sets <see cref="Rid2"/></param>
+    /// <param name="angle"> sets the angle </param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
     public AngleCircleLineFact(string cid1, string rid2, float angle, FactOrganizer organizer) : base(organizer)
     {
@@ -2116,11 +2120,11 @@ public AngleCircleLineFact(string cid1, string rid2, float angle, FactOrganizer
     }
 
     /// <summary>
-    /// Initiates <see cref="Pid1"/>, <see cref="Pid2"/>, <see cref="Pid3"/>, <see cref="is_right_angle"/>, <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
+    /// Initiates <see cref="Cid1"/>, <see cref="Rid2"/>, <see cref="angle"/> <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
     /// </summary>
-    /// <param name="pid1">sets <see cref="Pid1"/></param>
-    /// <param name="pid2">sets <see cref="Pid2"/></param>
-    /// <param name="pid3">sets <see cref="Pid3"/></param>
+    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="rid2">sets <see cref="Rid2"/></param>
+    /// <param name="angle"> sets the angle </param>
     private void init(string cid1, string rid2, float angle)
     {
         this.Cid1 = cid1;
@@ -2148,9 +2152,9 @@ private void init(string cid1, string rid2, float angle)
     /// <summary>
     /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
     /// </summary>
-    /// <param name="Pid1">sets <see cref="Pid1"/></param>
-    /// <param name="Pid2">sets <see cref="Pid2"/></param>
-    /// <param name="Pid3">sets <see cref="Pid3"/></param>
+    /// <param name="Cid1">sets <see cref="Cid1"/></param>
+    /// <param name="´Rid2">sets <see cref="Rid2"/></param>
+    /// <param name="angle"> sets the angle </param>
     /// <param name="backendURI">MMT URI</param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
     public AngleCircleLineFact(string Cid1, string Rid2, float angle, string backendURI, FactOrganizer organizer) : base(organizer)
@@ -2217,9 +2221,9 @@ protected override string generateLabel()
     /// Constructs struct for not-right-angled MMT %Fact <see cref="AddFactResponse"/>
     /// </summary>
     /// <param name="val">Angle != 90f, _not checked_</param>
-    /// <param name="p1URI"><see cref="Pid1"/></param>
-    /// <param name="p2URI"><see cref="Pid2"/></param>
-    /// <param name="p3URI"><see cref="Pid3"/></param>
+    /// <param name="c1URI"><see cref="Cid1"/></param>
+    /// <param name="R2URI"><see cref="Rid2"/></param>
+    /// <param name="val"><see cref="angle"/></param>
     /// <returns>struct for <see cref="AddFactResponse"/></returns>
     private MMTDeclaration generateMMTDeclaration(float val, string c1URI, string r2URI)
     {
@@ -2346,7 +2350,7 @@ private void init(string cid1)
     /// <summary>
     /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
     /// </summary>
-    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="Cid1">sets <see cref="Cid1"/></param>
     /// <param name="backendURI">MMT URI</param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
     public RadiusFact(string Cid1, string backendURI, FactOrganizer organizer) : base(organizer)
@@ -2647,7 +2651,7 @@ public ConeVolumeFact(string cid1,string pid1, float vol, FactOrganizer organize
     }
 
     /// <summary>
-    /// Initiates <see cref="Pid1"/>, <see cref="Pid2"/>, <see cref="Pid3"/>, <see cref="is_right_angle"/>, <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
+    /// Initiates <see cref="Cid1"/>, <see cref="Pid1"/>, <see cref="vol"/>,  <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
     /// </summary>
     /// <param name="cid1">sets <see cref="Cid1"/></param>
     /// <param name="pid1">sets <see cref="Pid1"/></param>
@@ -2675,9 +2679,9 @@ private void init(string cid1,string pid1, float vol)
     /// <summary>
     /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
     /// </summary>
-    /// <param name="cid1">sets <see cref="Cid1"/></param>
-    /// <param name="pid1">sets <see cref="Pid1"/></param>
-    /// <param name="vol">sets <see cref="vol"/></param>
+    /// <param name="Cid1">sets <see cref="Cid1"/></param>
+    /// <param name="Pid1">sets <see cref="Pid1"/></param>
+    /// <param name="volume">sets <see cref="vol"/></param>
     /// <param name="backendURI">MMT URI</param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
     public ConeVolumeFact(string Cid1,string Pid1, float volume,  string backendURI, FactOrganizer organizer) : base(organizer)
@@ -2828,8 +2832,7 @@ public OrthogonalCircleLineFact(OrthogonalCircleLineFact fact, Dictionary<string
     /// Standard Constructor
     /// </summary>
     /// <param name="cid1">sets <see cref="Cid1"/></param>
-    /// <param name="pid1">sets <see cref="Pid1"/></param>
-    /// <param name="vol">sets <see cref="vol"/></param>
+    /// <param name="lid1">sets <see cref="Lid1"/></param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
     public OrthogonalCircleLineFact(string cid1, string lid1, FactOrganizer organizer) : base(organizer)
     {
@@ -2840,8 +2843,7 @@ public OrthogonalCircleLineFact(string cid1, string lid1, FactOrganizer organize
     /// Initiates <see cref="Pid1"/>, <see cref="Pid2"/>, <see cref="Pid3"/>, <see cref="is_right_angle"/>, <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
     /// </summary>
     /// <param name="cid1">sets <see cref="Cid1"/></param>
-    /// <param name="pid1">sets <see cref="Pid1"/></param>
-    /// <param name="vol">sets <see cref="vol"/></param>
+    /// <param name="lid1">sets <see cref="Lid1"/></param>
     private void init(string cid1, string lid1)
     {
         this.Cid1 = cid1;
@@ -2864,9 +2866,8 @@ private void init(string cid1, string lid1)
     /// <summary>
     /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
     /// </summary>
-    /// <param name="cid1">sets <see cref="Cid1"/></param>
-    /// <param name="pid1">sets <see cref="Pid1"/></param>
-    /// <param name="vol">sets <see cref="vol"/></param>
+    /// <param name="Cid1">sets <see cref="Cid1"/></param>
+    /// <param name="Lid1">sets <see cref="Lid1"/></param>
     /// <param name="backendURI">MMT URI</param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
     public OrthogonalCircleLineFact(string Cid1, string Lid1,  string backendURI, FactOrganizer organizer) : base(organizer)
@@ -2983,12 +2984,15 @@ public class TruncatedConeVolumeFact : FactWrappedCRTP<TruncatedConeVolumeFact>
 {
     ///  <summary> a <see cref="CircleFact">CircleFact</see> describing the base area </summary>
     public string Cid1;
-    ///  <summary> a <see cref="PointFact">PointFact</see> describing the apex point  </summary>
+    ///  <summary> a <see cref="CircleFact">CircleFact</see> describing the top area  </summary>
     public string Cid2;
-    ///  <summary> the volume of the cone as a float </summary>
+    ///  <summary> the volume of Truncated the cone as a float </summary>
     public float vol;
+    /// <summary> a proof that both circles have not the same size </summary>
+    public string unequalCirclesProof;
     ///  <summary> OMA proof that the two circles are parallel  </summary>
     public OMA proof;
+    
 
     /// <summary> \copydoc Fact.Fact </summary>
     public TruncatedConeVolumeFact() : base()
@@ -2996,6 +3000,7 @@ public TruncatedConeVolumeFact() : base()
         this.Cid1 = null;
         this.Cid2 = null;
         this.vol = 0.0f;
+        this.unequalCirclesProof = null;
         this.proof = null;
 
     }
@@ -3008,7 +3013,7 @@ public TruncatedConeVolumeFact() : base()
     /// <param name="organizer">sets <see cref="_Facts"/></param>
     public TruncatedConeVolumeFact(TruncatedConeVolumeFact fact, Dictionary<string, string> old_to_new, FactOrganizer organizer) : base(fact, organizer)
     {
-        init(old_to_new[fact.Cid1], old_to_new[fact.Cid2], fact.vol, fact.proof);
+        init(old_to_new[fact.Cid1], old_to_new[fact.Cid2], fact.vol, old_to_new[fact.unequalCirclesProof], fact.proof);
     }
 
     /// <summary>
@@ -3019,9 +3024,9 @@ public TruncatedConeVolumeFact(TruncatedConeVolumeFact fact, Dictionary<string,
     /// <param name="vol">sets <see cref="vol"/></param>
     /// <param name="proof">sets <see cref="proof"/></param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
-    public TruncatedConeVolumeFact(string cid1, string cid2, float vol, OMA proof, FactOrganizer organizer) : base(organizer)
+    public TruncatedConeVolumeFact(string cid1, string cid2, float vol, string unequalproof, OMA proof, FactOrganizer organizer) : base(organizer)
     {
-        init(cid1, cid2, vol, proof);
+        init(cid1, cid2, vol,unequalproof, proof);
     }
 
     /// <summary>
@@ -3031,23 +3036,25 @@ public TruncatedConeVolumeFact(string cid1, string cid2, float vol, OMA proof, F
     /// <param name="cid2">sets <see cref="Cid2"/></param>
     /// <param name="vol">sets <see cref="vol"/></param>
     /// <param name="proof">sets <see cref="proof"/></param>
-    private void init(string cid1, string cid2, float vol, OMA proof)
+    private void init(string cid1, string cid2, float vol, string unequalproof, OMA proof)
     {
         this.Cid1 = cid1;
         this.Cid2 = cid2;
         this.proof = proof;
+        this.unequalCirclesProof = unequalproof;
 
         CircleFact cf1 = _Facts[cid1] as CircleFact;
         CircleFact cf2 = _Facts[cid2] as CircleFact;
         this.vol = vol;
-
+        UnEqualCirclesFact unEqualProof = _Facts[unequalproof] as UnEqualCirclesFact;
 
         MMTDeclaration mmtDecl;
         string c1URI = cf1.Id;
         string c2URI = cf2.Id;
+        string pURI = unEqualProof.Id;
 
 
-        mmtDecl = generateMMTDeclaration(c1URI, c2URI, vol, proof);
+        mmtDecl = generateMMTDeclaration(c1URI, c2URI, vol, pURI, proof);
 
         AddFactResponse.sendAdd(mmtDecl, out this._URI);
     }
@@ -3061,12 +3068,13 @@ private void init(string cid1, string cid2, float vol, OMA proof)
     /// <param name="proof">sets <see cref="proof"/></param>
     /// <param name="backendURI">MMT URI</param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
-    public TruncatedConeVolumeFact(string Cid1, string Cid2, float volume, OMA proof, string backendURI, FactOrganizer organizer) : base(organizer)
+    public TruncatedConeVolumeFact(string Cid1, string Cid2, float volume, string unequalproof, OMA proof, string backendURI, FactOrganizer organizer) : base(organizer)
     {
         this.Cid1 = Cid1;
         this.Cid2 = Cid2;
         this.vol = volume;
         this.proof = proof;
+        this.unequalCirclesProof = unequalproof;
 
         this._URI = backendURI;
         _ = this.Label;
@@ -3081,11 +3089,13 @@ public TruncatedConeVolumeFact(string Cid1, string Cid2, float volume, OMA proof
         string Circle2Uri = ((OMS)((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[1]).uri;
         float volume = ((OMF)((Scroll.ScrollValueFact)fact).value).f;
 
-        OMA proof = (OMA)(((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[2]);
+        string UnEqualCirclesProof = ((OMS)(((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[2])).uri;
+        OMA proof = (OMA)(((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[3]);
+
 
         if (StageStatic.stage.factState.ContainsKey(Circle1Uri) && StageStatic.stage.factState.ContainsKey(Circle2Uri))
 
-            return new TruncatedConeVolumeFact(Circle1Uri, Circle2Uri, volume, proof, uri,  StageStatic.stage.factState);
+            return new TruncatedConeVolumeFact(Circle1Uri, Circle2Uri, volume, UnEqualCirclesProof , proof, uri,  StageStatic.stage.factState);
 
         else    //If dependent facts do not exist return null
             return null;
@@ -3106,7 +3116,7 @@ protected override string generateLabel()
     /// <param name="c2URI"> Uri for <see cref="Cid2"/></param>
     /// <param name="val"> <see cref="vol"/></param>
     /// <returns>struct for <see cref="AddFactResponse"/></returns>
-    private MMTDeclaration generateMMTDeclaration(string c1URI, string c2URI, float val, OMA proof)
+    private MMTDeclaration generateMMTDeclaration(string c1URI, string c2URI, float val, string unequalproof, OMA proof)
     {
         MMTTerm lhs =
             new OMA(
@@ -3115,6 +3125,7 @@ private MMTDeclaration generateMMTDeclaration(string c1URI, string c2URI, float
                 new List<MMTTerm> {
                     new OMS(c1URI),
                     new OMS(c2URI),
+                    new OMS(unequalproof),
                     proof,
                 }
             );
@@ -3393,6 +3404,8 @@ public class CylinderVolumeFact : FactWrappedCRTP<CylinderVolumeFact>
     public string Cid2;
     ///  <summary> the volume of the cylinder as a float </summary>
     public float vol;
+    /// <summary> a proof that both circles have the same size </summary>
+    public string equalCirclesProof;
     ///  <summary> OMA proof that the two circles are parallel  </summary>
     public OMA proof;
 
@@ -3403,6 +3416,7 @@ public CylinderVolumeFact() : base()
         this.Cid2 = null;
         this.vol = 0.0f;
         this.proof = null;
+        this.equalCirclesProof = null;
 
     }
 
@@ -3414,7 +3428,7 @@ public CylinderVolumeFact() : base()
     /// <param name="organizer">sets <see cref="_Facts"/></param>
     public CylinderVolumeFact(CylinderVolumeFact fact, Dictionary<string, string> old_to_new, FactOrganizer organizer) : base(fact, organizer)
     {
-        init(old_to_new[fact.Cid1], old_to_new[fact.Cid2], fact.vol, fact.proof);
+        init(old_to_new[fact.Cid1], old_to_new[fact.Cid2], fact.vol, old_to_new[fact.equalCirclesProof], fact.proof);
     }
 
     /// <summary>
@@ -3425,9 +3439,9 @@ public CylinderVolumeFact(CylinderVolumeFact fact, Dictionary<string, string> ol
     /// <param name="vol">sets <see cref="vol"/></param>
     /// <param name="proof">sets <see cref="proof"/></param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
-    public CylinderVolumeFact(string cid1, string cid2, float vol, OMA proof, FactOrganizer organizer) : base(organizer)
+    public CylinderVolumeFact(string cid1, string cid2, float vol, string eqProof, OMA proof, FactOrganizer organizer) : base(organizer)
     {
-        init(cid1, cid2, vol, proof);
+        init(cid1, cid2, vol, eqProof, proof);
     }
 
     /// <summary>
@@ -3437,23 +3451,26 @@ public CylinderVolumeFact(string cid1, string cid2, float vol, OMA proof, FactOr
     /// <param name="cid2">sets <see cref="Cid2"/></param>
     /// <param name="vol">sets <see cref="vol"/></param>
     /// <param name="proof">sets <see cref="proof"/></param>
-    private void init(string cid1, string cid2, float vol, OMA proof)
+    private void init(string cid1, string cid2, float vol, string eqProof, OMA proof)
     {
         this.Cid1 = cid1;
         this.Cid2 = cid2;
         this.proof = proof;
+        this.equalCirclesProof = eqProof;
 
         CircleFact cf1 = _Facts[cid1] as CircleFact;
         CircleFact cf2 = _Facts[cid2] as CircleFact;
+        EqualCirclesFact pf1 = _Facts[eqProof] as EqualCirclesFact;
         this.vol = vol;
 
 
         MMTDeclaration mmtDecl;
         string c1URI = cf1.Id;
         string c2URI = cf2.Id;
+        string p1Uri = pf1.Id;
 
 
-        mmtDecl = generateMMTDeclaration(c1URI, c2URI, vol, proof);
+        mmtDecl = generateMMTDeclaration(c1URI, c2URI, vol,p1Uri, proof);
 
         AddFactResponse.sendAdd(mmtDecl, out this._URI);
     }
@@ -3467,12 +3484,13 @@ private void init(string cid1, string cid2, float vol, OMA proof)
     /// <param name="proof">sets <see cref="proof"/></param>
     /// <param name="backendURI">MMT URI</param>
     /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
-    public CylinderVolumeFact(string Cid1, string Cid2, float volume, OMA proof, string backendURI, FactOrganizer organizer) : base(organizer)
+    public CylinderVolumeFact(string Cid1, string Cid2, float volume, string eqProof, OMA proof, string backendURI, FactOrganizer organizer) : base(organizer)
     {
         this.Cid1 = Cid1;
         this.Cid2 = Cid2;
         this.vol = volume;
         this.proof = proof;
+        this.equalCirclesProof = eqProof;
 
         this._URI = backendURI;
         _ = this.Label;
@@ -3486,12 +3504,15 @@ public CylinderVolumeFact(string Cid1, string Cid2, float volume, OMA proof, str
         string Circle1Uri = ((OMS)((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[0]).uri;
         string Circle2Uri = ((OMS)((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[1]).uri;
         float volume = ((OMF)((Scroll.ScrollValueFact)fact).value).f;
+        string EqualCirclesProof = ((OMS)(((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[2])).uri;
 
-        OMA proof = (OMA)(((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[2]);
+
+
+        OMA proof = (OMA)(((OMA)((OMA)((Scroll.ScrollValueFact)fact).lhs).arguments[0]).arguments[3]);
 
         if (StageStatic.stage.factState.ContainsKey(Circle1Uri) && StageStatic.stage.factState.ContainsKey(Circle2Uri))
 
-            return new CylinderVolumeFact(Circle1Uri, Circle2Uri, volume, proof, uri, StageStatic.stage.factState);
+            return new CylinderVolumeFact(Circle1Uri, Circle2Uri, volume, EqualCirclesProof, proof, uri, StageStatic.stage.factState);
 
         else    //If dependent facts do not exist return null
             return null;
@@ -3512,7 +3533,7 @@ protected override string generateLabel()
     /// <param name="c2URI"> Uri for <see cref="Cid2"/></param>
     /// <param name="val"> <see cref="vol"/></param>
     /// <returns>struct for <see cref="AddFactResponse"/></returns>
-    private MMTDeclaration generateMMTDeclaration(string c1URI, string c2URI, float val, OMA proof)
+    private MMTDeclaration generateMMTDeclaration(string c1URI, string c2URI, float val, string p1URI, OMA proof)
     {
         MMTTerm lhs =
             new OMA(
@@ -3521,6 +3542,7 @@ private MMTDeclaration generateMMTDeclaration(string c1URI, string c2URI, float
                 new List<MMTTerm> {
                     new OMS(c1URI),
                     new OMS(c2URI),
+                    new OMS(p1URI),
                     proof,
                 }
             );
@@ -3540,7 +3562,7 @@ public override Boolean hasDependentFacts()
     /// \copydoc Fact.getDependentFactIds
     public override string[] getDependentFactIds()
     {
-        return new string[] { Cid1, Cid2 };
+        return new string[] { Cid1, Cid2, equalCirclesProof };
     }
 
     /// \copydoc Fact.instantiateDisplay(GameObject, Transform)
@@ -3579,3 +3601,597 @@ protected override bool EquivalentWrapped(CylinderVolumeFact f1, CylinderVolumeF
 
 
 
+
+/// <summary>
+/// A fact that describes, that two circles have the same size and is comprised of two <see cref="CircleFact">CircleFacts</see> 
+/// </summary>
+public class EqualCirclesFact : FactWrappedCRTP<EqualCirclesFact>
+{
+    /// @{ <summary>
+    /// two circles that are meant to be equal in area
+    /// </summary>
+    public string Cid1, Cid2;
+    /// @}
+
+
+
+
+    /// <summary> \copydoc Fact.Fact </summary>
+    public EqualCirclesFact() : base()
+    {
+        this.Cid1 = null;
+        this.Cid2 = null;
+    }
+
+    /// <summary>
+    /// Copies <paramref name="fact"/> by initiating new MMT %Fact.
+    /// </summary>
+    /// <param name="fact">Fact to be copied</param>
+    /// <param name="old_to_new"><c>Dictionary</c> mapping <paramref name="fact"/>.<see cref="getDependentFactIds"/> in <paramref name="fact"/>.<see cref="Fact._Facts"/> to corresponding <see cref="Fact.Id"/> in <paramref name="organizer"/> </param>
+    /// <param name="organizer">sets <see cref="_Facts"/></param>
+    public EqualCirclesFact(EqualCirclesFact fact, Dictionary<string, string> old_to_new, FactOrganizer organizer) : base(fact, organizer)
+    {
+        init(old_to_new[fact.Cid1], old_to_new[fact.Cid2]);
+    }
+
+    /// <summary>
+    /// Standard Constructor
+    /// </summary>
+    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="cid2">sets <see cref="Cid2"/></param>
+    /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
+    public EqualCirclesFact(string cid1, string cid2, FactOrganizer organizer) : base(organizer)
+    {
+        init(cid1, cid2);
+    }
+
+    /// <summary>
+    /// Initiates <see cref="Cid1"/>, <see cref="Cid2"/>, <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
+    /// </summary>
+    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="cid2">sets <see cref="Cid2"/></param>
+    private void init(string cid1, string cid2)
+    {
+        //TODO must be parallel lines 
+        this.Cid1 = cid1;
+        this.Cid2 = cid2;
+
+        CircleFact cf1 = _Facts[cid1] as CircleFact;
+        CircleFact cf2 = _Facts[cid2] as CircleFact;
+
+        MMTDeclaration mmtDecl;
+        string c1URI = cf1.Id;
+        string c2URI = cf2.Id;
+        mmtDecl = generateEqualCirclesFactDeclaration(c1URI, c2URI);
+
+        AddFactResponse.sendAdd(mmtDecl, out this._URI);
+    }
+
+    /// <summary>
+    /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
+    /// </summary>
+    /// <param name="Cid1">sets <see cref="Cid1"/></param>
+    /// <param name="Cid2">sets <see cref="Cid2"/></param>
+    /// <param name="backendURI">MMT URI</param>
+    /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
+    public EqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrganizer organizer) : base(organizer)
+    {
+        this.Cid1 = Cid1;
+        this.Cid2 = Cid2;
+
+        this._URI = backendURI;
+        _ = this.Label;
+    }
+
+    /// \copydoc Fact.parseFact(Scroll.ScrollFact)
+    public new static EqualCirclesFact parseFact(Scroll.ScrollFact fact)
+    {
+        OMA tp = (OMA)((Scroll.ScrollSymbolFact)fact).tp;
+        if (tp == null)
+            return null;
+
+        string circleAUri = "";
+        string circleBUri = "";
+
+        string uri = fact.@ref.uri;
+        OMA proof_OMA = (OMA)((Scroll.ScrollSymbolFact)fact).tp; // proof DED
+
+
+        OMA parallel_circles_OMA = (OMA)proof_OMA.arguments[0]; // parallel
+
+        if (parallel_circles_OMA.arguments[0] is OMS)
+        {
+            // Normaler Fall 
+            circleAUri = ((OMS)((OMA)((OMA)((Scroll.ScrollSymbolFact)fact).tp).arguments[0]).arguments[0]).uri;
+            circleBUri = ((OMS)((OMA)((OMA)((Scroll.ScrollSymbolFact)fact).tp).arguments[0]).arguments[1]).uri;
+
+        }
+        
+
+
+        if (StageStatic.stage.factState.ContainsKey(circleAUri)
+         && StageStatic.stage.factState.ContainsKey(circleBUri))
+
+            return new EqualCirclesFact(circleAUri, circleBUri, uri, StageStatic.stage.factState);
+
+        else    //If dependent facts do not exist return null
+            return null;
+    }
+
+    /// \copydoc Fact.generateLabel
+    protected override string generateLabel()
+    {
+        return   _Facts[Cid1].Label + " ≠ " + _Facts[Cid2].Label;
+    }
+
+
+
+    /// <summary>
+    /// Constructs struct for equalCirclesFact <see cref="AddFactResponse"/>
+    /// </summary>
+    /// <param name="c1URI"><see cref="Cid1"/></param>
+    /// <param name="c2URI"><see cref="Cid2"/></param>
+    /// <returns>struct for <see cref="AddFactResponse"/></returns>
+    private MMTDeclaration generateEqualCirclesFactDeclaration(string c1URI, string c2URI)
+    {
+
+        List<MMTTerm> innerArguments = new List<MMTTerm>
+        {
+            new OMS(c1URI),
+            new OMS(c2URI)
+        };
+
+        List<MMTTerm> outerArguments = new List<MMTTerm>
+        {
+            ///TODO change this to equal circle fact uri
+            new OMA(new OMS(MMTURIs.EqualityCircles), innerArguments)
+        };
+
+        //OMS constructor generates full URI
+        MMTTerm tp = new OMA(new OMS(MMTURIs.Ded), outerArguments);
+        MMTTerm df = null;
+
+        MMTSymbolDeclaration mmtDecl = new MMTSymbolDeclaration(this.Label, tp, df);
+        AddFactResponse.sendAdd(mmtDecl, out this._URI);
+
+
+        return mmtDecl;
+    }
+
+
+    /// \copydoc Fact.hasDependentFacts
+    public override Boolean hasDependentFacts()
+    {
+        return true;
+    }
+
+    /// \copydoc Fact.getDependentFactIds
+    public override string[] getDependentFactIds()
+    {
+        return new string[] { Cid1, Cid2 };
+    }
+
+    /// \copydoc Fact.instantiateDisplay(GameObject, Transform)
+    public override GameObject instantiateDisplay(GameObject prefab, Transform transform)
+    {
+        var obj = GameObject.Instantiate(prefab, Vector3.zero, Quaternion.identity, transform);
+        obj.transform.GetChild(0).gameObject.GetComponent<TextMeshProUGUI>().text = _Facts[this.Cid1].Label;
+        obj.transform.GetChild(1).gameObject.GetComponent<TextMeshProUGUI>().text = _Facts[this.Cid2].Label;
+        obj.GetComponent<FactWrapper>().fact = this;
+        return obj;
+    }
+
+    /// \copydoc Fact.GetHashCode
+    public override int GetHashCode()
+    {
+        return this.Cid1.GetHashCode() ^ this.Cid2.GetHashCode();
+    }
+
+    /// \copydoc Fact.Equivalent(Fact, Fact)
+    protected override bool EquivalentWrapped(EqualCirclesFact f1, EqualCirclesFact f2)
+    {
+        if ((f1.Cid1 == f2.Cid1 && f1.Cid2 == f2.Cid2))
+            return true;
+
+        CircleFact e1f1 = (CircleFact)_Facts[f1.Cid1];
+        CircleFact e2f1 = (CircleFact)_Facts[f1.Cid2];
+        CircleFact e1f2 = (CircleFact)_Facts[f2.Cid1];
+        CircleFact e2f2 = (CircleFact)_Facts[f2.Cid2];
+
+        return (e1f1.Equivalent(e1f2) && e2f1.Equivalent(e2f2));
+    }
+}
+
+
+/// <summary>
+/// A fact that describes, that two circles have not the same size and is comprised of two <see cref="CircleFact">CircleFacts</see> 
+/// </summary>
+public class UnEqualCirclesFact : FactWrappedCRTP<UnEqualCirclesFact>
+{
+    /// @{ <summary>
+    /// two circles that are meant to be unequal in area
+    /// </summary>
+    public string Cid1, Cid2;
+    /// @}
+
+
+
+
+    /// <summary> \copydoc Fact.Fact </summary>
+    public UnEqualCirclesFact() : base()
+    {
+        this.Cid1 = null;
+        this.Cid2 = null;
+    }
+
+    /// <summary>
+    /// Copies <paramref name="fact"/> by initiating new MMT %Fact.
+    /// </summary>
+    /// <param name="fact">Fact to be copied</param>
+    /// <param name="old_to_new"><c>Dictionary</c> mapping <paramref name="fact"/>.<see cref="getDependentFactIds"/> in <paramref name="fact"/>.<see cref="Fact._Facts"/> to corresponding <see cref="Fact.Id"/> in <paramref name="organizer"/> </param>
+    /// <param name="organizer">sets <see cref="_Facts"/></param>
+    public UnEqualCirclesFact(UnEqualCirclesFact fact, Dictionary<string, string> old_to_new, FactOrganizer organizer) : base(fact, organizer)
+    {
+        init(old_to_new[fact.Cid1], old_to_new[fact.Cid2]);
+    }
+
+    /// <summary>
+    /// Standard Constructor
+    /// </summary>
+    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="cid2">sets <see cref="Cid2"/></param>
+    /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
+    public UnEqualCirclesFact(string cid1, string cid2, FactOrganizer organizer) : base(organizer)
+    {
+        init(cid1, cid2);
+    }
+
+    /// <summary>
+    /// Initiates <see cref="Cid1"/>, <see cref="Cid2"/>, <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
+    /// </summary>
+    /// <param name="cid1">sets <see cref="Cid1"/></param>
+    /// <param name="cid2">sets <see cref="Cid2"/></param>
+    private void init(string cid1, string cid2)
+    {
+        //TODO must be parallel lines 
+        this.Cid1 = cid1;
+        this.Cid2 = cid2;
+
+        CircleFact cf1 = _Facts[cid1] as CircleFact;
+        CircleFact cf2 = _Facts[cid2] as CircleFact;
+
+        MMTDeclaration mmtDecl;
+        string c1URI = cf1.Id;
+        string c2URI = cf2.Id;
+        mmtDecl = generateUnEqualCirclesFactDeclaration(c1URI, c2URI);
+
+        AddFactResponse.sendAdd(mmtDecl, out this._URI);
+    }
+
+    /// <summary>
+    /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
+    /// </summary>
+    /// <param name="Cid1">sets <see cref="Cid1"/></param>
+    /// <param name="Cid2">sets <see cref="Cid2"/></param>
+    /// <param name="backendURI">MMT URI</param>
+    /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
+    public UnEqualCirclesFact(string Cid1, string Cid2, string backendURI, FactOrganizer organizer) : base(organizer)
+    {
+        this.Cid1 = Cid1;
+        this.Cid2 = Cid2;
+
+        this._URI = backendURI;
+        _ = this.Label;
+    }
+
+    /// \copydoc Fact.parseFact(Scroll.ScrollFact)
+    public new static UnEqualCirclesFact parseFact(Scroll.ScrollFact fact)
+    {
+        OMA tp = (OMA)((Scroll.ScrollSymbolFact)fact).tp;
+        if (tp == null)
+            return null;
+
+        string circleAUri = "";
+        string circleBUri = "";
+
+        string uri = fact.@ref.uri;
+        OMA proof_OMA = (OMA)((Scroll.ScrollSymbolFact)fact).tp; // proof DED
+
+
+        OMA unequal_circles_OMA = (OMA)proof_OMA.arguments[0]; // unequal
+
+        if (unequal_circles_OMA.arguments[0] is OMS)
+        {
+            // Normaler Fall 
+            circleAUri = ((OMS)((OMA)((OMA)((Scroll.ScrollSymbolFact)fact).tp).arguments[0]).arguments[0]).uri;
+            circleBUri = ((OMS)((OMA)((OMA)((Scroll.ScrollSymbolFact)fact).tp).arguments[0]).arguments[1]).uri;
+
+        }
+
+
+
+        if (StageStatic.stage.factState.ContainsKey(circleAUri)
+         && StageStatic.stage.factState.ContainsKey(circleBUri))
+
+            return new UnEqualCirclesFact(circleAUri, circleBUri, uri, StageStatic.stage.factState);
+
+        else    //If dependent facts do not exist return null
+            return null;
+    }
+
+    /// \copydoc Fact.generateLabel
+    protected override string generateLabel()
+    {
+        return _Facts[Cid1].Label + " = " + _Facts[Cid2].Label;
+    }
+
+
+
+    /// <summary>
+    /// Constructs struct for equalCirclesFact <see cref="AddFactResponse"/>
+    /// </summary>
+    /// <param name="c1URI"><see cref="Cid1"/></param>
+    /// <param name="c2URI"><see cref="Cid2"/></param>
+    /// <returns>struct for <see cref="AddFactResponse"/></returns>
+    private MMTDeclaration generateUnEqualCirclesFactDeclaration(string c1URI, string c2URI)
+    {
+
+        List<MMTTerm> innerArguments = new List<MMTTerm>
+        {
+            new OMS(c1URI),
+            new OMS(c2URI)
+        };
+
+        List<MMTTerm> outerArguments = new List<MMTTerm>
+        {
+            ///TODO change this to equal circle fact uri
+            new OMA(new OMS(MMTURIs.UnEqualityCircles), innerArguments)
+        };
+
+        //OMS constructor generates full URI
+        MMTTerm tp = new OMA(new OMS(MMTURIs.Ded), outerArguments);
+        MMTTerm df = null;
+
+        MMTSymbolDeclaration mmtDecl = new MMTSymbolDeclaration(this.Label, tp, df);
+        AddFactResponse.sendAdd(mmtDecl, out this._URI);
+
+
+        return mmtDecl;
+    }
+
+
+    /// \copydoc Fact.hasDependentFacts
+    public override Boolean hasDependentFacts()
+    {
+        return true;
+    }
+
+    /// \copydoc Fact.getDependentFactIds
+    public override string[] getDependentFactIds()
+    {
+        return new string[] { Cid1, Cid2 };
+    }
+
+    /// \copydoc Fact.instantiateDisplay(GameObject, Transform)
+    public override GameObject instantiateDisplay(GameObject prefab, Transform transform)
+    {
+        var obj = GameObject.Instantiate(prefab, Vector3.zero, Quaternion.identity, transform);
+        obj.transform.GetChild(0).gameObject.GetComponent<TextMeshProUGUI>().text = _Facts[this.Cid1].Label;
+        obj.transform.GetChild(1).gameObject.GetComponent<TextMeshProUGUI>().text = _Facts[this.Cid2].Label;
+        obj.GetComponent<FactWrapper>().fact = this;
+        return obj;
+    }
+
+    /// \copydoc Fact.GetHashCode
+    public override int GetHashCode()
+    {
+        return this.Cid1.GetHashCode() ^ this.Cid2.GetHashCode();
+    }
+
+    /// \copydoc Fact.Equivalent(Fact, Fact)
+    protected override bool EquivalentWrapped(UnEqualCirclesFact f1, UnEqualCirclesFact f2)
+    {
+        if ((f1.Cid1 == f2.Cid1 && f1.Cid2 == f2.Cid2))
+            return true;
+
+        CircleFact e1f1 = (CircleFact)_Facts[f1.Cid1];
+        CircleFact e2f1 = (CircleFact)_Facts[f1.Cid2];
+        CircleFact e1f2 = (CircleFact)_Facts[f2.Cid1];
+        CircleFact e2f2 = (CircleFact)_Facts[f2.Cid2];
+
+        return (e1f1.Equivalent(e1f2) && e2f1.Equivalent(e2f2));
+    }
+}
+
+
+
+
+
+
+/// TEST FACT
+/// 
+
+//TODO big work in progress Circle Wrapper
+
+/// TODO Work in Progress
+/// <summary>
+/// A Circle that is made out of a middle point, a plane and a radius  
+/// </summary>
+public class TestFact : FactWrappedCRTP<TestFact>
+{
+
+   
+
+    /// <summary> \copydoc Fact.Fact </summary>
+    public TestFact() : base()
+    {
+        
+    }
+
+    /// <summary>
+    /// Copies <paramref name="fact"/> by initiating new MMT %Fact.
+    /// </summary>
+    /// <param name="fact">Fact to be copied</param>
+    /// <param name="old_to_new"><c>Dictionary</c> mapping <paramref name="fact"/>.<see cref="getDependentFactIds"/> in <paramref name="fact"/>.<see cref="Fact._Facts"/> to corresponding <see cref="Fact.Id"/> in <paramref name="organizer"/> </param>
+    /// <param name="organizer">sets <see cref="_Facts"/></param>
+    public TestFact(TestFact fact, Dictionary<string, string> old_to_new, FactOrganizer organizer) : base(fact, organizer)
+    {
+        init();
+    }
+
+    /// <summary>
+    /// Standard Constructor
+    /// </summary>
+    /// <param name="pid1">sets <see cref="Pid1"/></param>
+    /// <param name="pid2">sets <see cref="Pid2"/></param>
+    /// <param name="radius">sets <see cref="radius"/></param>
+    /// <param name="normal">sets <see cref="normal"/></param>
+    /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
+    public TestFact( FactOrganizer organizer) : base(organizer)
+    {
+        init();
+    }
+
+    /// <summary>
+    /// Initiates <see cref="Pid1"/>, <see cref="Pid2"/>, <see cref="radius"/>,<see cref="dir1"/>,<see cref="dir2"/>, <see cref="Fact._URI"/> and creates MMT %Fact Server-Side
+    /// </summary>
+    /// <param name="pid1">sets <see cref="Pid1"/></param>
+    /// <param name="pid2">sets <see cref="Pid2"/></param>
+    /// <param name="radius">sets <see cref="radius"/></param>
+    /// <param name="normal">sets <see cref="normal"/></param>
+    private void init()
+    {
+        
+
+       // mmtDecl = generateCircleFactDeclaration(p1URI, p2URI, radius, normal);
+
+      //  AddFactResponse.sendAdd(mmtDecl, out this._URI);
+    }
+
+    /// <summary>
+    /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
+    /// </summary>
+    /// <param name="Pid1">sets <see cref="Pid1"/></param>
+    /// <param name="Pid2">sets <see cref="Pid2"/></param>
+    /// <param name="radius">sets <see cref="radius"/></param>
+    /// <param name="normal">sets <see cref="normal"/></param>
+    /// <param name="backendURI">MMT URI</param>
+    /// <param name="organizer">sets <see cref="Fact._Facts"/></param>
+    public TestFact( string backendURI, FactOrganizer organizer) : base(organizer)
+    {
+      
+        this._URI = backendURI;
+        _ = this.Label;
+    }
+
+    /// <summary>
+    /// parses the Circlefact response of the MMT-Server
+    /// </summary>
+    /// \copydoc Fact.parseFact(Scroll.ScrollFact) 
+    public new static TestFact parseFact(Scroll.ScrollFact fact)
+    {
+        string uri = fact.@ref.uri;
+        Debug.Log("TestFact Uri:" + uri);
+        return new TestFact(uri, StageStatic.stage.factState);
+      
+    }
+
+    /// \copydoc Fact.generateLabel
+    protected override string generateLabel()
+    {
+
+        return "test" ;
+    }
+
+
+
+    /// <summary>
+    /// Constructs struct for right-angled MMT %Fact <see cref="AddFactResponse"/>
+    /// </summary>
+    /// <param name="p1URI"> <see cref="Pid1"/></param>
+    /// <param name="p2URI"> <see cref="Pid2"/></param>
+    /// <param name="radius"> <see cref="radius"/></param>
+    /// <returns>struct for <see cref="AddFactResponse"/></returns>
+    private MMTDeclaration generateCircleFactDeclaration(string p1URI, string p2URI, float radius, Vector3 normal)
+    {
+        PointFact p1 = _Facts[p1URI] as PointFact;
+        PointFact p2 = _Facts[p2URI] as PointFact;
+
+
+        List<MMTTerm> normalArgs = new List<MMTTerm>
+        {
+            new OMF(normal.x),
+            new OMF(normal.y),
+            new OMF(normal.z)
+        };
+        OMA NormalVector = new OMA(new OMS(MMTURIs.Tuple), normalArgs);
+
+
+
+        List<MMTTerm> planeArgs = new List<MMTTerm>
+        {
+            new OMS(p2URI),
+            NormalVector //n
+        };
+
+        OMA CirclePlane = new OMA(new OMS(MMTURIs.pointNormalPlane), planeArgs);
+        OMS middlePoint = new OMS(p1URI);
+        OMF Radius = new OMF(radius);
+
+        List<MMTTerm> outerArguments = new List<MMTTerm>
+        {
+           CirclePlane,
+           middlePoint,
+           Radius
+        };
+
+        //OMS constructor generates full URI
+        // Do i need this here? doubt 
+        MMTTerm tp = new OMS(MMTURIs.CircleType3d);
+        MMTTerm df = new OMA(new OMS(MMTURIs.MkCircle3d), outerArguments);
+
+        MMTSymbolDeclaration mmtDecl = new MMTSymbolDeclaration(this.Label, tp, df);
+        AddFactResponse.sendAdd(mmtDecl, out this._URI);
+
+
+        return mmtDecl;
+    }
+
+
+    /// \copydoc Fact.hasDependentFacts
+    public override Boolean hasDependentFacts()
+    {
+        return false;
+    }
+
+ 
+
+    /// \copydoc Fact.getDependentFactIds
+    public override string[] getDependentFactIds()
+    {
+        return new string[] { };
+    }
+
+    /// \copydoc Fact.instantiateDisplay(GameObject, Transform)
+    public override GameObject instantiateDisplay(GameObject prefab, Transform transform)
+    {
+        var obj = GameObject.Instantiate(prefab, Vector3.zero, Quaternion.identity, transform);
+
+        // obj.transform.GetChild(1).gameObject.GetComponent<TextMeshProUGUI>().text = _Facts[this.Lid2].Label;
+
+        obj.GetComponent<FactWrapper>().fact = this;
+        return obj;
+    }
+
+    /// \copydoc Fact.GetHashCode
+    public override int GetHashCode()
+    {
+        return 112315414;// this.Pid1.GetHashCode() ^ this.Pid2.GetHashCode();
+    }
+
+    /// \copydoc Fact.Equivalent(Fact, Fact)
+    protected override bool EquivalentWrapped(TestFact f1, TestFact f2)
+    {
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactManager.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactManager.cs
index 8426ed9d..08441acb 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/FactManager.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/FactManager.cs
@@ -106,4 +106,12 @@ public static AngleFact AddAngleFact(string pid1, string pid2, string pid3, bool
         return (AngleFact)AddFactIfNotFound(new AngleFact(pid1, pid2, pid3, StageStatic.stage.factState), out _, samestep);
     }
 
+    public static EqualCirclesFact AddEqualCirclesFact(string cid1, string cid2, bool samestep = false)
+    {
+        return (EqualCirclesFact)AddFactIfNotFound(new EqualCirclesFact(cid1, cid2, StageStatic.stage.factState), out _, samestep);
+    }
+    public static UnEqualCirclesFact AddUnEqualCirclesFact(string cid1, string cid2, bool samestep = false)
+    {
+        return (UnEqualCirclesFact)AddFactIfNotFound(new UnEqualCirclesFact(cid1, cid2, StageStatic.stage.factState), out _, samestep);
+    }
 }
diff --git a/Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs b/Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs
new file mode 100644
index 00000000..ca737b75
--- /dev/null
+++ b/Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs
@@ -0,0 +1,111 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using static CommunicationEvents;
+
+/// <summary>
+/// a Gadget that checks whether two given circles have equal size and if yes it returns an EqualCirclesFact
+/// </summary>
+public class EqualCircleGadget : Gadget
+{
+
+    //Variables to safe if one circle has already been selected
+    private bool FirstCircleSelected = false;
+    private CircleFact FirstCircle = null;
+
+
+
+
+    new void Awake()
+    {
+        base.Awake();
+        UiName = "EqualCircles Mode";
+        if (MaxRange == 0)
+            MaxRange = GlobalBehaviour.GadgetLaserDistance;
+    }
+
+    //Initialize Gadget when enabled AND activated
+    new void OnEnable()
+    {
+        base.OnEnable();
+        this.ResetGadget();
+    }
+
+    void OnDisable()
+    {
+        this.ResetGadget();
+    }
+
+    public override void OnHit(RaycastHit[] hit)
+    {
+        if (!this.isActiveAndEnabled) return;
+        if (hit[0].transform.gameObject.layer == LayerMask.NameToLayer("Circle"))
+        {
+            CircleFact tempFact = (CircleFact)StageStatic.stage.factState[hit[0].transform.GetComponent<FactObject>().URI];
+
+            //If the first circle got already selected
+            if (this.FirstCircleSelected)
+            {
+                // Debug.Log("hit it");
+               //  Debug.Log("data: radius dif" + Mathf.Abs(this.FirstCircle.radius - tempFact.radius) +" ids: 1. "+ this.FirstCircle.Id+", 2."+ tempFact.Id);
+                //Create EqualCirclesFact
+                //Check if new Point is equal to one of the previous points -> if true -> cancel
+                if ((Mathf.Abs(this.FirstCircle.radius - tempFact.radius) < 0.01) && !(this.FirstCircle.Id == tempFact.Id))
+                {
+                    FactManager.AddEqualCirclesFact(((CircleFact)this.FirstCircle).Id, ((CircleFact)tempFact).Id);
+                }
+                else {
+                    if(!(this.FirstCircle.Id == tempFact.Id)) 
+                        FactManager.AddUnEqualCirclesFact(((CircleFact)this.FirstCircle).Id, ((CircleFact)tempFact).Id);
+
+                }
+
+                ResetGadget();
+            }
+            //If no circle was selected before
+            else
+            {
+                //Save the first point selected
+                this.FirstCircleSelected = true;
+                this.FirstCircle= tempFact;
+            }
+        }
+        //No Circles were hit
+        else
+        {
+            ResetGadget();
+
+        }
+    }
+
+    void Update()
+    {
+        if (!this.isActiveAndEnabled) return;
+       
+            UpdateCurveDrawing(this.Cursor.transform.position);
+    }
+
+    private void ResetGadget()
+    {
+        this.FirstCircleSelected= false;
+        this.FirstCircle = null;
+
+        DeactivateCurveDrawing();
+    }
+
+    public void ActivateCurveDrawing()
+    {
+        
+    }
+
+    public void UpdateCurveDrawing(Vector3 currentPosition)
+    {
+
+    }
+
+    public void DeactivateCurveDrawing()
+    {
+   
+    }
+
+}
diff --git a/Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs.meta b/Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs.meta
new file mode 100644
index 00000000..7c8763a6
--- /dev/null
+++ b/Assets/Scripts/InteractionEngine/Gadgets/EqualCircleGadget.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3d26ac5cd1e235148b7c35538c429335
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/DisplayFacts.cs b/Assets/Scripts/InventoryStuff/DisplayFacts.cs
index 7b2ec793..edccb8fd 100644
--- a/Assets/Scripts/InventoryStuff/DisplayFacts.cs
+++ b/Assets/Scripts/InventoryStuff/DisplayFacts.cs
@@ -28,6 +28,12 @@ public class DisplayFacts : MonoBehaviour
     public GameObject prefab_TruncatedConeVolume;
     public GameObject prefab_RightAngle;
     public GameObject prefab_CylinderVolume;
+    public GameObject prefab_EqualFact;
+    public GameObject prefab_UnEqualFact;
+
+    public GameObject prefab_TestFact;
+
+
 
 
 
@@ -63,7 +69,10 @@ void Start()
             {typeof(TruncatedConeVolumeFact), prefab_TruncatedConeVolume },
             {typeof(RightAngleFact), prefab_RightAngle },
             {typeof(CylinderVolumeFact), prefab_CylinderVolume},
-            
+            {typeof(EqualCirclesFact), prefab_EqualFact },
+            {typeof(UnEqualCirclesFact), prefab_UnEqualFact },
+
+            {typeof(TestFact), prefab_TestFact },
 
 
 
diff --git a/Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png b/Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png
new file mode 100644
index 00000000..c9e8a3be
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d87a4e68d06f0b893cac704db6dae0028e96f580973a64c51c7391be4060e348
+size 9110
diff --git a/Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png.meta b/Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png.meta
new file mode 100644
index 00000000..968784df
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/CylinderVolume.png.meta
@@ -0,0 +1,160 @@
+fileFormatVersion: 2
+guid: 352d7dd2edb65f542aba25be27d20d98
+TextureImporter:
+  internalIDToNameTable:
+  - first:
+      213: 7482667652216324306
+    second: Square
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 4, y: 4, z: 4, w: 4}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: 0
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Square
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 256
+        height: 256
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 2d009a6b596c7d760800000000000000
+      internalID: 7482667652216324306
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape:
+    - - {x: -128, y: 128}
+      - {x: -128, y: -128}
+      - {x: 128, y: -128}
+      - {x: 128, y: 128}
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/Items/images/Equal circles.png b/Assets/Scripts/InventoryStuff/Items/images/Equal circles.png
new file mode 100644
index 00000000..4c7447ff
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/Equal circles.png	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:343b28be0e1236cd895db0cb649cdabc190184380c8d533ac8ed7b2e972547d9
+size 4195
diff --git a/Assets/Scripts/InventoryStuff/Items/images/Equal circles.png.meta b/Assets/Scripts/InventoryStuff/Items/images/Equal circles.png.meta
new file mode 100644
index 00000000..5d644fd9
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/Equal circles.png.meta	
@@ -0,0 +1,160 @@
+fileFormatVersion: 2
+guid: ad920a8c90fd4c74ba95809d3e14e6b7
+TextureImporter:
+  internalIDToNameTable:
+  - first:
+      213: 7482667652216324306
+    second: Square
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 4, y: 4, z: 4, w: 4}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: 0
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Square
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 256
+        height: 256
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 2d009a6b596c7d760800000000000000
+      internalID: 7482667652216324306
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape:
+    - - {x: -128, y: 128}
+      - {x: -128, y: -128}
+      - {x: 128, y: -128}
+      - {x: 128, y: 128}
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png b/Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png
new file mode 100644
index 00000000..81f9e621
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8b070fe424d90287456de9336e3a0e24d0bcf641979ffd6461716ec33ef4a121
+size 5597
diff --git a/Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png.meta b/Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png.meta
new file mode 100644
index 00000000..851ff575
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/EqualCircles.png.meta
@@ -0,0 +1,160 @@
+fileFormatVersion: 2
+guid: e35797aede3d7bd449ca9195a409b0cc
+TextureImporter:
+  internalIDToNameTable:
+  - first:
+      213: 7482667652216324306
+    second: Square
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 4, y: 4, z: 4, w: 4}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: 0
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Square
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 256
+        height: 256
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 2d009a6b596c7d760800000000000000
+      internalID: 7482667652216324306
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape:
+    - - {x: -128, y: 128}
+      - {x: -128, y: -128}
+      - {x: 128, y: -128}
+      - {x: 128, y: 128}
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/Items/images/Square 1.png b/Assets/Scripts/InventoryStuff/Items/images/Square 1.png
new file mode 100644
index 00000000..de8b287e
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/Square 1.png	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44f9592db7d11d11ed58c7cad12e35925d9974d6576fb0951b4fa0cd7c6eaf10
+size 2097
diff --git a/Assets/Scripts/InventoryStuff/Items/images/Square 1.png.meta b/Assets/Scripts/InventoryStuff/Items/images/Square 1.png.meta
new file mode 100644
index 00000000..bb617e1c
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/Square 1.png.meta	
@@ -0,0 +1,160 @@
+fileFormatVersion: 2
+guid: 38e2fa15ef15b6443a43f2b04c6475e1
+TextureImporter:
+  internalIDToNameTable:
+  - first:
+      213: 7482667652216324306
+    second: Square
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 2
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 4, y: 4, z: 4, w: 4}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: 0
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Square
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 256
+        height: 256
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 2d009a6b596c7d760800000000000000
+      internalID: 7482667652216324306
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape:
+    - - {x: -128, y: 128}
+      - {x: -128, y: -128}
+      - {x: 128, y: -128}
+      - {x: 128, y: 128}
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/Items/images/TruncatedConeVolume.png b/Assets/Scripts/InventoryStuff/Items/images/TruncatedConeVolume.png
index 8ad79ffb..2c9f437f 100644
--- a/Assets/Scripts/InventoryStuff/Items/images/TruncatedConeVolume.png
+++ b/Assets/Scripts/InventoryStuff/Items/images/TruncatedConeVolume.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:ac1fb13eda01b89e7aa1e17e8d247f9b7a8fd7c8262e54667e9b3cbda4aa1512
-size 9291
+oid sha256:c21b505f16efe44a3ee171d3f386caf739609c3d289cb877879c16543abdeb18
+size 10296
diff --git a/Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png b/Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png
new file mode 100644
index 00000000..e02ce064
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:52c24e7bc4c60fe36a9ee12a15014f727118c73878924eb476910a510afcdbdf
+size 4418
diff --git a/Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png.meta b/Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png.meta
new file mode 100644
index 00000000..e2d5580e
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/UnEqualCircles.png.meta
@@ -0,0 +1,160 @@
+fileFormatVersion: 2
+guid: 269651011d5ec79458964edbef59ae70
+TextureImporter:
+  internalIDToNameTable:
+  - first:
+      213: 7482667652216324306
+    second: Square
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 4, y: 4, z: 4, w: 4}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: 0
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Square
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 256
+        height: 256
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 2d009a6b596c7d760800000000000000
+      internalID: 7482667652216324306
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape:
+    - - {x: -128, y: 128}
+      - {x: -128, y: -128}
+      - {x: 128, y: -128}
+      - {x: 128, y: 128}
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/ScrollDetails.cs b/Assets/Scripts/InventoryStuff/ScrollDetails.cs
index 8f53b082..b3117847 100644
--- a/Assets/Scripts/InventoryStuff/ScrollDetails.cs
+++ b/Assets/Scripts/InventoryStuff/ScrollDetails.cs
@@ -118,15 +118,21 @@ IEnumerator newAssignment()
     IEnumerator sendView(string endpoint)
     {
         string body = prepareScrollAssignments();
-      //  Debug.Log("Start of method");
-        UnityWebRequest www = UnityWebRequest.Put(ServerAdress + endpoint, body);
+        Debug.Log("Send View "+body);
+        Debug.Log("Endpoint" + endpoint);
+        System.DateTime startTime = System.DateTime.UtcNow;
+
+    UnityWebRequest www = UnityWebRequest.Put(ServerAdress + endpoint, body);
         www.method = UnityWebRequest.kHttpVerbPOST;
         www.SetRequestHeader("Content-Type", "application/json");
         var async = www.SendWebRequest();
+        Debug.Log("Starting now");
         while (!async.isDone) {
             //Non blocking wait for one frame, for letting the game do other things
             yield return null;
         }
+        System.DateTime twoTime = System.DateTime.UtcNow;
+        Debug.Log("ALIVE");
 
         if (www.result == UnityWebRequest.Result.ConnectionError 
          || www.result == UnityWebRequest.Result.ProtocolError)
@@ -139,6 +145,15 @@ IEnumerator sendView(string endpoint)
             string answer = www.downloadHandler.text;
             currentMmtAnswer = answer;
         }
+        System.DateTime endTime = System.DateTime.UtcNow;
+
+        string diffInSeconds = (endTime -startTime).TotalMilliseconds.ToString();
+        string diff = (twoTime - startTime).TotalMilliseconds.ToString();
+
+        Debug.Log("TIME NEEDED: part1 " + diff +"||| time needed part2 : "+diffInSeconds);
+        Debug.Log("lenght of the answer: "+currentMmtAnswer.Length);
+
+        Debug.Log("THIS IS THE GIGANTIC ANSWER"+currentMmtAnswer);
     }
 
     private string prepareScrollAssignments()
diff --git a/Assets/Scripts/JSONManager.cs b/Assets/Scripts/JSONManager.cs
index ff1cd783..5fa14e2a 100644
--- a/Assets/Scripts/JSONManager.cs
+++ b/Assets/Scripts/JSONManager.cs
@@ -47,11 +47,15 @@ public class MMTURICollection
 
     public string TruncatedVolumeCone = "http://mathhub.info/FrameIT/frameworld?FrameITCone?truncatedConeVolume";
     public string CylinderVolume = "http://mathhub.info/FrameIT/frameworld?FrameITCylinder?cylinderVolume";
+    public string EqualityCircles = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?equalityCircles";
+    public string UnEqualityCircles = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?unequalityCircles";
+
 
     public string ParallelCircles = "http://mathhub.info/FrameIT/frameworld?FrameITCone?parallelCircles";
     public string RightAngle = "http://mathhub.info/FrameIT/frameworld?FrameITBasics?rightAngle";
 
 
+    public string TestType = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?xcircleType3D";
 
 }
 
@@ -86,6 +90,8 @@ public OMA(MMTTerm applicant, List<MMTTerm> arguments)
             this.applicant = applicant;
             this.arguments = arguments;
         }
+
+        
     }
 
     public class OMS : MMTTerm
-- 
GitLab