diff --git a/SM.Base/Properties/AssemblyInfo.cs b/SM.Base/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..5437322
--- /dev/null
+++ b/SM.Base/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SM.Base")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SM.Base")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("8e733844-4204-43e7-b3dc-3913cddabb0d")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SM.Base/SM.Base.csproj b/SM.Base/SM.Base.csproj
new file mode 100644
index 0000000..fed5569
--- /dev/null
+++ b/SM.Base/SM.Base.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8E733844-4204-43E7-B3DC-3913CDDABB0D}
+ Library
+ Properties
+ SM.Base
+ SM.Base
+ v4.5.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SM.Core/Properties/AssemblyInfo.cs b/SM.Core/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..eaca79a
--- /dev/null
+++ b/SM.Core/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SM.Core")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SM.Core")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("f604d684-bc1d-4819-88b5-8b5d03a17be0")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SM.Core/SM.Core.csproj b/SM.Core/SM.Core.csproj
new file mode 100644
index 0000000..e272877
--- /dev/null
+++ b/SM.Core/SM.Core.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {F604D684-BC1D-4819-88B5-8B5D03A17BE0}
+ Library
+ Properties
+ SM.Core
+ SM.Core
+ v4.5.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SM2D/Properties/AssemblyInfo.cs b/SM2D/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..23a061b
--- /dev/null
+++ b/SM2D/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SM2D")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SM2D")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a4565538-625a-42c6-a330-dd4f1abb3986")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SM2D/SM2D.csproj b/SM2D/SM2D.csproj
new file mode 100644
index 0000000..8484d4f
--- /dev/null
+++ b/SM2D/SM2D.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {A4565538-625A-42C6-A330-DD4F1ABB3986}
+ Library
+ Properties
+ SM2D
+ SM2D
+ v4.5.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SM3D/Properties/AssemblyInfo.cs b/SM3D/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7390e89
--- /dev/null
+++ b/SM3D/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SM3D")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SM3D")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9beca849-e6e9-4e15-83a6-add8c18065cb")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SM3D/SM3D.csproj b/SM3D/SM3D.csproj
new file mode 100644
index 0000000..b36bcbd
--- /dev/null
+++ b/SM3D/SM3D.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {9BECA849-E6E9-4E15-83A6-ADD8C18065CB}
+ Library
+ Properties
+ SM3D
+ SM3D
+ v4.5.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SMRendererV3.sln b/SMRendererV3.sln
new file mode 100644
index 0000000..1e775c0
--- /dev/null
+++ b/SMRendererV3.sln
@@ -0,0 +1,57 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30413.136
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SMRenderer", "SMRenderer", "{47EA2879-1D40-4683-BA6C-AB51F286EBDE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM.Core", "SM.Core\SM.Core.csproj", "{F604D684-BC1D-4819-88B5-8B5D03A17BE0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM.Base", "SM.Base\SM.Base.csproj", "{8E733844-4204-43E7-B3DC-3913CDDABB0D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM3D", "SM3D\SM3D.csproj", "{9BECA849-E6E9-4E15-83A6-ADD8C18065CB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM2D", "SM2D\SM2D.csproj", "{A4565538-625A-42C6-A330-DD4F1ABB3986}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM_TEST", "SM_TEST\SM_TEST.csproj", "{6D4FB8E6-4D0B-4928-8F9E-EF5C2FBF44E8}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F604D684-BC1D-4819-88B5-8B5D03A17BE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F604D684-BC1D-4819-88B5-8B5D03A17BE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F604D684-BC1D-4819-88B5-8B5D03A17BE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F604D684-BC1D-4819-88B5-8B5D03A17BE0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8E733844-4204-43E7-B3DC-3913CDDABB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8E733844-4204-43E7-B3DC-3913CDDABB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8E733844-4204-43E7-B3DC-3913CDDABB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8E733844-4204-43E7-B3DC-3913CDDABB0D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9BECA849-E6E9-4E15-83A6-ADD8C18065CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BECA849-E6E9-4E15-83A6-ADD8C18065CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9BECA849-E6E9-4E15-83A6-ADD8C18065CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9BECA849-E6E9-4E15-83A6-ADD8C18065CB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A4565538-625A-42C6-A330-DD4F1ABB3986}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A4565538-625A-42C6-A330-DD4F1ABB3986}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A4565538-625A-42C6-A330-DD4F1ABB3986}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A4565538-625A-42C6-A330-DD4F1ABB3986}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6D4FB8E6-4D0B-4928-8F9E-EF5C2FBF44E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6D4FB8E6-4D0B-4928-8F9E-EF5C2FBF44E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6D4FB8E6-4D0B-4928-8F9E-EF5C2FBF44E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6D4FB8E6-4D0B-4928-8F9E-EF5C2FBF44E8}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {F604D684-BC1D-4819-88B5-8B5D03A17BE0} = {47EA2879-1D40-4683-BA6C-AB51F286EBDE}
+ {8E733844-4204-43E7-B3DC-3913CDDABB0D} = {47EA2879-1D40-4683-BA6C-AB51F286EBDE}
+ {9BECA849-E6E9-4E15-83A6-ADD8C18065CB} = {47EA2879-1D40-4683-BA6C-AB51F286EBDE}
+ {A4565538-625A-42C6-A330-DD4F1ABB3986} = {47EA2879-1D40-4683-BA6C-AB51F286EBDE}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {51C827AB-3306-4EE6-9E60-B7BF84854469}
+ EndGlobalSection
+EndGlobal
diff --git a/SMRendererV3/Class1.cs b/SMRendererV3/Class1.cs
new file mode 100644
index 0000000..24ceeaf
--- /dev/null
+++ b/SMRendererV3/Class1.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SMRendererV3
+{
+ public class Class1
+ {
+ }
+}
diff --git a/SMRendererV3/Properties/AssemblyInfo.cs b/SMRendererV3/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..1fd775b
--- /dev/null
+++ b/SMRendererV3/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SMRendererV3")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SMRendererV3")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a83ca2be-3581-4f1f-b3dc-ee7b1d566139")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SMRendererV3/SMRendererV3_Test.csproj b/SMRendererV3/SMRendererV3_Test.csproj
new file mode 100644
index 0000000..041c146
--- /dev/null
+++ b/SMRendererV3/SMRendererV3_Test.csproj
@@ -0,0 +1,54 @@
+
+
+
+
+ Debug
+ AnyCPU
+ a83ca2be-3581-4f1f-b3dc-ee7b1d566139
+ Library
+ Properties
+ SMRendererV3
+ SMRendererV3
+ v4.5.2
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SM_TEST/App.config b/SM_TEST/App.config
new file mode 100644
index 0000000..88fa402
--- /dev/null
+++ b/SM_TEST/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SM_TEST/Program.cs b/SM_TEST/Program.cs
new file mode 100644
index 0000000..2f8d77d
--- /dev/null
+++ b/SM_TEST/Program.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SM_TEST
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ }
+ }
+}
diff --git a/SM_TEST/Properties/AssemblyInfo.cs b/SM_TEST/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..65ced2c
--- /dev/null
+++ b/SM_TEST/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SM_TEST")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("SM_TEST")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("6d4fb8e6-4d0b-4928-8f9e-ef5c2fbf44e8")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SM_TEST/SM_TEST.csproj b/SM_TEST/SM_TEST.csproj
new file mode 100644
index 0000000..c455aec
--- /dev/null
+++ b/SM_TEST/SM_TEST.csproj
@@ -0,0 +1,53 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {6D4FB8E6-4D0B-4928-8F9E-EF5C2FBF44E8}
+ Exe
+ SM_TEST
+ SM_TEST
+ v4.5.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file