Cast shadows on the Moon: a horizon map from LOLA
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, three.js
- Domain
- computer-graphics
Research direction
Read js/scene/Planet.md under relief and CESIUM.md under relief on the Moon's tiles, then inspect tools/moon/lolaNormalMap.py and the mesh material and tileset sunlitShader entry points. Build horizon maps from the LOLA DEM and apply the shadow term consistently to both render paths; decide whether to include the higher-resolution normal map. Done means rims shadow floors near the terminator on both views, moon-quarter stays in bounds, and the recipe rebuilds the maps.
Written by the indexing model from the issue text.
Description
Proposed in #192's comment (section 3) and left open by #199 and #206; see Planet.md, relief ("No cast shadows yet") and CESIUM.md, relief on the Moon's tiles ("Not done: cast shadows").
Problem
The Moon's normal map (#199, on Cesium's tiles by #206) lights each texel by its own slope, which makes crater walls light and shade along the terminator. A slope can't make a rim shadow its floor, and in the last few degrees of Sun the real floors are black, the terminator's best-known look.
Proposal
A horizon map from the same LOLA DEM: the horizon's elevation in 8 azimuths per texel, in two RGBA 2048×1024 textures (about 2–4 MB, so Git LFS under public/large/moon/ with dataUrl; AGENTS.md, data policy). One shadow term in the surface shader, in both the mesh's material and the tileset's sunlitShader (so both sides of the swap match; moon-quarter parity). The recipe goes in tools/moon/ next to lolaNormalMap.py, and in Planet.md.
A 4096×2048 normal map (1.4 MB, LFS) would hold detail to a 1.3° Moon; decide whether to do it with this.
Done when
At the occultation view, rims shadow their floors near the terminator on both celestiary's Moon and Cesium's tiles, moon-quarter stays inside its bounds, and the recipe rebuilds the maps.
Related: #192, #199, #206, #205.
- Dominant language
- JavaScript
- Stars
- 55
- Forks
- 4
- Avg merge
- 10h 12m
- Merged PRs (30d)
- 134
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from celestiary/web
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
celestiary/web#345 ·
Maintainers usually reply within 1 day
-
Cesium guest (?cesium=iframe): white flicker near Mars's and Earth's surface remains after #335Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
celestiary/web#344 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
celestiary/web#340 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 1-2 days Newbie friendliness 48/100
celestiary/web#336 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
celestiary/web#334 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
[Feature Request] [Web] Expose kvCacheQuantizationBits in the onnxruntime-web WebGPU EP optionsOpenep:WebGPU platform:web quantization
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
microsoft/onnxruntime#33752 ·
Maintainers usually reply within 2 days
-
icon request
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
tabler/tabler-icons#1693 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 72/100
alvarotrigo/fullPage.js#4755 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
jlab-sensing/ENTS-backend#854 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
andromarces/agent-loops#1242 ·
Maintainers usually reply within 1 day