diff --git a/indra/newview/cube.dae b/indra/newview/cube.dae
new file mode 100644
index 0000000000000000000000000000000000000000..f9df955ff292551a49e3470faafaaab85b70b55a
--- /dev/null
+++ b/indra/newview/cube.dae
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+ <asset>
+  <contributor>
+   modified from https://gist.github.com/wtsnz/bfa11c40e04594b260255b5dc7956f26
+  </contributor>
+  <created>2018-10-25T16:29:03Z</created>
+  <modified>2022-02-18T00:00:00Z</modified>
+  <unit meter="1.000000"/>
+  <up_axis>Y_UP</up_axis>
+ </asset>
+
+ <library_materials>
+  <material id="Blue" name="Blue">
+   <instance_effect url="#effect_Blue"/>
+  </material>
+ </library_materials>
+
+
+ <library_effects>
+  <effect id="effect_Blue">
+   <profile_COMMON>
+    <technique sid="common">
+     <phong>
+      <ambient>
+       <color>0 0 0 1</color>
+      </ambient>
+      <diffuse>
+       <color>0.137255 0.403922 0.870588 1</color>
+      </diffuse>
+      <specular>
+       <color>0.5 0.5 0.5 1</color>
+      </specular>
+      <shininess>
+       <float>16</float>
+      </shininess>
+      <transparent opaque="A_ONE">
+       <color>0 0 0 1</color>
+      </transparent>
+      <transparency>
+       <float>1</float>
+      </transparency>
+      <index_of_refraction>
+       <float>1</float>
+      </index_of_refraction>
+     </phong>
+    </technique>
+   </profile_COMMON>
+  </effect>
+ </library_effects>
+
+
+ <library_geometries>
+  <geometry id="F1" name="Unit Cube">
+   <mesh>
+
+    <source id="cube-vertex-positions">
+     <float_array id="ID2-array" count="72">-0.5 0.5 0.5 -0.5 -0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 -0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 -0.5 -0.5 0.5 -0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 0.5 0.5 -0.5 0.5 0.5 -0.5 -0.5 0.5 0.5 -0.5 0.5 0.5 0.5 0.5 0.5 -0.5 0.5 -0.5 -0.5 -0.5 -0.5 -0.5 -0.5 0.5 -0.5 </float_array>
+     <technique_common>
+      <accessor source="#ID2-array" count="24" stride="3">
+       <param name="X" type="float"/>
+       <param name="Y" type="float"/>
+       <param name="Z" type="float"/>
+      </accessor>
+     </technique_common>
+    </source>
+
+    <vertices id="cube-vertices">
+     <input semantic="POSITION" source="#cube-vertex-positions"/>
+    </vertices>
+
+    <triangles count="12" material="geometryElement5">
+     <input semantic="VERTEX" offset="0" source="#cube-vertices"/>
+     <p>0 1 2 0 2 3 4 5 6 4 6 7 8 9 10 8 10 11 12 13 14 12 14 15 16 17 18 16 18 19 20 21 22 20 22 23 </p>
+    </triangles>
+    
+   </mesh>
+  </geometry>
+ </library_geometries>
+ <library_visual_scenes>
+
+
+  <visual_scene id="reportScene">
+  <!-- No Spaces allowed in Name -->
+   <node id="F1" name="Face1">
+    <instance_geometry url="#F1">
+     <bind_material>
+      <technique_common>
+       <instance_material symbol="geometryElement5" target="#Blue"/>
+      </technique_common>
+     </bind_material>
+    </instance_geometry>
+   </node>
+  </visual_scene>
+ </library_visual_scenes>
+
+
+ <scene>
+  <instance_visual_scene url="#reportScene"/>
+ </scene>
+
+
+</COLLADA>
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 64b24d54c3d69d8c1141c908eb52d744c1cb3b75..fe4deaa657ba3aff0ed14ee5cc62bb35f15a4a99 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -455,7 +455,7 @@ void LLFloaterModelPreview::loadHighLodModel()
 	loadModel(3);
 }
 
