diff --git a/Assets/Resources/Prefabs/Facts/Cuboid.prefab b/Assets/Resources/Prefabs/Facts/Cuboid.prefab
index 76e12f1540739c9b01c97358a4ce5767cef6e0ea..12c169c00552b39a2577cc048c2589dddac5cb91 100644
--- a/Assets/Resources/Prefabs/Facts/Cuboid.prefab
+++ b/Assets/Resources/Prefabs/Facts/Cuboid.prefab
@@ -1,6 +1,6 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1 &6839596689016440457
+--- !u!1 &2688299870578515406
 GameObject:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -8,66 +8,10 @@ GameObject:
   m_PrefabAsset: {fileID: 0}
   serializedVersion: 6
   m_Component:
-  - component: {fileID: 3390467403729316765}
-  - component: {fileID: 6950663371922587874}
-  m_Layer: 26
-  m_Name: Cuboid
-  m_TagString: Selectable
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &3390467403729316765
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 6839596689016440457}
-  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_ConstrainProportionsScale: 1
-  m_Children:
-  - {fileID: 6662482376097614856}
-  - {fileID: 5831357366368800904}
-  m_Father: {fileID: 0}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &6950663371922587874
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 6839596689016440457}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  _URI: 
-  FactText:
-  - {fileID: 7177577245137766670}
-  StringLabelFormats: []
-  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
-  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
-  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
-  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
-  renderer:
-  - {fileID: 1525151776347487752}
---- !u!1 &8645286316326201467
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 6662482376097614856}
-  - component: {fileID: 5986843358289336505}
-  - component: {fileID: 7177577245137766670}
-  - component: {fileID: 2586578973517344970}
+  - component: {fileID: 29302832430599646}
+  - component: {fileID: 503893222331825355}
+  - component: {fileID: 661528896933927744}
+  - component: {fileID: 3021905677247651873}
   m_Layer: 26
   m_Name: LabelText
   m_TagString: Untagged
@@ -75,33 +19,33 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!224 &6662482376097614856
+--- !u!224 &29302832430599646
 RectTransform:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8645286316326201467}
+  m_GameObject: {fileID: 2688299870578515406}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0.4}
+  m_LocalPosition: {x: 0, y: 0, z: -0.25}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3390467403729316765}
-  m_RootOrder: 0
+  m_RootOrder: 2
   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_AnchoredPosition: {x: 0.5, y: 0.5}
   m_SizeDelta: {x: 2, y: 0.5}
   m_Pivot: {x: 0.5, y: 0.5}
---- !u!23 &5986843358289336505
+--- !u!23 &503893222331825355
 MeshRenderer:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8645286316326201467}
+  m_GameObject: {fileID: 2688299870578515406}
   m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
@@ -137,13 +81,13 @@ MeshRenderer:
   m_SortingLayer: 0
   m_SortingOrder: 0
   m_AdditionalVertexStreams: {fileID: 0}
---- !u!114 &7177577245137766670
+--- !u!114 &661528896933927744
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8645286316326201467}
+  m_GameObject: {fileID: 2688299870578515406}
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
@@ -227,15 +171,15 @@ MonoBehaviour:
   _SortingLayerID: 0
   _SortingOrder: 0
   m_hasFontAssetChanged: 0
-  m_renderer: {fileID: 5986843358289336505}
+  m_renderer: {fileID: 503893222331825355}
   m_maskType: 0
---- !u!114 &2586578973517344970
+--- !u!114 &3021905677247651873
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 8645286316326201467}
+  m_GameObject: {fileID: 2688299870578515406}
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 11500000, guid: 8cf5a358dacd3b54ab093ee289dd9ba2, type: 3}
@@ -244,7 +188,7 @@ MonoBehaviour:
   Cam1: {fileID: 0}
   Cam2: {fileID: 0}
   BackUPCam: {fileID: 0}
---- !u!1 &9006425962114461910
+--- !u!1 &3319392661904935552
 GameObject:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -252,46 +196,168 @@ GameObject:
   m_PrefabAsset: {fileID: 0}
   serializedVersion: 6
   m_Component:
