# KH-002 Yin Yang (working name, not confirmed) — LOOM NOTES

**SKU:** HRIDAYA-GTC-002 / Masterpiece 002  
**OpCo:** Khard Hridaya Inc · Toronto  
**Built:** 2026-09-25, 11:05–11:20 PT

> **This is the new 002 design supplied by the founder on 2026-09-25 at 11:03 PT; it replaces Shrivatsa.**
> Old 002 (emerald field with a gold endless knot, "Shrivatsa") is retired. Nothing was deleted. Its files were moved to
> `brand/loom/retired-shrivatsa/` (11 files) and `masterpieces/HRIDAYA-GTC-002/loom/retired-shrivatsa/` (10 files incl. the old README and weaver brief).
> The old Sit renders and upload files are backed up in `kh-sit-standard/work/prev-002-shrivatsa/`.

## Files (`/workspace/hridaya/brand/loom/KH-002/`)

| File | Role |
|---|---|
| `HRIDAYA-GTC-002-LOOM-MASTER.svg` | **The master.** viewBox 0 0 1500 1500 = 1500 mm round. Flat fills only. Palette and geometry are in `<metadata>` |
| `HRIDAYA-GTC-002-LOOM-6000.png` | 6000×6000 render of the SVG (4 px/mm, about 8.3 px per knot), transparent outside the round |
| `HRIDAYA-GTC-002-LOOM.pdf` | Vector PDF with a 1500×1500 mm page (4251.97 pt, same as KH-009) |
| `KH-002-FACE-2048.png` | Flat face = the master rendered at 2048 px, white outside the round |
| `002-check.png` | Founder photo · new flat face · new Sit |
| `002-zoom-600.png` | Two 600 px crops of the 6000 render at 1:1 (gold-dot edge; S-curve inflection) |

Derived from this master (per the 2026-09-25 standard): `kh-sit-standard/out/sit-002.png|.jpg` (make_sit.py),
`kh-sit-upload/sit/sit-002.jpg`, and `kh-sit-upload/face/face-002.jpg` (1600², from LOOM-6000 on white, q90).
Working files are in `/workspace/w002/`.

## Source → rectified photo

- **Source:** `/workspace/002-new-founder-ref.jpg`, 1152×1728 px on disk (it previews at 683×1024). It shows a round carpet at an angle on a beige floor in hard sun.
- **Rectification:** the red band was segmented and both of its edges traced. The outer edge was traced only where it is fully in frame: the carpet runs off **both** the left and the right photo edges, so those points were dropped. A full **homography** was then fitted that maps the outer and inner edges to two concentric circles. The RMS error is 0.45 % of the radius (about 3 photo px). A plain affine fit was clearly worse (2.4 %). The remaining rotation was fixed so that the photo's vertical stays vertical.
- **Light removal:** the red band should be one flat colour, so its brightness was used as a light probe. I fitted a smooth gradient plus one straight shadow edge in the floor plane: `exp(quadratic) × (1 − 0.80·sigmoid)`. Log RMS error was 0.09. I then divided that fit out of the whole carpet. The fit shows a hard diagonal shadow across the upper-left of the red band (it only grazes the yin-yang) and a strong falloff of the sun from top to bottom. After correction the band is flat: L* stays within about ±1.5 from r 560 to 735 mm.

## Geometry (measured, then made exact)

