Revert jitter hue tint -- caused a visible artifact, not worth the risk

The hue tint (added to make the +-1px jitter shift more visible) caused
a real, reported visual bug: a solid-colored strip on whichever edge
_glitch_shift's Padding fell on, seen as "a gradient" on the right side
of the art. Root cause: filter.Hue was wrapping the *padded* result, so
it tinted the shift's own blank margin along with the real image
content, instead of leaving that margin neutral.

Tried reordering (tint zoom first, then pad/shift it) to fix that, but
that exposed a worse problem: the padding's true underlying fill is dark
enough that, once genuinely untinted, it reads as actual black border --
34 corner hits across 200 frames, far worse than any previous
configuration.

Reverting the hue tint entirely rather than continuing to patch it.
Plain +-1px shift, no tint, is back -- confirmed 0 black-corner hits
across 200 frames. The jitter's position shift is confirmed mechanically
correct (pixel-diffed in isolation to a clean, alternating 1-column
shift) but stays visually subtle; making it more noticeable without
reopening either the border or an artifact needs a more careful pass,
not another quick layer on top of this mechanism.
This commit is contained in:
poprhythm committed 2026-10-09 16:55:08 -04:00
1 parent 519a47d970
commit 60feeaec2c
1 file changed
+18 -16
+18 -16
View File
@@ -528,23 +528,25 @@ def _glitch_jitter(zoom):
# cancel out, e.g. -2 and 2, which silently zeroed out the
# jitter in about half the states when this was tried before).
#
# +-2px was tried as a more-visible alternative and reopened
# the black border (10 corner hits across 130 frames, vs 0 at
# +-1px) -- the margin _glitch_shift relies on genuinely isn't
# big enough for +-2px in every zoom_position/origin
# combination, even though it read as safe in an earlier,
# narrower check. So the position shift stays capped at
# +-1px, and a brief hue tint (filter.Hue, the same mechanism
# _glitch_band already used before the RGB-split bands were
# disabled) is layered onto each shifted state instead to
# make the burst read clearly against scanlines/corner ticks
# -- a color change doesn't touch geometry, so it carries none
# of the margin risk a bigger shift does.
# Two attempts to make this more visible were each tried and
# reverted: +-2px reopened the black border (10 corner hits
# across 130 frames, vs 0 at +-1px -- _glitch_shift's margin
# genuinely isn't big enough for +-2px in every
# zoom_position/origin combination). A filter.Hue tint on
# each state was tried next, in both orderings relative to
# _glitch_shift's Padding -- tinting the already-padded result
# tinted the shift's own blank margin too (a visible teal
# strip on whichever edge got padded, reported as "a
# gradient" on the art), and tinting first, before padding
# (to keep the margin neutral), instead exposed that the
# margin's true underlying fill is dark enough to read as a
# real black border (34 hits across 200 frames). Both
# reverted; the shift stays plain, capped at +-1px, with no
# color tint -- confirmed 0 black-corner hits at this
# configuration, which matters more here than making the
# burst louder.
shift = random.number(0, 2) - 1 # random.number requires min >= 0
hue = random.number(0, 1)
hue_change = 150.0 if hue == 0 else -60.0
tinted = filter.Hue(child = _glitch_shift(zoom, shift), change = hue_change)
shifted = render.Box(width = ART_SLOT, height = ART_SLOT, child = tinted)
shifted = render.Box(width = ART_SLOT, height = ART_SLOT, child = _glitch_shift(zoom, shift))
for _ in range(GLITCH_HOLD_TICKS):
children.append(shifted)
rest = render.Box(width = ART_SLOT, height = ART_SLOT, child = zoom)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.