LMCI Christological Sky Map

Proposed Future Enhancements

Current Capabilities

Interactive WebGL Star Map
LMCI Biblical Mazzaroth Culture
48 Constellation Artworks
Constellation Lines & Names
Birth Sky via URL Parameters
PDF Export
Star Selection & Info
BC Date Support
Ecliptic Line Toggle
Equatorial Grid
Nebulae / DSO Toggle
Sun Auto-Focus & Tracking

Proposed Enhancements

1Biblical Mazzaroth Narrative Panel 2Guided Mazzaroth Tour Mode 3Time Animation Controls 4Interactive Date & Location Picker 5Planetary Conjunction Highlighter 6Enhanced Birth Sky Report 7Star & Constellation Search 8Scripture Reference Overlay 9Planet Visibility Tracker 10Shareable Link Generator 11Mobile & Touch Optimization 12Fullscreen & Presentation Mode 13Multi-Date Comparison View 14Enhanced PDF & Image Export 15Decan & Star Name Annotations

Biblical Content & Teaching

Enhancement 1

Biblical Mazzaroth Narrative Panel

High Priority

Add a slide-out side panel that displays the Christological meaning, prophetic significance, and biblical narrative for each constellation when clicked or hovered. Each constellation in the Mazzaroth tells part of the Gospel story — this panel would make that story accessible directly within the sky map.

  • Display the constellation's Hebrew/Arabic name, meaning, and Christological interpretation
  • Show the associated Decans (sub-constellations) and their significance
  • Include key Scripture references tied to each constellation
  • Reference source scholars (Rolleston, Seiss, Bullinger, Banks, etc.)
  • Support rich text with images of ancient star charts or Dendera Zodiac references
Implementation Prompt
Add a Biblical Mazzaroth Narrative Panel to the LMCI Christological Sky Map (stellarium-web-engine.html). This is a slide-out side panel that appears when a user clicks on any constellation. REQUIREMENTS: 1. Add a Vuetify v-navigation-drawer (right side, temporary, width ~400px) that opens when a constellation is clicked/selected 2. Create a JSON data file (mazzaroth-data.json) with entries for all 48 constellations containing: - hebrewName: The Hebrew name of the constellation - meaning: The meaning of the name - christologicalMessage: The Gospel/prophetic message (2-3 paragraphs) - decans: Array of 3 associated decan constellations with their names and meanings - scriptures: Array of {reference, text} objects for key Bible verses - scholars: Which scholars documented this interpretation (Rolleston, Seiss, Bullinger, Banks, James, Sherstad, Barbich, Fleming, Warner) - mazzarothOrder: Position in the Mazzaroth sequence (1-12 for major signs, with decans nested) 3. The panel should have: - Constellation artwork thumbnail at the top (reuse existing illustration PNGs from the LMCI sky culture) - Tabbed sections: "Meaning" | "Scriptures" | "Decans" | "Sources" - A "Next/Previous in Mazzaroth" navigation to walk through the Gospel story in order - A close button that deselects the constellation 4. Style consistently with the existing LMCI indigo theme (background rgba(26,35,126,0.95), white text) 5. On mobile screens (< 768px), the panel should be full-width overlay instead of side drawer 6. The panel should NOT interfere with the existing selection info card - hide the info card when the narrative panel is open The constellation artwork images are located at: ../test-skydata/skycultures/lmci/illustrations/ The constellation definitions are in: ../test-skydata/skycultures/lmci/index.json IMPORTANT: Initially create the mazzaroth-data.json with placeholder content for all 48 constellations. Include complete data for at least Virgo (Bethulah), Leo (Arieh), and Aries as examples, since these are key to the Mazzaroth narrative (Virgo = beginning of the Gospel story, Leo = the triumphant end). The LMCI team will fill in the remaining constellation narratives.
Enhancement 2

Guided Mazzaroth Tour Mode

High Priority

Create an automated guided tour that walks the user through all 12 major Mazzaroth constellations in order (Virgo through Leo), smoothly animating the camera between each one while displaying the prophetic narrative. This would be a powerful teaching tool for presentations and personal study.

  • Auto-animate camera pan from constellation to constellation following the Mazzaroth order
  • Display narrative cards at each stop with configurable pause duration
  • Play/Pause/Skip controls for presentation use
  • Option for "Full Tour" (all 48 including decans) or "Overview Tour" (12 major signs)
  • Progress indicator showing position in the Gospel story arc
