Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

The Moon's Cesium layer: a location or texture mismatch near longitude −90°

Open
#319 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
46/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
javascript, three.js

Research direction

Start with relief.js and the relief setup in bodies.js, then compare the Moon’s LOLA normal map, Cesium ion tileset, and imagery in the supplied view near 37° N, 90° W. On a real GPU with ion, toggle relief and force Cesium’s layer on and off as described; compare several crater positions against the place labels. Done when the source of the visible boundary and shading mismatch is identified and the relevant layers align.

Written by the indexing model from the issue text.

Description

cesium

Seen by the maintainer on #317's preview, and the same with Cesium on the page (without ?cesium=iframe), so it's on main, not the guest page's:

https://celestiary.org/web/pr-preview/pr-317/?cesium=iframe#sun/earth/[email protected],-90.2103,2.1005Mm;t=9796.103906jd;cq=-0.0924,0.851,0.3913,-0.338;fov=45deg

The Moon from 2,100 km over 37° N, 90° W, on its western limb from Earth, with the near side's maria on the right and the far side's highlands on the left. The view shows a visible boundary running roughly north to south across the disc, the left side much more strongly shaded than the right.

From the screenshot, celestiary's place labels look where they should: Grimaldi on its dark crater, Lorentz southwest of the centre, Oceanus Procellarum on the mare. So the mismatch may be within Cesium's frame rather than against the labels. Candidates:

  • The relief map. The LOLA normal map is sampled by longitude and latitude (relief.js; bodies.js relief). If its longitude origin or direction disagreed with ion's Moon tileset, the slopes would land on the wrong craters, which shows most where the shading is strongest (#212 is its filtering, not its placement).
  • The tileset's own levels of detail meeting along a boundary.
  • The imagery, ion's mosaic, against celestiary's texture at that longitude.

To check, on a real GPU with ion: the same view with the relief switched off, and Cesium's layer forced on and off (c.ui.layers.fadeOf = () => 1 / () => 0). Then compare a few craters' positions in each against the labels. yarn parity has a Moon view at partial phase, but not at this longitude.

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from celestiary/web

All issues in celestiary/web

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.