{"id":21082801,"url":"https://github.com/johnmanjohnston/procedural-landmass-generation","last_synced_at":"2026-04-17T19:03:55.027Z","repository":{"id":133687806,"uuid":"518078525","full_name":"johnmanjohnston/procedural-landmass-generation","owner":"johnmanjohnston","description":"A procedural landmass generator, made using C# and Unity","archived":false,"fork":false,"pushed_at":"2023-06-04T09:23:20.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-29T23:04:49.925Z","etag":null,"topics":["csharp","perlin-noise","procedural-generation","terrain-generation","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnmanjohnston.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-26T13:44:07.000Z","updated_at":"2025-08-16T16:21:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"617b7c1a-f30d-4b88-85e3-3602fc2c7cab","html_url":"https://github.com/johnmanjohnston/procedural-landmass-generation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/johnmanjohnston/procedural-landmass-generation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fprocedural-landmass-generation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fprocedural-landmass-generation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fprocedural-landmass-generation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fprocedural-landmass-generation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnmanjohnston","download_url":"https://codeload.github.com/johnmanjohnston/procedural-landmass-generation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fprocedural-landmass-generation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31941845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","perlin-noise","procedural-generation","terrain-generation","unity","unity3d"],"created_at":"2024-11-19T20:15:20.888Z","updated_at":"2026-04-17T19:03:55.005Z","avatar_url":"https://github.com/johnmanjohnston.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# procedural-landmass-generation\nProcedurally generates landmass, using Unity, and C#\n\n### About\nThis was written in C#, using Unity. The project procedurally generates landmass/terrain like mountains, and hills. \nIt uses perlin noise, and the mesh for the terrain is generated according to a texture, generated as per the noise.\n\nIt also includes a basic camera controller which lets you navigate, and move around the terrain.\nThe terrain also has optional color attribute to it which can be toggled on and off. \nThe noise texture used for the terrain is previewed on the top right of the screen, and the color map used for the terrain is shown on the top left of the screen.\n\n### Demo Screenshots\nWith color:\n\n![image](https://user-images.githubusercontent.com/97091148/181218724-24bc25c7-95ea-44f8-b752-5ad8831d6442.png)\n![image](https://user-images.githubusercontent.com/97091148/181219349-2a333829-ec28-4909-8cdb-7bbc11ce13df.png)\n\n\nWithout color:\n\n![image](https://user-images.githubusercontent.com/97091148/181218926-1cf1dd84-58dd-4f4e-8e89-30b672c1bcac.png)\n![image](https://user-images.githubusercontent.com/97091148/181219238-e90508c6-f738-47a6-b79a-0940c8d7136b.png)\n\n\n### Explanation\nThe terrain shape is decided using perlin noise, and is made in the `NoiseGenerator` class, in the `NoisGenerator.cs` file.\nIt has a Generate() function, which takes in the following arguments:\n```\nuint width = 100, \nuint height = 100, \nfloat xOffset = 0f, \nfloat yOffset = 0f, \nfloat scale = 47f,\nuint octaves = 8\n```\n\nThe function validates the arguments, and then generates the noise as a two-dimensional float array.\nThe file also has a function to get the noise as a texture, which takes the noise data as an argument, `NoiseTexture(float[,] noise)`.\n\nThe `MeshGenerator` class has functions to generate the mesh, according to the noise texture. It looks at the noise texture and generates the mesh accordingly.\nThe class has functions for generating the vertices, and triangles, of the mesh, and the class utilizes them to generate the mesh.\n\nThe `TerrainGenerator` class has customizable parameters for generating the noise, which generates the terrain, which can be tweaked inside of the Unity Inspector. \nThe file also updates the noise texture on its own, by incrementing the `xOffset` and `yOffset` variables, and then reaquires the noise, and updates the terrain mesh.\n\nThe noise texture is then observed, and depending on the colors and heights specified, a color map will be generated, then a material, and then that material is applied to the terrain mesh.\nIf colors are disabled, then a material depending on the noise values will be generated, and that material is applied to the terrain mesh.\n\n### License\nThis project is licensed under the MIT License. More information about the license of this project can be found in the `LICENSE` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmanjohnston%2Fprocedural-landmass-generation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnmanjohnston%2Fprocedural-landmass-generation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmanjohnston%2Fprocedural-landmass-generation/lists"}