Game Art & Design Jul 11, 2026

Winter Store Capsule HDR Downscale Without False Bloom - December 2026 Art Pass

December 2026 winter Steam capsule HDR downscale art pass—ffmpeg ladder for snow highlights, W1–W6 gates, winter_capsule_tone_receipt_v1.json, safe-zone cross-check without false bloom.

By GamineAI Team

Winter Store Capsule HDR Downscale Without False Bloom - December 2026 Art Pass

Pixel-art hero for winter store capsule HDR downscale without false bloom December 2026 art pass

October Next Fest: your HDR screenshot pass GREEN—screenshot_tone_receipt_v1.json filed, HUD readable at 360px. December refresh: you add snow biome lighting to the same HDR master, downscale the header capsule and main capsule for winter store art, and upload. Discord: "why does the logo look like a light leak?"

December 2026 micro-studios refresh Steam header + main capsule and one–three gallery shots for holiday traffic without re-capturing entire sets. Reusing October HDR masters saves time—but winter highlights (snow, rim lights, cool fill) push bloom thresholds past what October tone maps assumed. Downscaling the capsule crop (not full 1920×1080 screenshots) reintroduces false bloom on title-safe zones when teams skip a second tone proof.

This Game Art & Design pass is the December winter capsule lane—not the October HDR screenshot art pass (gallery PNG tone map), not screenshot safe zones (composition gates), not Lesson 254 BUILD_RECEIPT milestone (hdr_steam_capture_export_receipt_v1). It delivers one ffmpeg downscale ladder for winter lighting, safe-zone cross-check on capsule dimensions, and winter_capsule_tone_receipt_v1.json before holiday uploads.

Pair December defer list (FREEZE lane for capsule masters), February fest prep calendar, and BUILD_RECEIPT optional winter_capsule_tone_ok.

Non-repetition note: October art pass owns screenshot_tone_receipt_v1 for gallery captures. This URL owns winter_capsule_tone_receipt_v1 for header + main capsule downscale from reused HDR masters with snow-highlight failure modes.

Why this matters now (December 2026)

  1. Holiday capsule refreshes — Teams swap winter art without re-running October full capture sprint.
  2. HDR master reuse — Snow and cool grade boost peak luminance; October SDR proof no longer matches.
  3. Capsule ≠ screenshot dimensions — Steam header (460×215) and main capsule (1232×706) downscale differently than 1920×1080 gallery PNGs.
  4. False bloom on logo safe zone — Title and logo sit in crop centers; winter bloom eats legibility before players open the store page.
  5. Defer list FREEZEDecember BUILD_RECEIPT defer expects FREEZE capsule masters—this pass is the proof that freeze is honest.

Direct answer: Re-tone-map winter HDR master to SDR, run one ffmpeg ladder per capsule size, cross-check five safe-zone gates on downscaled crops, file winter_capsule_tone_receipt_v1.json with gates W1–W6 before Steam upload.

Who this art pass is for

Audience Outcome
Beginner artist One ffmpeg command chain per capsule size
Solo producer Block winter upload without tone receipt
Working dev Wire winter_capsule_tone_ok on BUILD_RECEIPT
Team with October receipts Extend HDR pipeline without re-inventing

Time: ~90 minutes first winter refresh; ~25 minutes per capsule size once ladder is pinned.

Format ladder (store art cluster)

Artifact Role
This art pass December winter capsule HDR downscale + winter_capsule_tone_receipt_v1
October HDR art pass Gallery screenshot tone map + screenshot_tone_receipt_v1
Safe zones five gates Composition + phone-width
Lesson 254 DaVinci HDR→SDR capture BUILD_RECEIPT
December defer list FREEZE store_capsule_winter_master
Animated GIF safe zone Motion capsule cousin

Order: October screenshot tone GREEN → winter HDR master edit → this pass on capsule exports → safe-zone gate 1 on crops → upload.

Beginner path — one ffmpeg downscale ladder (winter lighting)

Prerequisites

Step 1 — Export winter SDR proof (controlled roll-off)

Winter scenes clip highlights faster. Before downscale:

  1. Tone-map HDR → SDR with slightly lower peak white than October (snow highlights).
  2. Save winter_sdr_proof.png at working resolution.
  3. Do not reuse October proof_sdr.png as truth—winter grade differs.

Success check: Logo silhouette readable at 100% zoom on winter_sdr_proof.png—no milky halo on title edges.

Step 2 — ffmpeg ladder (capsule sizes)

Main capsule (~1232×706) — gamma-correct lanczos:

