ephemvis
Themeable SVG rendering for astrological chart data — the display layer that pairs with openephem (the calculation core). ephemvis turns a chart dict into a self-contained chart wheel and a triangular aspect grid.
The split is deliberate: openephem computes, ephemvis draws. The math core stays small and auditable; the visuals can be forked and restyled freely without touching (or destabilising) the calculations.
Install
pip install ephemvis # pure renderer, zero runtime deps
pip install ephemvis[compute] # also pulls openephem to compute charts
Use
from openephem import resolve, assemble # needs ephemvis[compute]
from ephemvis import render_svg, render_aspect_grid_svg
chart = assemble(resolve(date=(1990, 5, 15), time=(14, 30),
place="New York, NY"))
open("wheel.svg", "w", encoding="utf-8").write(render_svg(chart, theme="prism"))
open("grid.svg", "w", encoding="utf-8").write(render_aspect_grid_svg(chart, theme="prism"))
render_svg and render_aspect_grid_svg accept any dict with the openephem
ChartResult shape (angles, cusps, bodies, aspects), so any engine that
emits that shape can be rendered — ephemvis has no dependency on how the chart
was computed.
Themes
light, dark, auto, and eight pastel "pretty" modes with a prism-halo ring:
prism, twilight, aurora, opal, seafoam, meadow, dawn, blossom.
See ephemvis.PALETTES.
The data contract
ephemvis reads the chart dict openephem's assemble() returns:
{
"angles": {"asc": float, "mc": float, ...} | None, # ecliptic longitude, degrees
"cusps": [float] (12) | None, # house cusp longitudes
"bodies": {name: {"lon": float, "retro": bool}}, # ecliptic longitude, degrees
"aspects": [{"a": name, "b": name, "aspect": str, "orb": float}],
"warnings": [str],
}
MIT © 2026 Elizabeth Huston, Ph.D. and Noah Christian, Ph.D.
Contact: elpisastrology@gmail.com · elpisastrology.com and noahchristian@gmail.com
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ephemvis-0.1.0.tar.gz.
File metadata
- Download URL: ephemvis-0.1.0.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76f48c96d1210c3e1915c46e5590fbd56772c40c986c2f01dcb832146d2c14c8
|
|
| MD5 |
5fe2d7c1bc94b4ce0ae79eaa6f1fbbe3
|
|
| BLAKE2b-256 |
9ef721f35c1e69a46a0a27593f96998de7b77891b9f11a230c7318443f43d145
|
Provenance
The following attestation bundles were made for ephemvis-0.1.0.tar.gz:
Publisher:
publish.yml on NoahChristian/ephemvis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ephemvis-0.1.0.tar.gz -
Subject digest:
76f48c96d1210c3e1915c46e5590fbd56772c40c986c2f01dcb832146d2c14c8 - Sigstore transparency entry: 2232823508
- Sigstore integration time:
-
Permalink:
NoahChristian/ephemvis@e1ca0f3a610473ab489ae8ba64844a05917c01a6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/NoahChristian
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1ca0f3a610473ab489ae8ba64844a05917c01a6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ephemvis-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ephemvis-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb8477351a910869c965c04d681dfd3795760b041c2765d53044b61585c1d326
|
|
| MD5 |
9d791ee3f782389155db695e04d49268
|
|
| BLAKE2b-256 |
49fa0ec904097d8d9747ed85b3a4f2b0dd2eaf4cbee7add840d85843f89e7d9d
|
Provenance
The following attestation bundles were made for ephemvis-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on NoahChristian/ephemvis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ephemvis-0.1.0-py3-none-any.whl -
Subject digest:
fb8477351a910869c965c04d681dfd3795760b041c2765d53044b61585c1d326 - Sigstore transparency entry: 2232824198
- Sigstore integration time:
-
Permalink:
NoahChristian/ephemvis@e1ca0f3a610473ab489ae8ba64844a05917c01a6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/NoahChristian
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1ca0f3a610473ab489ae8ba64844a05917c01a6 -
Trigger Event:
release
-
Statement type: