// sigil.jsx — the Azoth emblem (squaring of the circle) + small avatar // "As above, so below": circle ▸ square ▸ triangle ▸ point, in gold line-art. function Sigil({ size = 320, spin = true, intensity = 1 }) { const s = size; const c = s / 2; const r = s * 0.46; // outer circle const rInner = s * 0.30; // inner circle const sq = r * 0.92; // square half-diagonal reach // square corners (rotated 45° -> diamond aligned to cardinal points) const sqPts = [ [c, c - sq], [c + sq, c], [c, c + sq], [c - sq, c] ].map(p => p.join(",")).join(" "); // upward triangle inscribed const tr = rInner * 1.32; const triPts = [ [c, c - tr], [c + tr * Math.sin(Math.PI / 3), c + tr * 0.5], [c - tr * Math.sin(Math.PI / 3), c + tr * 0.5] ].map(p => p.map(n => n.toFixed(1)).join(",")).join(" "); return ( {/* slow counter-rotating outer ring of runes */} {/* runic glyphs around the ring */} {Array.from({ length: 12 }).map((_, i) => { const a = (i / 12) * Math.PI * 2 - Math.PI / 2; const gx = c + Math.cos(a) * (r * 0.93); const gy = c + Math.sin(a) * (r * 0.93); const glyphs = ["☉","☿","♀","♁","♂","♃","♄","🜍","🜔","🜂","🜄","🜁"]; return ( {glyphs[i]} ); })} {/* static inner geometry */} {/* central seven-point star */} {Array.from({ length: 7 }).map((_, i) => { const a = (i / 7) * Math.PI * 2 - Math.PI / 2; const x2 = c + Math.cos(a) * (rInner * 0.62); const y2 = c + Math.sin(a) * (rInner * 0.62); return ; })} {/* connecting star polygon {7/3} */} { const a = ((i * 3) % 7) / 7 * Math.PI * 2 - Math.PI / 2; return [(c + Math.cos(a) * rInner * 0.62).toFixed(1), (c + Math.sin(a) * rInner * 0.62).toFixed(1)].join(","); }).join(" ")} strokeWidth="0.7" opacity="0.7" /> {/* breathing core */} ); } // Small avatar used beside agent messages / in headers function SigilMark({ size = 34, live = false }) { const c = size / 2; return ( p.map(n=>n.toFixed(1)).join(",")).join(" ")} opacity="0.8" /> p.map(n=>n.toFixed(1)).join(",")).join(" ")} opacity="0.55" /> ); } Object.assign(window, { Sigil, SigilMark });