Repository navigation
feat: strengthen polar, and test on wasip1/wasm - #11
Merged
Merged
Conversation
Two things. polar was the weakest of the six renderers: an evenly spaced ring of evenly filled wedges reduces, at the resolution a perceptual hash works at, to "a grey annulus" whatever the cells say, so its marks scored far closer together than they looked. Information a coarse comparison can see has to live in the low frequencies, which for a radial figure means the profile from the middle outwards. So the profile now carries identity too: ring widths are drawn rather than uniform and re-proportioned by the patch, each ring has its own density, and a centre device — disc, ring, rosette or star — fills the hole, which is the most visible position on the mark and was previously wasted. The ring and sector counts span a wider range. Weakest relation rises from 14 to 16 bits, major jumps from 18 to 22, the global floor from 6 to 8, and the mean over all pairs from 43.1 to 47.7. The gap between intra-major and inter-major means widens from 1.4 to 3.9, so the family signal is stronger as well. Four further ideas were measured and rejected, and the reasons are recorded on the renderer, because they are all the same reason and the next person will have the same ideas. On a radial figure anything large enough for a coarse comparison to see is large enough to dominate it: a heavy outer rim on the archetype stream made every version of a major share one silhouette, and on the patch stream it drowned out the symmetry that distinguishes majors; putting overall size on the variant stream separated minors and pushed patches together by as much; independent per-ring rotation broke the fold symmetry a major is recognised by. What remains is the configuration whose weakest relation is strongest, which is what matters when the guarantee is a floor. The second thing is a wasip1/wasm leg in CI. The library is pure Go with no syscalls beyond reading a corpus file, so it ought to run anywhere Go runs, and WebAssembly is the cheapest way to prove that rather than assume it. It is also a genuinely different target — no FMA contraction, 32-bit pointers, a sandboxed filesystem — so it is a real test of whether the suite's float tolerances hold. The race detector does not support wasm, so that leg runs without it; the native legs cover it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KwWthYNYf1egKNFrFS83Dm
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.
polar was the weakest of the six
An evenly spaced ring of evenly filled wedges reduces, at the resolution a
perceptual hash works at, to "a grey annulus" whatever the cells say. Its
marks scored far closer together than they looked, because the information that
distinguished them lived entirely in the high frequencies a coarse comparison
averages away.
So the radial profile now carries identity too:
family its radial rhythm, the patch stream re-proportions it;
the middle outwards rather than one uniform grey;
the most visible position on a radial mark and was previously wasted;
The family signal is stronger as well: the gap between intra-major and
inter-major means widens from 1.4 bits to 3.9.
Four ideas that were measured and rejected
Recorded on the renderer, because they are all the same reason and the next
person will have the same ideas. On a radial figure, anything large enough for
a coarse comparison to see is large enough to dominate it:
What remains is the configuration whose weakest relation is strongest — which
is what matters when the guarantee is a floor rather than an average.
A wasip1/wasm leg in CI
The library is pure Go with no syscalls beyond reading a corpus file, so it
ought to run anywhere Go runs. WebAssembly is the cheapest way to prove that
rather than assume it, and it is a genuinely different target: no FMA
contraction, 32-bit pointers, a sandboxed filesystem. If the marks come out the
same there, the suite's float tolerances are doing their job.
wasmtime is pinned and fetched from its release tarball rather than pulled in
as a third-party action. The race detector does not support wasm, so that leg
runs without it; the native legs cover it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01KwWthYNYf1egKNFrFS83Dm