← back to Designer Wallcoverings
Fix room-setting pattern scale: drive tiling by real repeat, not fixed-3
d4a51d6f045827eb41d53429b09d506b6fdca718 · 2026-06-23 13:18:26 -0700 · Steve
Steve: rooms must reflect each pattern's repeat or the scale is wrong. Was
hardcoded 3 tiles across regardless of repeat, so a 60in large-scale repeat and
a 10in small repeat rendered at identical visual scale. Now anchored to the
approved Ebano look (19.7in repeat == 3 tiles): tiles_across = 3*(19.7/repeat_in),
clamped 1..8. Large repeat -> fewer/bigger motifs, small repeat -> more/denser.
Anchor bakes in the coordonne-swatch repeats-per-image factor so it never
multiplies to mush. Regeneration of existing 557 rooms required to apply.
Files touched
M shopify/scripts/build-room-composite.py
Diff
commit d4a51d6f045827eb41d53429b09d506b6fdca718
Author: Steve <steve@designerwallcoverings.com>
Date: Tue Jun 23 13:18:26 2026 -0700
Fix room-setting pattern scale: drive tiling by real repeat, not fixed-3
Steve: rooms must reflect each pattern's repeat or the scale is wrong. Was
hardcoded 3 tiles across regardless of repeat, so a 60in large-scale repeat and
a 10in small repeat rendered at identical visual scale. Now anchored to the
approved Ebano look (19.7in repeat == 3 tiles): tiles_across = 3*(19.7/repeat_in),
clamped 1..8. Large repeat -> fewer/bigger motifs, small repeat -> more/denser.
Anchor bakes in the coordonne-swatch repeats-per-image factor so it never
multiplies to mush. Regeneration of existing 557 rooms required to apply.
---
shopify/scripts/build-room-composite.py | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/shopify/scripts/build-room-composite.py b/shopify/scripts/build-room-composite.py
index 113c94e4..f8be6116 100644
--- a/shopify/scripts/build-room-composite.py
+++ b/shopify/scripts/build-room-composite.py
@@ -22,14 +22,18 @@ BW_L, BW_R = 256, 768
BW_T, BW_B = 160, 720
MOLD = 14 # white molding frame thickness around the pattern
-# pattern tiled on the wall. NOTE: Tres Tintas swatches are "repeated-patterns"
-# previews that already contain several motif repeats, so we tile only ~3 across
-# (the proven-good look from the approved pilot) — NOT the physical repeat count,
-# which would multiply an already-repeated image into mush.
+# pattern tiled on the wall, scaled by the REAL pattern repeat so the wall reads
+# at true physical scale (a large 60" repeat shows ~1 big motif; a small 10"
+# repeat shows ~6). Anchored to the approved Ebano look: 19.7" repeat == 3 tiles
+# across. tiles_across = 3 * (19.7 / repeat_in). This bakes in the "swatch already
+# contains a few repeats" factor via the anchor, so we never multiply to mush.
+# Clamped to a sane band so odd/missing repeats can't blow up the scale.
+ANCHOR_REPEAT_IN, ANCHOR_TILES = 19.7, 3.0
pat = Image.open(PATTERN).convert("RGB")
inner_l, inner_t = BW_L + MOLD, BW_T + MOLD
inner_w, inner_h = (BW_R - BW_L) - 2 * MOLD, (BW_B - BW_T) - 2 * MOLD
-repeats_across = 3.0
+repeats_across = ANCHOR_TILES * (ANCHOR_REPEAT_IN / max(REPEAT_IN, 4.0))
+repeats_across = max(1.0, min(8.0, repeats_across)) # clamp 1..8 across
tile_px = max(24, int(inner_w / repeats_across))
pat_t = pat.resize((tile_px, tile_px))
wall = Image.new("RGB", (inner_w, inner_h))
← a2ad8809 collection hero pipeline: heuristic-shortlist + Gemini visio
·
back to Designer Wallcoverings
·
Graft native-grid infinite scroll onto LIVE theme (newwall-i ffd94410 →