-  - component: {fileID: 5831357366368800904}
-  - component: {fileID: 7650278115114718330}
-  - component: {fileID: 1525151776347487752}
+  - component: {fileID: 7541265271928914416}
+  - component: {fileID: 1312883106029576503}
+  - component: {fileID: 5284903402926663935}
+  - component: {fileID: 2574848627300415222}
+  - component: {fileID: 7280041197286401157}
   m_Layer: 26
-  m_Name: Cube
-  m_TagString: Untagged
+  m_Name: Mesh Down
+  m_TagString: SnapZone
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
---- !u!4 &5831357366368800904
+--- !u!4 &7541265271928914416
 Transform:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 9006425962114461910}
+  m_GameObject: {fileID: 3319392661904935552}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: -0.01}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
-  m_Children: []
+  m_Children:
+  - {fileID: 6787775389045427190}
   m_Father: {fileID: 3390467403729316765}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!33 &7650278115114718330
+--- !u!33 &1312883106029576503
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Mesh: {fileID: 0}
+--- !u!23 &5284903402926663935
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  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: 0
+  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!64 &2574848627300415222
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 1
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 0}
+--- !u!114 &7280041197286401157
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText: []
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer:
+  - {fileID: 5284903402926663935}
+  - {fileID: 1078883255209641429}
+--- !u!1 &4682201382595328041
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6787775389045427190}
+  - component: {fileID: 6626359674163989219}
+  - component: {fileID: 4818731436791451552}
+  m_Layer: 26
+  m_Name: TriangleHighlight
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6787775389045427190
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4682201382595328041}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.96, y: 1, z: 0.96}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7541265271928914416}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &6626359674163989219
 MeshFilter:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 9006425962114461910}
-  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
---- !u!23 &1525151776347487752
+  m_GameObject: {fileID: 4682201382595328041}
+  m_Mesh: {fileID: 0}
+--- !u!23 &4818731436791451552
 MeshRenderer:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 9006425962114461910}
+  m_GameObject: {fileID: 4682201382595328041}
   m_Enabled: 1
   m_CastShadows: 1
   m_ReceiveShadows: 1
@@ -327,3 +393,288 @@ MeshRenderer:
   m_SortingLayer: 0
   m_SortingOrder: 0
   m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &5866155945383417828
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8554957501859850914}
+  - component: {fileID: 3164742056485930267}
+  - component: {fileID: 1460740696286669547}
+  m_Layer: 26
+  m_Name: TriangleHighlight
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8554957501859850914
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5866155945383417828}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.96, y: 1, z: 0.96}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 142224692930156368}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &3164742056485930267
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5866155945383417828}
+  m_Mesh: {fileID: 0}
+--- !u!23 &1460740696286669547
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5866155945383417828}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  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!1 &6262947649539239553
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 142224692930156368}
+  - component: {fileID: 7167210412035754299}
+  - component: {fileID: 1078883255209641429}
+  - component: {fileID: 8526453253978894086}
+  - component: {fileID: -7239156242830623982}
+  m_Layer: 26
+  m_Name: Mesh Up
+  m_TagString: SnapZone
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &142224692930156368
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0.01}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8554957501859850914}
+  m_Father: {fileID: 3390467403729316765}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &7167210412035754299
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Mesh: {fileID: 0}
+--- !u!23 &1078883255209641429
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  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: 0
+  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!64 &8526453253978894086
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 1
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 0}
+--- !u!114 &-7239156242830623982
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText: []
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer:
+  - {fileID: 1078883255209641429}
+  - {fileID: 5284903402926663935}
+--- !u!1 &6839596689016440457
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3390467403729316765}
+  - component: {fileID: 6950663371922587874}
+  - component: {fileID: -3607202807159173837}
+  m_Layer: 26
+  m_Name: Cuboid
+  m_TagString: Selectable
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3390467403729316765
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  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_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 142224692930156368}
+  - {fileID: 7541265271928914416}
+  - {fileID: 29302832430599646}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &6950663371922587874
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText:
+  - {fileID: 0}
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer:
+  - {fileID: 1078883255209641429}
+--- !u!114 &-3607202807159173837
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 50b87cffb9e83ae44849acfd5714396a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Meshs:
+  - {fileID: 7167210412035754299}
+  - {fileID: 3164742056485930267}
+  - {fileID: 1312883106029576503}
+  - {fileID: 6626359674163989219}
+  NormalOffset: []
+  AlternateNormals: 0
+  _ab: 1
+  _bc: 1
+  _height: {x: 0, y: 1, z: 0}
diff --git a/Assets/Resources/Prefabs/Facts/Cuboid.prefab.meta b/Assets/Resources/Prefabs/Facts/Cuboid.prefab.meta
index 68ecdd1f24be4f294d10185b9fe6fb1fc1b84388..dae831ba6758a9744f7d5394a141ab97e4efacdb 100644
--- a/Assets/Resources/Prefabs/Facts/Cuboid.prefab.meta
+++ b/Assets/Resources/Prefabs/Facts/Cuboid.prefab.meta
@@ -1,11 +1,6 @@
 fileFormatVersion: 2
