{"id":25127699,"url":"https://github.com/zerdicorp/terrain_3d","last_synced_at":"2025-07-28T07:13:04.892Z","repository":{"id":115871425,"uuid":"489716951","full_name":"ZERDICORP/terrain_3d","owner":"ZERDICORP","description":"Procedural terrain generation based on Perlin Noise in 3D!","archived":false,"fork":false,"pushed_at":"2022-05-27T10:18:10.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T20:48:35.378Z","etag":null,"topics":["3d-rendering","perlin-noise","procedural-generation","terrain-generation"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZERDICORP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-07T15:51:46.000Z","updated_at":"2022-10-04T15:10:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"109b8b28-f323-4abb-a43f-9a996cbe7b7d","html_url":"https://github.com/ZERDICORP/terrain_3d","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZERDICORP/terrain_3d","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZERDICORP%2Fterrain_3d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZERDICORP%2Fterrain_3d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZERDICORP%2Fterrain_3d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZERDICORP%2Fterrain_3d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZERDICORP","download_url":"https://codeload.github.com/ZERDICORP/terrain_3d/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZERDICORP%2Fterrain_3d/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267476938,"owners_count":24093619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["3d-rendering","perlin-noise","procedural-generation","terrain-generation"],"created_at":"2025-02-08T11:17:57.470Z","updated_at":"2025-07-28T07:13:04.883Z","avatar_url":"https://github.com/ZERDICORP.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terrain_3d 🏞️\n\n#### Procedural terrain generation based on Perlin Noise in 3D!\n\n## What is it? :no_mouth:\nWell.. I've been playing around with 3D graphics rendering recently.  \nAnd, also, I studied Perlin Noise.  \nDon't feel it yet?  \nI couldn't resist trying to combine the two :yum: :sweat_drops:\n\n## How it works? :hushed:\n\u003e There is not much to talk about here, everything is extremely simple.  \n\u003e I can literally do it in 3 steps.\n\n#### Step #1 - Create a heightmap with Perlin Noise\nYes, we just take the perlin noise and find the noise values for all points in the 2d map (the resulting values are the **heightmap**). \n\nIf you want to learn a little more about perlin noise: https://github.com/ZERDICORP/perlin_noise_2d\n\n#### Step #2 - Convert heightmap to 3D point array\nKnowing the height values, we can already generate points in 3D space.  \nOne of the axes should indicate the depth of the terrain (in my case it is the x-axis).  \nWe apply height values to it.\n\n#### Step #3 - Connect all points with polygons\nYes, this is the last step to create the base terrain.  \n\nThen you can add all sorts of cool things (color depending on the height values, the plane of the water surface, various objects on the map and much, much more).\n\n## How can I try it? :rabbit2:\n\u003e I am using IntellijIDEA, btw\n#### 1. Just open the project in the IDE and run the following file\n```\nsrc/main/java/just/curiosity/terrain_3d/Main.java\n```\n#### 2. You can read about how to interact with the renderer at the link below\nhttps://github.com/ZERDICORP/renderer_3d#interaction-point_right-raised_hands\n#### 3. To generate a new terrain, press the \"R\" key\n\n## Screenshot :heart_eyes_cat:\n![image](https://user-images.githubusercontent.com/56264511/167263946-6ae42d66-d757-428e-89ad-00a9115325a4.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerdicorp%2Fterrain_3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerdicorp%2Fterrain_3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerdicorp%2Fterrain_3d/lists"}