Outputs
famulus-astra gallery builds every text into build/<id>/:
| file | for | what it is |
|---|---|---|
source.astra, check.json, report.txt |
every text | the text, its check as data and as text |
sheet.md, sheet.yaml, sheet.json |
every text | the specification sheet (YAML is the ~sheet view of the reference object) |
context.json |
models, superpositions, derivations | the compiled context: ops, parameters, variables, objects |
derivation.json |
derivations | every step with status, binding, conditions, degenerate states; computations |
figure.svg, figure-dark.svg |
figures | the still in the depicted state |
animation.html, bundle.json |
figures | the standalone animation page and the runtime’s input |
snippet.typ |
figures | a cetz drawing for arxivai papers (@local/famulus-viz) |
Sheets do not mix kinds
A model’s sheet has no values; a parametrisation’s sheet has no geometry; each names the others by address.
Ptolemy’s values, R’/r = R/e
fr:astra/solar-eccentric-epicyclic.proportional · parametrisation · astra/1
| the values of | Ptolemy |
| witness | fr:kepler-sec/Swerdlow2026/0050/p02 |
| this description by | Gerd Graßhoff |
| of | fr:astra/solar-eccentric-epicyclic |
| check | attested (4/4: ✓ well-formed · ✓ complete · ✓ admissible · ✓ attested) |
Values
| symbol | meaning | value | sexagesimal | source |
|---|---|---|---|---|
R Ecc.R |
radius of the eccentric | 60 — the norm of the radius | 60 | fr:kepler-sec/Swerdlow2026/0052/p05 (from fr:astra/solar-eccentric.ptolemy) |
e Ecc.e |
eccentricity, the distance OE | 2;30 — 2;29,30 rounded to 2;30 | 2;30 | fr:kepler-sec/Swerdlow2026/0052/p05 (from fr:astra/solar-eccentric.ptolemy) |
λA lamA |
longitude of the apogee | 65;30° | 65;30 | fr:kepler-sec/Swerdlow2026/0052/p05 (from fr:astra/solar-eccentric.ptolemy) |
T T |
tropical year | 365;14,48 | 365;14,48 | fr:kepler-sec/Swerdlow2026/0047/p03 (from fr:astra/solar-eccentric.ptolemy) |
κ̄0 kappa_0 |
mean anomaly at t = 0 | 0° | 0 | gap: the pages give no epoch; t is counted from a passage through the apogee (from fr:astra/solar-eccentric.ptolemy) |
R’ Epi.R' |
radius of the deferent, the circle about O | 2 * Ecc.R | 120 | gap: the page leaves R’ free (absolute distances are arbitrary); 2 R is chosen here |
r Epi.r |
radius of the epicycle | Epi.R’ * Ecc.e / Ecc.R — R’/r = R/e | 5 | fr:kepler-sec/Swerdlow2026/0050/p02 |
Notes and gaps
- kappa_0 = 0°: the pages give no epoch; t is counted from a passage through the apogee
- Epi.R’ = 2 * Ecc.R: the page leaves R’ free (absolute distances are arbitrary); 2 R is chosen here
Figures
A figure text says what it draws, with which values, in which state:
# Swerdlow 2026, Fig. 1.2 (p. 20, scan page 50): "Equivalence of eccentric and epicyclic models for the inequality
# of the sun in which the eccentricity and radius of the epicycle are equal." The figure draws the superposition
# of the two forms. Its eccentricity is exaggerated for legibility; so is this drawing (drawing values, marked).
figure solar-fig-1-2 of solar-eccentric-epicyclic "The two forms of Ptolemy's solar model superposed, R' = R and r = e"
witness fr:kepler-sec/Swerdlow2026/0050/fig01
author "Gerd Graßhoff"
with solar-eccentric-epicyclic.equal-radii
drawn with Ecc.e = 16, Epi.r = 16
at kappa_bar = 41°
up lamA
fit [Ecc.ecc, Epi.def, Epi.epi]
speed 24 s
display Epi.S' "S'"
label angle kappa_bar at Ecc.E from Ecc.A to Ecc.S arrow
label angle kappa_bar at O from Epi.A' to Epi.C arrow
label length Ecc.R on Ecc.E Ecc.S
label length Ecc.e on O Ecc.E
label length Epi.R' on O Epi.C side right
label length Epi.r on Epi.C Epi.S' side right
label segment line(Ecc.A, Ecc.B)
label arrow Ecc.S on Ecc.ecc
label arrow Epi.C on Epi.def
label dashed line(O, Epi.S')
famulus-astra svg solar-fig-1-2 # the depicted state
famulus-astra svg solar-fig-1-2 --at kappa_bar=131 # another state
famulus-astra svg solar-fig-equal-radii-steps --step d6 --png
Points are small discs with their symbol offset outward, circles are outlines, angle marks are gold arcs, length labels sit beside their segment, motion arrows run ahead of the moving point, coincident points are drawn once. Colours, strokes and type come from the famulus design tokens as CSS custom properties, so one SVG renders in light and dark. A figure of a derivation can show one step: its points and segments in gold.
The Typst snippet
famulus-astra typst <figure> writes a cetz drawing with the same placement rules; it imports @local/famulus-viz for palette and strokes.