| Item | Measured on rectified photo | Master |
|---|---|---|
| Red band inner edge / outer radius | 0.7497 | **0.75 → yin-yang r = 562.5 mm, band 187.5 mm wide (0.25 R, about 90 knots)** |
| S-curve | fits the photo's blue/gold split at 99.1 % pixel agreement | two semicircles of r = 281.25 mm (half the yin-yang radius), centred at (750, 468.75) and (750, 1031.25) |
| S-axis rotation | 0.25° off vertical | **vertical** (0.25° is within the rectification's rotation uncertainty) |
| Dot radius | gold dot 0.1287 · navy dot 0.1245 of the yin-yang radius | **both 71.2 mm** (the mean, 0.1266 × 562.5; ≈ 69 knots across) |
| Dot centres | gold dot 14.8 mm left of its true spot; navy dot 14.3 mm toward the centre | **exactly on the S-axis at ±281.25 mm** (true yin-yang geometry) |
| Orientation | blue upper-left with its head at the top; gold lower-right with its head at the bottom | same: pale-gold dot in the blue head, navy dot in the gold head |

The outer circle, the S (4 arcs), and both dots are written as true SVG arcs, not traced curves. The mottle shapes sit inside
`clipPath`s made from those exact half outlines, so every blue/gold/red edge is the true geometry.

## Palette (7 yarns)

Colours were sampled from the **photo's own pixels in its best-lit areas** (lit fraction ≥ 0.85 of the sunniest part of the rug; 0.75 for Deep Amber, which has little area in full sun). I used the "yarn-top" band, the 55th–85th luminance percentile, so the shadowed gaps between coil rows and the specular glints are left out. Share is measured on the 6000 render inside the round. Knot counts are approximate (share × 410,900).

| Yarn | Hex | Role | Share | ≈ Knots |
|---|---|---|---|---|
| Temple Crimson | `#9A1918` | outer band (single red) | 43.5 % | ~179,000 |
| Midnight Navy | `#041429` | blue-dark · blue-half base · navy dot | 19.2 % | ~79,000 |
| Royal Blue | `#043473` | blue-mid · cloud mottle | 5.4 % | ~22,000 |
| Lapis Bright | `#006EC8` | blue-light · cloud highlights | 3.6 % | ~15,000 |
| Deep Amber | `#AF5F14` | gold-dark · gold-half base | 8.7 % | ~36,000 |
| Saffron Gold | `#E49614` | gold-mid · cloud mottle | 9.0 % | ~37,000 |
| Pale Gold | `#F1C281` | gold-light · cloud highlights · gold dot | 10.5 % | ~43,000 |

This is 7 yarns, one fewer than the "about 8–12" guide. The design only has 7 distinct colours. The gold dot measured the same as Pale Gold once the light was corrected (Lab 219/136/169 vs 219/134/175). The navy dot measured the same as Midnight Navy. The red band is one flat red: the radial profile after correction shows no second red. No colour was invented to reach 8.

## Mottle (3 flat tones per half)

- For each half, I took the lightness of the light-corrected photo, smoothed it (median 9 px, then Gaussian 5 mm) so the coil-row texture drops out, and split it into 3 tones with k-means. Near the S edge, the rim and the dots I only used pixels at least 8 mm inside that half's colour in the photo. This avoids blue/gold colour bleed. Everything closer than that was filled from the nearest tone.
- The tone map was smoothed into organic cloud shapes (Gaussian 7 mm on each tone). Then each tone was opened with a 3-knot-wide disc, and any patch smaller than about 6×6 knots was merged into its neighbour. Both steps were measured inside the half, so no sliver hugs an edge.
- The shapes are traced as smooth closed Bézier curves (Catmull-Rom, about 2.5 mm spacing) and stacked dark → mid → light inside each half.
- **Knot check** on the 6000 render, with anti-aliasing removed by a 5×5 majority: no colour has any region under 3×3 knots and no thin strands, **except the two tail tips of the S**. By definition each tip narrows to a point, so the last ~5 mm at (750, 1312.5) and (750, 187.5) is under 3 knots wide. The weaver knots each cusp to a point. Around each cusp a single tone is kept within 40 mm, so the tip is never cut up by mottle.

## Knot context (150 knots/in²)

A 1.5 m round is 59.1 in across, about 2,740 in², so **about 410,900 knots** and **about 723 knots across**. One knot is about 2.07 mm. 3×3 knots is about 6.2 × 6.2 mm (38.7 mm²).

## SVG

**9 filled `<path>` elements** + 2 `clipPath` paths = 11 paths, **49 sub-paths** (42 mottle contours: Royal Blue 13, Lapis Bright 14, Saffron Gold 2, Pale Gold 13), **7 colours** (checked: only the 7 palette hexes appear). 0.40 MB.
Element order: `outer-band` → `blue-half-base` (+ clipped `blue-royal-blue`, `blue-lapis-bright`) → `gold-half-base` (+ clipped `gold-saffron-gold`, `gold-pale-gold`) → `gold-dot`, `navy-dot`.

## Where I interpreted the founder's photo

1. **Lighting removed, not designed in:** the diagonal shadow across the upper-left of the band, the top-to-bottom sun falloff, and the rolled-rim highlight are all removed. The concentric coil lines are treated as texture, and the red band is one red.
2. **Mottle follows the light-corrected photo.** Two things may look like light but are in the photo after correction, so they were **kept as design**: the continuous bright-blue band along the top edge of the blue half (it is still there when compared with the evenly lit red band next to it), and the darker amber along the lower-right edge of the gold half.
3. **Dots moved onto true geometry:** in the photo both dots sit about 15 mm off (gold dot to the left, navy dot toward the centre). They were placed exactly at ±281.25 mm on the S-axis. The mottle around each dot was moved with it (fully within about 93 mm of the centre, fading to nothing by about 250 mm), so the pale ring around the navy dot and the royal ring around the gold dot stay concentric.
4. **Dot size** is the mean of the two measured dots (they differed by 3 %). The dots are flat: Pale Gold and Midnight Navy. The faint star/radial flecks inside the photo's gold dot are treated as pile texture.
5. **S-axis snapped to vertical** (measured 0.25°).
6. **Band ratio rounded** from 0.7497 to 0.75.
7. **Midnight Navy is very deep** (`#041429`). That is honestly what the lit yarn tops of the dark areas measure in his photo. If the founder wants the "deep royal blue" half to read bluer in silk, that is a one-value change in the SVG palette. Nothing else would change.
8. The founder's photo crops the carpet on both sides. The design there (red band only) follows from the round geometry.

No weaver or artisan names. Not a medical device; no health claims.
