Skip to content

perf(objects): Deimos, Phobos and Dimorphos hide their back faces and get depth groups; a drag goes from 23 frames over 33 ms to none on an iPad - #1353

Merged
alowpoly merged 2 commits into
mainfrom
perf/mars-moons-backfaces
Oct 5, 2026
Merged

alowpoly merged 2 commits into
mainfrom
perf/mars-moons-backfaces

Conversation

@alowpoly

@alowpoly alowpoly commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Deimos, Phobos and Dimorphos drew both sides of every face: their own stylesheets set backface-visibility: visible where every other triangle body hides the far side. The browser drew and sorted all 1,600 faces of a Mars moon on each frame, and the bake could build no depth groups for them ("unresolved static facing"). Their stylesheets now hide back faces, and the bake builds the groups: 16, 6 and 7.

Proves the change: iPad, the same drag of 390 frames, frames over 33 ms and the longest frame: Deimos 23 and 140 ms to 0 and 24 ms; Phobos 24 and 160 ms to 1 and 37 ms; Dimorphos 0 and 30 ms after. With only the stylesheet changed, before the groups, Deimos had 10 and 69 ms. A drag with half of Deimos's faces removed had 0 and 20 ms, and Tethys, with 2,000 faces and groups, 0 and 27 ms. After a Deimos dataset pick the camera's turn ran about 20 frames of 45 to 70 ms; now none passes 44 ms. Phobos's repeat dataset switches go from 166-187 to 143-147 ms. iPad screenshots after a drag show whole bodies.

Clean: the bake's depth-partition and prepared-presentation tests (27 pass).

Limits: the frame of a Deimos dataset switch itself is unchanged, 202 to 229 ms. Dimorphos was not timed before. This branch sits on the Haumea commit of #1351 until that merges. No phone measured.

  • Prepared assets published.

…tch took 177 to 225 ms on an iPad, now 47 to 106
… get depth groups; a Deimos drag had 23 frames over 33 ms, now none
@alowpoly
alowpoly merged commit 2fc59e9 into main Oct 5, 2026
30 of 42 checks passed
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