The crowd sheet becomes an animation sheet: three frames, and the stand sits back

Oliver: "when clapping I barely see any movement at all now.. also all of the
art could be colored a little more dim as it is perspective wise farther in the
background and should not steal too much attention" — and then, "can't we make
an animation sprite sheet of the new crowd?", which is the answer to the first
half of the first one.

A third roll (_crowdroll.py mid) takes the arms-up frame as its reference and
asks for the same standing people with their hands brought together in front of
their faces. It drifts by 53% of its pixels and that does not matter: the same
filter keeps only what was stand and became person. 100 arm blobs in pose 1, 74
in pose 2, 134 spectators once merged, 28 of them owning BOTH poses — those 28
cycle between two raised poses, which is a clap; the rest alternate with the
seated frame, which is arms going up and down.

The point is the cycle, not the pose. A raiser is ~8x6 logical px on a phone and
one that appears and then holds for a second is not something the eye catches;
arms moving at 3.5 Hz is. Measured: 2-3% of the stand band now changes every
90 ms during a won game, against near zero before.

The sheets are one file per court now — three frames stacked, graded as a single
image so they cannot drift apart in colour — and x_crowd2/_c2/_h2 are deleted.

TUNE.standBack 0.22 dims the crowd and the boards on every court before the
night court's own dim and the splatter rot, in the one function both the cached
backdrop and the live raisers already read.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-21 13:59:02 +02:00
1 parent 1ad2898530
commit 0250e9bd20
14 files changed
+333 -198

No files matched your search

