{"id":50671488,"url":"https://github.com/jayeshmepani/jpl-ephemeris","last_synced_at":"2026-06-08T11:33:04.390Z","repository":{"id":358809979,"uuid":"1242710650","full_name":"jayeshmepani/jpl-ephemeris","owner":"jayeshmepani","description":"Independent C ephemeris engine with JPL/CALCEPH, Moshier, VSOP87, ELP2000, Meeus, eclipse, and astrology/astronomy APIs.","archived":false,"fork":false,"pushed_at":"2026-05-24T19:16:40.000Z","size":260920,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T21:16:39.391Z","etag":null,"topics":["astrology","astronomy","bsp","c","calceph","cmake","eclipse","elp2000","ephemeris","jpl","jpl-kernels","jyotish","meeus","moshier","native-library","panchang","planetary-positions","sidereal","vedic-astrology","vsop87"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"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/jayeshmepani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-18T17:20:38.000Z","updated_at":"2026-05-24T20:39:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jayeshmepani/jpl-ephemeris","commit_stats":null,"previous_names":["jayeshmepani/jpl-ephemeris-","jayeshmepani/jpl-ephemeris"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jayeshmepani/jpl-ephemeris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayeshmepani%2Fjpl-ephemeris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayeshmepani%2Fjpl-ephemeris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayeshmepani%2Fjpl-ephemeris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayeshmepani%2Fjpl-ephemeris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jayeshmepani","download_url":"https://codeload.github.com/jayeshmepani/jpl-ephemeris/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayeshmepani%2Fjpl-ephemeris/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34061122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":["astrology","astronomy","bsp","c","calceph","cmake","eclipse","elp2000","ephemeris","jpl","jpl-kernels","jyotish","meeus","moshier","native-library","panchang","planetary-positions","sidereal","vedic-astrology","vsop87"],"created_at":"2026-06-08T11:32:59.674Z","updated_at":"2026-06-08T11:33:04.382Z","avatar_url":"https://github.com/jayeshmepani.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JPL Moshier Ephemeris\n\nIndependent C ephemeris engine using JPL kernels through CALCEPH as the primary backend and independently verified Moshier-derived/public-domain algorithms as secondary components where appropriate.\n\nThis library is developed and owned by Jayesh Mepani. It provides an independently implemented JPL/Moshier/VSOP+ELP+Meeus engine and a project-owned API surface.\n\n## Goal\n\n- Provide an independent ephemeris engine for astrology, astronomy, and calendrical calculations.\n- JPL `.bsp` kernels through CALCEPH provide the high-precision numerical ephemeris path.\n- Add verified analytical/public-domain components only when provenance is clear.\n- Keep the primary public API under the project-owned `jme_*` prefix.\n- Preserve lossless I/O contracts: no presentation rounding, no hidden output reshaping, no dropped status values, and no silent downgrade to a different calculation contract.\n\n## Current Status\n\nThis repository now contains a substantial implemented ephemeris engine, but it is still not exact across every domain.\n\nCurrent status summary:\n\n- CMake build\n- public C header at `include/jme/jme.h`\n- `jme_*` primary API\n- context/path/version API\n- Julian day conversion API\n- CALCEPH backend boundary\n- analytical fallback engines for Moshier, VSOP87, ELP2000, and Meeus\n- C-level engine selection for wrapper/config use: `ENGINE=JPL`, `ENGINE=MOSHIER`, `ENGINE=VSOP_ELP_MEEUS`, or `JME_ENGINE` environment selection\n- eclipse, occultation, heliacal, house, and physical-phenomena coverage with remaining validation gaps documented in `docs/STATUS_AND_DESIGN.md` and `docs/VALIDATION_AND_COVERAGE.md`\n\nNo public calculation function may return approximate production output. A function is either exact for its documented contract or it returns `JME_ERR` with a clear error message.\n\nRead `docs/POLICIES_AND_NOTICES.md`, `CONTRIBUTING.md`, and `docs/STATUS_AND_DESIGN.md` before adding implementation code.\n\n## Build\n\n```bash\ncmake -S . -B build\ncmake --build build\nctest --test-dir build --output-on-failure\n```\n\nWith Visual Studio generators:\n\n```bash\nctest --test-dir build -C Debug --output-on-failure\n```\n\nIf CALCEPH is installed and discoverable, the library builds with CALCEPH support. Without CALCEPH, the API still builds and returns explicit backend errors for ephemeris calculations.\n\n## Backend Data\n\nSupported JPL kernel choices include `de440s.bsp`, `de440.bsp`, and `de441.bsp`.\n\nKernel files are not vendored in this repository. Download release-packaged kernels from:\n\n```text\nhttps://github.com/jayeshmepani/jpl-ephemeris/releases/tag/jpl-kernels\n```\n\n`de441.bsp` is larger than GitHub's single release-asset limit, so the release publishes it as split parts with checksums.\n\n```c\njme_set_jpl_file(\"path/to/de440s.bsp\");\n```\n\n## Engine Selection\n\nWrappers should not reimplement backend selection. Configure the C library directly:\n\n```c\njme_set_astro_models(\"ENGINE=JPL\", 0);             /* strict JPL/CALCEPH, no analytical fallback */\njme_set_astro_models(\"ENGINE=MOSHIER\", 0);         /* Moshier-first analytical planets */\njme_set_astro_models(\"ENGINE=VSOP_ELP_MEEUS\", 0);  /* VSOP87 + ELP2000 + Meeus analytical stack */\njme_set_astro_models(\"ENGINE=AUTO\", 0);            /* JPL first, then analytical fallback */\n```\n\nIf no explicit engine token is set, the library also reads `JME_ENGINE=JPL`, `JME_ENGINE=MOSHIER`, `JME_ENGINE=VSOP_ELP_MEEUS`, or `JME_ENGINE=ANALYTICAL`.\n\n## License\n\nThe independent code in this repository is licensed under the MIT License. Third-party backend libraries and data keep their own licenses/notices.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayeshmepani%2Fjpl-ephemeris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjayeshmepani%2Fjpl-ephemeris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayeshmepani%2Fjpl-ephemeris/lists"}