Skip to main content

ecliptica

image

eclipticae is a Python library + CLI to compute local solar eclipse circumstances and render eclipse animations with Manim.

CI License: MIT

MVP Features

  • Compute the next local eclipse from a start date (partial, annular, or total).
  • Export eclipse metadata to JSON.
  • Render 2D map or 3D globe .mp4 animations from exported JSON.
  • Preview mode for faster iteration (--preview) and optional render cache control (--disable-caching).

Install

uv sync

Linux prerequisite packages for Manim (needed before uv sync):

sudo apt-get update
sudo apt-get install -y pkg-config libcairo2-dev libpango1.0-dev ffmpeg

CLI Usage

Compute an event:

uv run eclipticae compute --lat 40.4168 --lon -3.7038 --date 2026-01-01 --out event.json

Render world map shadow video (default scene):

uv run eclipticae render --input event.json --out eclipse_map.mp4 --quality high

Render fast preview while iterating on visuals:

uv run eclipticae render --input event.json --out eclipse_preview.mp4 --scene map --preview --quality low

Render 3D globe scene:

uv run eclipticae render --input event.json --out eclipse_globe.mp4 --quality high --scene globe

Render a multi-year Saros-style sequence with dimmed historical traces:

uv run eclipticae render-saros --year 2021 --name total --years 20 --out saros_paths.mp4 --quality high

Lookup a global eclipse by year/name and include a combined Saros chain:

uv run eclipticae lookup --year 2026 --name annular --out eclipse_lookup.json

Use the interactive wizard to build commands step-by-step:

uv run eclipticae wizard

Wizard highlights:

  • Arrow-key menus in interactive terminals.
  • Render from an existing event JSON or pick upcoming eclipses from a chosen year.
  • For render-saros, choose the anchor eclipse from that year (no manual anchor-name typing).
  • Adaptive defaults: low quality recommends preview mode and prefers faster renderer options.
  • Global wizard setting for caching default, so you don't need to answer that every run.
  • Back navigation inside wizard: choose Back in menus or use Esc/Ctrl+C.
  • Outputs exact command(s) and can run them immediately.

Renderer note:

  • opengl is currently supported for --scene globe renders.
  • map and render-saros use cairo.

Python Usage

from eclipticae import compute_site_eclipse, render_scene, save_event

event = compute_site_eclipse(
    latitude=40.4168,
    longitude=-3.7038,
    date_or_datetime="2026-01-01",
    elevation_m=667,
)
save_event(event, "event.json")
render_scene(event, "eclipse_map.mp4", quality="high", scene="map")

Dev Commands

uv run ruff check .
uv run ruff format .
uv run ty check
uv run pytest

Install pre-commit hooks:

uv run pre-commit install

Run all checks at once (PowerShell):

.\scripts\check_all.ps1

Project Docs

Metadata

Release files for eclipticae 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eclipticae 0.1.0
File Size Uploaded
eclipticae-0.1.0.tar.gz 170.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eclipticae 0.1.0
File Interpreter ABI Platform
eclipticae-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 353.9 kB

Release files / eclipticae-0.1.0.tar.gz

Download URL eclipticae-0.1.0.tar.gz
Size 170.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d52acfa1637f0b6937c0247056b28f37d1c34c0d4ef3189830e8045e48a095bb
BLAKE2b-256 checksum
How to use checksums
34a7857cac44acbd10f4c350cf7150b6b2fad37f3ba9d1203650c6cafb58c34d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / eclipticae-0.1.0-py3-none-any.whl

Download URL eclipticae-0.1.0-py3-none-any.whl
Size 183.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6b92bac678ceb8110c09c73e57c4e0947076a8cb3f6f41c9d56d275f528255c
BLAKE2b-256 checksum
How to use checksums
38c8ad5ce1be1faf043768c98e9036239adb0ebd5f88b91372650b824d743ffc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page