diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp
index 2052f252b38174cd37e024d84a4f69272946a539..f05f0344bd0570ba0dbb97b8d36e059e8f2b0981 100644
--- a/indra/newview/llmaterialeditor.cpp
+++ b/indra/newview/llmaterialeditor.cpp
@@ -1605,6 +1605,7 @@ void LLMaterialEditor::loadAsset()
             if (mAssetID.isNull())
             {
                 mAssetStatus = PREVIEW_ASSET_LOADED;
+                loadDefaults();
                 setHasUnsavedChanges(false);
             }
             else
@@ -1905,3 +1906,9 @@ S32 LLMaterialEditor::saveTextures()
     return work_count;
 }
 
+void LLMaterialEditor::loadDefaults()
+{
+    tinygltf::Model model_in;
+    model_in.materials.resize(1);
+    setFromGltfModel(model_in, true);
+}
diff --git a/indra/newview/llmaterialeditor.h b/indra/newview/llmaterialeditor.h
index 59ae00e565868184b446a415bbb66cebdbd88054..cc72193a0efa871c924a713c5d339646ba1024b4 100644
--- a/indra/newview/llmaterialeditor.h
+++ b/indra/newview/llmaterialeditor.h
@@ -161,6 +161,8 @@ class LLMaterialEditor : public LLPreview, public LLVOInventoryListener
     void onCommitEmissiveTexture(LLUICtrl* ctrl, const LLSD& data);
     void onCommitNormalTexture(LLUICtrl* ctrl, const LLSD& data);
 
+    // initialize the UI from a default GLTF material
+    void loadDefaults();
 private:
     friend class LLMaterialFilePicker;