A garden noon mark traces the figure eight of Earth's orbit, one stud a day.
Every day at 12:00 by the clock a stud is set where the shadow of the ball on a bronze rod falls. The mean anomaly grows uniformly, Kepler's equation gives the true anomaly, and the tilt turns the Sun's longitude into right ascension and declination; the equation of time is mean longitude minus right ascension, so at clock noon the Sun stands that far off the meridian, and the stud goes where a line from the Sun through the ball meets the ground. Tilt alone makes a symmetric eight, eccentricity alone an oval, and where perihelion falls against the solstices decides how lopsided the loops are, which is why Mars draws a teardrop. The plaza is engraved as a true dial for the rod's ball, with the solstice hyperbolas, the equinox line and the hour lines, and the panel splits the equation of time into its eccentricity and tilt parts. The garden is a small perspective renderer whose trees, topiary and gnomon throw shadows along the real Sun vector into a half resolution layer that softens their edges.
Try it. Drag the sliders to change axial tilt, eccentricity, the longitude of perihelion and latitude, or pick Earth, Circular orbit, No tilt or Mars and watch the figure morph. Drag the garden to walk around it. Arrows step the date, up and down change speed, 1 to 4 pick the presets, space pauses.
Paste this into Claude Code, Codex or any coding agent to get a simple version running, then take it wherever you like.
Build an analemma simulator, the figure eight the Sun traces when you mark a shadow at the same clock time every day, with JavaScript and the HTML canvas element. Put everything in a single index.html file with no libraries or build step, so I can open it directly in a browser.
Start simple:
- Make a canvas that fills the window, stays sharp on high-DPI screens (scale by devicePixelRatio), and resizes with the window.
- For each day of the year, compute the Sun: the mean anomaly grows by 360 degrees per year, solve Kepler's equation (a few Newton steps) for the true anomaly, add the longitude of perihelion (about 283 degrees) to get the Sun's ecliptic longitude, then its declination asin(sin(tilt) sin(lambda)) and right ascension atan2(cos(tilt) sin(lambda), cos(lambda)).
- The equation of time is the mean longitude minus the right ascension. At 12:00 by the clock, the Sun's hour angle equals it.
- From the hour angle, declination and a latitude of 40 degrees, get the Sun's direction (east, north, up), and find where the shadow of the top of a vertical pole lands: minus height over up times (east, north). Draw that point on a top-down view for every day, coloured by month.
- Plot the equation of time in minutes as a graph beside it.
Once that works, make it beautiful:
- Add sliders for axial tilt, eccentricity, perihelion longitude and latitude, and recompute the figure live as they move. Add a Mars preset (tilt 25.2, eccentricity 0.093, perihelion 251) and watch it become a teardrop.
- Draw the ground in perspective as a sunny garden plaza, and add a moving marker for today's shadow that leaves a stud behind each day.
- Split the graph into its two causes by recomputing with tilt 0 and with eccentricity 0.
Explain the key ideas in short code comments. When you're done, tell me how to open it and suggest three directions I could take it next, such as engraving the solstice and hour lines of a real sundial, soft shadows for trees, or a southern hemisphere view.