astro_render_dial
Cosmobiology dials — single, multi-chart, midpoint tree, sort strip.
- Layer: render
- Methods: single, multi-chart, midpoint-tree, sort-strip
- Free tier: —
- Paid tier: single, multi-chart, midpoint-tree, sort-strip
Description
Cosmobiology dials — single, multi-chart, midpoint tree, sort strip.
Methods:
single [Paid] — birth data → single cosmobiology dial at a chosen modulus
multi-chart [Paid] — 2-4 birth data sets → multi-ring cosmobiology dial
midpoint-tree [Paid] — birth data + target body → midpoint pairs within orb of the target
sort-strip [Paid] — birth data → horizontal 0→modulus sort strip of body positions
Input schema
single
| Field | Type | Required | Constraints |
|---|---|---|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| modulus | any | 22.5 | 30 | 45 | 72 | 90 | 360 | no | — |
| bodies | array<enum(37)> | no | — |
| sizePx | integer | no | min 240, max 1600, int |
| pointerAt | number | no | — |
| orb | number | no | min 0, max 15 |
| palette.background | any | "transparent" | string | no | — |
| palette.ring | string | no | — |
| palette.text | string | no | — |
| palette.accent | string | no | — |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "single",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
}
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 760\" width=\"760\" height=\"760\" overflow=\"visible\"><rect width=\"1… (165855 chars total)",
"positions": [
{
"body": "Sun",
"longitude": 280.814265,
"dialPos": 10.814265
},
{
"body": "Moon",
"longitude": 333.267706,
"dialPos": 63.267706
},
{
"body": "Mercury",
"longitude": 295.672824,
"dialPos": 25.672824
},
{
"body": "Venus",
"longitude": 306.22196,
"dialPos": 36.22196
},
{
"body": "Mars",
"longitude": 250.000088,
"dialPos": 70.000088
},
{
"body": "Jupiter",
"longitude": 95.148793,
"dialPos": 5.148793
},
{
"body": "Saturn",
"longitude": 285.657499,
"dialPos": 15.657499
},
{
"body": "Uranus",
"longitude": 275.785441,
"dialPos": 5.785441
},
"… 15 more items"
],
"contacts": [
{
"body": "Hades",
"arm": 3,
"armPos": 67.5,
"delta": 0.407674
}
]
}
Rendered example
multi-chart
| Field | Type | Required | Constraints |
|---|---|---|---|
| charts | array<object> | yes | — |
| modulus | any | 22.5 | 30 | 45 | 72 | 90 | 360 | no | — |
| bodies | array<enum(37)> | no | — |
| sizePx | integer | no | min 240, max 1600, int |
| labels | array<string> | no | — |
| pointerAt | number | no | — |
| orb | number | no | min 0, max 15 |
| palette.background | any | "transparent" | string | no | — |
| palette.ring | string | no | — |
| palette.text | string | no | — |
| palette.accent | string | no | — |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "multi-chart",
"charts": [
{
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
{
"year": 1992,
"month": 3,
"day": 21,
"hour": 18,
"minute": 30,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
}
]
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 760\" width=\"760\" height=\"760\" overflow=\"visible\"><rect width=\"1… (164703 chars total)",
"rings": [
{
"chartIndex": 0,
"positions": [
{
"body": "Sun",
"longitude": 280.814265,
"dialPos": 10.814265
},
{
"body": "Moon",
"longitude": 333.267706,
"dialPos": 63.267706
},
{
"body": "Mercury",
"longitude": 295.672824,
"dialPos": 25.672824
},
{
"body": "Venus",
"longitude": 306.22196,
"dialPos": 36.22196
},
{
"body": "Mars",
"longitude": 250.000088,
"dialPos": 70.000088
},
{
"body": "Jupiter",
"longitude": 95.148793,
"dialPos": 5.148793
},
{
"body": "Saturn",
"longitude": 285.657499,
"dialPos": 15.657499
},
{
"body": "Uranus",
"longitude": 275.785441,
"dialPos": 5.785441
},
"… 15 more items"
],
"contacts": [
{
"body": "Hades",
"arm": 3,
"armPos": 67.5,
"delta": 0.407674
}
]
},
{
"chartIndex": 1,
"positions": [
{
"body": "Sun",
"longitude": 1.393755,
"dialPos": 1.393755
},
{
"body": "Moon",
"longitude": 220.933715,
"dialPos": 40.933715
},
{
"body": "Mercury",
"longitude": 9.856913,
"dialPos": 9.856913
},
{
"body": "Venus",
"longitude": 339.596357,
"dialPos": 69.596357
},
{
"body": "Mars",
"longitude": 325.105759,
"dialPos": 55.105759
},
{
"body": "Jupiter",
"longitude": 156.985545,
"dialPos": 66.985545
},
{
"body": "Saturn",
"longitude": 315.00656,
"dialPos": 45.00656
},
{
"body": "Uranus",
"longitude": 287.606277,
"dialPos": 17.606277
},
"… 15 more items"
],
"contacts": [
{
"body": "Saturn",
"arm": 2,
"armPos": 45,
"delta": 0.00656
},
{
"body": "Admetos",
"arm": 2,
"armPos": 45,
"delta": -0.360277
},
{
"body": "Jupiter",
"arm": 3,
"armPos": 67.5,
"delta": -0.514455
}
]
}
]
}
Rendered example
midpoint-tree
| Field | Type | Required | Constraints |
|---|---|---|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| modulus | any | 22.5 | 30 | 45 | 72 | 90 | 360 | no | — |
| target | enum(37) | yes | — |
| orb | number | no | min 0.1, max 5 |
| axisAt | number | no | — |
| showList | boolean | no | — |
| bodies | array<enum(37)> | no | — |
| sizePx | integer | no | min 240, max 1600, int |
| palette.background | any | "transparent" | string | no | — |
| palette.ring | string | no | — |
| palette.text | string | no | — |
| palette.accent | string | no | — |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "midpoint-tree",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
},
"target": "Sun"
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 760 760\" width=\"760\" height=\"760\" overflow=\"visible\"><defs>\n<path i… (169616 chars total)",
"target": {
"body": "Sun",
"dialPos": 10.814265
},
"rows": [
{
"a": "Saturn",
"b": "Uranus",
"midpoint": 280.72147,
"dialPos": 10.72147,
"delta": 0.092795
},
{
"a": "Neptune",
"b": "MC",
"midpoint": 280.960928,
"dialPos": 10.960928,
"delta": 0.146664
},
{
"a": "Ascendant",
"b": "Zeus",
"midpoint": 101.145478,
"dialPos": 11.145478,
"delta": 0.331213
},
{
"a": "Jupiter",
"b": "Saturn",
"midpoint": 10.403146,
"dialPos": 10.403146,
"delta": 0.411119
},
{
"a": "Uranus",
"b": "Vulkanus",
"midpoint": 190.357745,
"dialPos": 10.357745,
"delta": 0.45652
},
{
"a": "Moon",
"b": "Pluto",
"midpoint": 280.180412,
"dialPos": 10.180412,
"delta": 0.633853
},
{
"a": "Jupiter",
"b": "Vulkanus",
"midpoint": 100.039421,
"dialPos": 10.039421,
"delta": 0.774843
},
{
"a": "Moon",
"b": "Cupido",
"midpoint": 281.756247,
"dialPos": 11.756247,
"delta": 0.941982
},
"… 3 more items"
]
}
Rendered example
sort-strip
| Field | Type | Required | Constraints |
|---|---|---|---|
| birthData.year | integer | yes | min -4000, max 4000, int |
| birthData.month | integer | yes | min 1, max 12, int |
| birthData.day | integer | yes | min 1, max 31, int |
| birthData.hour | integer | yes | min 0, max 23, int |
| birthData.minute | integer | yes | min 0, max 59, int |
| birthData.second | integer | no | min 0, max 59, int |
| birthData.latitude | number | yes | min -90, max 90 |
| birthData.longitude | number | yes | min -180, max 180 |
| birthData.timezone | number | yes | min -12, max 14 |
| birthData.unknownTime | boolean | no | — |
| modulus | any | 22.5 | 30 | 45 | 72 | 90 | 360 | no | — |
| bodies | array<enum(37)> | no | — |
| sizePx | integer | no | min 320, max 1600, int |
| palette.background | any | "transparent" | string | no | — |
| palette.ring | string | no | — |
| palette.text | string | no | — |
| palette.accent | string | no | — |
| mode | "light" | "dark" | no | — |
Example request
{
"method": "sort-strip",
"birthData": {
"year": 1990,
"month": 1,
"day": 1,
"hour": 12,
"minute": 0,
"latitude": 51.5074,
"longitude": -0.1278,
"timezone": 0
}
}
Example response (captured; long values elided)
{
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 800 240\" width=\"800\" height=\"240\"><defs>\n<path id=\"wm-admetos\" d=\"M… (108362 chars total)",
"strip": []
}
Rendered example