-<<<<<<<< HEAD:Assets/Resources/Prefabs/Facts/Square.prefab.meta
-guid: 4c29d00f7a7d4c94190602b5990b2883
+guid: e203a1edb3e55dd41881a663756f8064
 PrefabImporter:
-========
-guid: ffa3cc5a8ea56dc4b8c5e907de1f715a
-DefaultImporter:
->>>>>>>> master:Assets/StreamingAssets/StreamToPersistentDataPath/Config/Network_Backup_withAuto.JSON.meta
   externalObjects: {}
   userData: 
   assetBundleName: 
diff --git a/Assets/Scenes/Worlds/RiverWorld.unity b/Assets/Scenes/Worlds/RiverWorld.unity
index a558c886f067c75ec1bd9fcdd5cf10f8ba24f42d..14688759e92e55303e9d0a0dd15aa7e76b5103a1 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.44100717, g: 0.4898312, b: 0.5698877, a: 1}
+  m_IndirectSpecularColor: {r: 0.44084534, g: 0.48955458, b: 0.56959116, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -60855,7 +60855,7 @@ PrefabInstance:
         type: 3}
       propertyPath: Cuboid
       value: 
-      objectReference: {fileID: 6839596689016440457, guid: 4c29d00f7a7d4c94190602b5990b2883,
+      objectReference: {fileID: 6839596689016440457, guid: e203a1edb3e55dd41881a663756f8064,
         type: 3}
     - target: {fileID: 2872381745209199267, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
index 7396ce73e616b42ff1e49fe503f337c556402d5f..8f36028aa00d56956e04ed92462f59a89d29b243 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
@@ -96,10 +96,19 @@ public void SpawnCuboid(CuboidFact fact){
         fact.WorldRepresentation.Fact = fact;
 
         cuboid.transform.SetPositionAndRotation(fact.Position, fact.Rotation);
-        cuboid.transform.localScale = Vector3.Scale(cuboid.transform.localScale, fact.LocalScale);
+
 
         cuboid.GetComponentInChildren<TextMeshPro>().text = fact.GetLabel(StageStatic.stage.factState) + " = " + System.Math.Round(fact.Volume, 2) + "m³";
 
+        CuboidGenerator[] cuboidGenerators = cuboid.GetComponentsInChildren<CuboidGenerator>();
+        RectangleFact rf = fact.GetR;
+        foreach (var gen in cuboidGenerators)
+        {
+            gen.ab = Vector3.Distance(rf.A, rf.B);
+            gen.bc = Vector3.Distance(rf.B, rf.C);
+            gen.height = new Vector3(0, 0, Vector3.Distance(rf.B, fact.T));
+        }
+
     }
 
     public void SpawnCylinderFact(CylinderFact fact){
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs
index 916a249860e98e1741a3277447afc3c411b9ffd5..3a03ed0bd22045ac703a798c61e004d6bdb17a45 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CuboidFact.cs
@@ -56,7 +56,7 @@ protected void calculate_vectors(){
 
         Volume = sidelengthBA * sidelengthBC * sidelengthTB; 
 
-        Position = B + 0.5F * ((A - B) + (T - B) + (C - B));
+        Position = B + (T - B) - (B - A);
 
         Vector3 cross = Vector3.Cross((A - B), (C - B));
         Vector3 cross2 = Vector3.Cross((T - B), (C - B));
@@ -66,6 +66,8 @@ protected void calculate_vectors(){
         Vector3 up = Vector3.Cross(right, cross).normalized;
 
         Rotation = Quaternion.LookRotation(cross, up);
+
+
    
     }
 
diff --git a/Assets/Scripts/MeshGenerator/CuboidGenerator.cs b/Assets/Scripts/MeshGenerator/CuboidGenerator.cs
new file mode 100644
index 0000000000000000000000000000000000000000..bbd87e97b03ef29e9bc84a7dfe371f6fa07f6df9
--- /dev/null
+++ b/Assets/Scripts/MeshGenerator/CuboidGenerator.cs
@@ -0,0 +1,80 @@
+using System;
+using System.Linq;
+using UnityEngine;
+
+public class CuboidGenerator : ShapeGenerator
+{
+    #region InspectorVariables
+    [Header("Triangle values")]
+    [SerializeField] protected float _ab = 1f;
+    [SerializeField] protected float _bc = 1f;
+    [SerializeField] protected Vector3 _height = new Vector3(0, 1.0F, 0);
+    public float ab
+    {
+        get { return _ab; }
+        set
+        {
+            _ab = value;
+            GenerateShapeForAll();
+        }
+    }
+    public float bc
+    {
+        get { return _bc; }
+        set
+        {
+            _bc = value;
+            GenerateShapeForAll();
+        }
+    }
+    public Vector3 height
+    {
+        get { return _height; }
+        set
+        {
+            _height = value;
+            GenerateShapeForAll();
+        }
+    }
+    #endregion InspectorVariables
+
+    #region Implementation
+    protected override (Vector3[] vertices, int[] triangles) GenerateTopology()
+        => CreateCuboid(ab, bc, height);
+
+    /// <summary>
+    /// Creates circle vertecies and triangles around the midPoint at (0,0,0)
+    /// </summary>
+    /// <param name="points"></param>
+    /// <param name="invert"></param>
+    /// <returns></returns>
+    public static (Vector3[], int[]) CreateCuboid(float ab, float bc, Vector3 height, Vector3 offset, bool invert = false)
+    {
+        Vector3[] bottom_edge = GetRectanglePoints(ab, bc);
+        Vector3[] bottom_vertices =
+            new Vector3[] { }
+            .AppendRange(bottom_edge)   
+            .Append(bottom_edge[0])
+            .ToArray();
+        int[] bottom_boundary = Enumerable.Range(1, bottom_edge.Length).ToArray();
+
+        Vector3[] top_edge = GetRectanglePoints(ab, bc, -height);
+        Vector3[] top_vertices =
+            new Vector3[] { }
+            .AppendRange(top_edge)
+            .Append(top_edge[0])
+            .ToArray();
+        int[] top_boundary = Enumerable.Range(1, top_edge.Length).ToArray();
+
+        return CreatePrism(
+                    CreatePlane(top_vertices),
+                    CreatePlane(bottom_vertices, true),
+                    top_boundary,
+                    bottom_boundary
+                );
+    }
+
+    public static (Vector3[], int[]) CreateCuboid(float ab, float bc, Vector3 height, bool invert = false)
+        => CreateCuboid(ab, bc, height, Vector3.zero, invert);
+    #endregion Implementation
+}
diff --git a/Assets/Scripts/MeshGenerator/CuboidGenerator.cs.meta b/Assets/Scripts/MeshGenerator/CuboidGenerator.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..93125f0c7497daa2c1a153bba7c83f350be72309
--- /dev/null
+++ b/Assets/Scripts/MeshGenerator/CuboidGenerator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 50b87cffb9e83ae44849acfd5714396a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: