Skip to content

feat(m45): show the Pleiades within Galactic dust - #1599

Open
apresmoi wants to merge 1 commit into
mainfrom
feat/pleiades-lit-dust
Open

apresmoi wants to merge 1 commit into
mainfrom
feat/pleiades-lit-dust

Conversation

@apresmoi

@apresmoi apresmoi commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

The Pleiades dataset combines Gaia and Hipparcos stars with the surrounding Milky Way dust cloud. Foreground dust scatters the bright stars' light; wider cirrus is faintly lit by Galactic starlight, and the full field dims and reddens background stars. The page opens from Earth's direction. Positions, images and lighting stay fixed while the camera turns.

Member reddening and Gaia constrain placement near 136 pc. Edenhofer and Leike provide broad depth information; WISE, Spitzer and IRIS constrain structure on the sky. Published B-star parameters and Draine grains supply single-scattering light, with the modified-MMP Galactic field at U = 1. The NOIRLab optical image checks the result; it does not supply dust texture. The depth input retains 32,657 native-extracted samples. Sources, processing and assumptions: Pleiades, dust model.

Earth view 90°
Earth view 90°
Behind Inside
Behind Inside

Limits: cloud thickness and infrared-derived mass are uncertain; bright-star depths are adopted. Fixed Earth-reference lighting and finite billboards approximate other viewpoints; a large element can clip visible support on the opposite phone orbit. Galaxy S23 drag is 10–14 fps below dust off, with coast near parity; both conditions contain dropped/partial-frame reporter records. The slowdown is GPU-side; its cause and a recorded 131 ms command-buffer flush remain unresolved. On iPad, mean RAF drag pacing is about 4 fps lower; opening coast is about 46 versus 57 fps, with substantial variation. RAF gaps are not hardware dropped-frame counts. Native iPad screens show faint straight-edged dark boundaries in the Earth view; that visual check remains open.

  • Baked the Pleiades scene and regional dust bank.
  • Published the prepared bytes to R2 and verified the refreshed metadata.
  • Committed the inventories, with no images or baked files.

The source recipe reproduces the retained geometry, foreground RGBA, cirrus bytes and stellar attenuation exactly. An empty destination restores all 14 runtime files and 25 numerical inputs from R2.

Clean: full typecheck, color spelling, hash placement, literal styles, prepared delivery, architecture, affected renderer/objects/site tests, shipped-form checks and production site build.

@apresmoi
apresmoi marked this pull request as ready for review October 27, 2026 01:04
@apresmoi

apresmoi commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor Author

Galaxy S23 — Chrome

Physical SM-S918B, Chrome 154; native touch input, with the regional dust dataset enabled or disabled before mounting. Chrome trace frame-delivery rates:

View Motion Dust off, fps Dust on, fps Difference
Earth view Drag 93.18 82.34 −10.84
Earth view Coast 58.91 59.61 +0.70
Oblique Drag 82.62 69.33 −13.29
Oblique Coast 59.09 59.27 +0.18
Inside Drag 95.17 82.84 −12.33
Inside Coast 59.63 59.37 −0.26

Single recordings per scenario; three-repeat variability is not measured here. Both conditions contain dropped/partial reporter records, which are not unique missed frames. The dust adds a drag deficit while coast is approximately at parity. Recorded GPU command-buffer flushes take 22–50 ms during input; a 150.087 ms presentation gap includes a 130.854 ms flush and 44.36 ms of concurrent main-thread work. The responsible primitive or driver wait is unresolved.

iPad — Safari

Physical iPad12,1, iPadOS 27.0.1; viewport 810 × 994 CSS px, DPR 2. Three repeats for each dust-on/off condition at the opening view, supplied saved view and inside. The same paired sequence is off/on, on/off, off/on. Eighteen complete recordings contain both drag and coast, yielding six scenarios.

Jankmonster’s recorder targets Chrome/CDP. Its report accepts the iPad’s exported WebKit CPU trace, but displayed-frame and dropped/partial counters require Chromium PipelineReporter events: the fresh device trace imports as usable with presentation: null. Actual dropped frames are therefore unobserved, not zero. The repo’s ipad:timed and ipad:inspect provide the RAF pacing below.

View Motion Dust off, RAF fps ± SD Dust on, RAF fps ± SD Difference Actual dropped frames
Opening Drag 57.3 ± 0.92 50.34 ± 3.37 -6.96 Unobserved
Opening Coast 56.77 ± 0.15 45.95 ± 4.81 -10.81 Unobserved
Saved view Drag 57.2 ± 0.93 53.84 ± 1.14 -3.35 Unobserved
Saved view Coast 57.1 ± 0.31 51.95 ± 4.07 -5.15 Unobserved
Inside Drag 57.56 ± 0.9 56.37 ± 0.84 -1.19 Unobserved
Inside Coast 57.8 ± 0.3 55.87 ± 0.14 -1.93 Unobserved

Means ± sample SD across three runs; differences calculated before rounding. These are RAF callback intervals, not display/compositor frame delivery. Compare dust on/off within each device; Safari RAF fps and the S23’s presentation fps are different metrics.

Page-dispatched pointer input, not native touch: a 60-frame horizontal fling, true application coast, then a 60-frame held return. Application motion events define the disjoint drag, coast, still and boundary bins. The fixed endpoint is 180 CSS px from the start. Driven time includes a 120 ms finger rest. The Inspector detaches before input; no profiler or native screen sampler is active during timing. All 18 runs complete 660 intervals with one coast onset and no skipped steps. Raw timestamps replay exactly through the phase-summary function; all frame and late counts are conserved.

