{"id":27936102,"url":"https://github.com/jsulpis/realtime-planet-shader","last_synced_at":"2026-02-05T07:31:01.007Z","repository":{"id":193124345,"uuid":"662991848","full_name":"jsulpis/realtime-planet-shader","owner":"jsulpis","description":"Realtime planet shader in WebGL","archived":false,"fork":false,"pushed_at":"2023-11-27T18:38:45.000Z","size":7813,"stargazers_count":373,"open_issues_count":2,"forks_count":22,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-20T16:42:20.783Z","etag":null,"topics":["glsl","shader","webgl"],"latest_commit_sha":null,"homepage":"https://jsulpis.github.io/realtime-planet-shader/earth/","language":"GLSL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsulpis.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,"zenodo":null}},"created_at":"2023-07-06T10:16:02.000Z","updated_at":"2025-06-07T05:22:12.000Z","dependencies_parsed_at":"2023-11-27T19:52:44.978Z","dependency_job_id":null,"html_url":"https://github.com/jsulpis/realtime-planet-shader","commit_stats":null,"previous_names":["jsulpis/shader-planet","jsulpis/realtime-planet-shader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jsulpis/realtime-planet-shader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Frealtime-planet-shader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Frealtime-planet-shader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Frealtime-planet-shader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Frealtime-planet-shader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsulpis","download_url":"https://codeload.github.com/jsulpis/realtime-planet-shader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Frealtime-planet-shader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29115520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T05:31:32.482Z","status":"ssl_error","status_checked_at":"2026-02-05T05:31:29.075Z","response_time":65,"last_error":"SSL_read: 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":["glsl","shader","webgl"],"created_at":"2025-05-07T06:56:25.153Z","updated_at":"2026-02-05T07:31:00.978Z","avatar_url":"https://github.com/jsulpis.png","language":"GLSL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Realtime planet shader in WebGL\n\n## Procedural\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/procedural-ui.jpg\" alt=\"screenshot of the procedural shader with the UI\" /\u003e\n\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n  \n  \u003ca href=\"https://jsulpis.github.io/realtime-planet-shader/procedural\"\u003elive demo\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\nThis is a GLSL fragment shader I originally made on [Shadertoy](https://www.shadertoy.com/view/Ds3XRl) when learning raymarching. Later I switched to analytic raycasting for better performance. It's made by raycasting simple spheres with a bunch of fbm noises used for the normals and colors, and a fake atmosphere computed with distance functions.\n\nI wanted to display it on a web page so that I can make a nice GUI to tweak the uniforms. Here it is !\n\nIt runs at 60fps on my old low-end phone, so it should also be quite smooth on whatever device you have.\n\n\u003cbr/\u003e\n\n## Textures\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/earth-ui.jpg\" alt=\"screenshot of the earth shader with the UI\" /\u003e\n\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n  \n  \u003ca href=\"https://jsulpis.github.io/realtime-planet-shader/earth\"\u003elive demo\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\nAfter the procedural version, I found a bunch of textures to display a realistic view of some planets of our solar system. Still with a few controls, and no quality setting because it should already run at full fps on most devices.\n\n## Note\n\nIf you want a minimalist setup to render GLSL shaders on a canvas like this one, you can check out the [little study](https://github.com/jsulpis/webgl-libs-comparison) I made before this project.\n\n## More renders\n\n\u003cdiv\u003e\n  \u003cimg height=\"200\" alt=\"a render of the Earth\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/earth.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of the Moon\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/moon.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of Mercury\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/mercury.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of Venus\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/venus.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of Mars\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/mars.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of Jupiter\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/jupiter.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of the procedural planet\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/procedural-1.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of the procedural planet\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/procedural-2.jpg\"\u003e\n  \u003cimg height=\"200\" alt=\"a render of the procedural planet\" src=\"https://raw.githubusercontent.com/jsulpis/realtime-planet-shader/main/screenshots/procedural-3.jpg\"\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsulpis%2Frealtime-planet-shader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsulpis%2Frealtime-planet-shader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsulpis%2Frealtime-planet-shader/lists"}