ffmpeg -i winter_sdr_proof.png -vf "scale=1232:706:flags=lanczos,format=rgba" \
  -color_primaries bt709 -color_trc iec61966-2-1 -colorspace bt709 \
  -y winter_main_capsule_sdr.png

Header capsule (~460×215) — same chain, different target:

ffmpeg -i winter_sdr_proof.png -vf "scale=460:215:flags=lanczos,format=rgba" \
  -color_primaries bt709 -color_trc iec61966-2-1 -colorspace bt709 \
  -y winter_header_capsule_sdr.png

Optional gallery refresh (1920×1080) — reuse October command for consistency:

ffmpeg -i winter_sdr_proof.png -vf "scale=1920:1080:flags=lanczos,format=rgba" \
  -y winter_gallery_01_sdr.png

Step 3 — Winter false-bloom spot check

Winter-specific failures:

Symptom Likely cause Fix
Snow reads as flat white blob Highlight clip before downscale Re-tone with lower peak
Logo glow on header crop Center-weighted bloom in master Re-crop safe zone; darken rim
Cool cast turns muddy on 460×215 Chroma collapse on tiny downscale Sharpen mild unsharp only on logo layer
October gallery OK, capsule bad Different aspect crop Run ladder per capsule size

Phone-width test: Resize winter_header_capsule_sdr.png to 360px wide—logo must remain identifiable (cousin to safe-zone gate 3).

Step 4 — Safe-zone cross-check (five gates subset)

Run on downscaled capsule PNGs:

Gate Capsule apply Pass when
G1 safe zone Logo + title inside center 80% No critical text on crop edge
G3 phone test Header at 360px width Logo readable
G4 swatch Hero character hue matches October capsule Intentional winter shift documented in receipt
G5 order If gallery slot 1 winter variant Document in gallery-order-winter.txt

Full five-gate doc: screenshot safe zones.

Developer path — gates W1–W6

Gate Check Pass when
W1 Winter HDR master version pinned winter_hdr_master_v1.png path in receipt
W2 SDR proof distinct from October winter_sdr_proof.png newer mtime
W3 ffmpeg ladder logged per capsule size Commands in receipt ffmpeg_log[]
W4 Header + main downscaled PNGs on disk Both files exist
W5 Safe-zone G1 + G3 pass on crops Booleans in receipt
W6 winter_capsule_tone_receipt_v1.json filed winter_capsule_tone_ok: true

winter_capsule_tone_receipt_v1.json

Pin at release-evidence/marketing-and-demo/winter-capsule/WINTER_CAPSULE_TONE_RECEIPT.json:

{
  "schema": "winter_capsule_tone_receipt_v1",
  "build_label": "fest-demo-2026-12-rc3",
  "winter_master": "release-evidence/marketing-and-demo/winter-capsule/winter_hdr_master_v1.png",
  "sdr_proof": "release-evidence/marketing-and-demo/winter-capsule/winter_sdr_proof.png",
  "october_cousin": "release-evidence/marketing-and-demo/hdr-false-bloom/screenshot_set_name/screenshot_tone_receipt_v1.json",
  "capsule_exports": {
    "main_1232x706": "release-evidence/marketing-and-demo/winter-capsule/winter_main_capsule_sdr.png",
    "header_460x215": "release-evidence/marketing-and-demo/winter-capsule/winter_header_capsule_sdr.png"
  },
  "ffmpeg_log": [
    "scale=1232:706:flags=lanczos,format=rgba",
    "scale=460:215:flags=lanczos,format=rgba"
  ],
  "safe_zone_checks": {
    "G1_logo_safe_zone": true,
    "G3_phone_width_360": true,
    "G4_swatch_intentional_winter_shift": true
  },
  "winter_highlight_notes": "Snow rim lowered 8% vs October master; logo unsharp 0.3 on header only",
  "cousin_lesson": "254-hdr_steam_capture_export_receipt_v1",
  "gates": {
    "W1_master_pinned": "pass",
    "W2_sdr_distinct": "pass",
    "W3_ffmpeg_ladder": "pass",
    "W4_both_capsules": "pass",
    "W5_safe_zone": "pass",
    "W6_receipt": "pass"
  },
  "winter_capsule_tone_ok": true,
  "steam_upload_allowed": true
}

BUILD_RECEIPT optional column: winter_capsule_tone_ok: true.

Thursday row review — add to marketing gate columns when winter upload precedes code promote.

Proof table (audit vocabulary)