Dust off removes the regional dataset before mount, including foreground boards, cirrus and stellar transmission. The start receipts show 88 foreground elements and six cirrus faces on, zero off. The application code and prepared bank match this PR; capture-helper changes are confined to performance tooling. The dust-on transports are restored. Thermal and Low Power state were not sampled; normal browser cache is enabled. Opening and saved-view dust-on coast vary substantially.

Repeat counts and interval durations
View Motion Dust RAF fps, three runs Phase seconds, three runs Intervals >25 ms Estimated missed 60 Hz opportunities
Opening Drag off 56.38 / 58.22 / 57.3 2.164 / 2.13 / 2.164 4 / 9 / 15 12 / 15 / 21
Opening Drag on 54.08 / 49.42 / 47.53 2.293 / 2.509 / 2.546 8 / 26 / 24 17 / 42 / 43
Opening Coast off 56.92 / 56.76 / 56.62 6.781 / 6.765 / 6.764 11 / 11 / 11 31 / 33 / 33
Opening Coast on 51.5 / 43.5 / 42.86 6.738 / 6.782 / 6.766 60 / 87 / 93 80 / 149 / 165
Saved view Drag off 56.28 / 57.18 / 58.13 2.15 / 2.116 / 2.116 5 / 4 / 3 14 / 11 / 7
Saved view Drag on 53.11 / 53.26 / 55.16 2.316 / 2.272 / 2.248 15 / 18 / 7 26 / 29 / 15
Saved view Coast off 57.35 / 57.19 / 56.76 6.765 / 6.715 / 6.765 10 / 10 / 11 30 / 30 / 33
Saved view Coast on 50.18 / 49.06 / 56.61 6.776 / 6.706 / 6.73 66 / 73 / 10 93 / 108 / 30
Inside Drag off 57.26 / 58.57 / 56.84 2.148 / 2.1 / 2.164 3 / 2 / 4 9 / 6 / 11
Inside Drag on 57.27 / 55.61 / 56.22 2.165 / 2.212 / 2.188 8 / 5 / 5 16 / 11 / 11
Inside Coast off 57.5 / 58.09 / 57.81 6.765 / 6.765 / 6.764 11 / 11 / 11 32 / 32 / 31
Inside Coast on 55.72 / 56 / 55.88 6.766 / 6.714 / 6.782 11 / 13 / 12 33 / 35 / 36
View Dust Mixed intervals Mixed >25 ms Mixed longest ms Whole-program >25 ms
Opening off 4 / 4 / 5 0 / 0 / 0 18 / 19 / 18 17 / 23 / 29
Opening on 5 / 5 / 3 0 / 0 / 0 20 / 19 / 20 72 / 117 / 125
Saved view off 4 / 5 / 5 0 / 1 / 0 17 / 66 / 17 17 / 18 / 18
Saved view on 5 / 5 / 5 1 / 1 / 0 73 / 65 / 21 86 / 95 / 18
Inside off 5 / 5 / 5 1 / 0 / 0 27 / 17 / 18 18 / 16 / 16
Inside on 5 / 5 / 5 0 / 1 / 1 19 / 59 / 26 22 / 23 / 19

Boundary-crossing intervals, including release frames, remain in the mixed bin. The whole-program column includes every phase; still and unknown intervals remain in the raw records. Estimated missed 60 Hz opportunities sum nominal refresh slots from intervals over 25 ms; they are not actual dropped frames.

iPad views

Native device screens were captured separately from timing and inspected with ipad:inspect. The sampled inside rotation shows ordinary parallax without large jumps. Faint straight-edged dark boundaries are visible in the Earth still; the black-line visual check is therefore not fully clean. No viewport-spanning black streak was observed in the sampled inside rotation. No appearance changes were made. These images do not establish display-frame delivery.

Earth view Inside
Earth view Inside

Rotating

Prepared rendering and matched GPU images

Native Metal Chrome, 1372 × 871 CSS px, DPR 1. Opening, saved, 90°, behind and inside captures each mount 88 foreground elements and six cirrus faces, with no page errors or console warnings. The source recipe reproduces geometry, decoded foreground RGBA, cirrus bytes and stellar attenuation exactly. Device timings above use these same drawing payloads.

Pixelmatch 7.2.0, threshold 0.1, includeAA=false: 0 / 779,240 differing pixels in each of the five views. Each comparison uses the same unscaled crop (x=360, y=70, width=1012, height=770), selected to exclude the shell, sidebar and release badge. These are separate real-site reference and rendered captures; this checks appearance, not scientific accuracy or displayed-frame delivery.

Reference:

Earth view

Rendered:

Earth view

Difference:

Earth view

@apresmoi apresmoi changed the title feat(m45): add the approved fixed Pleiades dust cloud feat(m45): show the Pleiades within Galactic dust Oct 27, 2026
@apresmoi
apresmoi force-pushed the feat/pleiades-lit-dust branch 2 times, most recently from 880ecdb to ddd7ebf Compare October 27, 2026 12:11
@apresmoi
apresmoi force-pushed the feat/pleiades-lit-dust branch from ddd7ebf to 3a688b0 Compare October 27, 2026 12:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant