Jyotir Vidya · Indic Sky Lab
Method, validation & licenses
Version 0.2 · 15 October 2026. A learning app of The Bharatheeya Institute, developed by Aieun Labs. All calculations run in your browser with local scripts and fonts. No location permission, account, backend or paid API is needed.
The validated lunar calculations are preserved. Sky uses real-date astronomy, with direct Moon dragging and time scrubbing. Learn contains the geometric experiments: fixed-Sun comparisons, uniform lunar cycles and adjustable orbital tilt. The top-level mode selector and general tithi/phase shortcut sections have been removed; lesson-specific controls remain. Runtime source checksums and provenance.
Real-date method & accuracy
Astronomy Engine 2.1.19 supplies geocentric Sun and Moon positions. We rotate both into the ecliptic of date using its IAU 2006 precession and IAU 2000B nutation. The Sun includes the library’s light-time and aberration corrections; the Moon uses its lunar model with a one-step light-time correction.
Conventional Lahiri: the mean J2000 anchor is 23° 51′ 25.5324″. Full coordinate rotations transport that reference; nutation is added consistently before subtracting the ayanāṃśa from both tropical longitudes. This is distinct from a fixed 24° offset or True Citra.
One UTC instant drives the entire scene. UTC is converted to TT using published leap offsets and 32.184 seconds. Dates after 2026 assume no further leap seconds until the table is updated. Supported civil dates: 1972–2100. Leap-second entry itself is not supported.
In 4,510 matched-time reference samples across 1972–2100, observed maximum differences were 2.27″ for the Sun, 3.62″ for the Moon, and 0.00017″ for mean ayanāṃśa. Ten JPL position samples were within 2.29″. For 3,372 transition endpoints across the supported range, the largest time difference was 7.75 seconds. A separate check of 14 endings in the official 2026–27 Rashtriya Panchang matched its printed minute after rounding. These are sample comparisons, not guaranteed accuracy at every instant. Times are estimates; millisecond root finding does not imply millisecond astronomical accuracy.
The diagram remains a two-dimensional illustration, not a local sky map. Place is an optional label; geocentric transitions do not depend on the observer’s coordinates. IANA timezone rules determine the local dates and offsets shown, including daylight saving. No location permission is requested. This mode does not calculate sunrise-based festival dates, eclipses, moonrise or an authoritative Panchang.
The two rulers
All angles are geocentric ecliptic longitudes: directions measured from Earth’s center around the ecliptic. We increase longitude counterclockwise in the spatial view.
Tithi: subtract the Sun’s longitude from the Moon’s and wrap into 0°–360°. Each of 30 intervals spans 12°. The first 15 form Śukla pakṣa; the next 15 form Kṛṣṇa pakṣa.
Nakshatra: divide the Moon’s sidereal longitude into 27 equal intervals of 13° 20′, beginning with Aśvinī. These equal longitude sectors are distinct from irregular constellation outlines. Each sector has four equal padas of 3° 20′: 108 around the full circle. Only the active sector’s four parts are emphasized in the ring.
Intervals include their starting boundary and exclude their ending boundary. Exact 0° begins tithi 1; exact 180° begins tithi 16. The stellar dots are illustrative, not catalogued star positions.
Tithi = ⌊wrap(Moon − Sun) / 12°⌋ + 1
Nakshatra = ⌊wrap(Moon) / (13° 20′)⌋ + 1
Our sidereal reference & boundaries
Teaching reference: 0° is fixed to the start of Aśvinī in an idealized stellar frame. The background points are illustrative, not a catalog of observed stars. No tropical-to-sidereal conversion, epoch calibration, or ayanāṃśa is applied; this is not a Lahiri or other calendar calculation.
Intervals include their starting boundary and exclude their ending boundary. At 12°, tithi 2 begins. At 13° 20′, Bharaṇī begins. At 360°, the ruler wraps to 0°.
Exact full Moon at 180° ends Pūrṇimā (tithi 15) and begins Kṛṣṇa Pratipadā (tithi 16). Exact new Moon at 0° ends Amāvāsyā (tithi 30) and begins Śukla Pratipadā (tithi 1). A phase instant and a tithi interval are different things.
Equal longitude sectors are a mathematical convention. Traditional star groupings and modern constellation boundaries have irregular shapes.
What we simplify
The model is flat, circular, and uniform: Moon 360° per 27.321661 simulated days; Sun 360° per 365.256363 days. These illustrative mean rates produce a phase cycle of about 29.53 days. Day 0 is an invented conjunction at 18°; it has no calendar date.
We omit orbital inclination, eccentricity, parallax, precession, nutation, eclipses, and atmospheric effects. The displayed illuminated fraction is (1 − cos elongation) / 2 under the coplanar, distant-Sun approximation.
The phase disk uses a north-up schematic with waxing light on the right and waning light on the left. Actual sky orientation depends on location and time. No observer location or timezone is assumed, because this mode does not calculate a local sky. The Moon’s phases are caused by viewing its sunlit half from different directions, not by Earth’s shadow.
Return to Sky to use the bundled ephemeris and declared Lahiri reference. Observer-dependent events and festival rules remain outside this app’s scope.
Sources & further exploration
- IMD · Rashtriya Panchang 2026–27 ↗Official minute-level endpoint sample; this is not full calendar validation.
- Astronomy Engine · code, model and MIT license ↗Version 2.1.19 is bundled locally with its license.
- Swiss Ephemeris · conventional Lahiri definitions ↗Independent validation reference only; Swiss software is not bundled.
- JPL Horizons · frames and apparent positions ↗Independent apparent inertial directions, transformed into the same ecliptic frame for comparison.
- IERS Bulletin C 72 · leap-second announcement ↗No leap second at the end of December 2026; future offsets require maintenance.
- U.S. Naval Observatory · Phases of the Moon Longitude differences of 0°, 90°, 180°, and 270° define the principal phase instants.
- NASA · Moon phases Sunlit geometry, waxing and waning, and why the orbital and phase cycles differ.
- IMD · Positional Astronomy Centre Publisher of the Rashtriya Panchang and Indian Astronomical Ephemeris. Consult these for real calendar work; this prototype uses the explicitly declared teaching conventions above.
Validation record
The original v0.2 source snapshot passed syntax checks and all 67 automated tests on 15 October 2026, with zero failures or skips. This is a historical record of that snapshot. Its 33 interface tests covered synchronized readings, dragging, keyboard control, independent strip browsing, real date/timezone edits, DST folds/gaps, playback and the separate teaching mode.
The source’s independent timezone validation covers all 421 Node zones/aliases and 14,314 clock cases, 10,104 month windows and 264 offset transitions. Its separate Chrome run covers 422 zones/aliases and 14,348 UTC/roundtrip invariants. Browser invariants do not constitute a second independent timezone-rule oracle.
Astronomy and official Panchang validation results · Source Chrome timezone results · Systematic coverage
Full technical records: Validation (Markdown) · Systematic testing (Markdown). These are finite-sample results, not a guarantee for every instant; physical touchscreen and complete screen-reader/WCAG certification remain unperformed.
Complete third-party notices
# Third-party materials
## Astronomy Engine 2.1.19
The unmodified ESM distribution is bundled at `dist/vendor/astronomy-engine.js`. Source: https://github.com/cosinekitty/astronomy . Its MIT notice is retained in that file:
```text
/**
@preserve
Astronomy library for JavaScript (browser and Node.js).
https://github.com/cosinekitty/astronomy
MIT License
Copyright (c) 2019-2023 Don Cross <cosinekitty@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
```
## Owner-provided public design assets
The AIEUN mark and Noto Serif Devanagari font were reused from the owner’s public Chandas site for this separate local prototype. Noto Serif Devanagari 2.006 contains the 2022 Noto Project copyright. Its matching official SIL Open Font License is included at `dist/assets/OFL.txt` (source: https://github.com/notofonts/devanagari/blob/main/OFL.txt).
## Validation-only reference
Swiss Ephemeris / PySwissEph was installed separately for independent local validation. It is not bundled, imported by the application, or listed as a runtime dependency. Its licensing is AGPL or professional license; do not add it to production without an appropriate licensing decision. Generated reference numbers and our own validation adapter are included for reproducibility. JPL Horizons raw reference responses retain their provenance headers.
## Timezone validation only
The independent fixture generator uses Python standard-library ZoneInfo with PyPI tzdata 2024.2 (IANA 2024b) in a temporary environment. The tzdata distribution is Apache-2.0 and its underlying IANA data is public domain. Neither package nor timezone database files are bundled; the browser uses its own Intl database. Generated numeric test facts and our own generator are included.
Complete SIL Open Font License · Bundled Astronomy Engine source with MIT notice · Notices (Markdown)