-void LLFloaterModelPreview::loadModel(S32 lod)
+void LLFloaterModelPreview::prepareToLoadModel(S32 lod)
 {
 	mModelPreview->mLoading = true;
 	if (lod == LLModel::LOD_PHYSICS)
@@ -463,14 +463,16 @@ void LLFloaterModelPreview::loadModel(S32 lod)
 		// loading physics from file
 		mModelPreview->mPhysicsSearchLOD = lod;
 	}
-
+}
+void LLFloaterModelPreview::loadModel(S32 lod)
+{
+	prepareToLoadModel(lod);
 	(new LLMeshFilePicker(mModelPreview, lod))->getFile();
 }
 
 void LLFloaterModelPreview::loadModel(S32 lod, const std::string& file_name, bool force_disable_slm)
 {
-	mModelPreview->mLoading = true;
-
+	prepareToLoadModel(lod);
 	mModelPreview->loadModel(file_name, lod, force_disable_slm);
 }
 
@@ -1042,10 +1044,15 @@ void LLFloaterModelPreview::onPhysicsUseLOD(LLUICtrl* ctrl, void* userdata)
 	}
 
 	S32 file_mode = iface->getItemCount() - 1;
-	if (which_mode < file_mode)
+	S32 cube_mode = file_mode - 1;
+	if (which_mode < cube_mode)
 	{
 		S32 which_lod = num_lods - which_mode;
 		sInstance->mModelPreview->setPhysicsFromLOD(which_lod);
+	} else if (which_mode == cube_mode) {
+		std::string path = gDirUtilp->getAppRODataDir();
+		gDirUtilp->append(path, "cube.dae");
+		sInstance->loadModel(LLModel::LOD_PHYSICS, path);
 	}
 
 	LLModelPreview *model_preview = sInstance->mModelPreview;
@@ -1641,15 +1648,15 @@ LLFloaterModelPreview::DecompRequest::DecompRequest(const std::string& stage, LL
 void LLFloaterModelPreview::setCtrlLoadFromFile(S32 lod)
 {
     if (lod == LLModel::LOD_PHYSICS)
-    {
+	{
         LLComboBox* lod_combo = findChild<LLComboBox>("physics_lod_combo");
         if (lod_combo)
         {
-            lod_combo->setCurrentByIndex(5);
+			lod_combo->setCurrentByIndex(lod_combo->getItemCount() - 1);
         }
     }
     else
-{
+	{
         LLComboBox* lod_combo = findChild<LLComboBox>("lod_source_" + lod_name[lod]);
         if (lod_combo)
 	{
diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h
index 8a01b0c30773c2448e22554ae3c2fc3c3d1f98fa..db7e49fd9c13efdc068a406421b853662f9d7843 100644
--- a/indra/newview/llfloatermodelpreview.h
+++ b/indra/newview/llfloatermodelpreview.h
@@ -222,6 +222,7 @@ class LLFloaterModelPreview : public LLFloaterModelUploadBase
 
 	void resetUploadOptions();
 	void clearLogTab();
+	void prepareToLoadModel(S32 lod);
 
 	void createSmoothComboBox(LLComboBox* combo_box, float min, float max);
 
diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml
index 7f863756eb92147f52494c17999bca9f4fce907a..64079d1d20f4c5f5859f6cf7b27c218ec3757d44 100644
--- a/indra/newview/skins/default/xui/en/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml
@@ -784,6 +784,7 @@
                         <combo_item name="physics_medium"> Medium </combo_item>
                         <combo_item name="physics_low">    Low    </combo_item>
                         <combo_item name="physics_lowest"> Lowest </combo_item>
+                        <combo_item name="physics_bounding_box"> Bounding Box </combo_item>
                         <combo_item name="load_from_file"> From file   </combo_item>
                     </combo_box>
                     <line_editor
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index a814bd2849d8c3ca93d3e668c6f71ab146e279a9..7d059f08f42e8e06b55dc2d19b487c0338771f90 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -960,6 +960,7 @@ def construct(self):
                 self.path("licenses-mac.txt", dst="licenses.txt")
                 self.path("featuretable_mac.txt")
                 self.path("SecondLife.nib")
+                self.path("cube.dae")
 
                 with self.prefix(src=pkgdir,dst=""):
                     self.path("ca-bundle.crt")