{"id":27699248,"url":"https://github.com/yurkth/astraea","last_synced_at":"2025-08-29T06:21:46.034Z","repository":{"id":136434775,"uuid":"262836244","full_name":"yurkth/astraea","owner":"yurkth","description":"A planet generator inspired by Planetarium.","archived":false,"fork":false,"pushed_at":"2021-10-20T18:41:10.000Z","size":50,"stargazers_count":170,"open_issues_count":0,"forks_count":13,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-25T17:17:09.920Z","etag":null,"topics":["pixel-art","procedural","procedural-generation","procgen"],"latest_commit_sha":null,"homepage":"https://yurkth.github.io/astraea/","language":"JavaScript","has_issues":false,"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/yurkth.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}},"created_at":"2020-05-10T17:09:20.000Z","updated_at":"2024-11-26T00:35:58.000Z","dependencies_parsed_at":"2023-10-21T01:00:40.264Z","dependency_job_id":null,"html_url":"https://github.com/yurkth/astraea","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yurkth/astraea","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurkth%2Fastraea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurkth%2Fastraea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurkth%2Fastraea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurkth%2Fastraea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yurkth","download_url":"https://codeload.github.com/yurkth/astraea/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurkth%2Fastraea/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272641103,"owners_count":24968801,"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-08-29T02:00:10.610Z","response_time":87,"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":["pixel-art","procedural","procedural-generation","procgen"],"created_at":"2025-04-25T17:17:06.006Z","updated_at":"2025-08-29T06:21:46.003Z","avatar_url":"https://github.com/yurkth.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Astraea\r\n\r\nThe planet generator inspired by [Planetarium](https://managore.itch.io/planetarium). Please see also the [Twitter bot](https://twitter.com/astraea_yk).\r\n\r\n**I do not authorize the use of anything generated by this project for the selling of NFTs.**\r\n\r\n![](https://user-images.githubusercontent.com/59264002/81490997-a30c6d00-92c3-11ea-8263-d79388ff2dd6.png)\r\n\r\n## Algorithm\r\n\r\nBy shaving off the extra pixels from the square and bringing them together in the center, the 2D sprite is made to look like 3D.\r\n\r\n![](https://user-images.githubusercontent.com/59264002/81490999-a6075d80-92c3-11ea-999c-99a6f06e76b3.png)\r\n\r\nThe planets' patterns are generated by some simple noise functions.  \r\nIf the plane references 2D noise, it will be scaled incorrectly, like Mercator projection. Therefore, the 3D noise is compressed into a 2D plane.  \r\nIn other words, it converts 3D noise into a 2D plane and makes it look like a 3D sphere.\r\n\r\n![](https://user-images.githubusercontent.com/59264002/81491000-a7d12100-92c3-11ea-9a43-158e6d914f3e.png)\r\n\r\nPlease see my blog [post](https://yurkth.hateblo.jp/entry/astraea-planet-generator) for more information (sorry, it's Japanese).\r\n\r\n## License\r\n\r\nAstraea is licensed under the MIT license. See the [LICENSE](https://github.com/yurkth/astraea/blob/master/LICENSE) for more information.\r\n\r\n### Libraries\r\n\r\n- [p5.js](https://github.com/processing/p5.js) is licensed under the LGPL-2.1 license.\r\n- [seedrandom](https://github.com/davidbau/seedrandom) is licensed under the MIT license.\r\n- [simplex-noise](https://github.com/jwagner/simplex-noise.js) is licensed under the MIT license.\r\n- [poisson-disk-sampling](https://github.com/kchapelier/poisson-disk-sampling) is licensed under the MIT license.\r\n- [zlib.js](https://github.com/imaya/zlib.js) is licensed under the MIT license.\r\n\r\n### Assets\r\n\r\n- The [Corpora](https://github.com/dariusk/corpora) is licensed under the CC-0 license.\r\n- The [PICO-8 palette](https://www.lexaloffle.com/pico-8.php?page=faq) is licensed under the CC-0 license.\r\n- The [PICO-8 font](https://www.lexaloffle.com/bbs/?tid=3760) (unofficial) does not claim any copyright.\r\n  - The [official font](https://www.lexaloffle.com/pico-8.php?page=faq) is also licensed under the CC-0 license.\r\n\r\n### References\r\n\r\n- [TIC-80](https://github.com/nesbox/TIC-80) is licensed under the MIT license.\r\n  - To draw a circle in pixels, I used the [circb](https://github.com/nesbox/TIC-80/blob/master/src/tic.c#L948-L961) function as a reference.\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyurkth%2Fastraea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyurkth%2Fastraea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyurkth%2Fastraea/lists"}