Refine profile dot-art: levels, edge-aware density, fg/bg motion#75
Merged
Conversation
Consolidates the dot-art refinements that followed the initial version (PR #72) into one change against master: - Highlight handling: a "levels" rolloff (HL_DIM/HL_POW) dims the brightest tones before stippling, plus a brightness cap (CAP_OUT ~80%) applied outside a face ellipse so the bright t-shirt no longer out-shines the face or saturates (it was blowing out at phone size). - Edge-aware density: density mixes tone with a blurred Sobel edge field, rho = tone^GAMMA * (FLAT_BASE + EDGE_GAIN * edge), so information-rich regions (face/hair/beard/collar) get many more dots than the flat t-shirt. - Foreground/background split: a flood fill of dark pixels from the image border separates the subject from the near-black backdrop (no transparent PNG needed); each point carries an fg flag (points file is now stride 4). - Background motion: background dots breathe much harder than the figure, swelling and contracting about its centroid, while the figure keeps its spring + curl shimmer + gentle breathing + cursor repulsion. Generator (research/profile-dots/stipple.mjs) is deterministic and reproduces the committed points.json. tsc + lint clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TDdCdTJbUkH7ZoWDhj7AV
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates the dot-art refinements made after the initial version (PR #72, now on
master) into a single PR againstmaster. All verified headlessly.Highlights / saturation
HL_DIM/HL_POW) dims the brightest tones before stippling.CAP_OUT≈ 80% of the in-face max) applied smoothly outside a face ellipse, so the bright t-shirt no longer out-shines the face or saturates — it was blowing out to a white mass at phone size. Measured face vs. body brightness to confirm the body is no longer brighter than the face.Edge-aware density
Density mixes tone with a blurred Sobel edge field:
so information-rich regions (face, hair, beard, collar) get many more dots than the flat t-shirt, while tone still gates the figure against the empty background.
Foreground / background split + background breathing
public/img/profile.pngwith real alpha is added later, the generator can prefer it). Each point carries anfgflag; the points file is now stride 4 (x, y, b, fg), and the component stays backward-compatible.Notes
research/profile-dots/stipple.mjs) is deterministic and reproduces the committedpoints.jsonbyte-for-byte.tsc+ lint clean.master), re-presented cleanly againstmaster.🤖 Generated with Claude Code
Generated by Claude Code