{"id":16116941,"url":"https://github.com/ralith/planetmap","last_synced_at":"2025-08-12T09:03:12.954Z","repository":{"id":44934073,"uuid":"172402652","full_name":"Ralith/planetmap","owner":"Ralith","description":"Streaming planetary terrain mapping","archived":false,"fork":false,"pushed_at":"2025-01-10T13:15:00.000Z","size":237,"stargazers_count":59,"open_issues_count":5,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-10T05:04:34.844Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/Ralith.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":"2019-02-24T23:23:57.000Z","updated_at":"2025-01-12T17:18:39.000Z","dependencies_parsed_at":"2024-10-26T19:31:46.591Z","dependency_job_id":"238f5205-4ff8-46fe-9ec3-84002f6fd341","html_url":"https://github.com/Ralith/planetmap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ralith/planetmap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ralith%2Fplanetmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ralith%2Fplanetmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ralith%2Fplanetmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ralith%2Fplanetmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ralith","download_url":"https://codeload.github.com/Ralith/planetmap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ralith%2Fplanetmap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270032623,"owners_count":24515322,"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-12T02:00:09.011Z","response_time":80,"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":[],"created_at":"2024-10-09T20:27:27.169Z","updated_at":"2025-08-12T09:03:12.692Z","avatar_url":"https://github.com/Ralith.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Planetmap\n\nPlanetmap is a library for processing lazily evaluated radial\nfunctions with dynamic level-of-detail.\n\n## Screenshots\n\n![high orbit](https://user-images.githubusercontent.com/3484507/65808207-c6e2ce80-e18a-11e9-9625-6ad85e5d54d5.png)\n![low orbit](https://user-images.githubusercontent.com/3484507/65808209-c77b6500-e18a-11e9-84d3-9efa44f2f902.png)\n![close](https://user-images.githubusercontent.com/3484507/65808208-c6e2ce80-e18a-11e9-83e1-100f0863473d.png)\n\n## Terrain Rendering\n\nPlanetmap is motivated by the desire to model to-scale planetary\nterrain in real time on commodity hardware. To accomplish this, it\naddresses multiple challenges:\n\n- Dynamic level of detail\n- Streaming larger-than-memory or procedural heightmap data\n- Addressing the surface of the sphere without singularities\n- Maintaining numerical stability over massive distances\n\nThis is accomplished by organizing data into a 6 virtual quadtrees,\neach corresponding to one face of a cubemap. Each node in a quadtree,\nreferred to as a `Chunk`, can be associated with a square grid of\nheight samples, each of which represents the altitude relative to sea\nlevel along a ray originating at the center of a planet. Streaming and\nlevel of detail can then be implemented with a `CacheManager`\nassociated with GPU-resident buffers.\n\nWhen generating geometry to be displaced by the heightmap, care must\nbe taken to ensure numerical stability and avoid hairline cracks\nbetween neighboring chunks. One effective tactic is to upload the\ncorners of each chunk from the CPU, then find interior points using\ninterpolation in a vertex shader.\n\n## Features\n\n- `parry` exposes helpers for rapier-compatible collision\n  detection against the surface of a radial heightmap\n- `simd` exposes `simdeez`-based iterators for data-parallel\n  computation of sample coordinates within a `Chunk` or\n  `chunk::Coord`, useful for fast noise sampling\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fralith%2Fplanetmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fralith%2Fplanetmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fralith%2Fplanetmap/lists"}