Evidence Proves Fail signal
winter_hdr_master_v1.png Source for December refresh Reused October without version bump
winter_sdr_proof.png Tone map before downscale Direct HDR→capsule skip
winter_main_capsule_sdr.png Main store capsule Milky logo
winter_header_capsule_sdr.png Library header Unreadable at 360px
tone_compare_winter_pack.png Visual diff stack Missing from evidence folder
winter_capsule_tone_receipt_v1.json W1–W6 gates Verbal "looks fine"

Comparison pack command (standup artifact)

ffmpeg -i winter_hdr_master_v1.png -i winter_sdr_proof.png \
  -i winter_main_capsule_sdr.png -i winter_header_capsule_sdr.png \
  -filter_complex "vstack=inputs=4" -y tone_compare_winter_pack.png

Scenarios A–G (working dev)

ID Situation Playbook move
A No October receipts Run October art pass first on one gallery shot
B Only capsule refresh, no gallery W4 requires header + main only
C DaVinci export from Lesson 254 Use Resolve SDR still as winter_sdr_proof input
D Snow added in post, not engine Document in winter_highlight_notes
E GIF capsule also winterized Pair GIF safe zone pass
F Defer list FREEZE capsule Upload only after W6—no mid-freeze tweak
G February fest prep January Winter art is cosmetic; do not bump build_label for art-only

December upload calendar (art lane)

Date window Art action
Dec 13–17 Finalize winter HDR master; run W1–W3
Dec 18 File receipt; add FREEZE row in defer list
Dec 19–20 Steam upload header + main; log in BUILD_RECEIPT
Dec 20+ FREEZE — no capsule edits without exception receipt
Jan 3+ Re-entry—optional gallery winter slot if deferred

Relationship to Lesson 254 (cousin, not duplicate)

Field Lesson 254 This art pass
Schema hdr_steam_capture_export_receipt_v1 winter_capsule_tone_receipt_v1
Surface DaVinci HDR→SDR capture export Capsule downscale from winter master
BUILD_RECEIPT hdr_steam_capture_ok winter_capsule_tone_ok
When October fest capture sprint December refresh

Order: Lesson 254 GREEN on October capture → winter master edit → this pass → upload.

jq gate sketch (optional CI)

jq -e '.winter_capsule_tone_ok == true and .gates.W6_receipt == "pass"' \
  release-evidence/marketing-and-demo/winter-capsule/WINTER_CAPSULE_TONE_RECEIPT.json

Block steam_upload job in December when CAPSULE_STRICT=1.

Post-upload verification (five minutes)

After Steamworks accepts winter capsules:

  1. Open store page in logged-out browser—view header in library context.
  2. Screenshot header at default zoom; compare to winter_header_capsule_sdr.png.
  3. Check main capsule on game page—logo center not clipped.
  4. Append steam_upload_verified_utc to receipt JSON.
  5. If mismatch, do not hotfix during defer FREEZE without SHIP exception.

Steam CDN caching can delay updates 15–60 minutes—note cdn_propagation_wait in receipt notes rather than re-uploading identical bytes.

Counterarguments (honest limits)

"October receipt covers winter."
October proves gallery tone at October grade—winter snow shifts peaks.

"We only change one PNG."
Header and main are two downscales—W4 requires both.

"Photoshop export is faster."
ffmpeg ladder is reproducible—receipt ffmpeg_log[] beats hand export settings.

"Capsule art does not need BUILD_RECEIPT."
Optional column—but partners and defer FREEZE culture benefits from proof.

Solo artist evening schedule (90 minutes)

Block Action
0–20 min Export winter HDR master + SDR proof
20–40 min Run ffmpeg ladder (main + header)
40–55 min G1 + G3 safe-zone checks
55–70 min Build tone_compare_winter_pack.png
70–90 min File winter_capsule_tone_receipt_v1.json; BUILD_RECEIPT row

Winter highlight failure modes (deep dive)

Snow and holiday lighting introduce failures October screenshots rarely hit:

Failure What players see Technical trigger
Snow clip Flat white plateau in header HDR peaks > SDR roll-off before downscale
Rim bloom Logo halo at 460×215 High-frequency edge + lanczos ringing
Cool cast mud Gray-blue logo on dark UI Chroma quantize on tiny resize
Double tone map Waxy UI HDR→SDR twice (engine + ffmpeg curves)
ICC mismatch "Different on Mac" One PNG tagged sRGB, one untagged

Fix order: fix SDR proof first (W2), then re-run ladder (W3)—do not sharpen a bad tone map.

Engine vs post winter grade

Source When to use Receipt note
In-engine winter biome Live snow in capture winter_master_source: engine
DaVinci still from Lesson 254 Trailer frame reuse cousin_lesson: 254
Photoshop overlay snow Last resort Document post_composite: true in notes

