Skip to content

Draw stars as round dots on cells and splat moving specks - #19

Merged
vaprdev merged 6 commits into
mainfrom
soft-points
Oct 10, 2026
Merged

vaprdev merged 6 commits into
mainfrom
soft-points

Conversation

@vaprdev

@vaprdev vaprdev commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

Stars and other small lights were drawn into the scene's pixels, so each one became a square sub-pixel block that jumped between cells as it twinkled. Still points now register with Canvas.point() and the engine draws them as round dot glyphs on otherwise flat cells; moving specks (snow, sparks, fireflies) are splat()ed across neighbouring pixels so they glide instead of hopping.

 scene.render()
-  hdr[star] += light
+  this.point(x, y, light, size)     # still points → Scene.points
+  splat(x, y, light)                # moving specks, sub-pixel weights
 engine paint()
+  placeDot() on flat cells          # dot glyph; previousMask = DOT (-2), compatible with smooth glyphs
   band / wedge / octant otherwise

Refinement: stars skip the sun and moon discs (onOrb() against the orbs paintSky and the desert sky record), so none shine through the moon.

Evidence

soft points
snow frames

Tundra night preview, origin/main (left) vs this branch (right): small round stars, none on the moon.

tundra night

Flicker at night (dev/check.ts, mean over night combinations) 32.6 → 31.6 cells per frame; tundra teeming night 53 → 47. Cost, dev/check.ts tundra space desert zen back to back twice: 5.34 → 5.43 ms/frame.

Verified: typecheck, build, dev/check.ts --max-ms=60 in octant and quadrant mode (0 failed), --verify-dirty 90/90; screenshots regenerated.

Merge Danger

Door: two-way

Blast Radius: stars and particles in every wallpaper; dot glyphs (·, ∙, •) depend on the terminal font.

# Conflicts:
#	CONTRIBUTING.md
#	dev/cells.ts
#	src/canvas.ts
#	src/engine.tsx
#	src/sky.ts
#	src/wallpaper.ts
#	src/weather.ts
#	wallpapers/beach.ts
#	wallpapers/city.ts
#	wallpapers/farm.ts
#	wallpapers/prehistoric.ts
#	wallpapers/template.ts
#	wallpapers/tundra.ts
#	wallpapers/zen.ts
@vaprdev
vaprdev merged commit 1daa6d5 into main Oct 10, 2026
2 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