Thanks for reading! Actually, you might be interested to see the script I used to simulate the bead count once I’d figured out the sequence. It’s not pretty code or anything, but it might be interesting. Basically, given start and end dates to simulate, the script picks out the new and full moon dates and simulates what the arrangement of the beads will be on that date. It gave me a sense both for how regular the cycles were and how quickly drift would bring the counter out of “phase” with the actual lunar cycle.
Python Script
# Dependencies
import datetime
from skyfield import almanac
from skyfield.api import N, S, E, W, load, wgs84
# Initialize requirements to do almanac calculations
# Skyfield almanac documentation: https://rhodesmill.org/skyfield/almanac.html
ts = load.timescale()
eph = load('de421.bsp')
sun = eph['Sun']
# Function to count beads based on a running count of all days passed.
# The number passed in is the total number of iterations (days passed)
# since the count began.
def bead_count(iteration):
total_beads = 29
full_cycle = 59
floating_beads = 1
# Determine the effective iteration within a full cycle of 59 iterations
effective_iteration = iteration % (full_cycle)
if effective_iteration <= total_beads:
left_side = total_beads - effective_iteration
right_side = effective_iteration
else:
left_side = effective_iteration - total_beads
right_side = total_beads - left_side
if effective_iteration == 0:
right_side = str(effective_iteration) + "*"
return left_side, right_side, effective_iteration
# Define start and end dates for comparison of lunar cycle with bead count
# The start_date should be the day of a new moon. Use the lunar phases tool from the
# U.S. Naval Observatory to decide when to start: https://aa.usno.navy.mil/data/MoonPhases
start_date = datetime.date(2024, 6, 6)
end_date = datetime.date(2025, 6, 30)
# Seek out the day for each moon phase between the provided start date and end date,
# and store the resulting date/times in the `t` array.
t0 = ts.utc(start_date.year, start_date.month, start_date.day)
t1 = ts.utc(end_date.year, end_date.month, end_date.day)
t, y = almanac.find_discrete(t0, t1, almanac.moon_phases(eph))
# Iterate over `y` and `t` to find those dates when the moon is new and full
# See https://rhodesmill.org/skyfield/almanac.html#phases-of-the-moon
new_moons = []
full_moons = []
for i in range(len(y)):
if y[i] == 0:
new_moons.append(t[i])
if y[i] == 2:
full_moons.append(t[i])
# Print the date and bead count for each moon phase, based on the total
# number of days elapsed since the start date.
def print_moon_phase_dates_and_differences(moon_phases, phase_name):
for phase in moon_phases:
phase_date = phase.utc_datetime().date()
difference = (phase_date - start_date).days
print(f"{phase_name} Moon Date: {phase_date}, Bead Positioning: \
{bead_count(difference)[0]}--{bead_count(difference)[1]}")
# Print the dates and differences for new moons and full moons
# An asterisk indicates that the rounding bead is moved on that day.
print_moon_phase_dates_and_differences(new_moons, "New")
print_moon_phase_dates_and_differences(full_moons, "Full")
Script Output (asterisk indicates that the rounding bead is moved that day)
New Moon Date: 2024-06-06, Bead Positioning: 29--0
New Moon Date: 2024-07-05, Bead Positioning: 0--29
New Moon Date: 2024-08-04, Bead Positioning: 29--0*
New Moon Date: 2024-09-03, Bead Positioning: 1--28
New Moon Date: 2024-10-02, Bead Positioning: 29--0*
New Moon Date: 2024-11-01, Bead Positioning: 1--28
New Moon Date: 2024-12-01, Bead Positioning: 28--1
New Moon Date: 2024-12-30, Bead Positioning: 1--28
New Moon Date: 2025-01-29, Bead Positioning: 28--1
New Moon Date: 2025-02-28, Bead Positioning: 2--27
New Moon Date: 2025-03-29, Bead Positioning: 28--1
New Moon Date: 2025-04-27, Bead Positioning: 1--28
New Moon Date: 2025-05-27, Bead Positioning: 28--1
New Moon Date: 2025-06-25, Bead Positioning: 1--28
New Moon Date: 2025-07-24, Bead Positioning: 29--0*
New Moon Date: 2025-08-23, Bead Positioning: 1--28
New Moon Date: 2025-09-21, Bead Positioning: 29--0*
New Moon Date: 2025-10-21, Bead Positioning: 1--28
New Moon Date: 2025-11-20, Bead Positioning: 28--1
New Moon Date: 2025-12-20, Bead Positioning: 2--27
New Moon Date: 2026-01-18, Bead Positioning: 28--1
New Moon Date: 2026-02-17, Bead Positioning: 2--27
New Moon Date: 2026-03-19, Bead Positioning: 27--2
New Moon Date: 2026-04-17, Bead Positioning: 2--27
New Moon Date: 2026-05-16, Bead Positioning: 28--1
New Moon Date: 2026-06-15, Bead Positioning: 2--27
New Moon Date: 2026-07-14, Bead Positioning: 28--1
New Moon Date: 2026-08-12, Bead Positioning: 1--28
New Moon Date: 2026-09-11, Bead Positioning: 28--1
New Moon Date: 2026-10-10, Bead Positioning: 1--28
New Moon Date: 2026-11-09, Bead Positioning: 28--1
New Moon Date: 2026-12-09, Bead Positioning: 2--27
New Moon Date: 2027-01-07, Bead Positioning: 28--1
New Moon Date: 2027-02-06, Bead Positioning: 2--27
New Moon Date: 2027-03-08, Bead Positioning: 27--2
New Moon Date: 2027-04-06, Bead Positioning: 2--27
New Moon Date: 2027-05-06, Bead Positioning: 27--2
New Moon Date: 2027-06-04, Bead Positioning: 2--27
New Moon Date: 2027-07-04, Bead Positioning: 27--2
New Moon Date: 2027-08-02, Bead Positioning: 2--27
New Moon Date: 2027-08-31, Bead Positioning: 28--1
New Moon Date: 2027-09-30, Bead Positioning: 2--27
New Moon Date: 2027-10-29, Bead Positioning: 28--1
New Moon Date: 2027-11-28, Bead Positioning: 2--27
New Moon Date: 2027-12-27, Bead Positioning: 28--1
New Moon Date: 2028-01-26, Bead Positioning: 2--27
New Moon Date: 2028-02-25, Bead Positioning: 27--2
New Moon Date: 2028-03-26, Bead Positioning: 3--26
New Moon Date: 2028-04-24, Bead Positioning: 27--2
New Moon Date: 2028-05-24, Bead Positioning: 3--26
New Moon Date: 2028-06-22, Bead Positioning: 27--2
New Moon Date: 2028-07-22, Bead Positioning: 3--26
New Moon Date: 2028-08-20, Bead Positioning: 27--2
New Moon Date: 2028-09-18, Bead Positioning: 2--27
New Moon Date: 2028-10-18, Bead Positioning: 27--2
New Moon Date: 2028-11-16, Bead Positioning: 2--27
New Moon Date: 2028-12-16, Bead Positioning: 27--2
New Moon Date: 2029-01-14, Bead Positioning: 2--27
New Moon Date: 2029-02-13, Bead Positioning: 27--2
New Moon Date: 2029-03-15, Bead Positioning: 3--26
New Moon Date: 2029-04-13, Bead Positioning: 27--2
New Moon Date: 2029-05-13, Bead Positioning: 3--26
New Moon Date: 2029-06-12, Bead Positioning: 26--3
Full Moon Date: 2024-06-22, Bead Positioning: 13--16
Full Moon Date: 2024-07-21, Bead Positioning: 16--13
Full Moon Date: 2024-08-19, Bead Positioning: 14--15
Full Moon Date: 2024-09-18, Bead Positioning: 16--13
Full Moon Date: 2024-10-17, Bead Positioning: 14--15
Full Moon Date: 2024-11-15, Bead Positioning: 15--14
Full Moon Date: 2024-12-15, Bead Positioning: 14--15
Full Moon Date: 2025-01-13, Bead Positioning: 15--14
Full Moon Date: 2025-02-12, Bead Positioning: 14--15
Full Moon Date: 2025-03-14, Bead Positioning: 16--13
Full Moon Date: 2025-04-13, Bead Positioning: 13--16
Full Moon Date: 2025-05-12, Bead Positioning: 16--13
Full Moon Date: 2025-06-11, Bead Positioning: 13--16
Full Moon Date: 2025-07-10, Bead Positioning: 16--13
Full Moon Date: 2025-08-09, Bead Positioning: 13--16
Full Moon Date: 2025-09-07, Bead Positioning: 16--13
Full Moon Date: 2025-10-07, Bead Positioning: 13--16
Full Moon Date: 2025-11-05, Bead Positioning: 16--13
Full Moon Date: 2025-12-04, Bead Positioning: 14--15
Full Moon Date: 2026-01-03, Bead Positioning: 16--13
Full Moon Date: 2026-02-01, Bead Positioning: 14--15
Full Moon Date: 2026-03-03, Bead Positioning: 16--13
Full Moon Date: 2026-04-02, Bead Positioning: 13--16
Full Moon Date: 2026-05-01, Bead Positioning: 16--13
Full Moon Date: 2026-05-31, Bead Positioning: 13--16
Full Moon Date: 2026-06-29, Bead Positioning: 16--13
Full Moon Date: 2026-07-29, Bead Positioning: 13--16
Full Moon Date: 2026-08-28, Bead Positioning: 17--12
Full Moon Date: 2026-09-26, Bead Positioning: 13--16
Full Moon Date: 2026-10-26, Bead Positioning: 17--12
Full Moon Date: 2026-11-24, Bead Positioning: 13--16
Full Moon Date: 2026-12-24, Bead Positioning: 17--12
Full Moon Date: 2027-01-22, Bead Positioning: 13--16
Full Moon Date: 2027-02-20, Bead Positioning: 16--13
Full Moon Date: 2027-03-22, Bead Positioning: 13--16
Full Moon Date: 2027-04-20, Bead Positioning: 16--13
Full Moon Date: 2027-05-20, Bead Positioning: 13--16
Full Moon Date: 2027-06-19, Bead Positioning: 17--12
Full Moon Date: 2027-07-18, Bead Positioning: 13--16
Full Moon Date: 2027-08-17, Bead Positioning: 17--12
Full Moon Date: 2027-09-15, Bead Positioning: 13--16
Full Moon Date: 2027-10-15, Bead Positioning: 17--12
Full Moon Date: 2027-11-14, Bead Positioning: 12--17
Full Moon Date: 2027-12-13, Bead Positioning: 17--12
Full Moon Date: 2028-01-12, Bead Positioning: 12--17
Full Moon Date: 2028-02-10, Bead Positioning: 17--12
Full Moon Date: 2028-03-11, Bead Positioning: 12--17
Full Moon Date: 2028-04-09, Bead Positioning: 17--12
Full Moon Date: 2028-05-08, Bead Positioning: 13--16
Full Moon Date: 2028-06-07, Bead Positioning: 17--12
Full Moon Date: 2028-07-06, Bead Positioning: 13--16
Full Moon Date: 2028-08-05, Bead Positioning: 17--12
Full Moon Date: 2028-09-03, Bead Positioning: 13--16
Full Moon Date: 2028-10-03, Bead Positioning: 17--12
Full Moon Date: 2028-11-02, Bead Positioning: 12--17
Full Moon Date: 2028-12-02, Bead Positioning: 18--11
Full Moon Date: 2028-12-31, Bead Positioning: 12--17
Full Moon Date: 2029-01-30, Bead Positioning: 18--11
Full Moon Date: 2029-02-28, Bead Positioning: 12--17
Full Moon Date: 2029-03-30, Bead Positioning: 18--11
Full Moon Date: 2029-04-28, Bead Positioning: 12--17
Full Moon Date: 2029-05-27, Bead Positioning: 17--12
Full Moon Date: 2029-06-26, Bead Positioning: 12--17