+142 -97
View File
@@ -1,100 +1,145 @@
// GENERATED by assets/_crowdpass.py — do not edit by hand, re-run the tool.
// The spectators who can stand up: [x, y, w, h] as fractions of the crowd sheet, sorted
// left to right. Each box holds ONE person whose arms are raised in <crowd>2 and nobody
// else; everything outside these boxes is identical in the two sheets, which is what lets
// render.js raise them one at a time with no seam. See "THE CLAP FRAME" in PROJECT.md.
// The crowd sheet is FRAMES frames stacked vertically: 0 seated (the backdrop), 1 arms
// high, 2 hands together in front of the face. RAISERS lists the spectators who can move:
// [x, y, w, h] as fractions of ONE FRAME, then a bitmask of the raised frames that person
// actually appears in (1 = arms high, 2 = mid-clap, 3 = both, and 3 is a real clap cycle).
// Each box holds ONE person and nobody else, and outside these boxes every frame is
// pixel-identical to frame 0 — which is what lets render.js animate them one at a time
// with no seam. See "THE CROWD SHEET" in PROJECT.md.
export const FRAMES = 3;
export const RAISERS = [
[-0.0014, 0.8451, 0.0327, 0.0521],
[0.0021, 0.7148, 0.0256, 0.0286],
[0.0071, 0.9128, 0.0369, 0.0456],
[0.0234, 0.5560, 0.0163, 0.0417],
[0.0391, 0.6419, 0.0384, 0.0234],
[0.0533, 0.7669, 0.0241, 0.0247],
[0.0611, 0.5586, 0.0661, 0.0404],
[0.0646, 0.7135, 0.0369, 0.0299],
[0.0689, 0.0521, 0.0227, 0.0221],
[0.0859, 0.7669, 0.0249, 0.0247],
[0.1016, 0.2643, 0.0256, 0.0312],
[0.1236, 0.7214, 0.0376, 0.0221],
[0.1399, 0.8516, 0.0249, 0.0273],
[0.1435, 0.1224, 0.0334, 0.0221],
[0.1577, 0.1732, 0.0199, 0.0586],
[0.1896, 0.7669, 0.0213, 0.0247],
[0.1932, 0.1732, 0.0170, 0.0508],
[0.1996, 0.0742, 0.0312, 0.0443],
[0.2017, 0.5990, 0.0298, 0.0299],
[0.2067, 0.7148, 0.0263, 0.0286],
[0.2358, 0.8594, 0.0462, 0.0234],
[0.2401, 0.7669, 0.0241, 0.0247],
[0.2599, 0.5586, 0.0518, 0.0599],
[0.2628, 0.1732, 0.0178, 0.0521],
[0.2898, 0.7135, 0.0376, 0.0299],
[0.2976, 0.8086, 0.0384, 0.0286],
[0.2997, 0.0326, 0.0362, 0.0651],
[0.3026, 0.7669, 0.0419, 0.0286],
[0.3068, 0.8828, 0.1044, 0.0755],
[0.3189, 0.1732, 0.0185, 0.0482],
[0.3643, 0.4883, 0.0170, 0.0781],
[0.3686, 0.7148, 0.0312, 0.0286],
[0.3885, 0.4883, 0.0178, 0.0729],
[0.3899, 0.7669, 0.0192, 0.0247],
[0.3956, 0.1732, 0.0149, 0.0508],
[0.3984, 0.8503, 0.0284, 0.0234],
[0.4062, 0.2604, 0.0206, 0.0247],
[0.4062, 0.5755, 0.0206, 0.0234],
[0.4062, 0.6146, 0.0277, 0.0247],
[0.4233, 0.7148, 0.0376, 0.0286],
[0.4233, 0.9271, 0.0540, 0.0352],
[0.4268, 0.1914, 0.0107, 0.0417],
[0.4276, 0.8438, 0.0369, 0.0534],
[0.4645, 0.0286, 0.0376, 0.0612],
[0.4737, 0.5534, 0.0284, 0.0456],
[0.4858, 0.9232, 0.0206, 0.0286],
[0.4901, 0.6315, 0.0455, 0.0208],
[0.4901, 0.7669, 0.0533, 0.0247],
[0.4979, 0.7148, 0.0355, 0.0286],
[0.5064, 0.5755, 0.0213, 0.0234],
[0.5398, 0.5586, 0.0206, 0.0404],
[0.5568, 0.7148, 0.0376, 0.0286],
[0.5604, 0.9128, 0.0831, 0.0495],
[0.5625, 0.1497, 0.0391, 0.0312],
[0.5973, 0.5586, 0.0298, 0.0247],
[0.6023, 0.2643, 0.0249, 0.0208],
[0.6186, 0.8516, 0.0582, 0.0299],
[0.6271, 0.7669, 0.0163, 0.0247],
[0.6293, 0.7214, 0.0476, 0.0221],
[0.6435, 0.1224, 0.0341, 0.0221],
[0.6562, 0.7526, 0.0249, 0.0391],
[0.6584, 0.1732, 0.0192, 0.0586],
[0.6854, 0.7565, 0.0540, 0.0352],
[0.6925, 0.1732, 0.0178, 0.0508],
[0.6974, 0.9271, 0.0462, 0.0352],
[0.6996, 0.0742, 0.0341, 0.0404],
[0.7060, 0.8529, 0.0256, 0.0260],
[0.7266, 0.5586, 0.0426, 0.0430],
[0.7393, 0.7669, 0.0249, 0.0286],
[0.7401, 0.5977, 0.0249, 0.0208],
[0.7521, 0.9128, 0.1207, 0.0456],
[0.7585, 0.0430, 0.0398, 0.0247],
[0.7621, 0.1732, 0.0156, 0.0521],
[0.7692, 0.5755, 0.0249, 0.0221],
[0.7898, 0.7135, 0.0376, 0.0299],
[0.7997, 0.0326, 0.0362, 0.0651],
[0.8068, 0.7669, 0.0419, 0.0286],
[0.8232, 0.1758, 0.0142, 0.0469],
[0.8523, 0.7669, 0.0213, 0.0247],
[0.8636, 0.7148, 0.0348, 0.0286],
[0.8643, 0.4883, 0.0170, 0.0742],
[0.8885, 0.4883, 0.0178, 0.0729],
[0.8928, 0.1732, 0.0170, 0.0508],
[0.8984, 0.8503, 0.0284, 0.0234],
[0.9062, 0.2604, 0.0206, 0.0247],
[0.9062, 0.5755, 0.0206, 0.0221],
[0.9233, 0.7148, 0.0376, 0.0286],
[0.9268, 0.1901, 0.0149, 0.0430],
[0.9276, 0.8438, 0.0369, 0.0534],
[0.9318, 0.6914, 0.0334, 0.0208],
[0.9318, 0.9271, 0.0455, 0.0352],
[0.9645, 0.0286, 0.0369, 0.0612],
[0.9737, 0.5586, 0.0241, 0.0404],
[-0.0014, 0.8451, 0.0327, 0.0521, 3],
[0.0021, 0.6458, 0.0291, 0.0247, 2],
[0.0021, 0.7148, 0.0256, 0.0286, 1],
[0.0071, 0.9128, 0.0369, 0.0456, 1],
[0.0234, 0.5560, 0.1037, 0.0625, 3],
[0.0355, 0.6419, 0.0419, 0.0286, 3],
[0.0533, 0.7669, 0.0241, 0.0247, 1],
[0.0646, 0.7135, 0.0369, 0.0299, 1],
[0.0689, 0.0521, 0.0227, 0.0221, 1],
[0.0689, 0.0977, 0.0291, 0.0208, 2],
[0.0859, 0.7669, 0.0249, 0.0247, 1],
[0.1016, 0.2630, 0.0256, 0.0326, 3],
[0.1065, 0.8086, 0.0206, 0.0273, 2],
[0.1236, 0.7214, 0.0376, 0.0221, 1],
[0.1321, 0.0911, 0.0277, 0.0312, 2],
[0.1399, 0.8516, 0.0249, 0.0273, 3],
[0.1435, 0.1224, 0.0334, 0.0221, 1],
[0.1577, 0.1732, 0.0199, 0.0586, 1],
[0.1605, 0.5990, 0.0213, 0.0299, 2],
[0.1641, 0.8190, 0.0589, 0.0286, 2],
[0.1690, 0.0898, 0.0284, 0.0286, 2],
[0.1690, 0.3086, 0.0249, 0.0299, 2],
[0.1896, 0.7669, 0.0213, 0.0247, 1],
[0.1932, 0.1732, 0.0170, 0.0508, 1],
[0.1982, 0.5612, 0.0334, 0.0260, 2],
[0.1996, 0.0742, 0.0312, 0.0443, 3],
[0.2017, 0.5990, 0.0298, 0.0299, 3],
[0.2067, 0.3008, 0.0206, 0.0312, 2],
[0.2067, 0.7148, 0.0263, 0.0286, 1],
[0.2358, 0.0820, 0.0334, 0.0365, 2],
[0.2358, 0.6458, 0.0291, 0.0247, 2],
[0.2358, 0.8086, 0.0291, 0.0391, 2],
[0.2358, 0.8594, 0.0462, 0.0365, 3],
[0.2401, 0.7669, 0.0241, 0.0247, 1],
[0.2599, 0.5586, 0.0518, 0.0599, 1],
[0.2628, 0.1732, 0.0178, 0.0521, 1],
[0.2734, 0.6458, 0.0249, 0.0247, 2],
[0.2898, 0.7135, 0.0376, 0.0299, 1],
[0.2976, 0.8086, 0.0384, 0.0286, 3],
[0.2997, 0.0326, 0.0362, 0.0651, 1],
[0.3026, 0.2253, 0.0241, 0.0247, 2],
[0.3026, 0.7669, 0.0419, 0.0286, 1],
[0.3068, 0.6458, 0.0206, 0.0247, 2],
[0.3068, 0.8828, 0.1044, 0.0755, 3],
[0.3189, 0.1732, 0.0185, 0.0482, 1],
[0.3643, 0.4883, 0.0170, 0.0781, 3],
[0.3686, 0.7148, 0.0312, 0.0286, 1],
[0.3693, 0.2878, 0.0320, 0.0260, 2],
[0.3693, 0.8138, 0.0291, 0.0378, 2],
[0.3729, 0.0977, 0.0249, 0.0208, 2],
[0.3771, 0.1732, 0.0334, 0.0885, 3],
[0.3885, 0.4883, 0.0178, 0.0729, 1],
[0.3899, 0.7669, 0.0192, 0.0247, 1],
[0.3984, 0.8503, 0.0284, 0.0234, 3],
[0.4062, 0.2604, 0.0206, 0.0247, 3],
[0.4062, 0.5755, 0.0334, 0.0638, 3],
[0.4070, 0.8086, 0.0199, 0.0273, 2],
[0.4233, 0.7148, 0.0376, 0.0286, 1],
[0.4233, 0.9271, 0.0540, 0.0352, 1],
[0.4268, 0.1914, 0.0107, 0.0417, 1],
[0.4276, 0.8438, 0.0369, 0.0534, 3],
[0.4354, 0.6523, 0.0298, 0.0286, 2],
[0.4645, 0.0286, 0.0376, 0.0612, 1],
[0.4730, 0.8216, 0.0241, 0.0260, 2],
[0.4737, 0.5534, 0.0284, 0.0456, 1],
[0.4858, 0.9232, 0.0206, 0.0286, 1],
[0.4901, 0.6315, 0.0455, 0.0443, 3],
[0.4901, 0.7669, 0.0533, 0.0247, 1],
[0.4979, 0.7148, 0.0355, 0.0286, 1],
[0.5064, 0.5755, 0.0213, 0.0234, 1],
[0.5355, 0.8086, 0.0249, 0.0286, 2],
[0.5398, 0.5586, 0.0206, 0.0404, 1],
[0.5568, 0.7148, 0.0376, 0.0286, 1],
[0.5604, 0.9128, 0.0831, 0.0495, 1],
[0.5625, 0.1497, 0.0391, 0.0312, 3],
[0.5689, 0.0977, 0.0291, 0.0208, 2],
[0.5973, 0.5586, 0.0298, 0.0247, 1],
[0.6023, 0.2630, 0.0249, 0.0221, 3],
[0.6101, 0.1185, 0.0341, 0.0339, 2],
[0.6186, 0.8516, 0.0582, 0.0299, 3],
[0.6271, 0.7669, 0.0163, 0.0247, 1],
[0.6293, 0.7214, 0.0476, 0.0221, 1],
[0.6314, 0.0846, 0.0305, 0.0378, 2],
[0.6435, 0.1224, 0.0341, 0.0221, 1],
[0.6562, 0.7526, 0.0249, 0.0391, 1],
[0.6584, 0.1732, 0.0192, 0.0586, 1],
[0.6648, 0.5612, 0.0291, 0.0260, 2],
[0.6690, 0.0898, 0.0284, 0.0286, 2],
[0.6690, 0.3021, 0.0249, 0.0365, 2],
[0.6854, 0.7565, 0.0540, 0.0352, 1],
[0.6925, 0.1732, 0.0178, 0.0508, 1],
[0.6974, 0.9271, 0.0462, 0.0352, 1],
[0.6996, 0.0742, 0.0341, 0.0443, 3],
[0.7024, 0.6458, 0.0249, 0.0286, 2],
[0.7060, 0.8529, 0.0256, 0.0260, 3],
[0.7266, 0.5586, 0.0426, 0.0430, 1],
[0.7351, 0.0820, 0.0341, 0.0365, 2],
[0.7358, 0.6458, 0.0291, 0.0247, 2],
[0.7393, 0.7669, 0.0249, 0.0286, 1],
[0.7401, 0.5977, 0.0249, 0.0208, 1],
[0.7401, 0.8398, 0.0327, 0.0273, 2],
[0.7521, 0.9128, 0.1207, 0.0456, 1],
[0.7585, 0.0430, 0.0398, 0.0247, 1],
[0.7621, 0.1732, 0.0156, 0.0521, 1],
[0.7692, 0.5755, 0.0249, 0.0221, 1],
[0.7898, 0.7135, 0.0376, 0.0299, 1],
[0.7997, 0.0326, 0.0362, 0.0651, 1],
[0.8026, 0.2253, 0.0241, 0.0247, 2],
[0.8026, 0.8086, 0.0334, 0.0417, 2],
[0.8068, 0.6458, 0.0241, 0.0247, 2],
[0.8068, 0.7669, 0.0419, 0.0286, 1],
[0.8232, 0.1758, 0.0142, 0.0469, 1],
[0.8374, 0.5221, 0.0227, 0.0378, 2],
[0.8438, 0.1185, 0.0291, 0.0260, 2],
[0.8523, 0.7669, 0.0213, 0.0247, 1],
[0.8636, 0.7148, 0.0348, 0.0286, 1],
[0.8643, 0.4883, 0.0419, 0.0781, 3],
[0.8693, 0.2878, 0.0284, 0.0260, 2],
[0.8693, 0.8138, 0.0291, 0.0378, 2],
[0.8729, 0.0977, 0.0249, 0.0208, 2],
[0.8771, 0.1732, 0.0327, 0.0885, 3],
[0.8984, 0.8503, 0.0284, 0.0234, 3],
[0.9062, 0.2604, 0.0206, 0.0247, 3],
[0.9062, 0.5755, 0.0341, 0.0638, 3],
[0.9070, 0.8086, 0.0199, 0.0273, 2],
[0.9233, 0.7148, 0.0376, 0.0286, 1],
[0.9268, 0.1901, 0.0149, 0.0430, 1],
[0.9276, 0.8438, 0.0369, 0.0534, 3],
[0.9318, 0.6914, 0.0334, 0.0208, 1],
[0.9318, 0.9271, 0.0455, 0.0352, 1],
[0.9645, 0.0286, 0.0369, 0.0612, 1],
[0.9695, 0.8594, 0.0320, 0.0234, 2],
[0.9730, 0.8216, 0.0241, 0.0365, 2],
[0.9737, 0.5586, 0.0241, 0.0404, 1],
];