{"id":22368485,"url":"https://github.com/denizugur/solarpaper","last_synced_at":"2026-05-16T00:36:37.583Z","repository":{"id":96800889,"uuid":"600280714","full_name":"DenizUgur/solarpaper","owner":"DenizUgur","description":"Dynamically update your wallpaper with the current state of our Solar System :sunny:","archived":false,"fork":false,"pushed_at":"2025-02-11T07:17:23.000Z","size":289,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T08:28:51.525Z","etag":null,"topics":["blend2d","cpp","orbit","python","solar-system"],"latest_commit_sha":null,"homepage":"","language":"Python","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/DenizUgur.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":"2023-02-11T02:14:39.000Z","updated_at":"2025-02-11T07:17:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"5a5caaf2-cc61-4c99-b651-db7d368d4f5b","html_url":"https://github.com/DenizUgur/solarpaper","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenizUgur%2Fsolarpaper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenizUgur%2Fsolarpaper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenizUgur%2Fsolarpaper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DenizUgur%2Fsolarpaper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DenizUgur","download_url":"https://codeload.github.com/DenizUgur/solarpaper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245689512,"owners_count":20656417,"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","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":["blend2d","cpp","orbit","python","solar-system"],"created_at":"2024-12-04T18:32:42.584Z","updated_at":"2025-10-29T15:40:13.661Z","avatar_url":"https://github.com/DenizUgur.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solar Paper\n\n[![Collect Orbit Data](https://github.com/DenizUgur/solarpaper/actions/workflows/collect.yml/badge.svg)](https://github.com/DenizUgur/solarpaper/actions/workflows/collect.yml) [![Render the Solar System](https://github.com/DenizUgur/solarpaper/actions/workflows/render.yml/badge.svg)](https://github.com/DenizUgur/solarpaper/actions/workflows/render.yml) [![Test](https://github.com/DenizUgur/solarpaper/actions/workflows/test.yml/badge.svg)](https://github.com/DenizUgur/solarpaper/actions/workflows/test.yml)\n\nSolar Paper is a project that aims to illustrate the current state of the solar system as close as possible.\n\n## Latest Render (daily)\n\n:link: Accesible at https://denizugur.github.io/solarpaper/latest/solarpaper.png\n\n![Solar Paper](https://denizugur.github.io/solarpaper/latest/solarpaper.png)\n\n## How it works\n\nList of objects being displayed are given below.\n\n- Sun\n- Planets\n  - Mercury\n  - Venus\n  - Earth\n  - Mars\n- Moons\n  - Luna (Earth)\n  - Phobos (Mars)\n  - Deimos (Mars)\n- Spacecraft\n  - Europa Clipper (2024-182A)\n  - Hayabusa 2 (2014-076K)\n  - Hera (2024-180A)\n  - JUICE (2023-053A)\n  - James Webb Space Telescope (2021-130A)\n  - Juno (2011-040A)\n  - Lucy (2021-093A)\n  - Psyche (2023-157A)\n  - Solar Orbiter (2020-010A)\n- Asteroids\n- Comets\n\n\u003e Note: **Except** for the Sun and moons, everything is displayed accurately to scale.\n\nThe project is divided into two parts. The first part is the data collection. The data is collected from [NASA's JPL HORIZONS](https://ssd.jpl.nasa.gov/?horizons) and [NASA's JPL Small-Body Database](https://ssd.jpl.nasa.gov/sbdb.cgi). The collector script processes these data and generates a special file (called SSO) that contains all the data needed to draw the objects.\n\n\u003e Asteroid and comet trajectories are calculated using [Poliastro](https://docs.poliastro.space/en/stable/). Using the data from Small-Body Database, a two-body problem is solved to get the trajectory of the object.\n\nThe second part is the drawing. The drawing is done using [Blend2D](https://blend2d.com/). The SSO file is read and the objects are drawn on the screen.\n\n## Installation\n\nThis project is available via [Homebrew](https://brew.sh/). You can install it by running the following command:\n\n```bash\nbrew install denizugur/tap/solarpaper\n```\n\n## Building\n\nSince the data acquisition is done over GitHub Actions, you don't need to run the collector script. However, if you want to run it, you can do so by running the following command:\n\n```bash\ncd ./collector\npip install poetry\npoetry install\npoetry run python main.py --update-db\n```\n\nThis creates a cache folder at `~/.cache/solarpaper` and generates the SSO file at `~/.cache/solarpaper/orbits.sso.gz`.\n\nTo run the renderer, you need to install [CMake](https://cmake.org/). The C++ program uses Boost, cURL, and Blend2D. You can install these libraries following the instructions on their websites. After installing the dependencies, you can run the following commands:\n\n```bash\ncd ./renderer\nmkdir build\ncmake -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build -j\n./build/app/solarpaper\n```\n\nThis creates a PNG file at `\u003cSP_CACHE_PATH\u003e/output\u003cOUTPUT_SUFFIX\u003e.png`. Check the table below for the environment variables.\n\n| Environment Variable |      Default Value       |                                Description                                 |\n| :------------------: | :----------------------: | :------------------------------------------------------------------------: |\n|    SP_CACHE_PATH     |   ~/.cache/solarpaper    | This variable sets the location for the output image and SSO file location |\n|    OUTPUT_SUFFIX     | current time (`time(0)`) | This variable sets the suffix for the file name before the file extension  |\n\n## License\n\nThis project is licensed under the GPL-3 License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenizugur%2Fsolarpaper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenizugur%2Fsolarpaper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenizugur%2Fsolarpaper/lists"}