Implementation Prompt
Add a Guided Mazzaroth Tour Mode to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a "Tour" button (mdi-play-circle-outline icon) to the top toolbar next to the existing PDF and Help buttons 2. When activated, enter Tour Mode with these controls (bottom overlay bar): - Play/Pause button - Previous/Next constellation buttons - Speed selector (Slow: 15s per stop, Normal: 10s, Fast: 5s) - Tour type toggle: "12 Signs" (major only) or "Full Mazzaroth" (all 48 with decans) - Progress bar showing current position (e.g., "3 of 12 - Libra") - Exit Tour button 3. Tour sequence (12 Signs mode): Start at Virgo (Bethulah) -> Libra -> Scorpio -> Sagittarius -> Capricorn -> Aquarius -> Pisces -> Aries -> Taurus -> Gemini -> Cancer -> Leo (Arieh) This follows the traditional Mazzaroth reading order starting from Virgo (the seed of the woman) to Leo (the Lion of Judah) 4. Camera animation: - Use stel.lookAt() with smooth animation duration (2 seconds) to pan to each constellation - Zoom to a FOV that frames the constellation nicely (~30-40 degrees) - To find each constellation's position, look up its brightest star from the LMCI sky culture index.json and use its coordinates 5. At each stop: - Highlight the current constellation (enable lines + art + name for just that constellation if possible, or ensure they're all visible) - Show a narrative overlay card (top-right, similar to birth-info-banner style) with: - Constellation name and Hebrew name - One-line Christological meaning - "1 of 12" progress indicator - Auto-advance after the configured pause time, or wait for manual Next click 6. Tour should work with whatever date/location is currently set 7. If the Mazzaroth Narrative Panel (Enhancement 1) is implemented, clicking "Learn More" on the tour card should open the full narrative panel for that constellation Use the existing LMCI sky culture data at ../test-skydata/skycultures/lmci/index.json to get constellation star positions. The constellation IAU abbreviations to use for the 12 signs are: Vir, Lib, Sco, Sgr, Cap, Aqr, Psc, Ari, Tau, Gem, Cnc, Leo.
Enhancement 8

Scripture Reference Overlay

Medium Priority

Add a toggle button that overlays key Scripture references directly on the sky map near their associated constellations or stars. When enabled, small verse chips appear pinned to celestial positions, allowing users to see the biblical connections as they explore the heavens.

  • Scripture chips anchored to constellation positions (e.g., "Psalm 19:1" near the ecliptic)
  • Click a chip to expand and read the full verse text
  • Color-coded by category: Prophetic (gold), Creation (green), Messianic (red)
  • Toggle on/off via bottom toolbar button alongside existing controls
  • References curated from Job 38, Psalm 19, Isaiah 40, Amos 5, and other Mazzaroth-related passages