Post composites fail W5 more often—plan extra G1 margin on logo.

Team handoff checklist (producer → artist → upload)

  • [ ] build_label unchanged if art-only refresh (scenario G)
  • [ ] October screenshot_tone_receipt_v1 path in october_cousin field
  • [ ] Both capsule PNGs + comparison pack in evidence folder
  • [ ] Defer list freeze_locked includes store_capsule_winter_master
  • [ ] Steamworks upload screenshot of header in library view (optional proof PNG)
  • [ ] Thursday row review if upload same week as code promote

BUILD_RECEIPT integration (optional column)

When marketing and engineering share one receipt file:

{
  "build_label": "fest-demo-2026-12-rc3",
  "winter_capsule_tone_ok": true,
  "winter_capsule_receipt_path": "release-evidence/marketing-and-demo/winter-capsule/WINTER_CAPSULE_TONE_RECEIPT.json",
  "hdr_steam_capture_ok": true,
  "holiday_defer_ok": true
}

hdr_steam_capture_ok from Lesson 254; holiday_defer_ok from December defer playbook—three marketing columns, one row review.

Outbound references

Key takeaways

  1. December capsule refresh reuses HDR masters—re-tone for winter snow highlights.
  2. winter_capsule_tone_receipt_v1 is distinct from October screenshot_tone_receipt_v1.
  3. One ffmpeg ladder per target size—main 1232×706 and header 460×215.
  4. Gates W1–W6 block upload when logo safe zone fails phone test.
  5. Safe zones five gates G1 + G3 apply to downscaled crops.
  6. Lesson 254 owns capture; this pass owns December capsule downscale.
  7. December defer list FREEZE lane expects W6 before freeze starts.
  8. False bloom on header is the highest-visibility failure—test at 360px width.
  9. Document intentional winter swatch shift in G4—avoid "looks wrong" without notes.
  10. winter_capsule_tone_ok optional on BUILD_RECEIPT links art to promote discipline.
  11. Gallery winter slot optional—use same ladder at 1920×1080 if refreshing slot 1.
  12. November jq capstone crosswalk when 266–275 child receipts share build_label.
  13. Do not bump build_label for art-only winter upload (scenario G).
  14. Comparison pack PNG answers "what changed?" in one Slack image.
  15. Pair February prep calendar for pre-freeze asset locks.

FAQ

Is this the same as the October HDR art pass?
No—October owns gallery screenshots and screenshot_tone_receipt_v1; this owns winter capsules and winter_capsule_tone_receipt_v1.

Do I need a new HDR capture?
Not always—edit October master for winter grade, then new SDR proof + downscale ladder.

What if only the header changes?
Still file receipt with header_460x215 only; note main_unchanged: true in JSON.

Steam exact capsule sizes?
Verify current Steamworks capsule requirements—update ffmpeg_log if Valve revises dimensions.

Does this replace safe-zone composition pass?
No—run both; composition first on master crop, tone pass on exports.

Can I use ImageMagick instead of ffmpeg?
Yes—log equivalent resize filter in ffmpeg_log[] for reproducibility.

Winter GIF capsule?
Add GIF safe zone pass—separate receipt lane.

Will this guarantee more wishlists?
No—it prevents illegible winter capsules—a common December store regression.

Help forward rows?
Help #33 forward (store art) when shipped—this blog is strategy; help is fix steps.

Where does HDR October receipt CI gate fit?
October jq gate on screenshot_tone_receipt_v1; add parallel jq on winter_capsule_tone_receipt_v1 for December jobs.

What if our game has no snow?
Winter refresh still applies to holiday lighting (warm rim, fog, neon)—same false-bloom mechanics; rename winter_highlight_notes to december_grade_notes.

Can we batch header + main in one ffmpeg command?
Prefer separate commands logged in ffmpeg_log[]—different aspect ratios need independent scale filters; one filter_complex is error-prone for receipts.

Should we update animated GIF capsule too?
If GIF uses same master frame, run GIF safe zone pass after static PNGs pass W5.

Closing read (December 2026)

Players see your header capsule before they read your patch notes. Winter art that looked cinematic in HDR often becomes a glowing smudge at 460×215 when teams skip a second tone proof.

Micro-studios that pin one ffmpeg ladder, cross-check safe zones on crops, and file winter_capsule_tone_receipt_v1.json treat December refresh as evidence, not a quick Photoshop export before vacation.

Start with winter_sdr_proof.png and the header downscale—if the logo survives 360px, the main capsule usually follows.

Found this useful? File the receipt before you mark capsule masters FREEZE in your December defer list.