Skip to content

Draw edges with smooth mosaic wedges and eighth blocks - #18

Merged
vaprdev merged 6 commits into
mainfrom
smooth-glyphs
Oct 10, 2026
Merged

vaprdev merged 6 commits into
mainfrom
smooth-glyphs

Conversation

@vaprdev

@vaprdev vaprdev commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Summary

On octant terminals, diagonal edges (mountain slopes, pine tiers, roofs) stair-stepped in 2×4 blocks. src/smooth.ts adds the Unicode 16 mosaic wedges and eighth blocks: for a high-contrast cell, refineEdge() fits the octant's two colors along the edge and takes a wedge or eighth glyph when it clearly explains the cell better. WALLPAPER_SMOOTH=0 turns it off; dev/cells.ts renders the new glyphs.

 fit cell
   band on soft cells (gradient-cells)
-  octant
+  octant, or a smooth wedge/eighth on a still, clean edge   # refineEdge()

Refinements applied:

  • Wedges stay off the sun and moon (Canvas.orbs, recorded by paintSky and desert's sky): the disc keeps its octants instead of a polygon outline with a dark notch.
  • Stricter fit: a wedge must beat the octant by 15% overall and be no worse on any sub-pixel, so pine tiers and thin rim-lit ridges lose their notches.
  • Only still cells take wedges (a gliding edge would flip between wedge and octant), and the moving-cell hysteresis is eased to 1.1× so snow stays well under the flicker limit.

Evidence

smooth glyphs

After the refinements, origin/main (left) vs this branch (right), tundra night preview: pine tiers and the round moon.

pines
moon

Cost, dev/check.ts tundra ocean city jungle back to back twice: 7.47 → 7.68 ms/frame. Worst flicker 87 → 86 cells.

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

Merge Danger

Door: two-way

Blast Radius: octant terminals; terminals whose font lacks the Unicode 16 wedges would show missing glyphs (WALLPAPER_SMOOTH=0).

@vaprdev
vaprdev merged commit a72798f 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