Implementation Prompt
Add a Scripture Reference Overlay feature to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a new toggle button "Scriptures" to the bottom toolbar (after the existing Nebulae button) using an appropriate SVG icon (book or scripture symbol) 2. Create a scripture-overlay.json data file mapping Bible references to celestial positions: Each entry should have: - reference: "Job 38:31-32" (the verse reference) - text: The full verse text (KJV or NKJV) - category: "prophetic" | "creation" | "messianic" | "mazzaroth" - anchorType: "constellation" | "star" | "ecliptic" | "general" - anchorId: IAU constellation abbreviation or star HIP number (e.g., "Ori" for Orion, "Vir" for Virgo) - ra: Right Ascension in degrees (for positioning the chip on the map) - dec: Declination in degrees 3. When the Scripture toggle is ON, render small pill-shaped chips on the WebGL canvas overlay: - Position each chip using the RA/Dec coordinates, converting through ICRF -> CIRS -> screen coordinates - Use stel.convertFrame() and then project to screen pixel coordinates - Color by category: gold (#FFD54F) for prophetic, green (#81C784) for creation, red (#E57373) for messianic, blue (#7986CB) for mazzaroth - Show abbreviated reference (e.g., "Job 38:31") on the chip - On click, expand to show full verse text in a small tooltip card 4. Update chip positions each frame as the user pans/zooms (use Vue reactivity or requestAnimationFrame) 5. Hide chips that are behind the horizon or outside the current viewport 6. Include at least these key references in the initial data: - Job 9:9 (Arcturus, Orion, Pleiades) -> anchor to Orion - Job 38:31-32 (Pleiades, Orion, Mazzaroth) -> anchor to Taurus/Pleiades - Psalm 19:1-4 (heavens declare glory) -> anchor to ecliptic - Amos 5:8 (Pleiades and Orion) -> anchor to Orion - Isaiah 40:26 (lift up your eyes) -> general/zenith position - Revelation 5:5 (Lion of Judah) -> anchor to Leo - Genesis 3:15 (seed of the woman) -> anchor to Virgo - Isaiah 7:14 (virgin shall conceive) -> anchor to Virgo - Psalm 147:4 (He counts the stars) -> general - Genesis 1:14 (lights for signs and seasons) -> anchor to ecliptic The team will expand this scripture database over time. Make it easy to add new entries by just adding to the JSON file.
Enhancement 15

Decan & Star Name Annotations

Medium Priority

Enhance the star labels to show the original Hebrew, Arabic, and Greek star names alongside their common names, with tooltip explanations of each name's meaning. Many star names carry prophetic significance in the Mazzaroth tradition that is lost when only the common Western name is shown.

  • Show original-language star names (e.g., "Spica" becomes "Spica (Al Zimach - The Branch)")
  • Toggle between Common, Hebrew/Arabic, or Meaning display modes
  • Highlight the three Decans within each major sign with visual grouping
  • Decan boundary indicators showing which sub-constellation belongs to which sign
Implementation Prompt
Add Decan and Star Name Annotations to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Create a star-names-mazzaroth.json data file with enriched star name data: Each entry should have: - hip: Hipparcos catalog number - commonName: Western common name (e.g., "Spica") - hebrewName: Hebrew name if known (e.g., "Al Zimach") - arabicName: Arabic name if known (e.g., "Al Simak al A'zal") - meaning: English meaning of the ancient name (e.g., "The Branch" or "The Seed") - constellation: Parent constellation IAU abbreviation - decanOf: Which major Mazzaroth sign this constellation is a decan of (null for major signs) - decanOrder: 1, 2, or 3 (position within the decan triad) - significance: Brief note on Christological significance 2. Add a "Star Names" dropdown button to the toolbar with three modes: - "Common" (default) - shows standard star names as currently displayed - "Ancient" - shows Hebrew/Arabic names - "Meanings" - shows English meanings of ancient names 3. When a star is selected (clicked), enhance the existing selection info card to include: - All known names (common, Hebrew, Arabic) - Name meaning and significance - Which Mazzaroth sign and decan it belongs to 4. Add a "Decans" toggle to the bottom toolbar that, when enabled: - Color-codes constellation lines by which major sign they belong to as a decan - Uses the same color for a major sign and its three decans - Shows small labels indicating "Decan 1 of Virgo" etc. - Uses a 12-color palette matching the Mazzaroth order 5. Populate the initial data with key named stars from the LMCI sky culture. The star name references can be found in: - LMCI_Sky_Culture/LMCI_Skyculture/LMCI/star_names.fab - LMCI_Sky_Culture/LMCI_Skyculture/LMCI/constellation_names.eng.fab Include at minimum the brightest named star in each of the 48 constellations. The LMCI team will review and expand the star name database with verified ancient names and Christological meanings from the scholarly sources (Rolleston 1864, Seiss 1882, Bullinger 1895).

Interactive Controls & Navigation

Enhancement 3

Time Animation Controls

High Priority

Add a time-lapse control bar that lets users play, pause, and scrub through time, watching the sky rotate and planets move in real-time or accelerated speed. This is essential for teaching how the heavens move and for finding significant astronomical events around key biblical dates.

  • Play/Pause button to animate the passage of time
  • Speed controls: 1x, 10x, 100x, 1000x (sidereal day in seconds)
  • Forward and reverse time direction
  • Step buttons: advance by 1 hour, 1 day, 1 month, 1 year
  • Current date/time display that updates as time flows
  • Quick-jump to key biblical dates (Birth of Christ candidates, Crucifixion, etc.)
Implementation Prompt
Add Time Animation Controls to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a time control bar at the top of the screen, just below the existing app toolbar: - Current date/time display (format: "March 15, 7 BC 18:30 UTC" - show BC dates properly) - Play/Pause toggle button (mdi-play / mdi-pause icon) - Reverse direction button (mdi-rewind icon) to run time backward - Speed selector buttons or dropdown: 1x, 10x, 100x, 1000x, Sidereal (1 day = 10 seconds) - Step buttons: -1 year, -1 month, -1 day, -1 hour | +1 hour, +1 day, +1 month, +1 year - "Now" button to jump back to current date/time - The bar should be collapsible (toggle with a clock icon in the main toolbar) 2. Implementation approach: - Use setInterval (or requestAnimationFrame) to periodically update core.observer.utc - At each tick, add the appropriate MJD increment based on speed: * 1x: real-time (1 second = 1 second of MJD change = ~0.0000115741 MJD) * 10x: 1 second = 10 seconds * 100x: 1 second = ~1.67 minutes * 1000x: 1 second = ~16.7 minutes * Sidereal: 1 second = 2.4 hours (full day in 10 seconds) - The step buttons should add/subtract exact increments to core.observer.utc: * 1 hour = 1/24 MJD * 1 day = 1 MJD * 1 month = 30.44 MJD (approximate) * 1 year = 365.25 MJD - Reverse simply negates the increment 3. Date display formatting: - Convert MJD back to calendar date for display - For years <= 0, display as BC: year 0 = "1 BC", year -1 = "2 BC", year -6 = "7 BC" - Show both the date and time components 4. Add a "Key Dates" dropdown menu with preset biblical dates: - "Star of Bethlehem - Sep 11, 3 BC" (year=-2, month=9, day=11) - "Star of Bethlehem - Jun 17, 2 BC" (year=-1, month=6, day=17) - "Triple Conjunction 7 BC" (year=-6, month=5, day=29) - "Crucifixion - Apr 3, 33 AD" (year=33, month=4, day=3) - "Crucifixion - Apr 7, 30 AD" (year=30, month=4, day=7) - "Creation Week" (year=-3960, month=1, day=1) [placeholder] The team will add more dates. Make it easy to add entries to this list. 5. Style the time bar with the same LMCI indigo theme, semi-transparent background 6. The time bar should not overlap with the birth-info-banner or selection info card 7. When time is animating, show a subtle pulsing indicator so the user knows time is flowing
Enhancement 4

Interactive Date & Location Picker

High Priority

Replace the current URL-parameter-only method of setting dates and locations with an interactive in-app picker. Users should be able to set the observation date (including BC dates), time, and location using intuitive form controls without needing to modify the URL.

  • Date picker with year/month/day fields supporting BC dates (with era toggle)
  • Time picker (hour/minute) with UTC offset selector
  • Location picker with a world map (Leaflet) for click-to-set coordinates
  • Preset locations: Jerusalem, Bethlehem, Babylon, Egypt, Rome
  • Auto-geocoding search box (type city name to find coordinates)
  • Apply button that updates the sky map instantly
Implementation Prompt
Add an Interactive Date and Location Picker dialog to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a "Set Date & Location" button to the toolbar (mdi-calendar-clock icon) that opens a Vuetify v-dialog 2. DATE PICKER section: - Era toggle: "AD" / "BC" radio buttons - Year input: numeric field (1-9999 range for AD, 1-9999 for BC) - Month dropdown (January-December) - Day input (1-31, validated for month) - Hour (0-23) and Minute (0-59) inputs - When BC is selected, internally convert: BC year N -> astronomical year (1-N). So 1 BC = year 0, 7 BC = year -6 - Display the selected date in a preview line: "September 11, 3 BC at 18:00 UTC" 3. LOCATION PICKER section: - Latitude and Longitude numeric inputs (decimal degrees) - A Leaflet map widget (the app already loads Leaflet 1.7.1) showing a world map - Click on the map to set lat/lng (place a marker) - Preset location buttons as chips: * Jerusalem (31.7683, 35.2137) * Bethlehem (31.7054, 35.2024) * Babylon (32.5421, 44.4209) * Nazareth (32.6996, 35.3035) * Egypt/Cairo (30.0444, 31.2357) * Rome (41.9028, 12.4964) * Ur of Chaldees (30.9627, 46.1031) - Optional: geocoding search using a free service (Nominatim) - type a city name and auto-fill coordinates 4. APPLY logic: - "Apply" button converts the selected date to MJD using the existing dateToMJD() function - Sets core.observer.utc = computed MJD - Sets core.observer.latitude and longitude (convert degrees to radians) - Updates the birthDate, birthLocation display strings - Re-centers on the Sun after applying (reuse the existing focusOnSun logic) - Closes the dialog 5. "Current Values" display at top of dialog showing what's currently set 6. Style with LMCI indigo theme, dark mode Vuetify dialog 7. The Leaflet map should use a dark tile layer (e.g., CartoDB dark_all) to match the app theme 8. Add Leaflet CSS/JS from CDN if not already loaded: - CSS: https://unpkg.com/leaflet@1.7.1/dist/leaflet.css - JS: https://unpkg.com/leaflet@1.7.1/dist/leaflet.js
Enhancement 7

Star & Constellation Search

Medium Priority

Add a search box that lets users find and navigate to any star, constellation, planet, or deep-sky object by name. The camera should smoothly animate to center on the found object and optionally select it to show its info card.

  • Type-ahead search with fuzzy matching across star names, constellation names, and planet names
  • Search by both common names and biblical/Mazzaroth names
  • Results grouped by type: Constellations, Stars, Planets, Deep Sky Objects
  • Click a result to smoothly pan and zoom the camera to that object
  • Recent searches history for quick re-access
Implementation Prompt
Add a Star and Constellation Search feature to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a search icon button (mdi-magnify) to the toolbar that expands into a search text field 2. Use the Stellarium Web Engine's built-in search capability: - stel.getObj('NAME objectname') to find objects by name - The engine already indexes all loaded stars, constellations, planets, and DSOs 3. Search UI: - Vuetify v-autocomplete or v-combobox with search-input sync - As the user types (debounced 300ms), query the engine for matching objects - Show results in a dropdown list with: * Object name * Object type icon (star, constellation, planet, galaxy) * Magnitude (for stars) - Support searching by: * Common name: "Sirius", "Orion", "Jupiter" * Designation: "HIP 32349", "NGC 224" * Mazzaroth name: If Enhancement 1 is implemented, also search hebrewName fields 4. When a result is selected: - Get the object's radec coordinates via obj.getInfo('radec') - Convert through ICRF -> CIRS -> OBSERVED frames (same as existing focusOnSun logic) - Animate camera to the object: stel.lookAt(observed, 1.0) with 1-second animation - Zoom to appropriate FOV: * Constellation: 40 degrees * Star: 15 degrees * Planet: 5 degrees * DSO: 2 degrees - Select the object: core.selection = obj (shows the info card) 5. Keep last 10 searches in localStorage for a "Recent" section at the top of the dropdown 6. Add keyboard shortcut: Ctrl+F or "/" to focus the search field 7. Close/collapse search when pressing Escape 8. Position the search field in the toolbar, expanding from right to left to avoid overlapping the title

Astronomical Analysis

Enhancement 5

Planetary Conjunction Highlighter

High Priority

Automatically detect and highlight planetary conjunctions (when two or more planets appear close together) for the currently displayed date. Conjunctions are central to Christological Astronomy, particularly for studying the Star of Bethlehem and other prophetically significant celestial events.

  • Real-time detection of planets within configurable angular separation (default 5 degrees)
  • Visual connector lines between conjuncting planets with separation angle label
  • Conjunction alert banner when a notable conjunction is in view
  • Historical conjunction finder: scan a date range and list all conjunctions found
  • Integration with the existing find_conjunctions.py tool's output format
Implementation Prompt
Add a Planetary Conjunction Highlighter to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a "Conjunctions" toggle button to the bottom toolbar (use mdi-vector-line or similar icon as SVG) 2. When enabled, on each frame update check for planetary conjunctions: - Get positions of all visible planets: Mercury, Venus, Mars, Jupiter, Saturn (and optionally Moon) - For each pair, compute angular separation using the dot product of their ICRF unit vectors: separation = acos(dot(pos1, pos2)) - If separation < threshold (default 5 degrees), flag as conjunction - Access planet objects via stel.getObj('NAME Jupiter'), etc. - Get positions via obj.getInfo('radec') 3. Visual indicators for active conjunctions: - Draw a dashed line between conjuncting planets on a canvas overlay - Label the line with the angular separation (e.g., "1.2deg") - Show a small banner notification: "Jupiter-Saturn conjunction: 1.2deg separation" - Color-code by tightness: < 1deg = gold (very close), 1-3deg = orange, 3-5deg = yellow 4. Conjunction Panel (v-dialog or side panel): - List all current conjunctions with planet names, separation, and constellation they're in - "Find Conjunctions" tool: user enters a date range, and the app scans through time * Step through the date range in 1-day increments * For each day, check all planet pairs * Report any conjunctions found with date, planets, separation, and constellation * Display results in a scrollable list * Click a result to jump the sky map to that date - This mirrors the existing find_conjunctions.py Python tool but runs in the browser 5. Pre-loaded notable conjunctions database (conjunction-events.json): - June 17, 2 BC: Venus-Jupiter conjunction in Leo (Star of Bethlehem candidate) - September 11, 3 BC: Jupiter-Regulus conjunction in Leo - May 29, 7 BC: Jupiter-Saturn triple conjunction in Pisces - Add 5-10 more historically significant conjunctions - When the current date matches a known event within +/- 3 days, show an info tooltip 6. Performance: only compute conjunctions when the toggle is active, throttle to once per second during time animation
Enhancement 9

Planet Visibility Tracker

Medium Priority

Add a panel showing which planets are currently visible above the horizon, their positions, magnitudes, and the constellations they occupy. In Christological Astronomy, planet positions within specific constellations carry interpretive significance.

  • Sidebar panel listing all planets with rise/transit/set times
  • Show which constellation each planet is currently in
  • Visual indicators on the sky map marking planet positions
  • Planet brightness (magnitude) and distance from Earth
  • Retrograde motion indicator for outer planets
Implementation Prompt
Add a Planet Visibility Tracker panel to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a "Planets" button (mdi-earth icon) to the toolbar that opens a Vuetify v-navigation-drawer on the right side 2. Planet List Panel contents: For each of the 7 classical planets (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn): - Planet name with color-coded icon - Current constellation: determine which constellation the planet is in by checking its RA/Dec against constellation boundaries - Altitude: current altitude above/below horizon (show "Below Horizon" in red if negative) - Magnitude: visual brightness - RA/Dec coordinates (formatted like existing info card) - Rise/Set indicator: a simple "Visible" / "Not Visible" based on altitude > 0 3. Implementation: - Get each planet: stel.getObj('NAME Sun'), stel.getObj('NAME Moon'), stel.getObj('NAME Jupiter'), etc. - Get position: obj.getInfo('radec') for RA/Dec - Convert to observed frame for altitude: ICRF -> CIRS -> OBSERVED, then c2s to get azalt - Altitude = azalt[1] converted to degrees - Get magnitude: obj.getInfo('vmag') - Determine constellation: this may require checking the planet's RA/Dec against IAU constellation boundaries, or use a simplified lookup 4. "Click to Navigate" - clicking a planet in the list should: - Pan the sky map camera to center on that planet (using lookAt with animation) - Select the planet to show its full info card - Zoom to 15-degree FOV 5. Auto-update the panel data: - Refresh planet positions every time the observer date changes - If time animation is running (Enhancement 3), update in real-time 6. Optional Mazzaroth significance column: - Brief note on what each planet represents in Christological Astronomy tradition - E.g., Jupiter = "The King Planet (Tzedek/Righteousness)", Saturn = "Satan/The Adversary" - These meanings are referenced in the LMCI scholarly sources 7. Style with LMCI indigo theme, compact layout to fit all 7 planets without scrolling
Enhancement 13

Multi-Date Comparison View

Low Priority

Allow users to view two or more dates side by side, comparing the sky at different moments in history. This is invaluable for comparing proposed Star of Bethlehem dates, studying planet positions across different biblical event candidates, or showing how the sky changed between key moments.

  • Split-screen mode: two sky views with independent date/time settings
  • Synchronized camera: pan/zoom one side and the other follows (same viewing direction)
  • Date labels prominently displayed on each panel
  • Highlight differences: planet position changes between the two dates
Implementation Prompt
Add a Multi-Date Comparison View to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a "Compare" button (mdi-compare icon) to the toolbar 2. When activated, split the viewport into two side-by-side panels: - Each panel is an independent Stellarium Web Engine canvas - Left panel: "Date A" (keeps current date/location) - Right panel: "Date B" (user sets a comparison date) - Each panel has a date label overlay at the top showing its date 3. Implementation approach: - Create a second canvas element (#stel-canvas-b) alongside the original - Initialize a second StelWebEngine instance with the same data sources - Both use the same observer location but different observer.utc values - CSS flexbox or grid to arrange them side by side (50%/50% width) 4. Camera synchronization: - When the user pans or zooms in either panel, mirror the camera to the other - Track lookAt direction and FOV, apply to both engines - Sync constellation/art/name toggle states between both panels 5. Date controls for each panel: - Small date display and edit button at the top of each panel - Quick-swap button to exchange Date A and Date B - Use the same date picker from Enhancement 4 if implemented 6. Difference highlights: - Show planet position markers in both panels - Draw subtle arrows showing how each planet moved between Date A and Date B - Display a summary card: "Jupiter moved from Leo to Virgo" etc. 7. Exit comparison mode button returns to single-panel view (destroys second engine instance to free memory) 8. PERFORMANCE NOTE: Running two WebGL Stellarium engines simultaneously is memory-intensive. Consider: - Reducing star catalog detail on both panels - Disabling DSOs and satellites in comparison mode - Warning the user if their device may not support dual rendering 9. This is a complex feature. If dual-engine is too heavy, an alternative MVP approach: - Single engine with a "snapshot" feature - Take a screenshot of Date A, display it as a static image on the left - Show the live engine on the right with Date B - Less interactive but much lighter on resources

Export & Sharing

Enhancement 6

Enhanced Birth Sky Report

High Priority

Upgrade the current single-page PDF export into a comprehensive multi-page Birth Sky Report that includes the sky map image, a table of all planet positions and their constellations, any active conjunctions, the Mazzaroth narrative for the Sun's constellation, and key Scriptural references.

  • Multi-page PDF: cover page, sky map, planet table, Mazzaroth interpretation, scripture references
  • Planet position table showing each planet's constellation, RA/Dec, magnitude, and altitude
  • Conjunction analysis for the birth date
  • Mazzaroth narrative for the constellation the Sun occupies at birth
  • Professional layout with LMCI branding suitable for ministry distribution
Implementation Prompt
Enhance the PDF export in the LMCI Christological Sky Map (stellarium-web-engine.html) to generate a multi-page Birth Sky Report. REQUIREMENTS: 1. Replace or extend the existing savePDF() method with a new generateBirthReport() method 2. Keep the existing single-page PDF as a "Quick Export" option 3. Add a new "Full Report" option that generates a multi-page PDF FULL REPORT PAGES: Page 1 - Cover Page: - LMCI logo/branding header (indigo gradient) - "Christological Birth Sky Report" title - Person's name (large, centered) - Birth date and location - "Prepared by LMCI - Liberating Ministries for Christ International" - Date of report generation Page 2 - Sky Map: - The current sky map capture (reuse existing canvas capture logic) - Date, time, and location caption below the image - Field of view and orientation notes - Same dark background treatment as current PDF Page 3 - Planetary Positions Table: - Table with columns: Planet | Constellation | RA | Dec | Altitude | Magnitude | Visibility - Row for each of: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn - Get data from stel.getObj('NAME planetname').getInfo('radec') and .getInfo('vmag') - Highlight any conjunctions (planets within 5 degrees of each other) - Note which planets are above/below the horizon Page 4 - Mazzaroth Interpretation: - "The Sun was in [Constellation Name]" header - If mazzaroth-data.json exists (Enhancement 1), include the Christological narrative - Otherwise, include a placeholder paragraph explaining the Mazzaroth tradition - List the three Decans of the Sun's constellation - Include the constellation artwork image if possible (embed the PNG from illustrations/) Page 5 - Scripture References: - Key verses related to the Sun's constellation - General Mazzaroth scriptures (Psalm 19:1, Job 38:31-32, etc.) - If scripture-overlay.json exists (Enhancement 8), pull relevant verses IMPLEMENTATION: - Use jsPDF (already loaded) for PDF generation - Use jsPDF's addPage() for multi-page support - For the planet data, access the engine's planet objects on the current date - Use consistent LMCI branding: indigo (#1a237e) headers, Helvetica font, professional margins - Add page numbers in the footer - Total PDF should be 4-5 pages Add a dropdown or dialog when the user clicks the PDF button: - "Quick Export (1 page)" - current behavior - "Full Birth Sky Report (5 pages)" - new multi-page report
Enhancement 10

Shareable Link Generator

Medium Priority

Add a "Share" button that generates a complete URL capturing the current sky map state — date, location, camera position, FOV, and active toggles — so users can share exact sky views with others via link, email, or social media.

  • One-click URL generation capturing the full sky map state
  • Copy-to-clipboard with confirmation toast notification
  • Optional QR code generation for printed materials
  • Short description field that gets embedded in the URL for context
  • Email share option that pre-fills a message with the link and description
Implementation Prompt
Add a Shareable Link Generator to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Add a "Share" button (mdi-share-variant icon) to the toolbar 2. When clicked, open a Vuetify v-dialog with: - A read-only text field showing the generated URL - "Copy Link" button that copies to clipboard and shows a success snackbar - Optional: "Description" text field where the user can add a note (e.g., "Star of Bethlehem - Jupiter-Venus conjunction") - Optional: QR Code display (use a lightweight JS QR code library like qrcode-generator) - "Email" button that opens mailto: with subject and body pre-filled 3. URL generation logic - capture current state as URL parameters: - Convert current MJD (core.observer.utc) back to year/month/day/hour/minute - Get observer latitude/longitude (convert radians to degrees) - Get current FOV (convert radians to degrees) - Get camera direction (RA/Dec of center point) - Get toggle states: lines, art, names, ecliptic, atmosphere, landscape, grid, nebulae - Birth info: name, date, location strings Build URL like: stellarium-web-engine.html?name=John&date=Sep 11, 3 BC&location=Jerusalem&year=-2&month=9&day=11&hour=18&minute=0&lat=31.7683&lng=35.2137&fov=20&lines=1&art=1&names=1&ecliptic=1 4. URL parsing - extend the existing getUrlParams() and onReady initialization to also read: - lines, art, names, ecliptic, atmosphere, landscape, grid, nebulae (0 or 1) - Apply these toggle states after engine initialization 5. Also update the browser URL bar (using history.replaceState) as the user interacts with the map, so bookmarking always captures current state 6. For QR code: include a small inline QR code library or use a CDN-hosted one. The QR should encode the full URL. Display it at 200x200px in the share dialog for easy scanning.
Enhancement 14

Enhanced PDF & Image Export

Low Priority

Expand export options beyond the current PDF to include high-resolution PNG/JPG image export, custom print layouts, and batch export for generating multiple sky charts at once (useful for producing booklets or presentation materials).

  • High-resolution PNG export (2x, 4x current resolution) for print materials
  • Custom layout templates: landscape, portrait, square crop, wide panoramic
  • Batch export: generate sky maps for a list of dates (e.g., every month of a year)
  • Annotation overlay option: add custom text labels before exporting
  • Watermark toggle for ministry distribution copies
Implementation Prompt
Add Enhanced Export Options to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. Replace the single PDF button with an "Export" dropdown button (mdi-download icon) offering: - "PDF (Current View)" - existing behavior - "Full Birth Report PDF" - Enhancement 6 if implemented - "PNG Image" - high-resolution image export - "PNG Image (High-Res)" - 2x resolution - "Batch Export..." - opens batch dialog 2. PNG Image Export: - Capture the WebGL canvas (reuse existing pixel-reading logic from savePDF) - For standard: use canvas dimensions as-is - For high-res: temporarily resize the canvas to 2x dimensions, render, capture, restore * Save original canvas width/height * Set canvas.width *= 2, canvas.height *= 2 * Call stel._core_render() at new dimensions * Capture pixels and build image * Restore original dimensions - Add LMCI watermark text at bottom-right corner (semi-transparent) - Convert to PNG blob and trigger download - Filename: LMCI-SkyMap-[name]-[date].png 3. Batch Export Dialog: - Date range inputs: Start Date and End Date - Interval selector: Daily, Weekly, Monthly, Yearly - Location (use current location) - "Generate" button that: * Iterates through the date range at the selected interval * For each date: set observer.utc, wait for render, capture PNG * Package all images into a ZIP file (use JSZip library from CDN) * Download the ZIP - Progress bar showing "Generating 3 of 12..." - Cancel button - WARNING: batch export can be slow. Warn user for ranges > 50 images 4. Custom Annotation (stretch goal): - Before any export, offer an "Add Annotation" option - User can type text that gets overlaid on the image at a chosen position - Useful for labeling specific features: "Jupiter here", "Note the conjunction", etc. 5. All exports should include metadata: - Date/time of the sky view - Observer location - LMCI credit line

User Experience & Accessibility

Enhancement 11

Mobile & Touch Optimization

Medium Priority

Optimize the sky map for mobile devices and tablets with proper touch gesture handling, responsive layout adjustments, and a mobile-friendly toolbar. Many believers access ministry resources on their phones, and the sky map should work well on any device.

  • Pinch-to-zoom gesture for mobile zooming (replacing scroll wheel)
  • Two-finger drag for panning on touch screens
  • Responsive toolbar that collapses toggle buttons into a menu on small screens
  • Bottom sheet panels instead of side drawers on mobile
  • Touch-friendly tap targets (minimum 44px) for all interactive elements
Implementation Prompt
Optimize the LMCI Christological Sky Map (stellarium-web-engine.html) for mobile and touch devices. REQUIREMENTS: 1. TOUCH GESTURE HANDLING: - The Stellarium Web Engine already handles basic touch events on the canvas - Verify and fix pinch-to-zoom: map two-finger pinch distance changes to FOV changes - Verify single-finger drag for panning - Add double-tap to zoom in (halve FOV) on the tapped position - Prevent browser default gestures (pull-to-refresh, back-swipe) on the canvas element: * Add touch-action: none to #stel-canvas CSS * Add event.preventDefault() on touchmove events on the canvas 2. RESPONSIVE TOOLBAR: - On screens < 768px wide: * Reduce toolbar title to "LMCI Sky Map" (shorter) * Hide subtitle/birth label from toolbar (it's still shown in the banner) - On screens < 600px wide: * Collapse the 8 bottom toggle buttons into a bottom-sheet menu * Show a single "Controls" fab button (bottom-right) that opens a v-bottom-sheet * In the bottom sheet, arrange toggles in a 4x2 grid with larger tap targets (48px minimum) * Add the PDF and Help buttons to this bottom sheet as well 3. RESPONSIVE PANELS: - Birth info banner: on mobile, position at top-center with smaller font - Selection info card: on mobile (< 600px), show as a bottom sheet instead of top-left overlay - Help overlay: full-screen modal on mobile instead of floating card 4. CSS ADJUSTMENTS: - Add @media queries for common breakpoints (600px, 768px, 1024px) - Ensure no horizontal scrolling at any viewport width - Test with viewport meta tag already set (user-scalable=no is already present) - Increase font sizes slightly on mobile for readability on smaller screens 5. PERFORMANCE on mobile: - Reduce star rendering density on mobile if possible (check engine settings) - Disable atmosphere effect by default on mobile (performance heavy) - Consider disabling constellation artwork on very small screens (< 400px) by default 6. Add a "Mobile detected" banner on first visit suggesting landscape orientation for best experience Test targets: iPhone 12/13/14 (390x844), iPad (768x1024), Samsung Galaxy S21 (360x800)
Enhancement 12

Fullscreen & Presentation Mode

Low Priority

Add a fullscreen toggle and a dedicated Presentation Mode that hides all UI chrome, maximizes the sky view, and adds subtle branding — perfect for projecting the sky map during teaching sessions, conferences, or worship services.

  • One-click fullscreen toggle using the Fullscreen API
  • Presentation Mode: hides toolbar, bottom bar, and all overlays
  • Minimal LMCI watermark in corner during presentation mode
  • Keyboard shortcuts for common actions while presenting (arrow keys to pan, +/- to zoom)
  • Optional mouse cursor auto-hide after 3 seconds of inactivity
Implementation Prompt
Add Fullscreen and Presentation Mode to the LMCI Christological Sky Map (stellarium-web-engine.html). REQUIREMENTS: 1. FULLSCREEN TOGGLE: - Add a fullscreen button (mdi-fullscreen / mdi-fullscreen-exit icon) to the toolbar - Use the browser Fullscreen API: document.documentElement.requestFullscreen() - Toggle icon between fullscreen and exit-fullscreen states - Listen for fullscreenchange event to sync button state - Keyboard shortcut: F11 or F key to toggle fullscreen 2. PRESENTATION MODE: - Add a "Present" button (mdi-presentation icon) next to the fullscreen button - When activated: * Enter fullscreen * Hide the top toolbar (v-app-bar) * Hide the bottom toggle bar (v-footer) * Hide birth info banner and selection info card * Show only the sky map canvas at 100% viewport * Add a small, subtle LMCI watermark in the bottom-right corner: "LMCI Christological Sky Map" in semi-transparent white text (opacity 0.3, font-size 12px) * Show a brief toast: "Presentation Mode - Press ESC to exit" - Exit presentation mode: ESC key, or move mouse to top of screen to reveal a thin exit bar 3. KEYBOARD SHORTCUTS (active in both fullscreen and presentation mode): - Arrow keys: pan the sky (left/right/up/down) - +/- or scroll: zoom in/out - L: toggle constellation lines - A: toggle constellation artwork - N: toggle constellation names - E: toggle ecliptic - G: toggle equatorial grid - Space: play/pause time animation (if Enhancement 3 is implemented) - P: save PDF - ?: show keyboard shortcut help overlay 4. Add a Vue data property 'presentationMode' (boolean) to control visibility of UI elements 5. In presentation mode, auto-hide the mouse cursor after 3 seconds of inactivity: - Set cursor: none on the body - On mousemove, show cursor and reset the 3-second timer 6. Ensure the WebGL canvas properly resizes when entering/exiting fullscreen (listen for resize events and call stel._core_render with new dimensions)