diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 58cbc82..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,72 +0,0 @@
-# This .gitignore file should be placed at the root of your Unity project directory
-#
-# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
-#
-/[Ll]ibrary/
-/[Tt]emp/
-/[Oo]bj/
-/[Bb]uild/
-/[Bb]uilds/
-/[Ll]ogs/
-/[Uu]ser[Ss]ettings/
-
-# MemoryCaptures can get excessive in size.
-# They also could contain extremely sensitive data
-/[Mm]emoryCaptures/
-
-# Recordings can get excessive in size
-/[Rr]ecordings/
-
-# Uncomment this line if you wish to ignore the asset store tools plugin
-# /[Aa]ssets/AssetStoreTools*
-
-# Autogenerated Jetbrains Rider plugin
-/[Aa]ssets/Plugins/Editor/JetBrains*
-
-# Visual Studio cache directory
-.vs/
-
-# Gradle cache directory
-.gradle/
-
-# Autogenerated VS/MD/Consulo solution and project files
-ExportedObj/
-.consulo/
-*.csproj
-*.unityproj
-*.sln
-*.suo
-*.tmp
-*.user
-*.userprefs
-*.pidb
-*.booproj
-*.svd
-*.pdb
-*.mdb
-*.opendb
-*.VC.db
-
-# Unity3D generated meta files
-*.pidb.meta
-*.pdb.meta
-*.mdb.meta
-
-# Unity3D generated file on crash reports
-sysinfo.txt
-
-# Builds
-*.apk
-*.aab
-*.unitypackage
-*.app
-
-# Crashlytics generated file
-crashlytics-build.properties
-
-# Packed Addressables
-/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
-
-# Temporary auto-generated Android Assets
-/[Aa]ssets/[Ss]treamingAssets/aa.meta
-/[Aa]ssets/[Ss]treamingAssets/aa/*
diff --git a/3D/Non-random terrain generation/Art/Cobblestone.png b/3D/Non-random terrain generation/Art/Cobblestone.png
new file mode 100644
index 0000000..feb0deb
Binary files /dev/null and b/3D/Non-random terrain generation/Art/Cobblestone.png differ
diff --git a/3D/Non-random terrain generation/Art/Dirt.jpg b/3D/Non-random terrain generation/Art/Dirt.jpg
new file mode 100644
index 0000000..af1c581
Binary files /dev/null and b/3D/Non-random terrain generation/Art/Dirt.jpg differ
diff --git a/3D/Non-random terrain generation/Art/Grass.jpg b/3D/Non-random terrain generation/Art/Grass.jpg
new file mode 100644
index 0000000..6ee761a
Binary files /dev/null and b/3D/Non-random terrain generation/Art/Grass.jpg differ
diff --git a/3D/Non-random terrain generation/JSON source/grid.json b/3D/Non-random terrain generation/JSON source/grid.json
new file mode 100644
index 0000000..d8b4846
--- /dev/null
+++ b/3D/Non-random terrain generation/JSON source/grid.json	
@@ -0,0 +1,262 @@
+{
+    "rows": 16,
+    "columns": 16,
+    "tiles": [
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 1 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 1 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 2 },
+      { "tileNumber": 2 },
+      { "tileNumber": 0 },
+      { "tileNumber": 1 }
+    ]}
+  
\ No newline at end of file
diff --git a/3D/Non-random terrain generation/Non-random-terrain-generation.unitypackage b/3D/Non-random terrain generation/Non-random-terrain-generation.unitypackage
new file mode 100644
index 0000000..5f2747c
Binary files /dev/null and b/3D/Non-random terrain generation/Non-random-terrain-generation.unitypackage differ
diff --git a/3D/Non-random terrain generation/Scripts/CubeMovement.cs b/3D/Non-random terrain generation/Scripts/CubeMovement.cs
new file mode 100644
index 0000000..acb7db9
--- /dev/null
+++ b/3D/Non-random terrain generation/Scripts/CubeMovement.cs	
@@ -0,0 +1,19 @@
+using UnityEngine;
+
+public class CubeMovement : MonoBehaviour
+{
+    public float moveSpeed = 5f;
+
+    private void Update()
+    {
+        // Get input for movement in both horizontal and vertical axes
+        float horizontalInput = Input.GetAxis("Horizontal");
+        float verticalInput = Input.GetAxis("Vertical");
+
+        // Calculate the movement direction based on input
+        Vector3 movementDirection = new Vector3(horizontalInput, 0f, verticalInput).normalized;
+
+        // Move the cube in the calculated direction
+        transform.Translate(movementDirection * moveSpeed * Time.deltaTime);
+    }
+}
diff --git a/3D/Non-random terrain generation/Scripts/TileGenerator.cs b/3D/Non-random terrain generation/Scripts/TileGenerator.cs
new file mode 100644
index 0000000..adda40c
--- /dev/null
+++ b/3D/Non-random terrain generation/Scripts/TileGenerator.cs	
@@ -0,0 +1,65 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+
+[System.Serializable]
+public class TileData
+{
+    public int tileNumber;
+}
+
+public class TileGenerator : MonoBehaviour
+{
+    public Transform gridParent;
+    public TextAsset jsonFile;
+    public GameObject[] tilePrefabs;
+
+    private void Start()
+    {
+        GenerateGridFromJSON();
+    }
+
+    private void GenerateGridFromJSON()
+    {
+        string jsonData = jsonFile.text;
+        GridData gridData = JsonUtility.FromJson<GridData>(jsonData);
+
+        int rows = gridData.rows;
+        int columns = gridData.columns;
+        List<TileData> tiles = gridData.tiles;
+
+        for (int row = 0; row < rows; row++)
+        {
+            for (int col = 0; col < columns; col++)
+            {
+                int tileIndex = row * columns + col;
+                if (tileIndex < tiles.Count)
+                {
+                    TileData tileData = tiles[tileIndex];
+
+                    if (tileData.tileNumber >= 0 && tileData.tileNumber < tilePrefabs.Length)
+                    {
+                        GameObject tilePrefab = tilePrefabs[tileData.tileNumber];
+                        Vector3 position = new Vector3(col, 0f, row); // Set the Y position to 0 to make it flat
+                        GameObject tileGO = Instantiate(tilePrefab, position, Quaternion.identity, gridParent);
+                        // You may also adjust the scale, rotation, or other properties of the tile here.
+                    }
+                    else
+                    {
+                        Debug.LogWarning("Invalid tile number in JSON data at row: " + row + ", col: " + col);
+                    }
+                }
+            }
+        }
+    }
+
+}
+
+[System.Serializable]
+public class GridData
+{
+    public int rows;
+    public int columns;
+    public List<TileData> tiles;
+}
diff --git a/3D/Non-random terrain generation/readme.md b/3D/Non-random terrain generation/readme.md
new file mode 100644
index 0000000..f47c159
--- /dev/null
+++ b/3D/Non-random terrain generation/readme.md	
@@ -0,0 +1,3 @@
+# Non random terrain generation. 
+
+In this folder there are numberous sub folders these subfolders contain the assets used. I tried my best to name them to make sense. Just drag and drop the corrosponding items into the scripts. The domain for the grid is just an empty gameobject. 
\ No newline at end of file