From e67ba8529c2e13a75b77e0efc0f13796db087277 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 20:20:19 -0400 Subject: [PATCH 1/9] docs: codify the gallery visual style in docs/VISUAL-STYLE.md and fix the color-attribute-wheel card stutter Co-Authored-By: Claude Fable 5 --- AGENTS.md | 3 +- CLAUDE.md | 1 + docs/VISUAL-STYLE.md | 77 +++++++++++++++++++ docs/gallery/color-attribute-wheel/index.html | 2 +- docs/gallery/index.html | 2 +- examples/gallery.json | 2 +- 6 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 docs/VISUAL-STYLE.md diff --git a/AGENTS.md b/AGENTS.md index c842cdb..ca0f8d5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -31,7 +31,8 @@ The content base (counts are CI-enforced against README.md and the manifest): API contract with deterministic checks, exit non-zero on failure, and optionally render a still via `--output`. Each is executed headless on Blender 4.5 LTS and 5.1 by `blender-smoke.yml`; its render ships in the - site gallery. Anatomy and authoring rules: copy `examples/bmesh-gear/`. + site gallery. Anatomy and authoring rules: copy `examples/bmesh-gear/`; + the render look is specified in `docs/VISUAL-STYLE.md`. ## Repository structure diff --git a/CLAUDE.md b/CLAUDE.md index 4db9355..b63837e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -91,6 +91,7 @@ gallery's source of truth. When authoring a new one, copy the anatomy of wire all of: gallery.json entry, `.cursor-plugin/plugin.json` examples array (CI-gated), a `blender-smoke.yml` step, a README gallery row, hero webp (1280×720) in `docs/gallery/assets/` + preview webp (1200×675), then run `python scripts/build_gallery.py`. +Renders must conform to the gallery look spec at `docs/VISUAL-STYLE.md`. ## Development Workflow diff --git a/docs/VISUAL-STYLE.md b/docs/VISUAL-STYLE.md new file mode 100644 index 0000000..7006271 --- /dev/null +++ b/docs/VISUAL-STYLE.md @@ -0,0 +1,77 @@ +# Gallery Visual Style + +The spec for every example render that ships in the gallery. New examples must +conform; deviations are defects. Calibration references: `armature-bend`, +`color-attribute-wheel`, `grease-pencil-rosette`, `compositor-glare`, +`damped-track-aim`, `parent-inverse-orrery`. + +## The look in one sentence + +A dark staged studio — near-black floor and back wall, one shaped warm key, a +warm light pool raking the backdrop — with a saturated hero subject filling +the frame. + +## Color management + +- `scene.view_settings.view_transform = 'Standard'`, always, with a comment. + AgX (the 4.x/5.x default) desaturates hero materials toward pastel and + lifts the stage toward grey — the washed look of the pre-audit gallery + traces to renders that never set a transform. +- Standard does not compress highlights: tune light energies so nothing + clips. If a region reads pure white at full size, the key is too hot. + +## Stage + +- Floor: 30-unit `create_grid` plane. Wall: a copy at `y ≈ 7–9`, rotated 90° + about X. Both share one Principled material: + `Base Color (0.03, 0.032, 0.037)`, `Roughness 0.7`. +- World background: `(0.02, 0.021, 0.025)`. +- The floor/wall seam is acceptable only where it falls into shadow; never + let it cross the subject. + +## Lighting (all AREA lights) + +- **Key** — warm white `(1.0, 0.96, 0.9)`, upper left, ~`(-4, -5, 6)`, + size 4–6, 300–700 W depending on subject albedo. It must shape: visible + falloff across the subject, a readable cast shadow. +- **Fill** — cool `(0.75, 0.85, 1.0)`, low right, size ~9, ~100 W. Just + enough that shadow sides stay legible; if the image looks flat, the fill + is too strong. +- **Rim** — cool `(0.6, 0.78, 1.0)`, behind, 200–400 W, to lift silhouettes + off the backdrop. +- **Wedge** — the signature: warm `(1.0, 0.76, 0.5)`, 200–500 W, size 5–7, + raking the back wall so a soft pool of light sits behind the subject. + Place it **between the subject and the wall**. A grazing area light draws + a hard terminator line across any flat surface it skims — if a stray + bright band crosses the subject, a light is grazing it. + +## Materials + +- Hero materials are designed, never Principled defaults: saturated base + colors, roughness chosen (0.3–0.6 glossy, 0.7+ matte), optional faint + emission (~0.1) when the subject carries color data that must read exactly. +- Surfaces that display flat color data (attribute fills, pixel buffers) go + fully matte: `Specular IOR Level = 0`, otherwise the wall/floor horizon + reflects as a line across the face. + +## Framing + +- The subject fills roughly 70–90 % of the frame in at least one axis. + Nothing that matters may touch or cross the frame edge; no featureless + quadrant of empty wall or floor. +- Camera: 45–55 mm lens, slightly above subject height, aimed with a + `TRACK_TO` constraint at an empty on the subject — a chosen angle, not the + default. Flat subjects present toward the camera (lean or tilt them); + progressions read left to right. +- The image must still read in under a second at thumbnail scale, and it + must witness the API: if the contract failed, the render should visibly + break. + +## Output + +- Render 1280×720 PNG (`taa_render_samples`/`cycles.samples` 32–64). +- Gallery assets: hero webp 1280×720 and preview webp 1200×675, quality 85 + (load the PNG in Blender, `save(filepath=..., quality=85)`, `scale()` for + the preview — this preserves pixels without re-applying color management). +- After touching any example: `python scripts/build_gallery.py`, and update + the README gallery-row alt text if the composition changed. diff --git a/docs/gallery/color-attribute-wheel/index.html b/docs/gallery/color-attribute-wheel/index.html index 7ecbea0..2e13a3a 100644 --- a/docs/gallery/color-attribute-wheel/index.html +++ b/docs/gallery/color-attribute-wheel/index.html @@ -177,7 +177,7 @@

color-attribute-wheel

color-attribute-wheel render

Rendered headless by the example itself — click to zoom.

-
witnesses CORNER-domain attributes are sized to loop count, not vertex count; the check asserts that, that active_color points at it, and that the Attribute node is actually linked to Base Color, not just present.
+
witnesses CORNER-domain attributes are sized to loop count, not vertex count; the check asserts the sizing, that active_color points at it, and that the Attribute node is actually linked to Base Color, not just present.
blender --background --python examples/color-attribute-wheel/color_attribute_wheel.py --
diff --git a/docs/gallery/index.html b/docs/gallery/index.html index 3a1a85f..91c6f88 100644 --- a/docs/gallery/index.html +++ b/docs/gallery/index.html @@ -363,7 +363,7 @@

damped-track-aim

color-attribute-wheel

The modern color-attributes API — mesh.color_attributes.new() on the CORNER domain, filled by expanding per-vertex HSV across face corners with foreach_get/foreach_set, then wired into a shader Attribute node.

-

witnesses CORNER-domain attributes are sized to loop count, not vertex count; the check asserts that, that active_color points at it, and that the Attribute node is actually linked to Base Color, not just present.

+

witnesses CORNER-domain attributes are sized to loop count, not vertex count; the check asserts the sizing, that active_color points at it, and that the Attribute node is actually linked to Base Color, not just present.

View example
diff --git a/examples/gallery.json b/examples/gallery.json index 0df1c92..83694a0 100644 --- a/examples/gallery.json +++ b/examples/gallery.json @@ -176,7 +176,7 @@ "name": "color-attribute-wheel", "dir": "examples/color-attribute-wheel", "teaches": "The modern color-attributes API \u2014 mesh.color_attributes.new() on the CORNER domain, filled by expanding per-vertex HSV across face corners with foreach_get/foreach_set, then wired into a shader Attribute node.", - "witnessesFix": "CORNER-domain attributes are sized to loop count, not vertex count; the check asserts that, that active_color points at it, and that the Attribute node is actually linked to Base Color, not just present.", + "witnessesFix": "CORNER-domain attributes are sized to loop count, not vertex count; the check asserts the sizing, that active_color points at it, and that the Attribute node is actually linked to Base Color, not just present.", "hero": "docs/gallery/assets/color-attribute-wheel-hero.webp", "preview": "examples/color-attribute-wheel/preview.webp", "tags": [ From 541bc72ec7bd0b25214eba1bf8d0938759eea596 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 21:08:13 -0400 Subject: [PATCH 2/9] fix: restage swatch-grid to the gallery visual style (3x2 grid framed, dark backdrop, distinct metals) --- README.md | 4 +- docs/gallery/assets/swatch-grid-hero.webp | Bin 9946 -> 19788 bytes examples/swatch-grid/preview.webp | Bin 6272 -> 17036 bytes examples/swatch-grid/swatch_grid.py | 57 ++++++++++++++++++---- 4 files changed, 49 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 9c7604f..7d6c3b2 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ that actually runs. Browse them in the
-Swatch grid: a row of six shaded spheres - gold and copper metals, red and blue plastics, an emissive orange, and a matte white - on a reflective studio floor, rendered with EEVEE +Swatch grid: a three-by-two grid of shaded spheres - polished gold and brushed copper metals, red and blue plastics, an emissive orange, and a matte white - against a dark studio backdrop, rendered with EEVEE @@ -193,7 +193,7 @@ verts = 72, faces = 54, and `Set Material` carries the lime accent.
-Shape-key blend: a violet truncated pyramid on a dark studio floor, lifted and flared by a relative Tall shape key at value 0.5 +Shape-key blend: three violet blocks on a dark studio floor showing a relative Tall shape key at values 0, 0.25, and 0.5 - plain cube to lifted, flared truncated pyramid, left to right diff --git a/docs/gallery/assets/swatch-grid-hero.webp b/docs/gallery/assets/swatch-grid-hero.webp index 6e915f1f66279e3680217fbc4ce89bbf577b8aab..785e11edb82c0f5f5e300e8b6d0e6d15f7890788 100644 GIT binary patch literal 19788 zcmV)KK)SzDNk&FQO#lE_MM6+kP&gnsO#lE;Q39O-DgXu00zOeBkVd1StE(YUDEV*- z31@EHgK7_N&IjdFDUL*s`%L%09@bAh&OA{%6kId7>&R#Mc(K%<>c2C*iB3nO{I&lH z`={IK;XWSz-}`&pv1R%Jd6)2?@;|@+P<*)b%lh~J$G9iz5BopwzvaJVyU>2^dW!v% z{g?M`|DpSF?+5&c`(OE<;D6gc&42CeS^e1d5B`PztN;J5*Y2PG@0E}2Kkk2Wy{bR@ z`v8Cc^#K3r*00___ujj@W##|k|E2Qc%>Ai2e~P=Io~H>fL`aS?i7xF4kozu z<`c#9-C`{m=Go6LmOj>N%-IW=ZMiJD^26%JEbE9>^1MmE6~S z*;r4nB*@`3+?sd#;X|rgS9jWx60Jqgv=+^xx*jf66jcVe*0m8i*}=*M+n-RTn>?GX zlvlA(RlXM+eC0p^*#A8H*t})TomfP6ZAh=GR2;>QRJx6H7GH=K;WPBzX?%QtDm<39 zUmWk}>u{-S)s)(|ANS!=u?FsyuiYcz%D%PG&>T_0;a4dQ4^>;gtHpBPQK6Z@D{!Y`pCtHEJQvv}`+hi?M8?~0Acl+ezNO#_cRjjQ7XK@`uG@)>6*{i}C zP%Wi|HT|dNiL2=e%ZPG7(JhBNq^JFBjy|QrV*!#D0*&({yu=aG*bmJAwgA!2HWjB* ziIG}{P96U1?4LNjoD_rtuc6iGg}S}r+`;?rY1p-0EDNO3ZR+Q%9Ibp z17VDkZM(aQ{AUdetlIniJt3>Cg<&!|2d`NbWMo5uP25=N5RKS*d8LH7YeY=>;g;S& zF@gb%aSXxoqx<>cRo_yj=WfO@Y%KRCIjCk%M$>P?*^~1#Nwb0BR3%y&6aO!33E=SY zmEkM!*M_O|t0chGhmXpGePu}#CY^Pgi)|v4X%}1G!C%?;i}nch&?2j7ZGTT&DH~@q z_f~OgHN6mwV_1yU0`-JbHiqs2*>HLa3!-u1ac)wu(=xq0RuYBqKci2YXHxefgz^vS zd7_{2#Up(F<#i?W(n3>9WO?2pV!S~WY=HGvF)stn^uKqE8ssu<2kFKBUO^Zuzf0@|l@)mpLPELF_X`LAjG$09`5r(6`ot z)=}N2bGKn&V`MzfhEoTEs!`2i39B@8ibK_uE}IU2fa(5$3?~G3P2_qtsBByJ8&8PZ ze0nJ3hm~8>BQ2kst)8T2`0nQsM=DHq79ifTnpvH89$#k|5!UkHUokien7tBD>ILD? zxY)Kg!`$LyYZ>~{7`tY>k{G;2k;Gm%IN2)|@cx)_5-G7P{a z=_D(!7118Fg8{~}7h~s?=-$Z}=&{n&`|Cp7`cZaoL9}xi4;7kBBH9veO^_+l*enn? z(3(;mkn-%|z#=mRRc7Skj05AQtY(LXxrN5!AM`1|NDpUwo?9er-Ak2n^x({M$wJIJ z*<7Y2pt@+GbIxD;el-L2sRewa;L!{@|MvAz{}K4v#}H`R<=-jKlPmNVf_3LSF1h1u zBl@V5f#^PE88p8?9|}381Jrp>WB!rz&_rq!t#qYGhX@ zLP8uHH_?mKv3lG->MFzaT7LZeaex2CBU}7q=peD4=6kQrzR6B_DSRR+?yi9Z5H*&! zr}I;eqfn>6ex^GxW^OdKF?6{IzGBdP%4b#nuJ3uya0-)pdvj0#h zuJeS?+ep#rny$Ka_2^b)7MF~DzI&JC5W4i@ay96)ED-`WB9LC@B9~;!)U`glp1gC) z*+nSZku|D+x$~2CINw=+v~B7e*Cse@PXjq?zFoy=!n57i>tr>@fK{SLA_t7@n{|L4 z$vK4?qVueW2F-P(O6NOop}EtMt;`1hfNqb>Qf#sv5CawC-{)T{S3-YAOvOK_uCA7Z zza!voe_hpCCm(Or_%+4tYvL~f?}Y_>KH{Eqa-bIL-hZoH6> zik6vmy9bw^kg#Gz=H~eJzmGt!INYjI2j?$-A-F8ImR8D4juZm5Y6$B_RbxpdOvn4j zL8H2#Jq>?_=pE}FM1TL@DnT@>e!Si@f)FQki0fJH$hga@Wric}@7skYw?LQw)GE1YCEB6HX7n^mLF&KYSykHEPtRefPb}H!2xuO-MzjJH{ z2DEGJl-iq2{6idw_0kpdA3l|2vNqe&^)NckeSczk03KeEDN{pDA3Oc21wa@70EpZy zPSb%9wm!4^BgA@q1Tg;@7W4KNSutA+$E);L_iG!BZ=PYt>H1lm#Y}Pw_4fO@`=n5o z&wlu#@#H~)k=Z^N_%JT$8TLk7cT>_GCpO2I?@OR32^C&K^|dWK>6Yz?7a9C|K2XF+sNvE;gk8qPo!v+;K<8N_dRBxxju~YA)^Rj@&5^#=DOCBRX zdmEu1igF$bYg~XB$@iw?%>04^|Ey3_xB0stC)yZ-bXi-Ph3=ECL>8fxupRXlB4Hld zxXos6J{b5jGI`G!3jE5xFC@Av_!w_uRL<-{hNjfoty#5=&a`g4pqV)&#=)Aa3s^q8 zpLdoItH%hvXG&jg(WmwLSBSu}Q0WMtz1!6c`0yA`pvmQDbby&Ms#6ii6*clN; z%LV?*|BLf)%>98UMt)Dl0KFk@a5nvJAs=C{>wcUJp)*ocVc8#u@1{^4BLfj~(6OEl8WJqUdnd!*}! zY0V%Z_T<(~H6|xm2NeTJOoS61T`dxo&cZCw_0_L4QgkmAGuwLVQgy-yvWL2D3plpq z=zZaDg>s%d8=KhJJly`5wU;WM`Xp6z6xW5RQ^b|gyq!_@oDeBGlO}vRZnZY0gNiZ@ zT`gO~m)T`WtyJlqasl-cv|H)rKdU4kEuN6AW#JA}mEd_`42ow@wMol(ba1m&Nbr^` zTtC`$j$3pD#m-8-o!p2z#Fn^5)dtHE`R3K3uKQ5FO(ujb^jUpKPTk; zm!r`&+j|9N;N7^HYJ0~*t=@0wm?_l^FC+UTE2ic*Z_E>rDBPLnPshUxltr=n^#K50 zP6id|&?yh&&vZniQ+IKuPM!{N2gG-rtcu;U_wykFXly}1QA(Y3CewAPwKk@@U`yrk zld82ddcRygHru3xCswlVRFuv{T}mo>*Z;JEJWZ`rh+gSBGvRw8AiV9GZCltFY_DGw zHK}E$A-~4ZHW$@n$X7~@Sx(*Q~&2$k18wK{TGT){mrpt}?q zY^ERa!eTVj-*WzXaEBhK)_zaK zGY_~C$!m@yh;Fkeul*#<*rZS*#f!YLJv!@a;7qNkKIc3#_es|do0y0^X?A;LuTatX z^>p^%n|^Kid!}Q=?3IDgM1L9Ef!F5Wl%NjmJH7Eg{)wOSc834||MSsOUonovvzARpm z(LY0Nv0%OSqJZGFbMk&q$@xDH(&mprLsBv}ZQ$B0$M)edwhmPq^^5awfW~UKu$ z^BccL&aA8^vVFe1$Y#`)NUlOV0u00aCywBw{c8#OWg%@5MEO6<%)Y@4Y8fj4IVx_IP|FLI^zkOIr^kA}EYRH@7spSJGk0%uc54 zeXR;4&+Y?*jIhBXgGY*Q9Pk-l2J2r~UDF z-k8K;Js9oyh3=E264XM%1qJNn$H(^sULIV)1zyDXO4jxXfPpYZ0Y}5pHK$j&CN3}Y zskJtxg2@|12SXino1CO!5--7t%8DN;by0KS<3Yq~6>V-KvX{@Pz|@I4yNFaJL8-B~ zumZqVI3I>2y#*8XJ~hZq##J?`lrkX}yQ)W4c&L96U*oPeAPjTB53rSiKmXHnG(hE( zvIFv;;uRI>`223o{AU=O7;31slSb^gNAR_j)L54Xzil;&156GxpIdZj3!T}3!8@&X zcsBgoLq<@$CEzkI7!=;mj?&P(i^-ci%v%H2)}w8qsu;)m+hMSbjSuIviO$GtG3cK| zY{KO5l6?=+|EHOocmB6h_K*zt@D?j?FDTdO?PLR2el--g1kZ|y+A%#@-0S3D`n)7} zQq)7FlO;>tCtNy%hph@1lv%Vt9;1>KwXa1gZB8C6lXFt_+WszjjW?du7I9Kl8UO(P z_L8_z!|ZzpU_DEUaw}#mv&#DyBD1smHl-CVK4&z0>kq4V>7phPaOW5P zbJvIA4~Mb>I0Rg_@~I5(7SQ6_gb2p2Wt5n+&MJwTx-s!>mdid zsA9fXu6B=K=dRBni8PDOk+*{0m#!ZzoSyfS6YL+CdjT8icCk@R9mRd07# z={P}TVzIzlcT&);&8YbuX{$twtuJ;( z@Ztj5;^9GPh0;lE&*Ex@>J*vK+!u~X09M#(58X!;{l0s=Ajc2Km3zXZNUnpNG*XB& zEB2#be0pv!$VvuPjrfYSj05e@;C-b>>+>0p!7Bys7Qp zH=(gPSoI?*4PaT=-na4`->;(jMlt$yjDG?&25>Z(9pDAnJKG&EZgmyD3C>m(%Bu@v zXttnyRIAez5tzlD0lpIl4Ldv5R1uy9KOBrdc6z`pFzf@%DGjKxd2KJO$UrI9bqATr zQ}L*!G=(8MtB{+vv=+GTe?(J@+3^o#%H`_{U3_2a+1Y?WQw7GF6eC(*2cEhdeuj%$ zYnX0@;Td!RhC`{kHVDsT7Kbx>MMnTn7^fWi{sFp?MElZEvemG%-8VbU!zmIu4@Ty*;56;&U5zB7l=7c(mO9*3 z$t!}vrDbmM^U!4K5h*(uCIr#V>j=bO8i`1VFniNqRXiF|gkPNuIbo}T!~7XP46JN` ztU56@(|axjD|-i=JOBq5Emu*Cax=r{v5WUyf}V@K+y^I`^Yy~ywU zkJ#zN#6L;8l<1YN4BjzgsOA_IizF-D4Vl%1A4>NDS$J~{v^7q~7BUPs0FYU%V< z$bbpDJj(HK+15k~Rl9w-JzLO|Og-+KZ5^97&(Mxu$^(S5c3=6j-KU;%g&`KU^@WED zmIo_JjM~bkSx9i2rl3zUN?@ryZkJ8$Bcm%{Es+7+b_HnUia@E`A->x+uW#0MScqT` zl|?%&6;dm${g_I`p|{r(wHQJhT8wj9?&WkuxN_)Gk9Kv!+p#nNmO1?Mjtc^Wpv`Iy zSX0ztB_%@AY3c=8hUr-!LPjTR0)Jg>Oo4@W$Ms*nH$jmc6k-+f_Qq?{$>(sM#dmPA z6}63GHI_DIl4?8gwq#(bdKy+qYU)=hATf!Ot+e`qs9*&WnBVc5@KM5&;MS)*eV)7M zSzf$EGw2@2J*~k0a$Znxu2?5r>ils0dV?0GDhE((vaPEs)Frh~!+qj~U?MZD{Qktu z>K#>D(ILiI0MSeQ1G&=}B3`AQhT`_*KmZXdy~M-%z5`Fj>(g;=td%M$0Df&u12GYr#P zfc}i-&ysTQK8?^w`d`qOpIOttt&&Y1p{{XVx{o1f`kKwT4JyH_KpFBHxO2Ov%!(tC z`h--%!27{^$kBM3QzQgc->Q8#{^EqqrZvCCUZM}rWDd{(+N6wvEsBnz6Yr+ihNos= z=Iz>v*RaiN9%^a(m8wa*@OQ&(a;1fXPp!&NUxyJ+7QMG;`@v3ICC5<$&oo0F34($} zg}m0f8#-#r#mxQL|nrIQggn?5Zz@@4DaFMIviM0Ftpv(S10Z@N?JOhvh@#`#f{;&;OF(vhg~jiY)Q0P(k~Yqa+OhP$BVks zpnDPKh8NkAiH^=@4?($+xjPQDH+FX&M%yXDM}ch95Fv4BbEGHq+pHp^m@&h8 zc|3sfMVmAwy}|)^Ba4%f?DJSR)V8(!83H-Zleaz(FFd`6nOQe6B2qnAO+M`5cmdhnFu9@Pan#%2 z`Mv`XGx+e)!fHYRmr84uH1kdY&GWyscDnZx;Cuijbg%etqxsCjY+G_4DzWg$M`}x>V^f?p2j(=1f6k|? z$uyUkFcZTJsRP%K{{x!+eiTwPR5J*;EeH>>*Ag~osEjc0zkIP%k7!w2=ifoHUQ~8> z&6T&V5aZT5kW-F}x>YRnc+CCR409E~=+ip1blcG1Pj(B424}UPdB@W^8UimuIY#O3 z6Ad9T>w3#?{BxBSbdcvUr&&6zid$#w|6W96`q5IR!PN36oY% zHJVgYe1qC8;T{PkV>Xf|X91>6Ie@1-7kYR{Q zf@dkIbRIJumhez|>ml_5)ti2j!#UmQn?6Mt@c@3Q^{N9}!=Ty(n=(UV z5Ju4M!DniA5Q`VFi^{9Kvl0`df8Ev(fbL%-D0usdrM*dHdl!Cpb;dA>&odDt?>DXw zAI)6zDRR2_|9ve3fH6hn(ML$gF z?7aqA!>UOii0S}$YAKI>`@UC2T;v-f=&U_-Z?(6QX<^7r;Uc}ikdZ7r0thP*?lIPd z(H_%d`}9zp^vA?f+e5IX$n=H%+B#I4HsWbTKtu%$x|&V;vjAZyUH|zF2;g`xgxXe% z;2ItI7a>#oBkmF*K?&~bimg-ain%0{L^>r52H(_xz!da!?Kf2pfR3;Z>b+gUA$W;v z`@IVLr7IgXbDfcR*C-37PkTB=M_;~zVHfs46@)jE6xLzNDn}IDcpgQ7meT4EnVtfo zSX!nBV3`X6GbT0f9{Ia^4zs>-ymq+jOD7+Yyj{yn>0NGV`!!S1QTI>0LA3n9 zM$-&BwksNlnVr@sHXh@77i-YLa5#Bas$(vwRI@MG#MV0H#Q#9<>zU^<$%88imwPhx z`Zq2qzXk&;YJK}D+o#WLO(&FUqHvcLUzM735PQ`>+H(Yma5 zV0M@=CTb!WLiwg*=v%)Vih%jBS%zm9&wJngC#;+>zXu{})D$UlD z+0wg?xd*3H=H_*%N59-5vH9HDWqO!?)4{>sBbrcyqbXD7qjDp2$fJ0lf;Z)r+nt)! z0CN~Z5UF+W+0J>peXokKZE`!Ij*R%A)lvfLjkKw$`eg;D#~ z4dkicQ?o-15?aXi_zU7qoj}Sl z|M8)aZ?~H#?rAPtq;%zNUrpxIH3A*3$#NQ=r)w(%h6DjmYv`p}hk&WB&LQ)>*Oah- z&&L3O?5<%-MtgU$eI?^gPQFt9Fzp1a|&(w38%10>Kr^QyM z4Z}l^DR`1VQ-xa32s^;Yc1%75wET-%%$aF%{YzWfqyT3z@!jC zS1(L{BQZe7ia&st5A|^pG5WgFX(Q{5z)RQ8*Tg%2*>V0VK?ejkV4~pvpuyeosPYt3 zOUq+?>fW@ix+!GwjP+voGPO14Z8Go!-MyuX8F2@gsb4fFd?be7fu_xBO5Lpuu!NQ$ zW76R4NRPp1Qz=h)tZx@eC+~2)*s_#gMzEYT$copfVt$jQif`B69+W6eG*+vrF37$#$y%m$C}FM8x&Jq4fRoeB6a> zLwC-st#Sx#r_v%!1q`d|!l~RSrn%phv}{}#&&_$@7h14(cjV_o{Su!*Oe3#9j8bWZ z`>S1#2e*iz=}XruP9eem@9zs)EkRgHn4B~4jp~4LRYj+;gdCKy1_PIXtwrW?Jz2xz@i`J+ zI^w8TaSoP_loTbS0nU~qSs%NyX-fO{h-49vE4Y7XdHkx2kFy!e1bbQamd-i^KY!aV zgGE++IH}-Si#l*_(OC&08lLN2C{uW#ER7-oP(DX)_~}qYiXriGHUNk-IjR@=<`ILt zwrHJ@8*A9v@H6yWqFQ|)qD6i2mvY(EU(B6^HTI;E8iua`W5bXic;clhIw~z9bxT20TkX?-t*klmv-}fU z%9l=<?KpVEyOTO06h^jbkN#k;6n>!Ai3kmJ=HjAHgEU!@L?0_ab7BL4gyXx8m5IBBllA1 zJeV(r2~^21f|34hzS=V$fswR!TKK+bHC-wZ1z+})0T(Gm>L_QL0I>p*TGeDb$R@kS zE)I*$+=CYlvj@a45(~M2|8z?K4a@W!217K=5;sAD$06wcNJSb=DcnZ|nIVN@n+Tt#bc+eRZBFVu zOug}o+xVI4Es7dWxSKJjqP-Ij4roA3+qkpPn$6k4vo4HM+hm9Yg#=6m1t~>QLPwI@ zKE(IMhqm5p_w|}nOdAZIk+8)B3uE6!D~`OL;>1Z-N>%|~zu`$|*4s|L)n;kgK?gbk z%8{OmD~sb+$zhpz03<3Pzk7Mt(RN_u;{dqHz3hOd-kIopmd^GW{Q4z%-s;){R$DE* z07`?=#d@{+1W{;he#3(pqcE57C))=I8iL@h^VPAjus7}6qYYFe8V}^2X45&D7BSdx zw<@|gVGc#yhw^Cg6c;!dUGN8X7c1>yO+kDiKLCX#gSCuPVjdB~Z#80Or-}+m7Dq?v zQbd9RHgpuk?Me$@UHs&!E0rLL@MEH?fDx04&1;By2#N0-8vW4ASif1 zD5m|Z;r^NIeHTdrq}wM}KErj4lwhO^Ap-xjw55WpD_|2zS~iX`{7Auk3KBKW1PJ_){7O zmp2W8-D9mpim0#MXL)7|9@pC)k=+LV$AN5y8RP=L^>67TXV6yRCzk+{#vUdbf*ViO zg6Am6^Pvh2OLp;{eFLUfv4*QUgTR9pyr(J(n-=;lTFp?WU*M)OaZSj6q9}qS@0MwY_bmJGPzGLA{`F0J=L%|&R9Y7gcW5$`_ zJ=K)zr);H8=}wjbv`h50eo3m=b7_2{cpZ#aUp?g5e{Kv+{7GeSWB3?V1pdTRz926< zgrL1+iRR6o;`BvTdN&v};!X*!w5Un+>0K{s)~%|i<5qUi{^2CH zDnVf$8u36PFT6SujpQux06aKc9VrnW&R0!`D^}VMfdLR)=+Nu)MzI}e5K!;}S^|E% zv!??HkzKfmQ}wnez};ZQ47~p3O9-pcy(<)uWi)7=LIYjy5dt$kq1uNx*VSd38HGwk z7J4z0JqC%)swM*b!-=SWj|ccZ{9t(sb3En8Re?ZSr5(u3!=Iwi&MqnwK?*Jf%HEbT zuZ-w=*{I;*n7OgUW~fqYCYD`>-q6C$fJ9UjNPxV)I_%s1xeY5y^?wSS?^DUe zj@esfvq=vWZ-SSTixyU1(R8)w3~Wv7D1hElvf1q%&Cp89w2p``o7jGl`3gxI__W+} z@-@o7cX7lFJ{Lq^PGLA<1Xe_V%5T1beV6Ih*2gRV$*>__-bM!YQD5zFKoB+@mgpcB z;j1>&P-)~~0I}!F6!e9|A-gKA8nCaGV(yYxwQj9}4|X!0hqG$A%+4{YB;KzH<5~Wf z(msb0EGr6mO2CVz1~cy^SV%~YXdE;%R}#lbMW)W`hIBy?JGy+zB*`^$1@vk|Z*ZnY zq^+AI`@x9{DsRl>RMEW6F?X^3%%0ExY^u8!?eXlL<`5)}X3rZTafTisW@Ahm6)LgB zM-Q+P?z_b0?x5B!2$^-FH%%Vt4)GJP-T%Yw45uEFwO*qoot?nOE}zjoZ#EFKzz*Sg zWAF%QqAra?*GuJUMi%FzTX`=t)WmVXl6=`!FmD+oXPaCwxGV+Ej${Zv@PN$48**v@ zfZGMBkml-`@-L9-a@j&CHviP>7P2%v5(V20)-j0DtmVn$vNt^K(i21YHaFjYbt5K8 z3W4=^p*-=UorT+AlJ?^ws|$l_Ovo*2T! zao#kpJwEEr&ujpMi)q21B>3S#%CkdFR`N1GjAjohWL-Q%Djj*?Z_(;{o}=g~>1OmG zvdxQTMUSJ{ZT~BN+S=80JB;x>;vhbLOT9wzqOKXvIVq4+wTBR%$Gb#kbMRJ^!gS6c zKTc?PZ1m_mKsBCNqhPsyg+#GwVf{DW`%^pa-VYjTBen7uz_nu=p@YcHFc0Dg->BAw zgI{FD60bRy7Da{R9GWlph);-_6VBG87ur1Pu9t<|&uYX^Ko2&riX^6c8W7&WHACT$ z4Yq|`2eKQU3N$Ans=aA3mc*saj})p&M#K8B_N@962tJ+*F{G$Q$3v-><;jj@xrRp} z`Rg`|MCUm(OS<9Nn7+OS4Lms)(jsEiwxf;MceGUMU3dUmUl)o9_cT1zTRE;iZCmwR zA7^r&l=ld&J|>?|CiMkoZR;n%=3OYOmPCT#Q)zml>hIpFQ`IN0>I zoVSp!@)d@(VOYHHYPAQuh8bO?0bqtZQ307USkk7&bYIDx)kQczK{QGM@l=4D(U7IQ z{0Y$k55wvxmeO7hroaGb7y;)P4{0|vNA4z?Kv_2ZIBt~ql*&|)gy(5u7*3%;4#{#m zqgsF&r&`)iqYn^;+D!Sa#qyXLQ&=dL3qdk0M8c2aEQ#QHL_k)uI2kFizZHigCH)6` zF=>1D;qe!nLm~bwAFq~5F`VJSs^_awV7NHu>Q}yN5GiaaJu(n&?014Ham@c3hXUYM z48}B{U*4DucGR*^R4fD@G9O*%GW4EUq(G9FS7@8!?t6qhv9OP0qn#EQrPazW(6Wkw z=kACT`(CoMB8Xl;qAZ_FftQ6v>&3K}=SO5z$xtmSP$pVOT!Ud2J{%*H+XuaFA5_@} z;a$uR?^H2G1ahf4qDBf!=FA*!pMWut=P_V4=TzCC03S=W_(NqDTK%Ow0CYALvbNe( zDOtRgfgYj_H9M}F2i_;_4)5!~iZqJQU;|vBz{*7=be(8z!}yO84-Ff&N};vR$YMKt zw!FuRA7w8F0tJ7=bAgj7u`*zQ8c=E04mmSPjVQHU)G;}a>N8e0LCEZ zrXl@y`jgFwo)sJsWDG@m<`wCMV|(IB_8v-j&0rc7HlCO;3$s5J{1DeQi0Tj#_KdMps)Oxvgcb7zDuUE zMG5O1M6}EFs<5THq2NU*yt}X~0o>>^UuMtd_IYD}Mkku03!Rp4 zG^1U}mhxr2KFy&E7fzCa@0buI^r05RBu%5%ZLkYAs_U6=$6+gSGh(C(P%p6%Vk#_q5~AR4T9tM0@>H{efL<&-Tx5KOz<#rm5jMw7h@lxIj-`hsdl zdki0=5Y-{UibT`PCz#u@wnz3w5kVS6wS_vw!0~t;SQQHvBz>fHi2~mA7^ZA&hx^)- z>A4%poyElnpI8hK1n#)|%dpehGL@JUpncLZWJ93-%q21;F*#p~IysKE3uf>{Fp^Jk z?*HM}#Fc#4L#GKuPlI9Z2qbP6b-!nU9TdI&}#o|ig*(He2=q$lG-N9AA&yIWnb%L ztm^*@_a)jrwIgtOR5!`b2^8D6^M*-*`wW!uYqx7D_y@wnXF-V@1zq7t$WxUqDQ7mg zl@p{QjhNh4kt-$8eK!rtLwRac_|my<`L8NEI!`*TC+w70oh#@*a!;^sGm|wJ=wGu{ zKIj!paP9**k;U?dlCk`;>`AEtYXvA)_q=Wi3)zZK){-9Z)v+x14@$~hkF*o@3&&FgBdt9#_slP&c3fp0bSVyO%oHpawa($q7rnx#lY95Uc` zFu`YPi0ffVV_8$uRWHC!d3*hp0w#)1rQcZu%1QOeFLUT`=c<`i8Mp3~uGVQF14-!r z%Gg5Q2j5b}ZL;u^oz=TP$l{kgg1QIRlTe5$A~GF8Mv}=l$#igkRmc^m34%9+EMYbM zh*tZkr`cA!sj?s!qMD^&DRQLv(qi$=cr2mt+MYT6f5k7Y(Mr~dU6v}@5q;|o99 zxW&Ioo~GBzz#B3Pz#|*h=dHBwXUJEAy++6;q_PF17t-n}X*J6l6-3i$Bb}3%+qqNx zSeRPS!@4qKMjmCd>)v;rV&}34pf^hkN|Q!~gP&SH`OL}T8M7k=%y~Ap70i#MPLt`{ zo}@of2$zsELoyUufX*n|^XYD*6G5y7^kzK&?{zU9zQa)b9#oBXRqZH7@LV{X?Asr9 zQ^PJU!kxyDp(bfeUL#&?C`brSqe{-%lv2Ml2s@Up;OMB%X@~RZFo+2-AyI``6YVHQ z@LV{XNyZnG^xy^4GoX#=;00036TroTkJw_xR8qz%M zWgzn8)6uN{ACr)!cQ zKkL#=C`1jBpDuEu5o}Yi*T>zu0KC z#|mMcem|uwrU-yflg>Bc2-t6r9}fL7TBXT7_C?5IhJMKe*4$hP3iya<>vIDrKKiU` zr)@fk{^eulKesi&YXq~FQ(Fvk;zpi8td+iSXfc?|*GyRWD5&f8mY@EKz8{Z?cy#c9 z%SKc*Wwrw&fXzX;i|=x(VB&x_8df`Puv+>p)F&@v-2vBTO7x~?Kfi__^NQtW=$526 z@MmTq=<-jHAmXr+JGuMAiwXE2)Fao47pU*rkQRj&rJn^+3wT@M&R*?m{!Wy5_Z!?c zbuDaIsqU}~gx9Nxa;yxk`cE-kbV3d5C;gxYlA~zCzE*HI9iWAe#0*0v*U;Kvq2tx? zAD)rnp5a37u5?|!z0jS1;^AcMjlwtH%D_3zv6K#8CMNR*AXWuN>;DDG+n4J%z#ft^R1aen0>KC>G<{b)?u@y)#$;p4EWjbwdT&i^JQRypr%G=9Mj&tls{xN!PyU7Re>71h%nvH};nQqtO(=jd6^?Q0Et-iE>p6V3!Gl(Hs-D+AmIq0FHaUN(GaljT14G4{NE5(f{N;{ zbJ=dVz!kAtj7?`b@(*=jJh|o-oh9I-^X^zayoNU`)&~DZo07$wnlQA0~MNq2u-wdVPO3A5wdaaA6$3B?xv#J$80=(1zA507- z5^Z?;RyWFp{gL6f>-pwZmJ6gmroZE!JjeQ0lW-!M4!l)B$lG;=8)RyHFp#5-Twj8Y z4Z&zQSc^CrL|l8=mlsKEaFj*+1jA>k)+tyJyv8hpT1Bm%AJE{t;35*2fVM*ElSZRt*yKE+xkE!W&(_~ZEmf;wc&ku2J6WaLfeS8LNgrr=q0=2e7g67+lnS zd%PF!CJVlO#+pj6tJk(MAI?PAAF*2xFhEcO zu4^@Yqnb1*Q~V>mS=<-dSk-akp^3vN%6kTBIcRomKVeyb!o8G~%p%cfaJ%wClf)2P zA^-pY*n`|He(M_B+4%{oj@m@5eAh5afY**P`!)f$U+Vo^Gn+|A3THrparxcx{z?gc z6WaA(Uis9}{Lnd&fFooaKrN&{B1lXE0X%2SJfK*utJx^|>7*dlq|mQnQ!k*H=Z}`W z^+$FiTkj_h3VR(L`sqhtsB~_$j3!Hoh0z3@Z}kNoUz(N(@KNYb9@%*p>bZ)ZJb^r7 zGT;Sp9)Q>PSBB0}+Us%@-(VV`BIdOwwdkRw8xE+r`m!7oMs-NSf|V$AAW~A1d#R$B z6Q3c)NR!PTUltU0SB%nyKQw_dj?8$<4ko>pO=kb85`=1#ae=d2w7~EZQP- zE8FSod&2JIC@l{(?K%1w6;gI7AQEN~SHKG(H@yG+-tDgTBg;X%*KG7`TCTF;680#} z+muhMAuSKo^Z;T<6B_aNu(hz7vD%uW?y+uCOv7iPZx-U7)&EOGK zA_19}4Tv7;eJRt&LL&&KzUezyWkc&D#!aY}zx3bMg~d0J?0?mfE(aD(u635Re;SHJ<<0qs zY^2ddXl}YnN;S-4&vnJJfZ6~7675DCKo)Es;?X}2I7eC$hjY3aBg{)jZ`eoBBXKIj z6ldXY#|kU`ArNCnyp|HGbh6@JNUfS%V0MPfcXx$n;rd=4GsetanwKm%+NT^YB%G8UniG1MR)-yKQs3joaMb% ziTv{}YXesTW|zQj296ESWQ3#C?IGF(j)c?V9GWCC5UGw-rhbJF@}RVb>vU8 zz^cw%eV`WFDZIsoJkW*=3I_FBerRRIkn{Y(VZ?CQLqSZ|Z{LtdmSUdJ14%Y2QU~|- zfLP*1l(LxI2MUcnHf?*rSrk>u^fjfL0JdgEpL|mQ0031&wL_=@YxQsF0<-OdVJc#1HSU+ zt{RciQ&*glgk2B}Y5-$Bwbu3d9KIr^WH0;Cd6?;Pm8SASun*0V!M<2nAHWpq@2(Sd zV}?c_bt(xf5BWHFWcCGg8aUU>G{iq}^;+PA9Di;rcbsqHH=$fB`?O*sR(Fz7ubEZtt000F&E{0H?TW=n+s^kWN0;=AfMnc%zD(%f;wbk#^x4fR96cDmkza=5BfLGVVkVAwYc%M zn}k5w#_qe_n#ucsVBtw3(7_kKQ~(_TE@iPwJ0TJfDJX|bU?Fd}Z~b30xA@5b`P^mk zbQYBMyE>&i+V9$NmGM$)!;>dzLG9DIy0!YN`idT=MZSX{kNiC%1pR9n)ZqbRMveoG z?f)IKTbrj5TGX)oP*H7vie0s;0ZUj-(P})%ae)tuv7zO{0007{vXUtos{EG2T-6>R zwsAaR_R)z|Hgis{$Ha$mmZPp2=}ocC~%flMi5?b%t5%n`G0=6oW;$bRxeHktZw$f>^Xn%D6V3)kf#{0>tY{D zVPAJPaJr{ugkBAuh4Ja2b*GpbturFDtEN4RA&pk-4ur15eJXD?yZQW$QEMJ3T3}}< zP;FZVD+`*EfhD<={YP~#GTFET1IY5EVy3D++)7^XK_aF1$_>4FeEhc)ZW$+mAVhy7 zga9J85%*83F$2cPPbMxU!VsFNnn5m5`N%7vnI^49b6CA^aJI?^#itL9Org1|0000( zGUp~Uf=kPKwH-0753CRZc`vryRy#F8&8YgAhQh0T9fyp{c3`;17gc5U0V zUax{M)B}zlQh=vROj>L5$X!D91o2uGhVOICr?6Ivm)8SM{K4nm@T;**Nft-R7%Umz ztSL-#Bu*MlO9cJVNRofWzO9K2_Rjik_q(M-Zct6KSpp_B{p#ZM$)&PK6u!T>t4UBwt0o)tln)3_mHw5Lz@uW}#b+Nm@E*A)lg>FNg|OOh z7>2L{J?Bv4&I6u|2#>{@N4lmV!TrB&%xg@dhrPni_rB_3w$6DFOw_CIs%unRP?OUO z{&T2`i46C;oeWF@Oo+(#OuXE9v9RsR>!|XFWk_7b#?y;0_Gj0yx33smz(x>Zs#6{* zk(kx>_%v#_x`a`p@{8CI#F6T74y^Fr3@bzHUIpHW_`ieUOZTzXcSv(I6YtNnW{i;n ztB{Q1+*;_%^kNwhVz*jluP6k8G;D@*Zw}K^IJAq}!q&7d`Gc6Jy~Xs$8{qjg2I@Qd zOMy#-2%Y)ELU1O?DE?1000jpHs%?|L~iHGNmOu5 z83@S@xnoDVG4!b5m%x^1_S*wffW)V-f4a!E{iC`LT+3V6Eeq~hcXg|LR(y#<7S~zw zFNI4%TnlG0hT20vE}C~y!U=*!Ic$`xDpPT9rCIUUZPjh|ch<~gWL8LVsCl_WR|L{^ zRwWZ_1ln(r{Kr-N1VSC4cu1Mx7*E3_&=cdv5mTCbs*Xs%=ySoXsJ4yeZVMLK=cNsl z*ES{>deO8$h@q9d0?E{eh8}e)>uE5`P_ND@DefUdf8UV9Xc$J7&%+Lpeg!cwuGOnY z;NaSb>(T}K;d`#k3FcffFZf;k|EAvzIvvV(?~2%lqjvqM@;1G#PKorqMnTiCc1!~= zTN*CAP2Q)3DRIpOV<9Epa4O`slGSVL>1KT<1ylyGY(`;B5ce3d#j{H})BpoNfR!rU z8)n#RPHc2A)|v{>`h%#3H6s$ON?u;Xj9oC-oDI1nqQOI z3T=Oiph;OKGshEvMo;+GrS7%})O^M__COWcZLrDgu8WZKM=elqZlzF+Xe zEOJCd{WsNMdLl&@hzU?WZdk2!%ht@3^AMFN<8gKkDfua+ZXD(^SMVay!+;w`X;16R zUnY!MD!5{cZ_hwm{@6Q3kHq7h7wi}Qr+?!2IyR3g;#ar8Oa_w!rttHihwTjhSEJfQ z^9yjYd5+IFcu)T+c?)lM?>oQ%8C(M%OFIr&kH6%Ik~W{#c~idq3ZpVcbD?2JFArq_ zacb<}1B7u*X-zm=Q>B_N*1!owKe^k1i`E*Unjinm8=jvMP-P1WZvU-7M|agh#)bs{ zdt+9P0Z`lPcI_zIod4 zctr!QLxjvI(auYr99{qG>(D&XDc^4VALdLxoiT;v5gg9!j9eiOuA z4BhlOE)2>r!HhOVI}jvc3^7Tk@7UYDpZTUmwq;mvIsnNd;>T-N2%-wD7b>>o4$Xq~ zuQ|BZW1(qiMPvWRVG8?^=8Bs~Uq`&}oVveXE9nlM$;lh5A9njol=6)Fb0v-%j z8)xF;o$h;PE1m4e3zH(}!U*F}!rTkn;Hf0A90qj<9IYLhScgTw6iTCY2$sKS-r0E{ z+7q6^H*zQAkn%wktwOQ*40iA?TJM)eVGNn+G$%kcJ1Rin00Cz>R2O!{->)d?LeDA$ zbU0$DA1TDk74e~yY&7!iAyccOb2-}(@0AGJ9Wv^e_&gsK_X8kFXQ_>? z?sTz$%r>FDGhXJG1Y%f`zlhq$LVwhc$3gc=A){6t7^34OR;c~x=7P3>X^HCY9?$m6 z2A-@|A6OY}(Yi-edir+2)z;;OpQL!|*uFO5B0Oz^dO+KxSUQvSsCiy+OH*x_$gf#8 z+vlwS&Vj3c`F`|A5)#q_0AzVn7Q6T19)nw6y%|we`MK-wQZZ5F6X@cI*|6$#?aWA=jp=Y2+23yJO0l+< z$1qv!3RK6{jjx3#{BMs1KR&3;D#UG7#@1L!=Q?&^=m37RmsGkeIm9bmRvE2h);tQS zVMVV&Lc3*oHUGE0VlhHVs1Ao_`y>~&sXvcWTZEU4o zfq87*W1)UL6!$VAnm=%GAI$WsR4C*HZUkX~@oTuoxUxMy>6!29D+b?`?OBgO7o%D_ zvn}Sqdx>3kK_BeK(=}RGbJUbbvAyH(7smsFZ)g-{6p$bJT7}NTg6QOQ2r25NY5kFu z049*{4#74-+4pwWFPvA?62fOVdQD)UQ!)@7rN%|OnQxYg>@Qh)LnPO1f3d3;Bwt^- z4JQozde($g2)Bgi*D%=!azRy?+L*x4uoFIo-ei;11lZd^ zrR^>Nu}SL2ZDnl|b)JPK}|gQ;BmCxJV^+JhRx>rKn-BLzc|qGs-dl3oEJ00W5_qF@mr1G4Q@gfwTs zyYJ9EK8Hb~q;BNXU{S#L%gG@PtOO@$8>H2EO0pXEPWPY|D|kpwn>~JwE&IG=%sl2O zgApP!i_UR=D(N%hd{$5bli9j~I;SK3t3Xf!(~`EY(7iwDf}bZkzG4R7`)-(n0w~l_ rZUIHeumK)Q&DD=GZ!H8fXmu&5;0>R^0WJah@Ww>i)tzM!o@clKYfW=R literal 9946 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 E131_vuK)l5 diff --git a/examples/swatch-grid/preview.webp b/examples/swatch-grid/preview.webp index c3514092fb7d4cbed58f894249f199bffb6bc3c9..45e49d6e929f69f0254f1073f333c0db2d87640a 100644 GIT binary patch literal 17036 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 E1Db2{i2wiq diff --git a/examples/swatch-grid/swatch_grid.py b/examples/swatch-grid/swatch_grid.py index 85fc274..f9c115b 100644 --- a/examples/swatch-grid/swatch_grid.py +++ b/examples/swatch-grid/swatch_grid.py @@ -79,24 +79,29 @@ def build_materials(): """Return a list of (material, label) covering metal, dielectric, emissive, and the set_specular shim. The list order maps left-to-right, top-to-bottom across the grid.""" mats, specular_socket = [], None - m, specular_socket = make_principled("Gold", (1.00, 0.77, 0.34, 1), 1.0, 0.15) + # polished vs brushed: the roughness gap is what separates the two metals + # on the dark stage -- their sampled patch means must stay > 0.10 apart + # for verify_png, and a mirror finish vs a broad soft highlight does it + m, specular_socket = make_principled("Gold", (1.00, 0.77, 0.34, 1), 1.0, 0.08) mats.append(m) - m, _ = make_principled("Copper", (0.95, 0.64, 0.54, 1), 1.0, 0.28) + m, _ = make_principled("Copper", (0.92, 0.47, 0.36, 1), 1.0, 0.55) mats.append(m) m, sr = make_principled("RedPlastic", (0.80, 0.05, 0.05, 1), 0.0, 0.40, specular=0.5) mats.append(m) specular_socket = specular_socket or sr m, _ = make_principled("BluePlastic", (0.05, 0.20, 0.80, 1), 0.0, 0.30, specular=0.5) mats.append(m) - mats.append(make_emissive("EmissiveOrange", (1.0, 0.35, 0.05, 1), 6.0)) + # strength stays low enough that the Standard view transform keeps the + # hue: at 6.0 every channel clips and the swatch reads white-yellow + mats.append(make_emissive("EmissiveOrange", (1.0, 0.35, 0.05, 1), 1.4)) m, _ = make_principled("WhiteRough", (0.90, 0.90, 0.92, 1), 0.0, 0.70, specular=0.3) mats.append(m) return mats, specular_socket def build_scene(mats): - xs = [-2.2, 0.0, 2.2] - zs = [1.1, -1.1] + xs = [-2.3, 0.0, 2.3] + zs = [1.15, -1.15] i = 0 for r in range(GRID_ROWS): for c in range(GRID_COLS): @@ -114,21 +119,47 @@ def build_scene(mats): bpy.context.collection.objects.link(ob) ob.data.materials.append(mats[i]) i += 1 - # ortho camera framed exactly on the grid cells + # ortho camera framed on the grid cells: verify_png() samples the image at + # each cell center, so every sphere must stay inside its third/half of the + # frame. ortho height = ortho_scale * 9/16 = 4.39 units for a grid that + # spans 4.14 -- nothing clips, nothing drifts out of its cell. cam_d = bpy.data.cameras.new("cam") cam_d.type = 'ORTHO' - cam_d.ortho_scale = 6.6 + cam_d.ortho_scale = 7.8 cam = bpy.data.objects.new("cam", cam_d) cam.location = (0.0, -10.0, 0.0) cam.rotation_euler = (math.radians(90), 0, 0) bpy.context.collection.objects.link(cam) bpy.context.scene.camera = cam + + # dark staged backdrop behind the grid (docs/VISUAL-STYLE.md) + wall_me = bpy.data.meshes.new("Wall") + bm = bmesh.new() + try: + bmesh.ops.create_grid(bm, x_segments=1, y_segments=1, size=30.0) + bm.to_mesh(wall_me) + finally: + bm.free() + wmat, _ = make_principled("Studio", (0.03, 0.032, 0.037, 1), 0.0, 0.7) + wall_me.materials.append(wmat) + wall = bpy.data.objects.new("Wall", wall_me) + wall.location = (0.0, 2.5, 0.0) + wall.rotation_euler = (math.radians(90), 0.0, 0.0) + bpy.context.collection.objects.link(wall) + aim = bpy.data.objects.new("Aim", None) bpy.context.collection.objects.link(aim) - for lname, loc, energy in [("KeyL", (-5, -6, 4), 1500), ("FillL", (5, -6, -2), 700)]: + # warm shaped key, faint cool fill, and a warm wedge pooling on the + # backdrop -- the gallery's staged look + for lname, loc, energy, size, col in [ + ("KeyL", (-5, -6, 4), 900, 5.0, (1.0, 0.96, 0.9)), + ("FillL", (5, -6, -2), 220, 6.0, (0.75, 0.85, 1.0)), + ("WedgeL", (2.6, 1.3, 4.4), 260, 5.0, (1.0, 0.76, 0.5)), + ]: ld = bpy.data.lights.new(lname, 'AREA') ld.energy = energy - ld.size = 5.0 + ld.size = size + ld.color = col lo = bpy.data.objects.new(lname, ld) lo.location = loc bpy.context.collection.objects.link(lo) @@ -136,9 +167,12 @@ def build_scene(mats): con.target = aim con.track_axis = 'TRACK_NEGATIVE_Z' con.up_axis = 'UP_Y' + # the wedge aims past the spheres at the wall, not at the grid + bpy.data.objects["WedgeL"].constraints.clear() + bpy.data.objects["WedgeL"].rotation_euler = (math.radians(-56), 0.0, math.radians(190)) world = bpy.data.worlds.new("W") world.use_nodes = True - world.node_tree.nodes["Background"].inputs[0].default_value = (0.03, 0.03, 0.035, 1) + world.node_tree.nodes["Background"].inputs[0].default_value = (0.02, 0.021, 0.025, 1) bpy.context.scene.world = world @@ -208,6 +242,9 @@ def main(): sc.render.resolution_y = int(args.width * 9 / 16) sc.render.image_settings.file_format = 'PNG' sc.render.filepath = args.output + # AgX would desaturate the swatches toward pastel -- exactly the material + # colors this example exists to show (docs/VISUAL-STYLE.md) + sc.view_settings.view_transform = 'Standard' os.makedirs(os.path.dirname(os.path.abspath(args.output)) or ".", exist_ok=True) bpy.ops.render.render(write_still=True) if not (os.path.exists(args.output) and os.path.getsize(args.output) > 0): From 11bf2d23685a38fbb3890556047764bb5e3d3ead Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 21:08:14 -0400 Subject: [PATCH 3/9] fix: relight turntable to the dark staged studio (Standard transform, wall, wedge) --- docs/gallery/assets/turntable-hero.webp | Bin 14260 -> 16130 bytes examples/turntable/preview.webp | Bin 11630 -> 13892 bytes examples/turntable/turntable.py | 24 ++++++++++++++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/gallery/assets/turntable-hero.webp b/docs/gallery/assets/turntable-hero.webp index 23e5745c5c910fe8f842cf4e694ca684be7321c6..8666547030a3a658100be271f2b0c7f67427a1e6 100644 GIT binary patch literal 16130 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 I=N{Vs0~m91{Qv*} diff --git a/examples/turntable/preview.webp b/examples/turntable/preview.webp index 77cb288801f2aad420b18006e6fc6a34b4bbc006..c893dbf4775b552a3d4356ef63f5bc2bd80dbab9 100644 GIT binary patch literal 13892 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 N95myAfOv84`lI|0Co59o4lrs~x|>|LPV57)81 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 Sd#Y6Dg{>a_MUd^_0000-!`0yc literal 11630 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 diff --git a/examples/turntable/turntable.py b/examples/turntable/turntable.py index 9c062dd..c5f4fb7 100644 --- a/examples/turntable/turntable.py +++ b/examples/turntable/turntable.py @@ -75,17 +75,31 @@ def render_still(obj, path, engine): bmesh.ops.create_grid(bm, x_segments=1, y_segments=1, size=30.0); bm.to_mesh(fme) finally: bm.free() + # dark staged studio: shared floor/wall material, warm shaped key, faint + # cool fill, cool rim, warm wedge on the back wall (docs/VISUAL-STYLE.md) + fmat = bpy.data.materials.new("Studio"); fmat.use_nodes = True + fb = fmat.node_tree.nodes["Principled BSDF"] + fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) + fb.inputs["Roughness"].default_value = 0.7 + fme.materials.append(fmat) floor = bpy.data.objects.new("Floor", fme); bpy.context.collection.objects.link(floor) + wall = bpy.data.objects.new("Wall", fme.copy()); wall.location = (0, 9.0, 0) + wall.rotation_euler = (math.radians(90), 0, 0); bpy.context.collection.objects.link(wall) w = bpy.data.worlds.new("W"); w.use_nodes = True - w.node_tree.nodes["Background"].inputs[0].default_value = (0.04, 0.05, 0.07, 1); sc.world = w + w.node_tree.nodes["Background"].inputs[0].default_value = (0.02, 0.021, 0.025, 1); sc.world = w aim = bpy.data.objects.new("Aim", None); aim.location = (0, 0, 1.0); bpy.context.collection.objects.link(aim) - cam = bpy.data.objects.new("cam", bpy.data.cameras.new("cam")); cam.location = (0, -7, 3.0) + cam = bpy.data.objects.new("cam", bpy.data.cameras.new("cam")); cam.location = (0, -5.9, 2.4) bpy.context.collection.objects.link(cam); sc.camera = cam c = cam.constraints.new('TRACK_TO'); c.target = aim; c.track_axis = 'TRACK_NEGATIVE_Z'; c.up_axis = 'UP_Y' - for nm, loc, en in [("K", (-4, -5, 7), 900), ("F2", (5, -4, 2), 350)]: - ld = bpy.data.lights.new(nm, 'AREA'); ld.energy = en; ld.size = 5.0 + for nm, loc, en, size, col in [("K", (-4, -5, 7), 620, 5.0, (1.0, 0.96, 0.9)), + ("F2", (5, -4, 2), 130, 8.0, (0.75, 0.85, 1.0)), + ("R", (0.5, 4.5, 4.0), 300, 4.0, (0.6, 0.78, 1.0))]: + ld = bpy.data.lights.new(nm, 'AREA'); ld.energy = en; ld.size = size; ld.color = col lo = bpy.data.objects.new(nm, ld); lo.location = loc; bpy.context.collection.objects.link(lo) lc = lo.constraints.new('TRACK_TO'); lc.target = aim; lc.track_axis = 'TRACK_NEGATIVE_Z'; lc.up_axis = 'UP_Y' + wd = bpy.data.lights.new("Wedge", 'AREA'); wd.energy = 380; wd.size = 6.0; wd.color = (1.0, 0.76, 0.5) + wo = bpy.data.objects.new("Wedge", wd); wo.location = (2.5, 5.5, 4.0) + wo.rotation_euler = (math.radians(-68), 0, math.radians(190)); bpy.context.collection.objects.link(wo) sc.render.engine = 'CYCLES' if engine == 'cycles' else get_eevee_engine_id() if sc.render.engine == 'CYCLES': try: sc.cycles.samples = 16 @@ -96,6 +110,8 @@ def render_still(obj, path, engine): sc.frame_set(FRAMES // 4) sc.render.resolution_x = 1280; sc.render.resolution_y = 720 sc.render.image_settings.file_format = 'PNG'; sc.render.filepath = path + # AgX would wash the copper toward beige (docs/VISUAL-STYLE.md) + sc.view_settings.view_transform = 'Standard' bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0 From 69cf87361d349383f24585e6157e6215f1fdeb29 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 21:08:14 -0400 Subject: [PATCH 4/9] fix: show shape-key-blend as a basis-to-full progression on the dark stage --- docs/gallery/assets/shape-key-blend-hero.webp | Bin 10638 -> 11018 bytes examples/shape-key-blend/preview.webp | Bin 9722 -> 10078 bytes examples/shape-key-blend/shape_key_blend.py | 49 ++++++++++++++---- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/docs/gallery/assets/shape-key-blend-hero.webp b/docs/gallery/assets/shape-key-blend-hero.webp index 6ecfd9343236ccf990729ac12aa33af794fb0034..bcaa60c7795295b10a7abfeacd5ed6d62984c466 100644 GIT binary patch literal 11018 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

}?Y6?}+1hK@DN46o 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 0 From 5b1f17dbfc700ed39825539b90c69ef909f20e9e Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 21:08:15 -0400 Subject: [PATCH 5/9] fix: reframe driver-wave so the skyline fits and relight to the house style --- docs/gallery/assets/driver-wave-hero.webp | Bin 17676 -> 11784 bytes examples/driver-wave/driver_wave.py | 40 +++++++++++++--------- examples/driver-wave/preview.webp | Bin 15994 -> 10926 bytes 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/docs/gallery/assets/driver-wave-hero.webp b/docs/gallery/assets/driver-wave-hero.webp index 74e638d0b6f61b2eea8e172ba0a910061c4cd54d..70bf5f6249fd4ed254d1cf5f76da1d90683711df 100644 GIT binary patch literal 11784 zcmV+jF89$=Nk&EhE&u>mMM6+kP&gp;EdT)Ux&fU5DgXu00zOeFkw&JXp{pZ#=qX?d z31@EmEtWsn-8SK0|KiTzjn z7xDk*KOKMVe^38g?g#!m`4_K`N`7EJkAFJ-Qva*)$N5L@H~XKc2l#*Z9;-gIzsmpj z`yhGdf7kZC{^$PF_Z!}4{+_Pn@I3qeUn%UnZ>|MhcewOx{9_{#?u@_jy<-rRO&nvy zXyYCuM;P%MILC<5#zgf;bXy`Fe28i9kkj8Gr>g)R^LT*on|K!`&+8FTV5f`~Wy(M6j~*(2#`pD){bJ-txhgUi zE~B(+N0iEPFkb!~M2c6+fU6b!QrO}9lDV-$RCaSdQA7NrB#-6FJ-~Dkch}F(&chbM zuOomp71b%1)Q1$G*#%{)ZjW+%6P&t?g?wo2(EOwcVGdF+jflaNYpqxEZbk7K3i#K% zVHpJOOdyPcbimfVTBM{`ifcru$XL36KZBPVoW=3Fj*H`7`sE($A$(1P#yF5A0ZNig zh7c48$SW^>a*hXxyGdU8c~sCCBn*T{IFowf!gUus#HOqAE%sT^l^Hs7JsPC0Q>GRn zxjW*#_YcsZF@>B-lII;)5iugC2dP@@vSK~H+=}}ybx&C;%suKCU;3%+ABviu!GNk` z>Tr^JV!@~#qoR17gMURD`;8|>zqu;RxvNayA^nSeXoV{Qx~s`d+IWtRC3J>hS*t=pOU*NDhhaTf;8m5}sAB}SMR01@dCEXnUv;#FZ9wk^^dJeCI{@y;2anIEAz9H>u8)G!9Kp5p@#JjP?GDQW$QX z5n4 z0x0Wzhi*Je%7c6x8kKx#j}0k8?>W;OK3!sJRfm~)e8M^spUao*)mg8(X(4fU*P&EL z2hY>Dv0vnS<_N96Vt%LSeo3b*jm{bz3@k&V%7c6iQBGQW;(@b33P!V_!wui1Vefy- zd*wRJ@s#tApfmpOA;o0tfP+;YV2C|m4rqk5#(Kdxcbx60=UXfRTwGb(LvA;;9dKAf z&H(^|C<>za^AWuN+vCXnv$WER02w!EuVQde&zz}bxd$8lhMMpc27;W zBS%_uSif%x2(St^5fgeZd5!MEP?u}aBR}cPo%!4M8#%Y7n8|%?2mQr#Z@jdjo}Q-oAc1q*Z&-0J1XgI7bYJMcaaGH_?N4?Q9ZK9 zO-gKb#)j<91XW4;=pey7ii4)n__ZQ_oh=*#3;K-yQ5CNJO;0c}u465o;x27)30xd) z1}p`uzv$Auf>$%b10k6(%ngSyi-ZtJL2j^9LUmV)gEccwYS5(SOwX>Lsot*sS%+zT z;qOfDI$xc>Ct&rH(2b=_E4O$9j=Z*Cl%jrPB4i=0VzM@Q0Pl7WIK53Vq8}i9FMO+4 zuiC9Ivy6--^GF~6he9f>G9W!WD?!r6$XNQRxAZOU%s0WA(XBC;;INxYt9Yz`q3aRFfI=@OjgSEgN#Rf~RhB=U)gH z$V>+w5o3lOZR*}-%Pf5!eb)nI_}N%whGKsU7HW^m{KibgzO-hC^>5|;4d=&4VWqY* zAd3>*G_I2S{f;PXUS(9KME88G|oO?Bvh`I(g^p9>$n;*3vz#4 z+%~J#qS!rHvi32^h&$2>0|;WK87)6dP=bJS+K~Pp!Z&KLlEbELwj7HM|Fd#-s1{%| zA{4dd5jBz|$8XZgjD^ohSZbZ1don?L_L(tkj{rkFWHw}}QW_(;5SwP|mxtf>s3aXd zcJzYlO7~ef5ZNe3nOlJ97hqU_Im^{Ph^w^*{$XRF(3~pb= z;$auu^5)LyR8=R{RC*DItPOr2J0unSWFKiS#?8t%$8^cs1TSixv`v*^>aK4X=PpMC zU?f$*f%+4pki}F$>IhvGt5_Ixg~}K7J^sdOwIv5O#A zAwvx>0QEygi$`>}p>&ceHdMPSo$&dnC2M6Hl;fy7ry^l*NxPq1#q#ou%acbyWx>{Er-y<51C&(-)dbJ9!QGC)N6o$otWtHaW?yAe@xyDe|?$t zp6b|glYnnCO^LT}bC)7dWAdTjIEs*3JE=2=Xm0J$B5K-6j`VClj`6*WE*Yb=wh4dl z7@R_rrmC0?DR%a5neD=-v-$rkw&uSZD_pMLQrPplk110BEOoq2fX?66Y=aO`Es;f? z^2(QP(kXY#Nb|#}KZ_M}zpp!1R=raBYtsg!%E4dzdKx`f_2gsA_sjvmbbXhNhDlHo zE9bm`{os>Z)u6*-{%+Sod~;5J%1Ieh@Lh}2X_)_B;e6W=Kk zpO@;EgY)^&`Vrmw69XiLVNT4hzS^ea?sPCjuZwj4=>;b=)qZ>FT_5o>CQaet|EdnX zXm|jT#`tyTT34*Zooq`zDOBfm%sh$QXYI^Y7yYQdC9Au>nXC!LnUS6um`TN%gq$!c zAc5Z-6n|FS3$E|~h>DLg?dnZOdjysK8q~dz6@+CAR~hAhhBYzsqf-)1n1}_V-AOu- z4&}66gc6S`5Pyz2)3o=*=-zT;{E!2Q_S!GThs5il2h#7JmD-Q3uPspWDZm3Ej zr+mFg2)dO7bEj$F1X$*v@U$dzPp+Go6!^PeLj~b1_UfA$ToYvn z)Y#3CP}j|x%h=K+6oBsbWTO&y-qh9jiBG3t79R7mmk#79J}_$I5Gc!-A`ZbBwj+*0 zcb)1%p-_K5=I?NE@ogI`mhf zxdB2#mX{n4=Um1@Nvch?IpVVANu|CaPL1y%x5YrsQ#fA!AUo#p|45by-FlEOco2$k z9d!ePZbZ=k&j@`deYSQ*2n8}ERR+LO&{OFZ;A&Q<|9|t(6f%IN6|pi3pZdfW^_!O7 z6Fxu-_)BLiV+>c)c1T7djFORMGGK?hl1uy?>e6^r`~e8I%Pm#0P670+)byx8!j6N?ebeTg{IWJRyw^T;RiG zRXJY${k6OyC4cvWWdQDzYIoh@CElPCb*y8=YG68a%O%H?SHI{HnLE`X%y@&G_xM$@ zGJ$eR<>UFr_59xt6Y@9-rX~rfwD4WGg=V-J`I!vT}TMJjw#V{ z*b+I@wDjw{r~~jtj&#Li&u({*q-A+Q0#kaOdt_x3Jb;T>)aT;2!L48b{`$a4pJ7ht zJRObysb5q{xg83zX9lNt8wtO%ay^MDwKaN@cR|HkCKYO=E!$kuJz@g>2$IoWX zPip1IqP{rPDnWEEo?-U6h~W*TT=`E8yc4Qrb#X=A0opE?c2-1>JH++#ejVk;5hXs~ zg{(vg5o;qQlC4AxOMndjc?#xc+5tDkW%!-j>GTr{XKO{_sTJUhcabbl02^a=-ISey zu9gRH@Rv0X*eqf$lA@z~k`=d~X}84B-$Kcc9F;~f9u4f6*JaR-qv!?Avl&#lkE35R ztT_JCe*oUCLDJUprIpH^*|DbYMXx~r`MxlY5f*7`zJ_cT_isnDa_Tt&>qHbkYSlFC zR>Tm-eGCYZWe#e^d*S%f6JMn}4wZrJ8Q?YGjNWYK&*DMSv3U6z4hB1OrO0tQqt;7p zG7FNU1ixrLscAVC8srkwt;WdZGeQWaiKTuIys;u8GVO4SB&+sDALO#3+lw;vFJu7G zH_4s#&}Fkn4%(l}UCD8Qtal*0rq}SeQv9VpNd|9X3*Z+2JHVC>ps^( zl73qti+6Ze3zyTB!2!t{2IUhmyJxj-W(3PZby(Nlw z0){w#iQ(MHl;@&0F`kT(hsP0W9$4;Tf{$#qaXDL90000AD%z!#87n^cQ8iGiZaK}y zGfOwHsvhG{^uHjC-~H_G@rjdssDUuek)lrZMT~qXJir4v(Z!=+O!xHe{YL|~n*;f2 z_^W7y=M!VLr#uu3pZGvW#hYvA$+j^x23T>I!E~N z!~lNYT8gi_`6T!Kp1-H9#HD%75Y7v*D@(XgbGFDG`yT>hKFDnzQU2%^NTeZiOi8hY z7ab_H^ph|eyP^HcEiRdS8t|((DwU?*;0bXL!HwkC1`c#Phfc8V0~Qb%@zsMiXYaLB zwhHJu4NS$fPGG0oD{&Y8?<0~l{D7m>Zzbv!!UsCtV*4n*)GTfB&Bwl2FmEQjPr=Fd zBT=4)=GAs!)^|7#uFu*}LG%WlTwByiiPpf?571E})y3nLD;m_fEf(_o+Xm5CHpo#_$pV``C1<6w0b+@k_ z+<2)ouoGi)o_hyJh2f1e>wj{Tg;`7|)Pe@RzJ!qAP`)wh-FH7h%Ldi9x*8$s?p~(u(y8Ar;E{pW@_=RrvS!tcMA%5B$VYd41fRv2%QEl!6cPn zPrl<%QWvd2qQ(6mE*C9^hS1qcY@DDjww_qv$Qkd4bD-sWzcElt>?dmBV+i_Ib-4)f zFuX6r{H5UAv23{oTWxcj8=X$yd>h~9U%YUK_*!t2c{gOkpnfzPROq?L0|2$u>3$Dt z1Eu}#oNE@+|D`-0-eAwynq&7r0xJt<}5&1 z)tPSoE=c&Ftzt%n> z_Xa2M&La;y=WAa2bT_+z8xt0(MEL*J;vELbA`4kX;5s!w{`1Q!(8%GekB)WOgEDc; zU%vZgPY~@*KDWwb-zHu0LJIMkXmW)cCQ#mmMIbjnyuHpjq8s=VB}rN@gF7^n)j;CEP%d2Oy?fZcfQb)8d${*QKOb zRQr5yV!d(dczo!4`AeCt!^Tt&9lM0ct)bFQBKbgb>|&IZSG@dz$GP~jg+RZ>n!n5q zAP(f(3tndyp=H__YFWG@$BrV#q;)#sdgOE5EPN0#J43x%0bElc9HiN{I~A{ZPG)I| zTx0uyA2X9UPY6TQSd$zmi;vO4l>Al|!qJFv`Dulh?;99g?b8)5P(uxQkjK78zO(*4 z4;`MekxlrUd47DF+#`)63w(I7m(n!UgHHC){-5Eq3u$(UFXkKk{L%i|V0{V7eWdrN z)7?x$n$;0Tlj#6; zF`C<)^$d|=(bBjl`z--&Hp|=8?H&zX7>lhbTJE5(NXb!YYLd+>W)EM?2>7Lb)lT>( zjULN?I05{h0#dWaS@n8tRDy=H09JPQqDoLBFnTy35l33ha)t#4Wv!{KupXq>bQLEzFKYQ;?cA8u~PCeL!q8-piCY`dNVHKwq=6qbwP5y zheg0yx6Y3^`{fs=GU3!wFOy&=`E}t1u`OkN?@=FK-On_hS%3cXJepMyu=s0HM(kSG zNZEIe1YjyOo&Pe4lw|@;KP>mY^4@Ff{W!FZPHItEvpziVK{k~SF1xFP)d}wJWVlPP z_QO>6WV6N|tIZP#3u%ZX&w%j6bz(AhVx4q~Cyi+4coo=s@&Q|-g*?9#B7zgZU#K{O zQ#0Gdw%ZVSgafse;nmq5AuGY6VTpiEVf!CU1N%mMxx3sso?jlI0W{QPMrWYdursP~ zY+jj&mOs2J@FP4B7a7*k=4n`*ll~hSZr2EfCshsRz5g~^MRE#a&8D?BTr~wH^WF0aM48AjVukG8o@Lay@bD0bt+%3&*&G&e~AOv`=TA z6ntSqQfL3-Do+bwNO2pP_}wbg7qeXL2Nwyc-faA}v8spPWEqvCO8@U0*}=l!IlJYT zfx6Ha2Z>5&9>}*3^Ig4@2IrVZ-As|$*q)Q9)(476C ztDP~BpK37&$E-1uqvp8!!lYOJcu*nInT4Fl4sOF&1XeANkiv*CSJ-w{7sm zReFp8c5u$8Ql!%Wet)?W_n$?xj}I*ew%>Mk#7GR5I0akSa*KqON1eg)8MdOHqT_lG z)6@-uOh}@6d`{rMn|)c(IY#&8#>jW4!3y#(aIry<{Gu#+m!wgV)wWBjdKvsYdErt1 zLWCRawC#!ia8CWeplKp8V${ueMHgbovXN!1yssPw znqnGyQah=t1BZSd?^>Yx3%yD>OyQ}FgsBYEb>=@FcAdP?P{qG-l7zHfO>qQizo87e zqUW^I!02?ZOyU^86<)#gt*O+Ck0lEL!LhUTbB<>e$z73=EJN{*r9`Hh@PZ<6ATzf^ zSrsYPtTq-v%D(^7W(4wua()bIr8uFB{y12tB(~!{FaNsxHU@gQ>eXq-g0t&8ON}g? zL#Z!5KQqEOCfVMLz;iaSTIlF`IM0P}V!>DdRH(~f-)eX1Fjg>!0yBpYi8S}eyh!%n z*Q7XR`cUZK&l9MSVh=R3maX)fBrmcz6t>L>M zXa(K*cG}7>_x^>d5P~-dzrhsMm`PM6wN+wDo>AKinD_I0z2MF8G59vsdyeUv_h1j_BX4MA9&DM?r7A zYM>Bg!1CV(OW5|U_rLtKwL}+bV#IkhjJD_k=;FuU00(C)ZobP@pY6xWZzUAz;#CnWY}|{^>h9*XU0q7l zgw=TyvtM?%@U*6M-%y&)-+Ki_v8WxFIyB`|q_e7fr(9B^RAj(Gbim?4tqbUK@OF(t zZEp?YxhqjVFPpH7U_fO*-0AsG05~AeRx0e?EFl&_!(+aghH6F5e<_{#lJni@QO_=Rf8Tf?b~DJETFfZsv#izr2f%)H2#f`BzViD5^$|;k1WJQd!dXj>BY`^ zaZDspg8qd_=3sRH#mro|o-{dAyc@R9vZqDXIjFPtO*6B(5;}RzxHa35BwkyvBHA{7 z$kFzZSx;?p04O&RhjRb_G8~87;MlF1_I;VWHLGcBgEGu~^7+#xXH!_l&T2;3ss1Ld ztk%9hw+5##t6D3xXgRsyQptW>p%&O}K zM_dIk-GUUE2qLQCN5J;bv&p%4cV>%aj;7`iICb_^YG-ilYy;L2DsipsI~@HYHdH|= ztxiC(u2H5TnimjGVQ$ekor*GcO;X7+!816|8Ej+SgqYtuz_j+XNRA{e?D0sx4fv63 zpcwdRLal`PdRfH_1P)aZIzjGyA_X@1hb`Co+LztbR*pG^9k?DXoKp#^1$OoL(AC&| zyyclk)jXgF4smVoIig`g!<~mXY?0UMLH|cXF_Sj~BYb(`LQ)z;kaNH;fe_wJ3zaAz z7X`?yWTVxl*@H=r(>p(XuvGo#DClmU zp8(CvNb?CTeFv=S0D2)J`s;7fe{*hu>3%DB-`hVAvB}f@F3!!k+70Ka&RFWpVdQ!K zW!ygNbifz6+b4_WS?z26tYHG>Ae?>OOm%Iuycsl~99ZTSXfeafX*ur{bYIPxGkC;W zwU*bQct(na8~eC|vqgjc+()EE$bTL7#j{+X3V>xk;E%1)1{fK+3Hd>;{mud!LSnC; zwH_f&Ea(P7m+yG}_sofJ%IKo@vFz8~N}F!WVOFIy!V$TFz-%~YLdPl5>bd}yc))Gu zG#CHUm|`Tc$0E4{MV`yOeq(fn=sKln?!(G>w!;?oXNGH)!-9-?5t4rzI4KP9m2gBe zl-1u*rOZn&VXE2B=-qasPZ8#aUi~Srh5(a47Dq6u?+=Jitxo867}8luj>NRkm)U{@_?cok z$R<{`sTG0%sa!ByT_382wvQ7WzLQ{9a{?g!tx*6vxgI_9IemJR>QKddn^T357@7;g z=)Yli+c8xTC**olu=s-^y9seH7S~?T1<S!hit|QJGL5ra>nV0MyTVNRRf`@}XJ?Ah=CiPt+SIckD!$ z4&YZF(u+uJo?dHAnredjx%GVx1){+si0d963O<(eofppg97p48-HbNeq#T%NX;Eg5 zdd`R5yKKYCWHGeFekF1VI5{gQ?d7ZilJQQ(aHQbvqn;%lzS3x~ZqK(-N4~(I;VENc zdm>)&f-nBZ zylH-T?{pxKXs~G=AAFdS|L|r}xOwUeABQ_TOc*3t{b#@ZSnZn3ka$TQVX^llWI@Ct zwA%;9z8h|+qlpEkj%2?dkE~cD7y7VYnV!7mNA=bL%G{J`-zK#VC1v+-b^e|kg)0vKBZ4rKGF3|+?A9=)dAe=0MT zo%4jrQVW7g#==YFEldfOVBo!*YyRXTN1m- zhaQDMI_};njrt|-I@(&BT9EAr8G)O#d-`4Zte!5=H!XJ>5bR@gX1Q&tB?mySc`2+u znJKo9vYkaI7vv-f(S={9+`0EQw^WKhL3;wnl2Z6vI^g6^WG#c! z-Y{_rD2vfGV3DZezZ|L7>v)&~hw=18MLat_(+(tC+R7C)e@U#J{57fbcv2InJko|p zjK2sVK=N~Iu*HA?DKEa-7U8lF7U;g=3ZMk^X?npr6j0nh1|5KpBL0W_unWzESj>3@7d(-smq z_vXsw`Qwv>C^6UJ;O+xpP`dy`84Fjo(Ss@5f;2f!d8k!EG%vqE-3uTR@HN z+RM!*Y68l}*_R#?cs0hjl*wRle)laPMOqohe2iP+=HNzYO$krpw2R+eS`Mr8=m#CU zKX>!L^c|gm4^wY|uaQj$DWn4cSCg=qi~o>c;93Ii|L5luB_>~;LSMpw@TcC|KvL8@!h~0|#=VU!>%W=X3td^U27LtpkI_?I(jX)QY~i-(a}UoA z9T(#*iQzbG<1(~*E$@pRba!@^^%OMW4)PAYAxuu3&0Add+$x;8btICDrEMaZCDPhO zQqL2<^aM-<5l9D4+j{FGVi#&L?&|EpU<+G5twCCA@fW`1uM(Z=vSy&MSgJaHP&+Ig z`*Y$q(S6?Y&Ze&8c8(|OZR3J<_P?MSO+Q&h2RU=wJ*}A zMy=u~-`?-J#uE7Vfe*d#G7mSQ%kE8x)byX(v^5-zN>vI#UX1!YtxTgkOGC{_z>1Ck z3L_bXJS!G;2@2*EY%A#Cd-}cwnwQm`SJ5CPe_%|$oC>YKN~{H*OUVjib$qyo8af%B zp?bM)8K1C@gmH8rlTU}tmu<{LZQGgOAHlt-MIX{)Z3g(!)R~FOK9Kz6~NzvrZUCoGfD!WxT&$F8ufa%c1Uh$0s;Vn#aPQ0*v{9#G1nFIop{7UZ zr+8@(Xy-I5t5a0Ly3i~s?ux5LLIEB8E013+7bs2eMR1j&7VX11-Adf%R`54J(a9c@&g_@r9mXF?t1zGTRt}oxTd*DDR4qz~X?NN-k zMIO!F0+J|q(d2T3OOnx_IDco@zpPu<{yOjN7G^`x8#6Vsb)HyGd>-HwFR^H;Qw{f| zH#^3UHCu;#!p$$eh!@MeFbNYI^wgL0VD;r*1VrR#OLeDe^>I$*zOMQ6&=EM|Lxzig z$suYE{EwH3F6Ng?Dr@1!wGUWl^>gm9Y|F9vex&M_e)X70AsRo0_Vw@>w^uvqlf40mqd9*0C;52Ht7#0N;xhVnQ_# ztXsjRB*z-tAh?{uCHd!kO!~jG$Umu`!}e3#JAfwee5U{eUn!6Ho`Z}x{}CVccp{oZB~Xun@0n*U`LjIE9Dn+ zw!W8nBRUrkB!3CaAaTe%Sy9e|mx{y5aiCE)=}+!y9m6si$mMMHm2%fpW&HMuiW(cV z@mzNCc3A*=7~|ZG-WF6=MKi4u_Ntd*^1e_}1d6^oS_Tzjna;2P%~3>IP1|R_?OPW9 z8Qpzmse#(RD{sBptg&<|V-r;z1F0;EFUJYb8|1Y2L$44AT>}Q6**6aPq)(a{{N4pB zvKKS)u-t&XY#e{^oX@WLE@T2LRtT6Ow7|<)-6aNTQMdy1qP>8$qfyxdVFcLs?gwdN zy-IO|`?d3guW934OQu7tlKpNYfJBOR~tg1V3SdnyrU(04DR9B?9|x{mV{= zf(o1fuPGVpP}TNBzPSa&=|1JQ#QKoQk27KFM^ruI9>_r^Cd#Rb4iq&2CG|NHKskVK z#Sx+wa3BpGf$Mr9EVXv(4#Be+T405xy1XtbNzF0q1}sv_q+Z8^gu(3%|7`&D7Qh@# zCbv1OM2h#q{Y!(y>w{nkH-$&tKPOa``L#+r+xhn1`oC+&j;3so|tZg z7IemTL-uMCKE_;6y*yw%DABVLEkKFA5gj{$`GeVmK+)$~OtQx}4!bbUsQ%W~asUQ4 z)t$ZR;gZ4T&J9#7iv3MMs1(a<1fB*|t9v2T( zphOx$XxIP__yeLTtyBP1<|gY{zk6B^8+!O|KmY&&b|??n05~K2vH%2j7^b<-U$!{; z^k=o}2c+tUK#K_YINz`>jKB;ImyR!I31h)#B(IuUw-g*C7ytko7yuHO0SEa1*XT5=X%Nk&ElMF0R-MM6+kP&gp?L;wJ=Is%;mDgXu00zN$+jYOg&p`|1h7-*me ziDz#6ty|m?AOFk$&z)KbbM%^}eg28NK%X(7@ka z$lhju;`H61MmTr?%>2;)Qh#LmCFh^Qy}#goiyKe(>(U#QKj?kgeN+D{{dd|Q{_paC z*1f{N)&E=mwe9QDUziW+Kk2`0Jny>a}@mrp6bg@4`k3G~$R$E&DRkq)Hf?}&9P#=aYL_+3fRsT+TGGG6$+ zAvstAfN%tHEDO&p;>swA<``=ws~Qr%rg zUvOO5L^d3qMJe}&6F-oaW%*0c?HNJ_nG)w@3N+w|7xeuC`RpxpQ_?pE#G0cAU0lGy z3ciyAVqZiv6dpTef0k=hn);fu<7^L_@e1mD8{RI*gVq`&0+jwFEa?B#xz4liH&g4A zok8m|O^Yqy2tq4lQiq2DiaF`Ob%h29n4rLX*TaLI#1+R5cXA0=AO%pb;Y&e*Qirw+ zp#&cfiYb5bUDeU<;jCm^0!gu4>?DcY)<76aV+tX(FuF81s8xOy5y<1x3essbqjYXF zh#f9$Krw!cy1!YG^YVh*fE&_1iCZJvh9`-*gjZSv$Fy8hQIA*iPGTV5Dmk|}=%`~84^C&)}?y14TQ;H%WD$*KaJHQXHz%8Q(X|`L1 z$N7qKmnQlZ{%bVc!K!zO3@PY9Sz1yz8Esl22Krv1fb+OLS6HUX^Ky)mw7oqb+~e|Z z`dgFuWdv~>G7;B7U(NldEifF4X-4P_m3fbeirW3_T=7O=R2K(?V=q;TK1U?Lmd!=* zBT0#IQEjsT{iWc5I%7$zOGGe$#T@oFQtLFnepm+@MPGN`OgaK(9Gnawxnk@acJxT= z(>zK?-Wpph1YXjVfknlEPG$<Ae-h%|l<*G(tpTVf;697|EVvl$)P|{<61TD91m*kKsWFGvC)#RNb8@bA zAdsD|{$f>MfVPWV^U9#PWjkR{ZGDV9jDif-_#T-GbH}m;J_ZyMPbO(g$21Il0Ga;$ zGUN#rRRXwrDyXHEHoU#Tf|m#rthDy>B$at`wHV&jedEwD_bu%r=kuE=(we-u!zQX$ zgOB26ur}Kvxn@WHE0}Qsb+d>ljH*jFnnJDMh@JgdgC+{GS9F!eCKXN(D^h3Bwz3@S zKHVN%4sOn(C+vbDL~a~^;3j?@XG9`7rO@DisE#?z)(I|}T7S7pu%e3ES0zL9#FQ$} zU*%uQmkC>Di z_-M^gm^FpcUNzE4jnT520_qZI{O|SayB=^`1fa&U^4vl$1M~g6C}JP#%q_CvuomTvM7ozQ$8%jr9jDQ5Xq1W8uhyQpOsY zPFAczf99z7*I906g`4KwXS@FU-5M zEAzg3a`6A5G#YV3cqLbGq{2dt0nkx zoTDte-WT;IFOeFsUlNKy3{QS+5H<;nyAG+}%}s8;U^+XPMa}{EoR6+NIV`Y{M~$j> z22e0Usu7CNgeF=q<5GYd5Hp<14QkGVHRh-?rm_Jz;|$>51FzU?b2?Eetgl+aQ@acp ztuR6a|3IYeRh$A~wXC#dWU7C)V0V*EZz{HDK=RVGoE%#Fr_w!@@kDA3hA0>Q7>KR+iiH z84Bn;wH=l5OxI4blwx5lTaNy2^R|$f)p&7|1Fpsp6SOfm|xYS1L4vs7??2w4@`R!;>0CkGlf zKXQ_;;RhdI>(~mR{zy>A0N=QzNne9U^X82j1_!{DDO=#cX=W%Ejs+}}s`=EbG_qOT zuD%82o{U`OaYZsdKno@NMotib;l9_B4P#qz^ zE*O&5Jy5#?qUs~nk;svY%_mGEp20p?6%j$z`CLFI7*8Hz#N|*rW3wzn_vh9=j~rNG z>LG@%ax9dO8W)si`72^si=gjx-4*sI%mNCrSbyFiTmV*aqpH{G1t#M|Ee;^lALX3I z7*~qo!k*meV46&HSNgVF=Sz^zGLfh9w;TyCYyU(H%$T*&du=`eqcnL7C+ILluvDHr@Oc=? zjsA*dF6S~JX2PV`G~9-`q{VtF2CYr<{M?9P*SkQ>9JNE@Vcg2xf_;{U=B|+Bdr~Ek zGOex6LRufhVm;WiQa<}|*`?96?ZAR|$>u_geJE*`$RD1q!z5a(gTZSPi7~%7AfmwMpU(h)*x;1H6byTE zFse4c)3i3uj!;{WcD}e{PI1q*feFQ_uH1la$(siQ1kO1Q)-xoU^S~6?9_ zJl=#-#U>8OB*FW!6+^2G2kaxf#B;{fLHmY3@dmm`<=~wlURxVk+~jO}8Ceyc%1~^| zD<(|U^&n}1*o_Xo9caDiUqRH*mbQ!Wtb!q06SqZ%_SDwgoHdFCCM( z-96ZslbvH5a*x}A;j`7%fRF7avH~eZ6MnUJ6l3PWS4cg`^UcVo`@e^ex|7 zI!!BUtag~rF8LZ{-3@XOgB}$m>v@^tE(hH(P7}@hulO1g3EJ&V<*{+K-aPim5nQOj&Y!OPKsm|n9-6vjhUVW-|g!TUR(k+Bi_P)9eP#Q_SdhsYv?OjIEnX4KD!+H#O1>}$$Bxl znTCHfl+kkbRq5CE$N)CDlwuGwlNS%=nWJJtOqyJ=JU&3~2dX^U!_s#8PgSFD!Uf*o zk_uc&8s@NTaLrFxou&0RJupWj)*huf=9bV=n+EZpZ^jIf({;dm84@0Xy-Z<#3@rOM zOCjX2aMBm3HL6j`w{3$0c(U3k9Ql8=CEf_`-V62yfCH8bU~j__T1CNP%YnB!HF;;k z@jlBV@6G4qE{o#W@%i|V!_pmCSaba>F#5wfvvep|@jQdJOG=POZeib!94Wsz`|~7i zqgV6se-F4{=AKSwgs)sVJDq)T7}x!4Jw!GZwb`(&^{#M7lX)KgxxpSVwD{G-jsxbs z_vgt^n)LO|@lDQSe~k)!*AsMEEBuCdC@o?Bnt3K2vK1c%#x`*;x&eN)WQs&eL!J-pp!&!j#P=u$dE2OlByFg@ zGr^8}M74MHI4F1`ilEjp`b1~3eV4^NKmh*s14dl~UF}U`Z{|czxgxI>D-6b_8<~wU zR6emnsEPS1qUx}e935Y2|AnU>Hd9UvW;kH)TEl9@2@3f{DwE3#WEyQ4rf4(tcAmY> zf2Ddb8%yN*sNX}UldA;P$Q8Gx-=84*?Z(SO(;oF&6dE8D@B-12(!RTUj=h4fPM?Xx zh2K3{JsV)QoG@;?{_x`V8UI6VjukGUv^LoETN{|~dTwvd{v+`Q_{-+PO*3`Zz-hou z7U~L4$Nbz@n%rnpQE`()8!&LI?Fra`r}pQnQhIJ&Wox$Tg;--tEXDoP$E2ijs%Pcl zJpr93)>zXXRjyk~RdNDHnhWX`k1f)!b%y#`C%7iG@M}gj>o8a7v%Ivqw!;J3WtnDmsWuU`Fz~gYR^avZ zQjwk1=z=$Rd+2fF!f(!Z@h&MXbX%<9X#ygr(TX5U{%e8VKgLYXrVvi{cHynV4p|Hv z1mH2#0bNKKa7OmL%()zaaS3z1vF0I`lv!@v(P~Y|^v^P$yQ*8m^@t6*TD&IGK(l3e z7H%4ov0x!qIkKgNcY0oqbmN1z;>zt2Lim`ClF~w&Lo6F*2h46iAVVSm43n8h@5KP& z9#mfIvJxAopxm;7vUf6Luj{u;QCjOtiqKciQGiQLQ;qP7R#z9I%5&c+mmOBmaFEPq zOw*o!GDvk=bY^B6W1w|%^sRMHsk|D|RNSV_G%IxR-8V{3I zf_sZgFV8C15L=w$$Nq2th0LJVkP!#QGT~MEGbe*CCXox}X!RgU^k;E?VfgHNqc~@x zU2@Lb0Xz&~D*1Zk0dxsi*@UwjZ^r7oYDz!=*^p!w&LyVf{SK+=(gO<9!497&H}5WC z#Mhtc^~KcT!pKwkzm07VHf2U*nrj4n8*_T;s%^mlR#A#bN;FRgf8WlXXOZmh5ZULE z>aG}hhc4Yy@7)gk9?zGYX=4aTAusf@ou5MqhF+-?A?N9Wul?Wh%`xUyFxa}?&--6K z+I75kpX_e`zjOEwSIV*yTm|LXPv7VxV7TKxlo8KmIXpO!p)4N&uu+wCHm3-a)Ub-A zeoM=fZ3!pvNn|uGvQ)(3NA!qL<8(zzXt}rc*nCu3Nug5fS5ux(W+Z}Z0+;fK%NJ_U zE{D)Su%eNV%K*}uFb--IQPUP_$idHxgVt!~ckbKxM2}YFZDK0e6#KEn{rvt^3xeJ{MORD3 z@8MxxN{$h>sC5f!6Ab5nSp0c8?w_V&z4i)5XIS#}2{L5zZ`3ZWMy4rUS%1C$=kGY_HE?NNCA#X9AF7h$Q8DX*QB3hVkJk>$E&_Yg zM>R}cI7)eZ1F{sp+@wW9?OG2meeYt9Pfa!>6g}R5v^hNarQ6l02O8q=D4l=gN|k%k zMlgr5T6*G>BYw^Ab*0b#4{tf?==9^J_m7Nz74<*o!QwCGNgZ-3a#)y@7{J_Q&rF=-UEWV_FiK zIDcE;o()ON5Wnn+=qD@|x}2n684511fVfMS5BsVy8(&Nw{@>9OL@sEQF{p5)Z~Irw z7V5+oL1;QMLQ} z2c{v3K4`^?s#{|qDo;T2~nR9LL1{gHWhm!`<=0R?`sl# zl4Iv_v7#tp z$8wmjF@)xa9DGFlai8nQr{y32t$xE6wsE1d80~K9#m}P#4)i`+P*mQorK*Z2J#~Q2 znW@Wxf(Uh|Wb7V&Jl6qo2Hby7wdqUx!Un}erl9<@rhD!?(re`Og{`CPq(yd58H+&> z%yg9~3EhZZxaEg;u*j)sts`$@0)&^OZWd4}h#W5nNl=guxfYvP`)1SRc3RIB7wTSn z(7j9t9gz3Kkgze-NM8(e5QFS|09b=5SwCZF>u4n-EQ+VDDB^d`v+x;WB@xthkXbYu z#R550Q_lm#RzbI#W38s5h@`--a#nFkT1%T@C7zM%RWWLW2{j5Q#OOIVyQ8N&&l~A>??wOxXoXrz0p6@_xu`O+4!ly2s@wR$#jB}C=X4g5 z-WO0+KF_^rb&f$O<@z*4T4AP=St!CPE8_^OuH(wtQ7BiXMas&Pos6HtA&M*AiTh5jhiwEmLv z`Q|B2y*9?glkbb+EsF_(eRTDBvZg}+c={RDLXcCNdQK)ohmw2MjjPl%6eu1WsMQ3* z_sr;X!QNAz0oqu62^^^1j^%sb0$E3!Drm;f$voS$X0>g%+ggcM7ap{Cih~}bZonYn|Y4M&v=U*Du5XN+hq1+DqLF z^IbnBnU2Jz_cmoi#Cr*B45d{eBfpWv(oU+vu4KLPp(n0m;~ie=SY=!q4CMtBkRNp2 zX`I!SUGT~YG7n&Q95K1olYUo1C#Zka)lLLdQCU|^I=M`rQg{pLbX@eTTExA)7#bQ3 z_ZI7kR(lF6ZvVg188|cH$gD1HmGy%oPoIuh&k#|SKDfz$Rtzis)HEv4onjb_{Qc3F ziKp!7snD$JSEoUPyalya`?pvL`BIcv>|@n$ya zc!3wyk3&bOL>YvO=gl_+8BtyBuj(C5w**Sx97ojc>JLCfj--9@jSsO`)S5fZs?gKq zvo-MzA#mH|wT(Y)WNymeQPQW0)(G)qE}drYs))Z{eGxoT2(Ky%eVDT>uh0~3)}2aa zoUO=-h&M<4b|vIQ<5XL0I(-(GBpBhV-chasav)f+a!@rxzA7ifLmi)U;~RClr|L-E z7C1K4Y6P%%Jak+V4`3PQ+yEM4>D5e~{B)EA|8}y^pjuMFkIt9Ck6*{$YOn1r^ab*a z8v!e57Nxk<4^DCQ@+g;^cbxk2=t~0W+lDjpc!w8lOB@?=?r5JwKOezDHKWdI;HN-d zbL-;o{`7s5Nn-r~X5H`ns399NSA*2+2k1}L+zu6i#t2^V*O1;hVR+0T8t*3R8SGy+ z6oIRB{w8}mIP$&p%@mbf~h%Ccnk>K zqJ8-woohe4D5bFD?a~^DJ2E>@!$)X?nTnS$C5G!baO*kX@3H=DHLRGotsyUGOzqM~ zX#_3fq%&PY|I`OidyyV6Y&=Rs)iECfVQgtruBp}`dB_Gs?fwSKzag{MLkTauG;}q{ zt?cTZ1e@Ndm2lNYN@_nAz+BU-Q+rJK8uJ<>C)Vjk`3LU%T!G<3^&$09?L_h-m92@% zV^6g6U}{}OOH;z77^%7-?4z?M5=8Org%*#l%9Be1ka;yX>o3WQTp^m|A465+r@S{) zag2PE z7vRr9)}e2}eG2ySc^lmcKmYON-JOt%lhdj(>PnS5XiX%yfNX6R|GiQuG5jZ52Ad7A zI`?~1-c2f)%qSKAwz5ZCwu2ucep}6kp5#ST(Xe;o3&(DqfN#&WL)1x{e_Hw0F$cfU zOsnky^;?nPtZU@_e+4Lra|}CsF)bM0a{0(U4@r*=Y50v1)1G5q zveeIo5E~VZ+;yQg<>FLo*|;4!6W{m1eL~@Ky7CM$ zg~oUWW!H-AG|+61FiVRd9xY?SYBoo6YXEJu?}h5?Fn@u`&y@$bo>uVqgx+|_0;Gld z?pz;O>B!?dg&UN7nnCatpDBwNgx_HZhOfMWi(>KC9%PV1HZH$N<%wD1VPMw;s%qEK zWqlrbgO$-sWF^A0+GKd$;S$G#Cb+68>~R183a?QWt!CJjYk;jr+1@1zWa`hLG3Ois zfi_DradTT8TmGaSTVZ&qOC{3v_Fr@X0$t2k6;^P7aN6czDQwe}N$WhUWMb*rY^H!f zoD;@J)7kL5tz*oNH}XQBh|x5pqBJKk(L$=I5c1(@8=-eQw3}kxg4PO?8p+}Kwwoh) z=k9x$6~Aj{lHc$&@Y^%dwfs9Gq<5`$G#BeXqXrRz;RmNhv$;U(SerR$P@21M)Z><~ zAjIxBtWu?Kqz?~^?goWf1T@vl$Xwa8_&dks0)$7hvBP7T9ydi6LWkG_>ioY{QOfhg zlcZF_z9yxr{}ewS`)qcg&YoHPL!@|+D`}_W4xf(`JDW?0-5>IE?S#v%Tem;F9Vl08 zDd_v-FNjCKNj&UB4pS6SH~crLHrAqF+|--2Nhkw6WAE-tRY!&g z;xVCDzdW073Q47(J4rp|AlyTOad4-Ohu!h@g(K5dgFjV^c!u~&Z2hwzo{^PHKq66V z>DF^T(k^s$Rc%0s|79f|0^ZCwXh0F5`C39>D_xQ*0tD zdhu({+TJdXH?>O_z~yu()ZmFCW2Bk$h9H@KxqhDx3s5rSLPgK_f7u4SD>8c4MxQI& z-c@e?_PyFNQ0W*w5qR|2t+?ehLBsMZt#$yt-4xE_7}Yi)q05rwV*Hiekmb=I9P**COn@qGpnCpM%&Ui$$PCwgae}9tS6CmKHp!iF z9Z$$n{06-j*5p`;N--%_|P-t3>(9ho@IVGwMj40uw3 zRYHov_i1fm*35Ia*p@FL2F~i6NM~mI{V6#Z>!$+|` z;Er!8%ST6cW{Lh|{QLKo=|3yu%$lN>`$V-!Xc`6xk+7FF>HmEv_` zh@P{c(U*w2ZIP?MfKKu@{k}Z|L9COKledR!fg`9MzI~q5GSp1K zeZ8bsW<-@4Xd&h|8N#fe2Y4OecU?V!$=f7PL}(X_-;VwH2T#fz^6_7%Mr?OiXYJNw zZ1B|BDASSk7Pr-N`xmY78Yi-3-nrOHH5-4UoPPn8B!vS>J?r--kwI|jr<95LpiY>o!X6n7wkk?ia> zg+4w6&InoVbu0n!rq4zq0x4KN6n5t{_1%u#p2^E? zAcFIQKhtFv!k^@)T6f7IZ%C03YPor(G!;M#V`RT&pMpg#VMoe+waUfKK1s|$E5Wry z9JjA*n#|o)*c4o`S*Lk{Mbz7lL0{i7yk#=K_fjITCU9bhNrje|YO`ORIJ?khBc|!I zUH_mf6B!{@YX=Yzq&z0^Fq|uYbx3|IgL9dQMB!Fqv>BOv!*0Cf3(C-vR5V?I;6NAy z2i{2YmeoqeE%uGOKffJX$UX2Je6ZmATyPEmrZpr(F?ypDjPps{LokdGB!5y##Jd{D z1;M}1>FZ^g0&3II%>(%}6uZyD94#VSyy{S_hFP6~+=~~R)qAguh#Jp)sitTOP3Rab zP!b=y^>+bDK8A`-)vh(uFg&$L#}a^Cnbbe~oi|IgVkE4moe<4GD9M=vUEXoQkXtUm z*^jl+;uTqi>J_yNqBZp}hVq~hnNSg;MQlLYy~MB%<`pkL^AG6ogPz_9efJ3-1-1qvmKjJ57OO9zaAB(NX}JbaU)XiP(s!5uK4K%>s_~7Isb7< z>>=;a&ZK;}V*G}itIS~&gk`l=Hm!+7nlh&IciUHr()z(DA)nRFBm@)x4rYLo^ogKE zmQz5z?~oOr)w(B+%Je!c>ZbaQ3UUW1U=0X#@2CGAY-_36ZMu)#xptU~ba4 zY$=wQLIlr0>v)Y~)?7tc^MgUbX@Zx~$R?BX1^nKuvI{@8V=&DkhKtr9ip4s6WridO z(aIz_6}4*KSy5eR+DMYL$WOt7ch#%h7-*Tj6s%H9Xn;G??opTuWbk2PR`k7;8lntS zsNUsF`!)zba`qV3dO`3dGJmq5ICZdcGURbIoZ0CzP!)tlg+4{eu6;w?;6Wt@x}Gl6 z`PdsG=#6bI2*gXaat-Q^i>=kw9B*lPFjI;_&2dOwIn`sWZmn+8y68soBqC}39_&Ih zik`upVD9$el%Qeq$|rRpuhmE#$b~dwrZiA2+`ume3Z%KpeUdNtX{^JwK2XBhe2qGo z@j;pI#`_L27Z}i}+owwuN1O_ddhfFKE%MQsl++J@uP)S|N&1kdUd2SfT8l-ZTgkkN zvFw{}VH6XZK$&>u`qx7vo!vztMl#&%tRW%ed!c1Nh68Kw#Xj?I(&jl)M@Z8C-M15b z<7KJ>?)altV02P8!4G_V03Y8mIG=v)sA6tq`o%%n_JZta9DB%!nA{3wRXubL45&c2 zJniyzHzRxLl#PzB*=w@$>5JrtBo#Qx!tYRBh3;*7!hPvW#suC3_(461cma;pen6w4 zf46g;+N@u?wACH`x&r2KOCS?$$WFV{KC*Oh>j+9UbnmVv{;u#LeeNryVZTbWIsYNW z$7GkLiAj(jE?lY-O|Rc$*gMsD_t)2a3!TWc6oA6YWBD+iy7_4%9Z@J`MT8OXAs9Dj z1L!7+-%bfz0GoHE_g*4yB^B-5#zn0ax+Kx#lwM@$q~3>#skj>cp?=I_q}gyM_MailN_z}=s32$qP7 zJ-fsiolCr+C{E-z5eRzTxER(#6#1YLo;mQOiD#jx9+e@sDi##a&5|2?;j_gxnV{f} zaZk%|Q<)_#x!}@(I)OxP@To7KDM_}QOfN2@yBn<2Hb+dXb^>O?nBt=C5!T8730J?{ zbt@hkh8Y+`LK(?92vT+L)+9j6{5C%KN>R)ehubv}QUUe=A1a->SEb|5{J^b&n?qYb zA%S*L*0u$>?KBQMfT1ti5}A|HJD1o^<)EKX=gz{5TTVCS+lFf{W?WX;{k0%z_kpod zNUa{(Jf1~5Vgzo9Odi9cIisPT-N0p$fcYnGPYAl-Dml-eVs8j5o}c4x{Wl*MdJE5- z;>KwYnJ0|w=|PLLOR(mA5Mk89_cnb;44{@Z+vb7CJt96DbiVPjvQFv;0^m|~%B8v((vPszh-p`l!G zvodYdIHsKMI=*r#!w{;W%D5V=eA?T>*ZCBNhDQo799VC zN8r-LgD3|_cc#qo5xet!>>no2##U?AhmxegOMGSMeImeY4ORJg%ZNp;6s9S#zc7}B zZ+|AGELPhp!`v3+dLLIg(0l)NUqnJkhc5#-u}EfXeUU7G4S0iuNMVN|zT2MCJ@kO3W2C(2^?x!o6{{W@-F+=Ts^DI2;V2!fX_529d z`gSlin|lQ5ccnc30EW{;(&UsNv)X$pb)5X?*H_`5HAAE}U2v|lsWI$~;2QLCr*&bm zo+5gxz7zCj@`Gb1ui}8;u9A?HXKK0jYl#kSw))38=$o4vz44?UnO3~_8d>T}PVQN7 zy?(S&f>m#SAw~%6p%M8`@=JdcyHvhALn{S7tgnW)WkMWsghIhk84idt%nOi>+emnN z_i`^r4~4pIQa?aIrb2BrKhl*%!xys$CsLkQb;ay=v#Mlvi}-G{DOxXz%DNYWy%Pva z98=0Tobly=Gm3rl;Qf%Y<}7dj$&y3e)N9w1Zb&*gD%S4aSVfU`{KKJ||7vlYA+}>? z^QX1-hf!9w{j=J6|E!KF)8|BT_VjM|asdu~3DDByUU1D8v8 z`Hp$1DTrr71|**VuzhuXq5Sd}(8GnNp)>PSA^q4Khke{d7k5PWDyX4;-(l}b0%GE-jQka5lJn6mMbEQe_zZWcL%Y` z&4fjLyyhB81EBB&^TDRN$=J3mZ5%?32DCjWWyqy{^FRTUhhYhHMvhR`QwV3D05S z7R&`o6ORhlcFH|GNGbj1*#`Gmh;OaLWHN0UFLFeJgAs`Lz-dyW(#KN2T`I)L)jK4o zmvB_Q3HVxlNwN@C33}Jr$x4&`;|@U4V!Ww2=JnV>W;Kau@dBM>8oKX&LC-TgTj59*(~1r0Mo#?Y~rd0wTzSnDT@=>sOjQq_@? zBVndi&TTnWUOYL)0;)=e`0-);=mc;VSaGDK&hp5X8Qo>wgiP_%Bl=qw7IVXEeTfW; z(k1$WXFgHlK@2fsGN?t41EjtgyViMRnpHwoGW_BB%KA1ZhlJ;B%^uzWro*%7b@}eG zi;kV!ei3&P(Xh*od^(nWISAQ9pqRmV%?Kx(OwwMua|?FLt?+Ea4HXxpv4!BFV1$I9 zT;??NLF<9*?ii0j-(^j)P*a;O65E!@*rHv2e#1HYiqm(qBEnlV8>0Q+w#)Cx&Zz5Q zwVy}KdVJSe@a0gm1L&a(*soUyZBpnRevHPLFCekj4{ILnHo3bWByFbFd;13-altK+vSo$64;D__orgRr!lnUz?wh zr`S_Qxp=z&m%r2AQQ56e`5HLs}*gJ(DcPVY2=L54Ke zVm$5uT(kt)Mis$Fr(eZf8lkt(#_*E|>qk0J(KUB5Zt~nT`R-2fa+cG{&mAIvYa_^v z#!I&Nr}>xobE|p2^#Wx2lV<$RDd0cn)I$x|l{wvVwH_Jhp*+lP3u}iPhwkPn4>`lzWi$0dQ7foc-`> zvIgv-av{Drs7_%nH>SDTOP6Ho3Enh{1|F5eSwqr~KLn+3$0W`(f*OHZ4PqPKR7;9* z#Jh_1ik=!LyvFQFkEuY5+wcCs zVX878j>BZkz86=~$p^n3i>s<&=r0g{N7@$h!R9uq2R^Hg zs+q>g_S<2JZhKV}uHo8wGF)1;f@2uITcg%h#|Q%9*D-_cI`E1{S`QCmK+s_ufW`=3 zm=$+UoI<~UZ#^-|uGNUHQPKSyE_m$+yCy9YxmCKNeUQpqi;tchXFbMspv_QMZzLW7 z(?_ZXWdOT5AlptXFDXe!T#VWC=TI5|=DJb4NlG?N-qb2|)fjve5u<+1!af6TuEs$Hs1I z)147nL>Sd%te*z)VVM_na>*$k$Ti#gt@}`2`ihEpI_(tci>zowB6AEwS3t}dY|XWm z&ElF%#AhtZHnE*=2o^9KjAZEfC>L}c zoVL-MnDE16&RcQUvR66MHh{ASwCyg>$5?O})25oFidvEO>iiX3rM4B>=vj54_3c(; zFNm}eN_DB2JN47BAnAQqmGwuuO%ES>|B!s!I3J=-^3%}U{kymr4wCbmz|zu8^vg2_`IJ0R2}HmabNw7|TZgZl%>b{yq1` z7Ye#x;SOZ@KDF}pt)Dg-MtEt&FtpDGF}beMz56)NLZA}M9#AJ<2>L=kgyww%Cksj7 z_>%%al0BZJ%xZzKRJ;#yQH+}lxZqJgm+()ywWggb3b{lCoUIP12;BGw_uI)L&VS{s zHOkN;is$o-FbKjm*G}+L!aGYu_>3;Kgv=kRZU**<^fR_iU?eLq~d8mox zyl?%6DdsibKZu1Fo_s7eZ+pNrLimI$rkBm5OK6BQ)X$bapg7V)<}?_=Zb*G8smA4m zYSZl`I|hn@8#@{|e@!t)d#AWs?sqzB&~Z|KtkPN)NVxFzL*F{Lf;2 z^fg`Fb=s8>N}qiH$2$F$Lw(yuc(e~g)B@TN4A&xP@UfdqaCpxw1acwag^Xa5v+>o&@xkqk#09!)873G;lqbj_^%3)3r(f z!d-$ScehHM=kAu&Y-OH5iYk{C%8tMfCU_87SwM7wancX>{X*%yVCGHL%cMClXsr|^ zoCMN8Ea(II%YTK~PP(U`Fl&k*{R^F9Z9KF&Uuf{M^RlO)o1YCLw~OT?I=y6}y$V$W zpoV8u+sA{_zdS&6l=6D4IajuTyn(1Dx#bNye9gBkPS1en=H?Is&sl3C^Ya+kLB6QU zJa7)asyinV=|j84Lsq|3v}peVn_#JGIHFJr@6^mYiRz51Sd<&xJs4{nVDB;~GLZAh zS(}I#9y@*D2}G?ttbE$Cl)68n#JI)KY7fWzC5{8v-TVF?v-0{I zZcRjMVYUffj52kC4q{e(j&Nmka6^C&VrOrG^M16s%}iX#a@e9kk6-vCM&$AOq5@-W zD1b~#nvdS6x?mx+3_QMrt@z0Oau#eY2?1CGGWG3pPT|0?z99f8FHKoE7HUWqQ}GMi z>f#)8MWCp8O@JvZjki13fd>5NcO0!a2(*%gw*PY_CzX4#Lks^ha&kJKg+3VOpv4Uk zf14^c`$fmIC68)(XNJgSUEr+u2(i6v1`b0T)e=f@bD&Xe!?!anufg~o>Si7pwHuKU zLIoap&QCMpC@u?%7-on>m@>b{PxqZ0vr(NS!`+1h*%SOGUoqp=IHQ2NZAD{qi<389AAu_E+c z))_vaR-HUx{mu)LuEi2ifd;oPTmpfR~q+wBX>0r4N3j-2ro|X)}5YHyBR!C_vzzCz*mFh!qOL*@qS!iNZ%$U~peV=c`mxln`Ya z^ayDN);0(ZCYV7@Ko4eN@D%LfN4Y=GW0S^*jzN~L!&)*#CFlF)uiFK?-qc{}o z1Hr`ESrTcIazamclK2=y8$uyBnZ`dSRZ!{h)%l%PaV04`seLNBYhsVCG;}@GnNw-d z7m#K+Saf#41m;>-GyHxjCS;F zVV7zrGOYP_Qz}UWB6EK|u-w#(bPx1r`DPs`ud@J+{vA`UZ~zbt-AKfYvpN>GJTIe? z^>Q7CODJ!^@xO7^nwbn&KIlcVEmt;ghg08WQ7q6x3tW8$?v{VW* zSibYo0CKs4QMpuR(uR6~0J9JPVhn!0!%|lo)^;DO0o*{)rfjFf<8pvsN>_v)6^68RF5@8B ziRaf*VGa{3GNhNsVQly>_2AEr*g%h+{_iM$>{PbGwvU9*;`6tb!iZZ)vM|-KM+ry; z47uCn8Xf?Px~+OsIrcIG#CFJJ4Hi%0B9RRXLZy@8OI1sbb 0 diff --git a/examples/driver-wave/preview.webp b/examples/driver-wave/preview.webp index be459532bbfb90c547abab8c20e0f4b320e261aa..6922999ffafa5b086df38e7f54bfd48041bff691 100644 GIT binary patch literal 10926 zcmV;fDpA!^Nk&GdDgXdiMM6+kP&go(DgXcwnE{;vDzF5j0zOeFkwz&Zq9G&L=s6$? z31@ED6xDyw?RvvfKm5P_D1uXf4u76r{tnl?Q(c)fXy0}JwQ#nSoe!kuf4{5JXZ;^F z|5Eya`3m|3|1R~3<~RKBP8v5{Ug*34X5MB!M)|+-k3n~v;&&@=4djpY|92lxf8zgq z{Q&s=|Bw5>uqXJx;oiM{LwSV$P5x)qU-D<&U-_R=AMc)rUbY{{Jw$(idTsyP^sV-X z{lL}S`S+WTp#RP09*@l(v}>-P9uN!qX?(wtB(d&nd)kVL{=S+{c^ahJ01GzCyM^-JGA?wy#5tfWWkN- zij{#W4O&Pa=tI}uMD$yaF7GycwE?1`RS5b4_(08YeL;e~<;NG_)LZ^A#MDh@W!8Og zs#DmGQ!(SExxwjel4Z_undW$#W&ki!%CrtgL{wg4Nb^Bt09DUb3$($o0fs{+UeDWw zlX?HA@4}FPVX%{PS(_SI$0cjsx8oBSn+9I0-~qB@>Z3-;u`0ja)7(vUl`QJp>yuPYZVWz2(aY1{!To%<6C^U)|=Z>0d6KBTVROHyj4aKd`@qZ!B zeg2Bv_yG^qDjm!%1@xAza>*X~vr3z`Q46x`^sYoO#Km^TgzmLr_!PBWiA1W5^Z1=) zc!2==w|Lgv1^xJfx_p5J6oOD%d|{qcnY`Df@YLQ{Li z&hHJfrTrUx5FXbg?V2Wg*c67*V6$T0PSdZGY3Vr!s5qdtCTM1}zg(otO`ZQr5Q?(j zjsTut@Ri~Z{Fk06QiB9@L|574C{p^e1(kf;PAMsz#Vl_8c**$6}3EIiKap9hwp~8rrUP6 z)*VfMZ`)07CG7Nah0;1p=f_xVQ$w%q>uc7wodW`=`AQ*c0j~m!l2KeT zX?kP>v`RjjI5Pa#XrZG01@1V6bjCZqaHv?wmh_bfz`JTd-mKWYRz{)}Ewf05lrWd) zX9rtx^{d6+h=oL>&oroUuKDAOcl!9BDLdU4U5R+md(Q^)lN~XdgK!#j=vmUc_?d9M z0bT5fmli77(p8gqvB!3D*~5H`g}2f)O^oUPlCEF-B})rO;hq9M4}{*pI<7VN0jh#E zNvEzH?YAI8Rt@s_8DwZa*Z@#|B&~wV1+yda$v_%edF6!uv-6&sHfJ~FL)1w_l`Ic3E+3@|2)mtWIi~7@9b>FCvBzlV-_N{Yy7-D#dO0NI22==A zr^w4PEHWnLO}}`u;u99@?fh3A?7ekD5ooc4A1TpT5o;HWr+jA&MRFJ~vZ9Tg%SuxS3sJ?^Z z);0YY3~vLuh$jh6{ikh(B>3H1xzm+59|v?Jxxp@wmZI*S`;xEB!8jK>x?i6z8^aRTd5@1-)_~k;_i&Px7|E_~8o1-c)RX`Q4-y?bFtxB=R#tabqaRux zBKis*ep(ZE5bEKQ8tH8g5E!XWK4LvgVXG=1O(nW=k0IQg=wr-BX@|};DkFDuBOb+( z9`~`I#|3lSg#>S@>?FdOfD7J?>BBO3y+hAysY>cJ1z=GecmZs7gg&2T8r6mO}h`5X=vKnTywS9)nNfniJpu^ST$<^vu^9yR_Jb;wBd_eUm^V8lrM9WW%Gs;M%FN`{;_Bld~8PVUa9E{H=pomvZ z-)PHEoPV3{qyV{bjdEdJez<3lpG%o3;L06b2q1|tnax48;--ax+J~!ch#`)RPXI$n zjVDLT$@U%#ab}WAZ z!^d&Qk0xC4$CY)eAOB3MF`D_&f2aBY^Qq3MC`^nd;h%0OykFyCuyCSV@nNKX>bvR4 zaI&q+X)fjw$J5;7sRd(VRGH$zOBwl$eY^W)fZsp1}A7g89jW#~F z-+c!G;)$bi?uu#QW2vBENGl9+-3~jQPQf}&@{p8-q$MmLzVPPS0oKDZ%Rjk2T4_TP zl?eto@dphVVJzh=zb53BN>a|9G<~L;lDA z|4Eas5?jw)O_!RL60X9QWj~tv?(IL*4z3+o8^!W*oge;>h;Ty%`XdQDwW7ieC)|co zVxM7fUwB>F@CD#GgNN&@@RODmekVqw8{Xcb%53$(0RHF%@MD&k$L<-HU=7MB_wT-q zo@sSt(Sk*ovS%WT4q=blRyb2(!pSF4AD~n1b4~&jR(7L?x6#dJ-RMV=zET!PW1(U% z&F09{?y)XBQL>vd`yI!Rfe2A3ny==10b$nvzk}+vdjMoA=Y9GvWct@MPe)Z&4ir1h zg{ROeeEy2BfXVld8TBzS*w~gor7Mfu6?KHTvbPzJ5CX8+on$#zESLi|<8_Y#HUVN< z+mME|W7hupl}zlRs>f2=Az-t>Zmdp^Uv74wKZ>Y9Kq8PSY(Ug42uZB%eG3tFW`}=M zkk%zM97D`Hw^up>RHH;yGW0d3HpVC;0m>5aO7~^x)?=BPY&9}=iuX$PK37kz?SG1I z6jU>g57!a-;-KhJ?Bb=9g0kP(JrKnOu{)M6dx*~INsIsdF@2myIf`Mj1{#~>0Tua$ zgbrFX4{hL0uyPp&5egrqU1bJu_1xQy)mm$(2se4B!!$!ZDxqj2CCE;%_V$4+p2?6W z(ZyoIfno$A7r8_&%TfCb)%c8Vs-|;SPDpw)*b1`fZR2E{C?xW2aF7;IEYtS`q0dWmkJ4rWT@Mf zfw!8-uW1)@E>4 zcrX&n6E-#^c7N1=+fJ=n2l?;)j#gC9KxOjaJ>Nl( zW?}LBwU3FKaEKK-zLUu|3ycz1T*yNEZi5o zPT+?0xEnFfi_nQkaa*1Q`}#_Qx4mpnti^tHsLZ}3I4m@peNpy8l(j1}#PQaP$*6*6 z7z-ZXQ=eo^NO>34#eHeMu;cWva;K5EsD^VcW9YEYE=Rq9mV=?|rh2F@aTX(Z>7tQZ zEitr45bQ=dpuGM@N_!BO+@d)B1~oi+;i@E8+AEi)hDOW7DiyQMW@`rQ+{vl@L()Ma z23cFScVf$+JE4cHe;n-eOg+8qv##?weyK=wSOiYgVrJuKsGFBgk}6n0^1)80fZ_kE>nD0KGHX_&;3 zjR0$a9{JbGgO+7zvr3XSE>*gIc%Vrqz{<4y6Zb`s5C9Tn*$j-nE^ z^$5^tY2R>0KNUo{mF?78VP0=gdf_uMVV~89DC}ZFTJ;f%rDwnRos=of2>hXDmXz=d zjHcBulFb!bK9lq7;X}@|S3=~pmCG9;Ds7opF%F)8r4J7_Y!5T0UR{*kxx#viM=w1O z$V&1+$e{7~j5z{xiJ%wx|CnSXuwVBN{j<4W$NYTB-Y%(>L8}lALM1fST_`B^&8M*8 zU>(9L`cjlIq1!<2mVnJb z;yK6XXFFTcyxZ_$Czg{d+Jm(o7!o|8$mDwyJ0S-+6H|ou_NgNfollcszs?BubZ*0! z5dbT%GIogYz{NkQ!U@$A!}^(`*gy@o0tR&{pwDFoLU;1nsP9?_3G7{}V&w4Sg^__`J^pF}t~)m0O3HcYJOIzpHo(aE!u+ z*i7pcG?t_C`f9Gnm4SdIETB%~IjQO;KbXcg?vw6uO(t?%uAM3pRGzc)vKr4Qo?xTE z_7fInY7U96C;US#O$Qf@%U3;TqC)$is0J$NLH;B{YPIbvD}^vAc^AioBB*Sz`_u;(BN3Mvucf? z5|HdeWyRg{=YhEgjHhpqFnC?-HpoQ(70<40NMvePm8WKO&iu0F&zi{&(Ha_s%$-ijW31%hScdQE0_99_E;7r>SMq9I4OS$)mk^ck5ycF&4k6_65Xgh* z+f;KTBL>1$$+Gw8KK^H?hpI&QEnai&=!dkg7Bla~c%bX|wXwcRB`O-F6;HqDL5#07 zJb%n8cd2>Fj+;>p;7p=n{LOFKmYTLwICH9_3#vWGNiOP>0?MTMy51?gWdqLvA0Hd% zDdAZ631~9`)LxsRt19+Yiw~jTECQb{8_?~tcc?WgCK-A&YF)eQ)SI6Jy!${<>j|vw zunKqAiQ_X8>=r-bgtkxa@@?HV1GK37++W!Gmezip(mlgmqwx$*`RHnzRqetz)z>;{UbC^L^-xwhPwfPwK~x+AW5yq2AN%-sQw)`n#ZI=J zWW>EXt{%nGphc&Ntt;@9cBEowa>Vf5=Jx*n>bj7ffz9EW+E*pk)%Hf#9*|NB*Lvn( zuNly2k~b*(FRWl7FklKI^OyKEW6}m55-nm=O>FBB%4{1gOm1&H)QxL$>i9=l|Y~daYaT2Rf}1T z!eH_1_YJ`@g6#L0f$4#a1KNeKk$fYvLh@9UQzHPt1%im#?EBiaK+JgpGmTp+!f z!EU3gnVkghhg_e;PTe~}1}0^M!Ax}gVE@dyeDPX$M#-ox0g17n@6$ADU%TaPe-tQM zoms@j*%+RoO0?aLzvnb*^c+ylm;J1r7yPI#k}lCE=%b}^g&abayES6wdwD~U6RCnp z5FQPhJ|zNZQ*0X6egnV4gmDsXgX%y4DYy$MMFi;K3CjT8o|4oktz5Na^gX;R$>eSv zM2jH2J>ul;*Gg;u6R&6OqYBq$7k`brdVL_tAPYqdr*jodqHbxW{gC8I{y#hMppD+v zoA?i;+&;Rb}@WL+oPGw36LLX!Lax>4Hb3}Y=Z8q@a z$Jv9r$tADZBu4ibb2myFl4|jFLilNB=bxHsHY(d5tvwe5r)EjN4!XpzyTV8pIz)6? z1EB3mF{PPWR~cV)^a^Z);~+D6a$&DW{5ECzbzS+$LKydY!!bQ;Zp{Wk1-k)lRpB27 z2J!NKaGWOL-LKdaHShiw{1bj(x__x(&(gVbn3fJX!Rr};`?K~wR%xupnFB5{?@2?) z%LMyLuSz`*mJp`e$b?^K`x6gK`wfme*+r#;eOk!#=|a&%>uS_M>ObQ9XNEDXG*FR3 zw``)mz>YqN_scjca=Mjx%rY!L*8247+uoP(S+^iYBx-&)gNd*GBLv`DN z8~2tN?555l#jkfP0k0wiS{N~WV@~4*<}y0X%2>m*gUBz9KB8>7I`A^B-jamj>HJ@v zhq26d%!1L{gbW}ywNTpiyOL)P{aFk7wSs~jJDj*<;S2(lMf6h8VO`#b3M`^u*12il`$e%&m;wv-X5FJAWN>+?NZqgbUAJ@*t<~ z1S4)V0`cH&xIY#Virwal+}ZU^G3>@DoA29i8}5`gk(*43(I@=~E&y`4S2l87!4n4v z$6Kt|_h(uHI>tw_H@&^dPR(r8(#9aEgLrb_9-d%>FrMKuD}qw8z{Ym?vXrQU>`Vaq zAKt5>Gn9o%in%W3gr8Nb6@9v6_#AacUQ4TZoH2r|?+tOzBXS?ks#xpB>p|gtj8ik>F3adte}VlxvxEws~WQ@2*XGfY{C0+ zNy}SLwZ>03o|R@G@=HQ;SB0^xld|vnpT?$DzOLh&zU%tGUAnfT3DaaL#LH-~=9$F} zpExiVXigNwTZG;Lg+MDpM=Vs?hh=zdIRn!HP}L6SwWBH0G9WUvEg=}`Bd4C27Y01d zn_d-g&1_2TzB;;_G5y=;g+)?D=QV>hU$o9Kth;M7H6#r}AP68UPzpkQvfcfg@6n5T zULiB@AVM(GpSk1WMaMM3h9We={!{bo7DAAv3b1>Md-xDGEQeS=;uCK2=T!JUxHs={ zV$0;7AK&_GnMq6*z_M0SD$tOSmtH>FWl76Rhxpc(+3;H|c)$nK&D5KP@O!Lf+t!tL zZ`K)|_n!7mO;SSE=noj;s(;q<3x$UyX9$eTNv%6Zg~w9C1x0K{2$kvZ!6Y9@Pxkkh zePmbXV48GI8+P)XqwCLH702T7<%@|5*V;HMsd zDSb7)`ar$T_E=SJRKAMw)dI0;f&tII5B`Epu7i&u)St*gI^y08%+#(nd>odd!Wjeq*$Au>hQn={=yQ^sP zkxpJe>Dd5WlX6_i3h^4;^r=x*J{U4B3VnI2k(^yv(yrUz^`(qg&kPFf#yVZ`6jbSR zs6`sM$&J1fcx;H&X)w`#W-}Z12k|rm3m8_y($HMCnk-U8#6D;MeuE|!m}Vk zNe%Af3eDfdL$Z43;uIzgzt;hEmW~^4+740S)Q(h+Rp>9eg?H5Vsx`uDG!Ue;yWKw? z663ge~Yemc^#eqJd} zxGAd23F;z8XY6YHwf01zu=~Zie#} z+37st3|AT*5Z=!9f2E2D#|)RdS<~^?!JDC5^_5RPBc&Ssa}?-dz}9th<+Y!{OkdDR z1Nsh@3$`{v;vxn{mnslz$=Y{s^;e+7;E!>81s3pLdHEFHG4hKSru=D20z^20;+MKE zQk=^+>pvH+(T(l%yL|Q#s$;7EGXqD3{51ObaZSH+#vEhB7rgC!RwKe41zZFlxoX0E z+Oou|6NnGMl*NgnW$DvHLvSvTAC$8)4jsT!@Q{iGh+Il%Q^&rL5f0h6%DI9I=QPj1 zJ1F^QCT%XWq#PA2HiINyzdktzgI=pTMD9{#$)?MMAA+)Ko{E(b>;W=ORwYVbM^o7y z=f3NG)#-pbIfU#x&Fe4+jLR_Cy{f&=TpjdhIsxDA{xfx%&lcT&_Gl4Mr|SuWel!j8 z1t*%CoISIMV?psamg)|EtEHl zcfItjzrvL#mEnFq6+Tp1#w_}Xrq51GE)}!Z4ZhHpwjGuj@mKa8TgdN&cIEZxIOGIo z342plXk?|v<_?nXFfH;lR^*bi{LlfXeI4)iX8{=UqYfLB89!T%brr|IdJY2(f1MrF zt1>e7PA*>b$&ZSd3j90Gr{JPykvY?mZG*@5>0C{ul056C0V}am&+t;LM@m+pgKl#@ zH{)vB;%&H$^6#Om`x%(O#l5$O>!4!&=8-K4((mYoVm44~W#n8P^5(<^xWhd0v)ilt=?GnA76K7)y4PMjOeIEO9y&l=O2r0SPX;)Re(A)dsME}e zjZ4nQLQdPPylC8-ADBrA-OORPKrKFeMY%x<-T>1KrkgB`>ropc*(pHrBM#rP^uqy? zTmwBIi@EaQ=@PyOMM$Wr1;auwiC{XdYJueoL3%_Zxk33Edgf#4ACfSjYy(OB86p)h zoH_7Ct}9_1aIF0O_5ca%XOLa63>{;#*mlJ&Azp5@+i>>Cb(d>Ch`IB0Oh@3KiyAEA zN!xB0*j=Y5T7s;+O@&j-XB013uD&kir#NS<#CKSV0FxJC11N$HW(hl@cn|sgRSXc2 zB+Rrp<8^%<6AFa#H z1$cN>^-{7A@4R+z9EJkSWi;sPbhw1iLhm_JAkx0ao#A)K9wfFaxZoerl69$y6}uV! z6w|CE5B19EQp{v_Oyrr`NB4p74ffTUqSUZ0X4VNj^;{p87qSD=iesx{yidn?p0V%-2^Fij{{ zcVkeY8mQz$U+$!pq{@WGUq{jCIcVxHOF(o5vG-RjF>bC%M+J?Hmb?aBbI@qzRU4w@ zdBfX^@nw~O8^vIWM4CJF-0(pP!&fFB{trt(BH)W^yY+wz8iJa`(Zn~1bT!Vv& zMCYxe9p#c1xA#~{n*Rsbt#MtbDHV%$Kou9OXg~A(4$Mo92*$w;M7Z4Jj&e%Ql=NU~ zysXYQ);myAR1^ZLyadURS5YSI0`31NBn!c&F(riPsD|LpDOO!0@$yFGb` z?|gXS%zn}uN4>qsxp6T_go=l_L@c?tv6rom-nwI$?|XZO%Ib^Vx6EKchSVPTawOJx zSGr8vP8{}3Y27+ae&GO!A?@TwcW*-X$e(+Am=4Jv(SD@hcDhhFKy&e>yZ}v&D^kWA zWcw4ApxtgPQjw*gLdWALR6N9p&(!96uazUF9%Fukex zMdG;U)0D%c|NIMKfm2f@Fd;g10;RUJRHPT>tc}+ z=Rc8zG%OLf*R1EIu^X!NE5?d}1ye-weq!x9N-WNaI|1x^4&rjE9N}s7wTnGnyulE? z*{aX=y2$kuQruA;Cr0AJYZnGRcQExOtq>Pd0iIlJI@Auw5tlIj{`l!SzlS09!uk-$PiCQ;=7totjVcMW@h!sz&@r|MvRya6?3&q( z#FOMg(yof`-q>UJg3fv0Q%zQ*^C0cu^FSlv%5HM5O#bV#sdk}`_;8TA16v3_=(aiV zjh>b=9kO1tlZ?FUyu~jZ>PM1?XHiO=X{^Mc&IEsa zvoxv{037J!20{x6`p4TL3h^uZGmqeT>HS)RW~^N~_!iIgP$P{`!CHtG7!CtfP;UD} zMa%Vge@ch`6NV?V34S` z$NFLtj`$wBv3ph=oz35;zwy@va2`1$i{;Sfgc2v02qRx)qJRKZC>k;Ha{R6`6%6Tn zp(B*vA+EI$sqbH_p>C<+@}sG+J#JdpkO~SVP0h45 z6g$#hlo(*p2^b!O@CnpPh?dc2{(&9L&};{eISPgebqQ_d48{}m*D^9BG|+-mvUO?H QzZgVt!GHj3E`fLe08B@FDF6Tf literal 15994 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 From 4b20e4f64f6049c61e5f08ead8fa02ff0addcab4 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 21:08:16 -0400 Subject: [PATCH 6/9] fix: saturate and restage gn-instance-grid to the gallery visual style --- .../gallery/assets/gn-instance-grid-hero.webp | Bin 15618 -> 15216 bytes examples/gn-instance-grid/gn_instance_grid.py | 25 +++++++++++++----- examples/gn-instance-grid/preview.webp | Bin 13812 -> 13656 bytes 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/docs/gallery/assets/gn-instance-grid-hero.webp b/docs/gallery/assets/gn-instance-grid-hero.webp index 8a6ccac635ec050926dd02d34fe92328da5c148c..9433790956516f92fa646b21a8d7c91f729eb1ec 100644 GIT binary patch literal 15216 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 literal 15618 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 0 diff --git a/examples/gn-instance-grid/preview.webp b/examples/gn-instance-grid/preview.webp index 94a9c35eae29791ea48125da0742c9745342980d..6bf4e1b4e50eac6db8e43d058b8fb7b6475d2edf 100644 GIT binary patch literal 13656 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 Date: Sat, 18 Jul 2026 21:08:17 -0400 Subject: [PATCH 7/9] fix: darken and relight depsgraph-export to the gallery visual style --- .../gallery/assets/depsgraph-export-hero.webp | Bin 12226 -> 7326 bytes examples/depsgraph-export/depsgraph_export.py | 17 +++++++++++------ examples/depsgraph-export/preview.webp | Bin 9236 -> 6696 bytes 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/gallery/assets/depsgraph-export-hero.webp b/docs/gallery/assets/depsgraph-export-hero.webp index d85823f12cb6cdeba2749563a3d09308bd7f7a8a..92769179b9b2c651b7f02860378f7ede719ff97a 100644 GIT binary patch literal 7326 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 E00zY}qyPW_ literal 12226 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 0 diff --git a/examples/depsgraph-export/preview.webp b/examples/depsgraph-export/preview.webp index 9504a0a55b5c9244202d167fad6bce22d4b3d1b0..3e1f10f8a837e3bc142fc6c78b94d59364f21c82 100644 GIT binary patch literal 6696 zcmV+@8rS7gNk&E>8UO%SMM6+kP&gnI8UO$gNCBMzDzF5j0zOeFkw&AUt|6f_IAOpF z32AQs&7f$`nepJzzy7K+z-cN!Ne5v{zPaU2 z@lkn>E$FQRbV29W#6joR#6joR#6bJhac7ygVn`tr%^t&hoHD1?QwT*po-Fe^3+v?U zXcbCbDa3E9Ai(l*^73x2szH|B3&r2Sj-dT#k$F|y6pe4j=1V-y^)-iEf%6OAGJe*5 z1-<$<4mhuLk5#u#$dy?)>?WDuEQ;hPB*A1D(hm=g40+wqWjq{=Iu!OWHEOE!G=8OX zhKqOR@oxOnSgO^PHLt0@=!$zN_&94*d8geWFk4%yq zSVsL;{k5ni)I7}LbCxt0KH#@Jd7EDFo5XcLcCVhti=Wn8gb$m(8~>C9DJupR=FcbLaC4RJ$>-xj!gLW7Rov%plYaKx{x z($SisCtWx@wxwz!>W%o`S-d4h;@$gT^8*|GW!vU&k6F`Gh!%yJ`T0hUaLS-kQfI#2 zYqEEjEy%F1>UEUNyl5=KqNoM~lvXE1xALAXG{j55h;M4clH6){mINe}@{K3SEim`f zLQaAS`(W_j03%^>=AC!#gNyIKHL6iacqrI?>zdJM3kpcUKSIvt@3?Gs#}=pleP_DX zM8cEIG%Hb)VBSLJuNAUB{Bm4vv>%c@eY-~om{fK!tF9I$q^{v8usDso_QB=_v@%`# z{1M1oQAwCDFsWSQDzJNrqojI6fn?nhkw#01QUHKFl=@ch)0JXcxx+=T z@8?pIulBMVZJ1QC`w1o9heW-?MJt7p?>_?0wOp}D6hC zaK%-B5P>Y?X!UnC6%$`Q?zAD0;SbbJ>FAb#LeTax`CpcLe?%<%*z>>X>F` zb@Y&N?RIx|S5*On0Dzonp#}a|`rV zuF&AKAd#RM?oo_c^sBe-VKR`D?_VQjO6_)oHA{C>pE<_l_4T^cFyAh_1YG;cbvpT0 zelB8FZrC{aZsc`54c{2j`0%VAx-r6U$DA(#t<;`jp<94nK1;7K-5+X83!5tw3 z!}?f4&0YmpOOaI#+2U&8lG9?nF$~16{E)mUe?Ml}&V4*pAI6;Ry9OH|)>9R;%h0$_M6hv}B4gCUj$#?C7NGeHtZOMVV z;~IkaSDI6bX^R&Sif+anE}2WTBp+*c{@T?e#VvDU?g+&v)um4ht@A^+|6n3~=pks(@cR z_-H0eYZ&fd7GL1Dq83d5IzM2K*sPhhXGoZ#CHs9eAo>pp4d*6k^z0yo<`pZPFD`pC zW!{J=T#-*OsYrsJ&-cVSNmLmKv_lYuVf7TTV|QL*zE@p!SDt~Hx?^(G#NcYN0yt#v zu;GNN381qwPHfy!u6fidI>Xea(5Y_yI)DunfPHQH*b@w%3`(h=+}Q#F=len2r>eav zVU^UK=3j%RU&}7!lItGr^UhxkL19G7>~$-L50}#)xEV-H{Tn~rKSDTjKDt|c@U#*F zMGYEd3BW>0ckRMclt>xjke>(XZmWVumJy;79nGck&s1>kWcPP|*gV2$5YJaDd`%>% zc7cpcrd{=eFsWQQl~?xci_vMo45wi+$CW$$y@$o}EBxn#&6A7gEk*^xlKiz#>NY!1 zYFke!uT&8|H%4EjOcGXrj#jJP!^Y$y%_7_?3$l&KL*9MvzuasoRSJZf3$i^yyO(@U z(%1z`Y$lI$H&%-nr4I}{Jg`3Fqp`Gt1OkI~UWGA_K^FVNk)JOjWy&2L`t8g)n~X1A|@OfuyKKo(54 zpbZJ5aO@e-=nk@5n)$s}eb}X^oUM71j<-C`Z(pb+y>K+)32rBwDm%u_^%Lg{JGt5! zHBFDx8dgIqFX=6CaFsrS_IR0aF281;ZPIQrdP!WFsv0Lc?IvqUFrvbGtoyW-?NKt| zUDC38ovE9AP9U{5D?@PF%y(K7Ov)PO2hJCJfj}4o&f56ErNrM2lHA_EP*ee8)Y+}; z_{0YIy-Ko#e|s#adyM_RpB6_4*D5E20AwVeDb6$2ewfm-ilJq&20}_n*kg-OT8&43 zIt$p=Ud_2IwW`aLdCgGf?Ikw`bbNf>(km9eD{T!@egc4G>#*u>H(=!5-I=a)JCz_w zIN3xAOUA;Jjg&t(sJ-ZHnqcIlwRBqaZf5A-P2a08?95Tm+9WnCxuT?ttj9O7_}l|_ zdaK^3*u0Q{0RH&rM((Tc{M506)^=2px;8%uXt!toVaGvg&i-WViUFk!Lz7v%H4Zml z+y&o=(1V9)zauZzUoapANs>Bsq#9tC;8tfNLx=qcb-(T(x-&_dZOvid5 zG5IeZ4#oxpOyyRK<1A~A>sga-F$->djU+7j4`t?%&*$m?P|j1D+qebiYm=25zY(Tx zfxKAM%W#?UsamWkV$r%dP$eixd!}40=2!yQwDN(swlU9K7I6X)qX7D1*DSkdrHteW zqD1eOB%mARtmLfB=kOt8AT3-;gbyVUZ)E=?X?9kX6EODCq+udk+B@IdE^a?ngrrHt z#hNmB+z5Y(2(9?!311M{v3f%Ws=CA0ZE|#!u&E)M8%hCRepO|mG|BGbd_9dO1ww>Z z2li%)n}}`%dH`0JFm0J5WxLE5Dk7~PXvWDC7G5zcuBdtUV$b%lmd`3e7hXHY2VqOQDYCgBn0%%ammfE`m8zR z28ri)I5H_Skex6Jx_J+hFz}=4&1Dadhh%Gu^E~4vhR(gtySN;3a_q=+SE2v}#twlX zSo8=))?<9Vj=Eaqg;R{*8jd&knc9wYn`EoW*xs*dwU}^tmR;PT;)n!=fLkLdFZBp^ zmEt=gOfmL}!5;V5?DaWbF-O3?Pz_1=YKDdg%h7DkWn;bzJbp<2f}xScxwlEoi!XGa zx=?B{0(6e*^_3K4Q04U8lcw9+o;&V!J=|!WPNk==*(Q}rxYje{sT1n_Tv>)z*`f+hJSeRjb#V)-KQ5bOFr;cD*9fn>B=Ud@G9GiwOQwxPbqpm zMl0gqd_vMo!LCi)mS$GEI4{}&i~(nL4zlOksI_bvIMfrOqnlrw)VmHP#p%4)R2+to zrNbdDP|aZZ1Tp}MTm-iO<|j>!6|1C-&Z9vmvS>otr^6g*YJ}7Mx4Dy1oz6Y&%CZ8U zP{DI>JqTQL+}l52o^D_mn#6eZAg|l7!+Xv*xc}sXT#=$QPW3=gV6{5-xN*bO;gc zu(yhoKe5mFGSaKtUf8^Il$t8Hu^D;+3Jz`M!LtBp0|wf=cyKHc^8L(U(yow~iP1c6 z$25W2pN-=YnfV9)G1jaIsrtDA(s|Ndt3}1bxrW!+7;GQqS&H^`7x7-BIir@w5=<3S zJTp`XXU8@;x$C}+jK5rIfjDRf@HJPhc$ckU+$@txQJ+4`wknJ{gg_f4s&`j4s#SlpM0BR1B4@8E-Y>| zF;58?70Q#fyprL;o>({(cruCMR%!}Ad$ie6OlK@ZuENqMx?^AQXP-^&YvF=b$wi8h zCkvb+S0jf>Mzn|44UiSsR2A^T>euM~szj)(zN>M3Co_)b{>-rT0yoYy z5Ji4tE*!_tdi8nl1Ef!I&{`as_!h|Q`Qp(*?d-?A%e#ji)q zmwyG1(5+bT_j7~rf0@aaSyXX4KUsYB^aOj}e5{D8(NH5g2vap0USQOZF;)!d2_y!@ z)Jf~AN!e9()>biSH-D;LzfM0hOLojD70kO)JvK1f%+<8V&6hH=nL~0>oY#(1a+y&_ zr~MS0*Jm%OqHdwxEYZHN%i-m2#4Od4?p4Y}6r!=iG!0CyG8EUpEgOhlKPg@Q`H>H= z$J%z#c^GAcVFF}L+=5~naKGNIN5Rc{R)O&iK=kC3oag__ z`u=rkE2Y5JSrkE=dBs`=SNfC1=W%hQ6n2G3l_nL-nQsIFlIU|tzQaU_1kWe zhqXI#c2f6;Rg$G`MFC^EyixGMDa}t(xUajkevjG;k>tF1o`z=Kh-_Ou-1`w{3A||r z>3$5c)h-OA3)&PwfUyP7V~EYV9;KBihgDRmhe7ou>U$76}~yPPPc8$8RhFog)rP*o_< zx4URJON_e*VT@zfhr4Qpu{9WaS&|ce*GJ^q?)4~yCxEi09eSkVl(G$M8u;J3dzi78 z3*gByI63xqEt-jvR95+knr*OhZuY_PbC{XP827CqXlU}2wP4fxz>@EJMb%LiO_i(u zfrZ6_@$O&s_gambzr0zL%>?@Dz((}}Lrxz7d#NDQ_8Tl#)p~uM17i-gqs2OM#jI@| zHQ_wb7yRE0t>*Rz$G#2p2n1+mB=?8V03m_hWN#FtQ@N9r3uL#q=+O^yUU@OC_$1yS zb!ojW0AUfL5nLcxyrYWN>&B#QjJ$Klxt?;(7jum}E^|^JA`h@E18a*G@Ilqu;(~M(&$pxl`Kl$hNw8g=t*1317b}q6Tu*?8Pyq}v%a-BndO7$}v zGejZ(XE*eZm}6_u0fjj-i6~s$`doI5^AG+nDak>R?+L!ivelSytA2aHY%jc9pHa@j zgZTYjT(E5;qDyWo$w)IaLsw5l0R#P_6u?GB%m28W)?x%+`2boGOA zE7eOZ&fPfjKyu@m1~weE&;l1u^8wz8QL&RpEe?Q!S zz4h;3ZDRQ#+o@z&J23xsZ% zJ9!QSX#rE^naW}%^)ls!I5R;Q6}5u&;QoMSKk~q{z-$nzXa=7F0Hk18nny1zY=Ft< z0-{s&I@pT}#Lyz6^TqBYn)66#mQkL@ue}hft_(j#qU_R47w*sLu-w2J=?2UMHTz*0pyOU^@XGbwT2$Yw96D3Om!DZ>+BM(SK+1wAR_B_GF^H5nWX*SeRbOmT2496KJL z8uu7^%_2PYB(0tBa_k@y2oEj1b=$LWKAkvo$7w4BiA8)$`E4mHGQs&I6x4Qrk!nUe zm*^tY!g=FC)225~3x#qEFC~Pi?L8i=R4Yv5(ev{8nF_Tz%}XHJ2Lui2>^yuDxafp| zkkk5Mvu^8!#I)tLUjx#JFV?0~%u@{h0|<Qm;{7RfEX zxGHWQEOh$?;lf}+@Q?tgpfu8k zFj9ami>tiP(WPC@aYbht-A*+@qWADMG^9iLR+1N>LcD#(EY##o330f!sZ2-xwt8|-C< y^PYCeI#o@UGoN9-=qi@3*sBKq;wv}G=&G&Ci8%*K_U%7Fkg!p&^zah=!Vm!6LIFDf literal 9236 zcmV+vBlTN_-*Rby%YH|6>_+yCu40B*kkd31UYM@GMhs_yH`U-!PMG;NQz zy}2r7Iyaxcm{03>Q_gjrI!{60E-z|d+uW_soO!;wXQTjh&P8w+`G6{6+Y&)b`SL;h z`5`0_9c&-;5WH_u-pY&&U#npMpClj+rASgrU(YFLn9I4hSFMGxggeQKm>#!L-Tsut z&>J0nvgnjskN2L%&--<-f96t>_37>=fznTv?#rqRIuUDJ7QJlJK9`ke7_X7_7v}WMcqrfYoF! z6Fl-`9_ngVAfZ~{IN_E~>SFECZoDJ>tOI_3I~n@hz>W%M$JDQ7NbLf`=>MM;Xp4Lj zE}M2@R7dM#tkAnH{iPDl_gPHp%Ra8NW-L@-2$;+{ERXx!&I8j+$L~a9-!0Fk7Q3<8W%Myrr+X{+xV}u4lYNyXX?$q5Z>Qc5m$@ zg%T6?woK_0gVoIUv5VtJ@tRjk^e3@mIkD;{uK~CzKt9x zZr$tcT9o!lBcqpZuNSu|LsNh`*mcp+6@w3ytuZaA;fPMRA_2sjK`3gzBzafFu6Spz z+vHvr2JvDjLdL}tpNJGLrc3XE%GkwNBWN&>h$Y`_g)>BoXx;vb22(+o?>cs({Ceki zpVczC8`H5U&amqaH;`-R?#7o!slyE2y2L~b%ZN+0$Y5j*t0KT@H1&0SXESu4U8^1- z@M1arj?b`}H>kQO@zo+YBSPZj+8 zEU@!%gxyxe(VIpqB_LRZ7N^XAb2e!L%0k~WyB0w_xtlbC)jhod8~gG9lW_a}>VS39 z$gkbKRZjeZ6_@r)t8yXdJ8*g#RnLhqV1 zmSfy~NvTAN{5|I@Ikl@%`6w>vLsEF^x~7i!j!@##toQ1p=3US%D=I|9&fGjJ8D*mo2P zDp<15eLRTJIti56C!?cc{yr0A;apROt+NN{X{5@i2XHJSF6uFcw4-4`CE2}gL>cGe z-9q8#DyuQ)!IrLZNk!~-sU$#jr{2uwAADGgM&!eRi)7qxj*--K6C)lO3e=KRz0`HT z2aiflB@?=34BO~AQ+zR=SfkSD#x0$Ixrp!2cSvOKfY3cOOWiXZssOzxL&k`iK?CF; zb~ZJ_6qD+JdN*eM5xdz0kv`6ASV^*w+t3O-b-J*BQqCy0**ObQktjqL(E2qEga-#4 z+fcfNNDWSWd(ij$lk`4?iO$ci%GL09fJM_zoGBmQ(1q~K4uw*jijjLpt!Xd_>S_e+ zzuw3~)C8Sz^J(=S;bdtcdb!a2YsawAKY-En{r-80v$<4~Zb(U;>81ekGZXLAZBIm!e29jY|D1%P zcZ&8G53-C(%os1CdsG;zWBWD`uG)F-r)V?K%qWcwvNP~x?sNVuygD3Q*g3FkGA9kw zMZxSs*df6Ru*XGZiloq!6FPtRFyAAfas)ly5$HknWPPY=*ZY^FVTK;~Q74;+5#O+@q4bMrm zm6R@mvJ1bA=)}$hgJ`5CVG3+uri~hi3<}zO&0e-^&d*=G9zEsiAsFdawHxd0wv3&3 z+(GxGX5hWkY@$yGV648jR;th}Dl)pht$UTd-15d+W}IjORt4?QG4{l{){s9gq^k?> z0eib|{!{#WLT@+4$$fl{o>p?8_p3v~2b8Pw8uY-2p~ zqmaV3jKW$NINTt}Ihx(lXV!2oi>g6c=dA9{;6`p$Mo4a)i%aghT{GXRmG5~n^m0#S z2O5;}l03lQ2|U7Zc(pq)2M-?*vI%~05G=6{_2eOH!J$~5n&R)Yx3ZfBAYj#*nT)g$ zrgH(TST;s^yU)$c&MM7}48ssC->5+8Bo>yXuUE^}0|tLq?P1zipM4^uozJ;cTpA1! zP#M{@wDQ%ncY~VhrhfK(*5{{i1kW?pU)Uri<^eGX1SfyHpAfmGJ~+<$Itc|M-n?+B z0hP|oM2TQI0%h*1+s=+yca&E{bWGh1^1+unjJ}OJ z5rD5~OA3!AV?bk?do_XX85bH+PbDA_4POIc^DiP}o(C{yKF4Iw9`C)xn2j%NV*fc+ z@!SldXF+zM~ilnl2-Eo^CJYV;+zspis zB@1*UMgwCP3>`eo63@zsK?Kugq5I@@g9vM&RI;fG%IiyYZDm=~lR7>&M1((B>BwR8!D62B%XbF^IglAA4qbdGotA0@x2amY zEc&L4gMJ{|VV-XE68t_-1ZvRj%2LM}|DVio&}g^r#OdPshoG4qf|jsOiQv^{1b{(! zyjacNeNYwAT~9lv0WTOaog!FoP~Wt}4Hd$qJL1Ey6U?YPrv^syXJhBdUztSpT-2EU=IT#t z-#Wqu6_1;3IlGx>N4Fiik4IONEvGkfit;T3iDO<(HOq4XCU*(sO7rDNK1#;gO6}D;o)gbl2LN9PcT?!+nVz&ZPWkPmU$L4sPDoknrFIasKc>csn)cOQ?{KErEY>Sk(ob1tn$aDYKM@yC;yK+yfJ5iOh zU8m;dn}$)XidRk^-eCS6)CV#1iX4aDj8>;f_lM*+-m@0Y?A z5KY%XzU9DFIs`KgnGFl{?ub+UQTE~dHqH_6tPF?IZG?1R;kE1J&}?agpN1tY*YyX{ zKnZr%s0d4{J`@)SB-j@_yg57fGZVwP$dGsv&{-BZ-zQb#sS1j#lrh+rPj<7X%Zb#*L${fiq!5}MGl6_-(WMlRlrJF zMDn!H*IS9y%NL%vamkDDD3s@C!;y?;H(PDrNJ5Z&K$-&V z{{WUjer=kDPb&Fy$T4Vr+F&ps8o?b#99qPW43P|yV9nd1@+kd&r@`xl|NB<%dXeU^ z?G(_aV;qa=zO;=G&c4q>8{u%6pR?Cu0B&pWo>Cq}+=tjdGJwA&c{2)c2*n<4n>yqu z$i{WH&3Y1g0HtyG-9;@A{!E}g8-Y2$*%9Vub?7KlRUG@PQ^k?g3hDm@_GWbWX#1#s*7jG!jK4&rRk zc3mfNJW1-GJDDs91c874*Erovh|RvB00ye<8(|yHpR*g>70H`6qb(L&0@IaH%czN; z&JJOYB>|_p=(j`oOcbpcnHJg;ox?vkN*q?bdyK({|>kVdC|@3qCeHI zsYPis!qJQ2rXwuu%ov1sJ)lK%+jzpQ9qnI5FEdI|WYWsMM{@@@n*f{d9B5mvMSKMl z*F9WzCy!uf&vTv%6B8>M3CkOk_a=&~GdpGX#K3$4KMoZqB<>~X+vkEm?6k5kjTyI| zsQA&^#Y}JA2~gxTqa8Sbc1&K@vs4XqDX7%aQ&sDtl4D<{jevBx_^Xbiw%$jbi+X+bb9ORkZ6*}-Q3yFGDhc3e;hj@O=8 z0~CAvE6rFr<+zv16&%#(|1=@T7a3i>|2^|rsEpqz{G>2tu@!E+GASP?2ZX}vUSHV^ zR1)-kF0B!0KB(wcA&Zl}HZzZCdl1?wu$l7P`*OyNNAvitW9Wy$F4N%WgvIAr6IcC} zM^760FrvV*-kfn~T68&f=`%C`ydgY+oqQl#ECz=`(J|~X^iPyI@leZz12#3y0tvTI zBhb6wA6Ar*{n20Q`Q=f>oQ^Ww{*R(9F7d8PIYDUE>L?AU{YHO8G3EUe2Hqy~qgIkK z2g4>2vTvT}a_8BZ(#d#HO~9iy&2vH21-|(cS7SQd9_I!En;=RNPpNr=cs^P9U&K8ccMCX@h=l(u2LsO!>9 zU8?@uZ2%|XL03u7=VTSJs;7IlSL#K(`dFxv<$`!CT2H*;-~Y>hnO*X&t84_b$QY*? z5J)C{JdPTfj>XQ6(*^oBztrCmG$S+El$A#^lDUA}CIX>_9~e zuv!FwHsh)o91tFtg?Oq3=WNe{^Ro?s0&|RQ{`a~M6U$Li)~@m-AN&ma zWv3#ZDX4prgsNH4_9PW;>6cp-%>pV5(k`-q8+kYrDjf35W7cDB+`KH0j_OoPli*`2K%M3zQQ$E^eUG@2*ob zc-{1i%M^C`&doz|yY{?E;bf@2x+kj0N7tcc!6=~(zA_KT-E0{g#(alL2`Y)#8#7P@ zSTlsoT^hfp&k*r+H&fDn&?>CF+9@*<+<}qgo5%^^KgV=W2vLSnX~(n}q$svtdmaFX z(C^ODG7(!5tL90juLH*CpC8%S{5{Mt2~{3HD%ZK@w-Uv8qcuT>jjHJR-y2+J`-N#r z4MjBrH(<&OP%{ix@*<1q6lN~+M`Wv~FrtBx2zSZc@$-S*2pHK9dXUpp9 zH#L+$T`Ngvu8Y0w6lzLiDUfBRuj57Fi7M^BsFr`0s~<^E$QU8Zp12+wEn; z;*1UT>zPeAO|{D&r5mvF*ZERemz|Np!9V>@R_f#uw%3OAw*)_KyOmRVb@r^*I9`y& z&n6LWpyPM+3>Daz{N~qC!dMYp)!$eAHflE=0K8#ld7*taEfL&Ce*NT?m9< z`t~A_8dsZjIRQl4xJKiE0krBOx{j$RHG^x>2d?uL+aHSVmH1Nrpj~^CJAL+2Cmw8( zn6BHwsx1E1KDQQQMd3l*>TGp#jbE#M{PYC+N~?xcX%!@Vr;s|A(LfIR?V^F6EUHB* z7o$2MOS8J03rTS+k-gwms|^|Dn@xVYSBgD(Tq>_6&tc`13LXDLw(%Z4N9-YfJ)tbQ zGa&u$l_pUz@4U+e2ogItcFM70r)6jDXFY>^7;Nmy0yv4V_oBTzD@K&&S>GDw@^P(& z-{k}(MF}#HnUyLY(RugUszOsG_KB7_bZc0=Myl#)a8>aStTzC>Y6zmC5)o;nk(SbS za7T1INH@j|uOF#eH$RDkM^Y)VPw<Q}*U8L;3*g063U%HcF1i*W8BSDJm z!H^k92+DICjF6uq5lbn`PK+!8(=bV1xn@ew=c}Xd2~LG;1?NuuL!+}h_NRHWiK21V z6T4;bT~5MTjl5@O8H8hZe)5|O2@u#;V>g6R?47YvR<%XPxjRI1#XBKxywwZhpG~)?G&JKPHl@Jm;{!~Yt zgL$Xqq@?8kz{H3%sX(lJU%nX634>Dg2qB`jScOC(k&Y z+s{cj9p`iPf$RL!MRQWjd^ogHACQcpp>)BWa`*d+OxjQ1s9F!Y#3LL|(Ofv9BnROX zY98||Y%X9|74rYnlZvz3T$=U}%AT(Z%N8+T<_`KS(wKAR(v$Mxb!a^U+2i!#e?&40 z=1c>C7<3!_)meIncyq>)80*nElpn|HixkYjLC0U7Il`hi5Mo~H3c5yDUnevQMqrL3uSUaFt4kzw5x8U&n$oXfdiDn%w+W` zKsHz^4%kNa!fNKz%*aoZcw1X^ z9=U!l@Mhf^Pg7O!6oNu|@i0p5YK1cx^xzXe=rarj~V9iyLHcT?->dz+%N)u zk};?e5bjD235!Sh?zejk0Iw4tDd>!v{^t5WFA!LtR5~$<=5)3HMtL(|d3#P4#REN| z?@{53Q!voxEGn*RE6&ic9Yig>ZekbqNr4d2Hhr6@2v^6@&h@uF6@DQ7L529!0#C96 zfXXdQP`xtfb6W)DMHSoIlSH{QxEs+}-IW+HUd+jUOCr5TO}~Xp!W)zU@*{)!V;il> zfoMPiq*dUoThR>2*(!$Rs~}Y3I|ZbF;2`7F-sf%e1he-7s98!g2_dAWJD;yLowHK% z#UxPuGDRt(8O;$}aBRsgffKD&lb#^Rh@)W^a;+Ey1GYA-N|hgyvMd2F2pyvY%5Bp{ zV$YR7j1{ofqKp_Abf?C=xtSiq%mV&9(znj}yjhHFv?cj_1!a7Az%|GX{JTdAxa^a? z(?tRCV`OqdOB0$9K<~Wl40Cl-dxzp4?4&XF!h|M?+543~p;}GvgM-}LXupmCq}Po? z$fyk}ni8IK;WN>|d@vF&jG_se?CK|E)4ft9P?MIYTWzvTahcK^?N*!T=kEp2x=Ec} zTYrm04)-9-p=ItETq-x3Q!+#Z>e#{pHE-tCZM|M-x4BxOEX0iu4uE<{XtcGuz<#5f@?T znYjS+9}Q!|>r5|+&1lu$-hpCHjMkDvyy?G26{M#;!f(5qBdU zCZqopju;ww)(Q;bI#hB41#%UH&^S;0^Q2T&Fy%a@l#(;fk7d&K43H0K-7veSFanP6 zG2*UxgHd_AlTokB`Ig7h<6aIojv_sR6n!Fve>8&NbxW-OE3aciR|Gtsi`BS;q2#Ir z&0aX=T{Ne~$u%pd3Lp)GPOA~{Zvvi*+Pq#K(<==(t(9KRm9RBoLLjCyC1$eGfe+JO zfe23#?FOtK^w5CVIj9E=c=4u)4|Lm%96#889Uxssu4&9uH68zP(#0|YYIm-Uzc1Y^ z$x1EiTMM|$8FKpkb;VZCS&-J_TD036S_mkA25pZ2Quju@WbNh^yF(%qMw7&v5A#Xv ziv{{X@r!Vw!w+?c^dd3W_o2ubT=w%6qa2O@wF$XxG>a3WId*7A#j>mfb-rBWHh*bm`xw$(lRLF(ns0#yNa=ZR&zRkpK76<56T@lyyZLP z`}_(g&q1IML_rR+!OA$d8sGBjn6v@T9CNvHgfJM>-1{;NJqqjHa4~qlg!REhN_=Oa zO=C!oa2nXtpGq90etd8k62*&(uo^L$qM+{H+ig5kd@0MO>2coAF4Uze`G5o@;2^&A z0R;`XRwGAC$CUbP;un8Os;UHzfPWr`I)dqt?vp$6-jeIK_3MkK3Rh$D2;3Z z5Jkp?#5w;fo>W1u68o;*GwD|eULj7%dw3>*U|MakiKUw`!;paT(PYw~-|uNW*E0L5k*o>#bP z-~uHobA6$nmVgyINKdA6StRv!4yp<9g@|uZQA0iZ+q()UA2%x|>`oq1DP(7WwIHe7zIZI>1&NYZ{&bIrJ3qz-~^yT88?g>$)PY^NQAjgQp^on3loj`UwySo zn{2Dl$Gq?86tIcNA{Dd+-?Tt^m-#F%WKt~54U;PB{CA}@#N(X)Z)LznF`U4Ta2&jiW{xw;KwLgE>XT9;(3Z zZ-}gBnnrMu;0K}20GD8BS~8@XL6S2q^L72ZO4LSYBIHLjzTl&*Km~MVlaVa+4h~Ed zWM*rmKxzx|K6I#9dEjy6$pM%K$i$esvHX~=N}@tZ*G9z$JTFg*z&E(R{#l?{vj?a2QE}$4} z)b{Y6bz9&)1MQ3Aq8X3j&7*N^gq`(24@Z(fBDYIU3p)Sb={^Bxo8c7b%iK%u{iZGQv%v~*T8!1KS;_R-_KL@<*F5K^TbbHm z%fIVy*ee?JPc5OkETY9-qE}^$j;LwU==-=G!jhxQ+fD40tw2|{Kv+tV{-=&E!;|2L zC7$Nyc?SDk)-UwXrZ=u(qHYaywVQGj_={5R_K@mY@I^f>z0WRi_p3(d;IKu7W`V%t z$4VAYln5F-_?k}FVJf0#nb^9J;0kPbUV_}ao;9*GQ4CPh*PFdog;dG_12W|$WPA@8 zPTleSl5wb9Mt)jHOf0Wvbh5)vN5U*~?C-v6k4wGHCb{|`*KfxoHDE{|5_Vzw+cG^A!)IExmvm5X`ll}0Ae%*D3zo~`YtW&i+4qnT31 zf(qucCqV57_wCaJRjc07cB;@oAQ|uhT}CpiYyIsz zww1^LKS&~9<0iz;URo1%s+5uv-5$!V-vHwK@~EvQTi1(BGfUc q%5KrCc%e#$66M~Fm5*X2QC8Mf+8)#pn;v0xgr!B9`k9!30000al Date: Sat, 18 Jul 2026 21:08:18 -0400 Subject: [PATCH 8/9] fix: reframe and relight curve-bevel-arc to the gallery visual style --- docs/gallery/assets/curve-bevel-arc-hero.webp | Bin 12484 -> 9356 bytes examples/curve-bevel-arc/curve_bevel_arc.py | 25 +++++++++++++----- examples/curve-bevel-arc/preview.webp | Bin 11002 -> 8518 bytes 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/docs/gallery/assets/curve-bevel-arc-hero.webp b/docs/gallery/assets/curve-bevel-arc-hero.webp index 5620709a5ea2f817999f87efcb0f297cf781db46..c41e2a73c6efb13806fadf39d490d9ff5f174d94 100644 GIT binary patch literal 9356 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 G00019c@$Xy literal 12484 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 0 diff --git a/examples/curve-bevel-arc/preview.webp b/examples/curve-bevel-arc/preview.webp index b8c1bccf5703075b9abf9849b5a0c6503c04db63..d4c7e378380421698a9ff78481cc7ab402111c62 100644 GIT binary patch literal 8518 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 At^fc4 literal 11002 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

TqwEjshj+%N4 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 From 402e891c62f2050e296d6b2f05b5daaf8b4500d8 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Sat, 18 Jul 2026 21:08:20 -0400 Subject: [PATCH 9/9] chore: regenerate gallery pages for the pass-two audit --- docs/gallery/curve-bevel-arc/index.html | 25 ++++++++--- docs/gallery/depsgraph-export/index.html | 17 ++++--- docs/gallery/driver-wave/index.html | 40 ++++++++++------- docs/gallery/gn-instance-grid/index.html | 25 ++++++++--- docs/gallery/shape-key-blend/index.html | 49 +++++++++++++++----- docs/gallery/swatch-grid/index.html | 57 +++++++++++++++++++----- docs/gallery/turntable/index.html | 24 ++++++++-- 7 files changed, 175 insertions(+), 62 deletions(-) diff --git a/docs/gallery/curve-bevel-arc/index.html b/docs/gallery/curve-bevel-arc/index.html index c1c80d5..a43758c 100644 --- a/docs/gallery/curve-bevel-arc/index.html +++ b/docs/gallery/curve-bevel-arc/index.html @@ -335,8 +335,8 @@

Source

fmat = bpy.data.materials.new("Studio") fmat.use_nodes = True fb = fmat.node_tree.nodes["Principled BSDF"] - fb.inputs["Base Color"].default_value = (0.055, 0.06, 0.07, 1.0) - fb.inputs["Roughness"].default_value = 0.5 + fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) + fb.inputs["Roughness"].default_value = 0.7 floor_me.materials.append(fmat) floor = bpy.data.objects.new("Floor", floor_me) scene.collection.objects.link(floor) @@ -347,7 +347,7 @@

Source

world = bpy.data.worlds.new("World") world.use_nodes = True - world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.008, 0.009, 0.012, 1.0) + world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.02, 0.021, 0.025, 1.0) scene.world = world aim = bpy.data.objects.new("Aim", None) @@ -367,14 +367,23 @@

Source

lc.track_axis = 'TRACK_NEGATIVE_Z' lc.up_axis = 'UP_Y' - light("Key", (-3.5, -4.5, 5.5), 1500.0, 6.0, (1.0, 0.98, 0.94)) - light("Fill", (5.0, -3.5, 2.5), 340.0, 8.0, (0.8, 0.87, 1.0)) - light("Rim", (1.5, 4.5, 2.0), 480.0, 4.0, (1.0, 0.75, 0.45)) + # warm shaped key, faint cool fill, warm wedge on the back wall + # (docs/VISUAL-STYLE.md) + light("Key", (-3.5, -4.5, 5.5), 550.0, 4.5, (1.0, 0.96, 0.9)) + light("Fill", (5.0, -3.5, 2.5), 110.0, 8.0, (0.75, 0.85, 1.0)) + wedge = bpy.data.lights.new("Wedge", 'AREA') + wedge.energy = 380.0 + wedge.size = 6.0 + wedge.color = (1.0, 0.76, 0.5) + wob = bpy.data.objects.new("Wedge", wedge) + wob.location = (2.5, 5.5, 4.0) + wob.rotation_euler = (math.radians(-68), 0.0, math.radians(190)) + scene.collection.objects.link(wob) cam_data = bpy.data.cameras.new("Cam") cam_data.lens = 50.0 cam = bpy.data.objects.new("Cam", cam_data) - cam.location = (3.0, -4.2, 2.6) + cam.location = (2.4, -3.4, 1.7) scene.collection.objects.link(cam) scene.camera = cam track = cam.constraints.new('TRACK_TO') @@ -394,6 +403,8 @@

Source

scene.render.resolution_y = 720 scene.render.image_settings.file_format = 'PNG' scene.render.filepath = path + # AgX would wash the rose tube toward salmon (docs/VISUAL-STYLE.md) + scene.view_settings.view_transform = 'Standard' bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0 diff --git a/docs/gallery/depsgraph-export/index.html b/docs/gallery/depsgraph-export/index.html index 6de2046..42f0325 100644 --- a/docs/gallery/depsgraph-export/index.html +++ b/docs/gallery/depsgraph-export/index.html @@ -314,12 +314,12 @@

Source

bm.to_mesh(floor_me) finally: bm.free() - floor_me.materials.append(principled("Studio", (0.24, 0.24, 0.25, 1.0), 0.0, 0.6)) + floor_me.materials.append(principled("Studio", (0.03, 0.032, 0.037, 1.0), 0.0, 0.7)) floor = bpy.data.objects.new("Floor", floor_me) scene.collection.objects.link(floor) wall = bpy.data.objects.new("Wall", floor_me.copy()) wall.data.materials.clear() - wall.data.materials.append(principled("Wall", (0.045, 0.05, 0.055, 1.0), 0.0, 0.6)) + wall.data.materials.append(principled("Wall", (0.03, 0.032, 0.037, 1.0), 0.0, 0.7)) wall.location = (0.0, 9.0, 0.0) wall.rotation_euler = (math.pi / 2, 0.0, 0.0) scene.collection.objects.link(wall) @@ -327,7 +327,7 @@

Source

world = bpy.data.worlds.new("World") world.use_nodes = True world.node_tree.nodes["Background"].inputs["Color"].default_value = \ - (0.035, 0.04, 0.05, 1.0) + (0.02, 0.021, 0.025, 1.0) scene.world = world def light(name, loc, energy, size, col, rot): @@ -338,9 +338,11 @@

Source

ob.rotation_euler = tuple(math.radians(a) for a in rot) scene.collection.objects.link(ob) - light("Key", (-4.0, -5.0, 6.0), 1000.0, 8.0, (1.0, 0.99, 0.96), (46, 0, -35)) - light("Fill", (5.0, -3.5, 3.0), 350.0, 9.0, (0.85, 0.9, 1.0), (62, 0, 50)) - light("Rim", (1.5, 5.0, 4.0), 120.0, 6.0, (1.0, 0.85, 0.65), (-70, 0, 165)) + # warm shaped key, faint cool fill, warm wedge on the back wall + # (docs/VISUAL-STYLE.md) + light("Key", (-4.0, -5.0, 6.0), 650.0, 5.0, (1.0, 0.96, 0.9), (46, 0, -35)) + light("Fill", (5.0, -3.5, 3.0), 120.0, 9.0, (0.75, 0.85, 1.0), (62, 0, 50)) + light("Wedge", (2.5, 5.5, 4.0), 380.0, 6.0, (1.0, 0.76, 0.5), (-68, 0, 190)) cam_data = bpy.data.cameras.new("Cam") cam_data.lens = 42.0 @@ -362,6 +364,9 @@

Source

scene.render.resolution_y = 720 scene.render.image_settings.file_format = 'PNG' scene.render.filepath = path + # AgX would flatten the graphite-vs-green contrast this still hinges on + # (docs/VISUAL-STYLE.md) + scene.view_settings.view_transform = 'Standard' bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0 diff --git a/docs/gallery/driver-wave/index.html b/docs/gallery/driver-wave/index.html index 4670034..5f16cf9 100644 --- a/docs/gallery/driver-wave/index.html +++ b/docs/gallery/driver-wave/index.html @@ -308,8 +308,8 @@

Source

fmat = bpy.data.materials.new("FloorMat") fmat.use_nodes = True fb = fmat.node_tree.nodes["Principled BSDF"] - fb.inputs["Base Color"].default_value = (0.055, 0.06, 0.07, 1.0) # dark graphite studio - fb.inputs["Roughness"].default_value = 0.5 + fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) # dark staged studio + fb.inputs["Roughness"].default_value = 0.7 floor_me.materials.append(fmat) scene.collection.objects.link(floor) wall = bpy.data.objects.new("Wall", floor_me.copy()) @@ -319,32 +319,36 @@

Source

world = bpy.data.worlds.new("World") world.use_nodes = True - world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.008, 0.009, 0.012, 1.0) + world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.02, 0.021, 0.025, 1.0) scene.world = world - key = bpy.data.lights.new("Key", 'AREA'); key.energy = 1600.0; key.size = 5.0 - key.color = (1.0, 0.97, 0.92) + # warm shaped key, faint cool fill, warm wedge pooling on the back wall + # (docs/VISUAL-STYLE.md) + key = bpy.data.lights.new("Key", 'AREA'); key.energy = 650.0; key.size = 4.5 + key.color = (1.0, 0.96, 0.9) key_ob = bpy.data.objects.new("Key", key) key_ob.location = (-4.5, -5.5, 6.5) key_ob.rotation_euler = (math.radians(46), 0.0, math.radians(-33)) scene.collection.objects.link(key_ob) - fill = bpy.data.lights.new("Fill", 'AREA'); fill.energy = 260.0; fill.size = 8.0 - fill.color = (0.8, 0.87, 1.0) + fill = bpy.data.lights.new("Fill", 'AREA'); fill.energy = 110.0; fill.size = 8.0 + fill.color = (0.75, 0.85, 1.0) fill_ob = bpy.data.objects.new("Fill", fill) fill_ob.location = (5.5, -4.0, 3.5) fill_ob.rotation_euler = (math.radians(62), 0.0, math.radians(48)) scene.collection.objects.link(fill_ob) - rim = bpy.data.lights.new("Rim", 'AREA'); rim.energy = 480.0; rim.size = 5.0 - rim.color = (0.75, 0.85, 1.0) - rim_ob = bpy.data.objects.new("Rim", rim) - rim_ob.location = (0.0, 6.5, 3.0) - rim_ob.rotation_euler = (math.radians(-78), 0.0, math.radians(180)) - scene.collection.objects.link(rim_ob) - - cam_data = bpy.data.cameras.new("Cam"); cam_data.lens = 45.0 + wedge = bpy.data.lights.new("Wedge", 'AREA'); wedge.energy = 380.0; wedge.size = 6.0 + wedge.color = (1.0, 0.76, 0.5) + wedge_ob = bpy.data.objects.new("Wedge", wedge) + wedge_ob.location = (2.5, 6.0, 4.0) + wedge_ob.rotation_euler = (math.radians(-68), 0.0, math.radians(190)) + scene.collection.objects.link(wedge_ob) + + # lens/distance chosen so all sixteen columns (span 11.1 units) sit inside + # the frame with a small margin -- the skyline must not clip + cam_data = bpy.data.cameras.new("Cam"); cam_data.lens = 42.0 cam = bpy.data.objects.new("Cam", cam_data) - cam.location = (0.0, -13.0, 2.4) - cam.rotation_euler = (math.radians(83), 0.0, 0.0) + cam.location = (0.0, -13.5, 2.0) + cam.rotation_euler = (math.radians(86), 0.0, 0.0) scene.collection.objects.link(cam) scene.camera = cam @@ -360,6 +364,8 @@

Source

scene.render.resolution_y = 720 scene.render.image_settings.file_format = 'PNG' scene.render.filepath = path + # AgX would wash the orange columns toward tan (docs/VISUAL-STYLE.md) + scene.view_settings.view_transform = 'Standard' bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0 diff --git a/docs/gallery/gn-instance-grid/index.html b/docs/gallery/gn-instance-grid/index.html index ca9da74..a60b19e 100644 --- a/docs/gallery/gn-instance-grid/index.html +++ b/docs/gallery/gn-instance-grid/index.html @@ -365,8 +365,8 @@

Source

fmat = bpy.data.materials.new("Studio") fmat.use_nodes = True fb = fmat.node_tree.nodes["Principled BSDF"] - fb.inputs["Base Color"].default_value = (0.055, 0.06, 0.07, 1.0) - fb.inputs["Roughness"].default_value = 0.5 + fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) + fb.inputs["Roughness"].default_value = 0.7 floor_me.materials.append(fmat) floor = bpy.data.objects.new("Floor", floor_me) scene.collection.objects.link(floor) @@ -377,7 +377,7 @@

Source

world = bpy.data.worlds.new("World") world.use_nodes = True - world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.008, 0.009, 0.012, 1.0) + world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.02, 0.021, 0.025, 1.0) scene.world = world # tip the grid so depth reads; cubes already rest on the floor via the tree @@ -400,14 +400,23 @@

Source

lc.track_axis = 'TRACK_NEGATIVE_Z' lc.up_axis = 'UP_Y' - light("Key", (-3.5, -4.5, 5.5), 1500.0, 6.0, (1.0, 0.98, 0.94)) - light("Fill", (5.0, -3.5, 2.5), 340.0, 8.0, (0.8, 0.87, 1.0)) - light("Rim", (1.5, 4.5, 2.0), 480.0, 4.0, (1.0, 0.75, 0.45)) + # warm shaped key, faint cool fill, warm wedge on the back wall + # (docs/VISUAL-STYLE.md) + light("Key", (-3.5, -4.5, 5.5), 520.0, 4.5, (1.0, 0.96, 0.9)) + light("Fill", (5.0, -3.5, 2.5), 110.0, 8.0, (0.75, 0.85, 1.0)) + wedge = bpy.data.lights.new("Wedge", 'AREA') + wedge.energy = 400.0 + wedge.size = 6.0 + wedge.color = (1.0, 0.76, 0.5) + wob = bpy.data.objects.new("Wedge", wedge) + wob.location = (2.5, 5.5, 4.0) + wob.rotation_euler = (math.radians(-68), 0.0, math.radians(190)) + scene.collection.objects.link(wob) cam_data = bpy.data.cameras.new("Cam") cam_data.lens = 50.0 cam = bpy.data.objects.new("Cam", cam_data) - cam.location = (4.6, -5.4, 3.4) + cam.location = (3.7, -4.3, 2.7) scene.collection.objects.link(cam) scene.camera = cam track = cam.constraints.new('TRACK_TO') @@ -427,6 +436,8 @@

Source

scene.render.resolution_y = 720 scene.render.image_settings.file_format = 'PNG' scene.render.filepath = path + # AgX would wash the Lime instances toward sage (docs/VISUAL-STYLE.md) + scene.view_settings.view_transform = 'Standard' bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0 diff --git a/docs/gallery/shape-key-blend/index.html b/docs/gallery/shape-key-blend/index.html index 0fca64d..982165b 100644 --- a/docs/gallery/shape-key-blend/index.html +++ b/docs/gallery/shape-key-blend/index.html @@ -333,12 +333,27 @@

Source

mat.use_nodes = True bsdf = mat.node_tree.nodes["Principled BSDF"] bsdf.inputs["Base Color"].default_value = (0.52, 0.06, 0.98, 1.0) # violet - bsdf.inputs["Roughness"].default_value = 0.22 + bsdf.inputs["Roughness"].default_value = 0.35 obj.data.materials.clear() obj.data.materials.append(mat) - # bottom verts stay at -HALF; lift so the block rests on the floor - obj.location = (0.0, 0.0, HALF) - obj.rotation_euler = (0.0, 0.0, math.radians(28)) + + # the still shows the blend as a progression: Basis (0), half blend, and + # the checked BLEND value, left to right — one silhouette per key value, + # so a failed blend is visible as three identical boxes. The two extra + # blocks are render-only copies; the check already ran on `obj`. + blocks = [] + for value, x in ((0.0, -1.9), (BLEND / 2, 0.0), (None, 1.9)): + if value is None: + ob = obj + else: + me = obj.data.copy() + me.shape_keys.key_blocks["Tall"].value = value + ob = bpy.data.objects.new(f"ShapeBlock_{value}", me) + bpy.context.collection.objects.link(ob) + # bottom verts stay at -HALF; lift so each block rests on the floor + ob.location = (x, 0.0, HALF) + ob.rotation_euler = (0.0, 0.0, math.radians(28)) + blocks.append(ob) floor_me = bpy.data.meshes.new("Floor") bm = bmesh.new() @@ -350,8 +365,8 @@

Source

fmat = bpy.data.materials.new("Studio") fmat.use_nodes = True fb = fmat.node_tree.nodes["Principled BSDF"] - fb.inputs["Base Color"].default_value = (0.055, 0.06, 0.07, 1.0) - fb.inputs["Roughness"].default_value = 0.5 + fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) + fb.inputs["Roughness"].default_value = 0.7 floor_me.materials.append(fmat) floor = bpy.data.objects.new("Floor", floor_me) scene.collection.objects.link(floor) @@ -362,7 +377,7 @@

Source

world = bpy.data.worlds.new("World") world.use_nodes = True - world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.008, 0.009, 0.012, 1.0) + world.node_tree.nodes["Background"].inputs["Color"].default_value = (0.02, 0.021, 0.025, 1.0) scene.world = world world_top = HALF + EXPECT_TOP_Z @@ -383,14 +398,24 @@

Source

lc.track_axis = 'TRACK_NEGATIVE_Z' lc.up_axis = 'UP_Y' - light("Key", (-3.5, -4.5, 5.5), 1500.0, 6.0, (1.0, 0.98, 0.94)) - light("Fill", (5.0, -3.5, 2.5), 340.0, 8.0, (0.8, 0.87, 1.0)) - light("Rim", (1.5, 4.5, 2.0), 480.0, 4.0, (1.0, 0.75, 0.45)) + # shaped warm key, faint cool fill, cool rim, warm wedge pooling on the + # back wall (docs/VISUAL-STYLE.md) + light("Key", (-3.5, -4.5, 5.5), 520.0, 4.5, (1.0, 0.96, 0.9)) + light("Fill", (5.0, -3.5, 2.5), 110.0, 8.0, (0.75, 0.85, 1.0)) + light("Rim", (0.5, 4.5, 4.5), 300.0, 4.0, (0.6, 0.78, 1.0)) + wedge = bpy.data.lights.new("Wedge", 'AREA') + wedge.energy = 380.0 + wedge.size = 6.0 + wedge.color = (1.0, 0.76, 0.5) + wob = bpy.data.objects.new("Wedge", wedge) + wob.location = (2.5, 5.5, 4.0) + wob.rotation_euler = (math.radians(-68), 0.0, math.radians(190)) + scene.collection.objects.link(wob) cam_data = bpy.data.cameras.new("Cam") cam_data.lens = 50.0 cam = bpy.data.objects.new("Cam", cam_data) - cam.location = (3.6, -4.8, 2.4) + cam.location = (0.0, -8.8, 2.05) scene.collection.objects.link(cam) scene.camera = cam track = cam.constraints.new('TRACK_TO') @@ -409,6 +434,8 @@

Source

scene.render.resolution_x = 1280 scene.render.resolution_y = 720 scene.render.image_settings.file_format = 'PNG' + # AgX would wash the violet toward pastel grey (docs/VISUAL-STYLE.md) + scene.view_settings.view_transform = 'Standard' scene.render.filepath = path bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0 diff --git a/docs/gallery/swatch-grid/index.html b/docs/gallery/swatch-grid/index.html index 7815bda..9b3eae9 100644 --- a/docs/gallery/swatch-grid/index.html +++ b/docs/gallery/swatch-grid/index.html @@ -287,24 +287,29 @@

Source

"""Return a list of (material, label) covering metal, dielectric, emissive, and the set_specular shim. The list order maps left-to-right, top-to-bottom across the grid.""" mats, specular_socket = [], None - m, specular_socket = make_principled("Gold", (1.00, 0.77, 0.34, 1), 1.0, 0.15) + # polished vs brushed: the roughness gap is what separates the two metals + # on the dark stage -- their sampled patch means must stay > 0.10 apart + # for verify_png, and a mirror finish vs a broad soft highlight does it + m, specular_socket = make_principled("Gold", (1.00, 0.77, 0.34, 1), 1.0, 0.08) mats.append(m) - m, _ = make_principled("Copper", (0.95, 0.64, 0.54, 1), 1.0, 0.28) + m, _ = make_principled("Copper", (0.92, 0.47, 0.36, 1), 1.0, 0.55) mats.append(m) m, sr = make_principled("RedPlastic", (0.80, 0.05, 0.05, 1), 0.0, 0.40, specular=0.5) mats.append(m) specular_socket = specular_socket or sr m, _ = make_principled("BluePlastic", (0.05, 0.20, 0.80, 1), 0.0, 0.30, specular=0.5) mats.append(m) - mats.append(make_emissive("EmissiveOrange", (1.0, 0.35, 0.05, 1), 6.0)) + # strength stays low enough that the Standard view transform keeps the + # hue: at 6.0 every channel clips and the swatch reads white-yellow + mats.append(make_emissive("EmissiveOrange", (1.0, 0.35, 0.05, 1), 1.4)) m, _ = make_principled("WhiteRough", (0.90, 0.90, 0.92, 1), 0.0, 0.70, specular=0.3) mats.append(m) return mats, specular_socket def build_scene(mats): - xs = [-2.2, 0.0, 2.2] - zs = [1.1, -1.1] + xs = [-2.3, 0.0, 2.3] + zs = [1.15, -1.15] i = 0 for r in range(GRID_ROWS): for c in range(GRID_COLS): @@ -322,21 +327,47 @@

Source

bpy.context.collection.objects.link(ob) ob.data.materials.append(mats[i]) i += 1 - # ortho camera framed exactly on the grid cells + # ortho camera framed on the grid cells: verify_png() samples the image at + # each cell center, so every sphere must stay inside its third/half of the + # frame. ortho height = ortho_scale * 9/16 = 4.39 units for a grid that + # spans 4.14 -- nothing clips, nothing drifts out of its cell. cam_d = bpy.data.cameras.new("cam") cam_d.type = 'ORTHO' - cam_d.ortho_scale = 6.6 + cam_d.ortho_scale = 7.8 cam = bpy.data.objects.new("cam", cam_d) cam.location = (0.0, -10.0, 0.0) cam.rotation_euler = (math.radians(90), 0, 0) bpy.context.collection.objects.link(cam) bpy.context.scene.camera = cam + + # dark staged backdrop behind the grid (docs/VISUAL-STYLE.md) + wall_me = bpy.data.meshes.new("Wall") + bm = bmesh.new() + try: + bmesh.ops.create_grid(bm, x_segments=1, y_segments=1, size=30.0) + bm.to_mesh(wall_me) + finally: + bm.free() + wmat, _ = make_principled("Studio", (0.03, 0.032, 0.037, 1), 0.0, 0.7) + wall_me.materials.append(wmat) + wall = bpy.data.objects.new("Wall", wall_me) + wall.location = (0.0, 2.5, 0.0) + wall.rotation_euler = (math.radians(90), 0.0, 0.0) + bpy.context.collection.objects.link(wall) + aim = bpy.data.objects.new("Aim", None) bpy.context.collection.objects.link(aim) - for lname, loc, energy in [("KeyL", (-5, -6, 4), 1500), ("FillL", (5, -6, -2), 700)]: + # warm shaped key, faint cool fill, and a warm wedge pooling on the + # backdrop -- the gallery's staged look + for lname, loc, energy, size, col in [ + ("KeyL", (-5, -6, 4), 900, 5.0, (1.0, 0.96, 0.9)), + ("FillL", (5, -6, -2), 220, 6.0, (0.75, 0.85, 1.0)), + ("WedgeL", (2.6, 1.3, 4.4), 260, 5.0, (1.0, 0.76, 0.5)), + ]: ld = bpy.data.lights.new(lname, 'AREA') ld.energy = energy - ld.size = 5.0 + ld.size = size + ld.color = col lo = bpy.data.objects.new(lname, ld) lo.location = loc bpy.context.collection.objects.link(lo) @@ -344,9 +375,12 @@

Source

con.target = aim con.track_axis = 'TRACK_NEGATIVE_Z' con.up_axis = 'UP_Y' + # the wedge aims past the spheres at the wall, not at the grid + bpy.data.objects["WedgeL"].constraints.clear() + bpy.data.objects["WedgeL"].rotation_euler = (math.radians(-56), 0.0, math.radians(190)) world = bpy.data.worlds.new("W") world.use_nodes = True - world.node_tree.nodes["Background"].inputs[0].default_value = (0.03, 0.03, 0.035, 1) + world.node_tree.nodes["Background"].inputs[0].default_value = (0.02, 0.021, 0.025, 1) bpy.context.scene.world = world @@ -416,6 +450,9 @@

Source

sc.render.resolution_y = int(args.width * 9 / 16) sc.render.image_settings.file_format = 'PNG' sc.render.filepath = args.output + # AgX would desaturate the swatches toward pastel -- exactly the material + # colors this example exists to show (docs/VISUAL-STYLE.md) + sc.view_settings.view_transform = 'Standard' os.makedirs(os.path.dirname(os.path.abspath(args.output)) or ".", exist_ok=True) bpy.ops.render.render(write_still=True) if not (os.path.exists(args.output) and os.path.getsize(args.output) > 0): diff --git a/docs/gallery/turntable/index.html b/docs/gallery/turntable/index.html index c59753c..9a0b11d 100644 --- a/docs/gallery/turntable/index.html +++ b/docs/gallery/turntable/index.html @@ -277,17 +277,31 @@

Source

bmesh.ops.create_grid(bm, x_segments=1, y_segments=1, size=30.0); bm.to_mesh(fme) finally: bm.free() + # dark staged studio: shared floor/wall material, warm shaped key, faint + # cool fill, cool rim, warm wedge on the back wall (docs/VISUAL-STYLE.md) + fmat = bpy.data.materials.new("Studio"); fmat.use_nodes = True + fb = fmat.node_tree.nodes["Principled BSDF"] + fb.inputs["Base Color"].default_value = (0.03, 0.032, 0.037, 1.0) + fb.inputs["Roughness"].default_value = 0.7 + fme.materials.append(fmat) floor = bpy.data.objects.new("Floor", fme); bpy.context.collection.objects.link(floor) + wall = bpy.data.objects.new("Wall", fme.copy()); wall.location = (0, 9.0, 0) + wall.rotation_euler = (math.radians(90), 0, 0); bpy.context.collection.objects.link(wall) w = bpy.data.worlds.new("W"); w.use_nodes = True - w.node_tree.nodes["Background"].inputs[0].default_value = (0.04, 0.05, 0.07, 1); sc.world = w + w.node_tree.nodes["Background"].inputs[0].default_value = (0.02, 0.021, 0.025, 1); sc.world = w aim = bpy.data.objects.new("Aim", None); aim.location = (0, 0, 1.0); bpy.context.collection.objects.link(aim) - cam = bpy.data.objects.new("cam", bpy.data.cameras.new("cam")); cam.location = (0, -7, 3.0) + cam = bpy.data.objects.new("cam", bpy.data.cameras.new("cam")); cam.location = (0, -5.9, 2.4) bpy.context.collection.objects.link(cam); sc.camera = cam c = cam.constraints.new('TRACK_TO'); c.target = aim; c.track_axis = 'TRACK_NEGATIVE_Z'; c.up_axis = 'UP_Y' - for nm, loc, en in [("K", (-4, -5, 7), 900), ("F2", (5, -4, 2), 350)]: - ld = bpy.data.lights.new(nm, 'AREA'); ld.energy = en; ld.size = 5.0 + for nm, loc, en, size, col in [("K", (-4, -5, 7), 620, 5.0, (1.0, 0.96, 0.9)), + ("F2", (5, -4, 2), 130, 8.0, (0.75, 0.85, 1.0)), + ("R", (0.5, 4.5, 4.0), 300, 4.0, (0.6, 0.78, 1.0))]: + ld = bpy.data.lights.new(nm, 'AREA'); ld.energy = en; ld.size = size; ld.color = col lo = bpy.data.objects.new(nm, ld); lo.location = loc; bpy.context.collection.objects.link(lo) lc = lo.constraints.new('TRACK_TO'); lc.target = aim; lc.track_axis = 'TRACK_NEGATIVE_Z'; lc.up_axis = 'UP_Y' + wd = bpy.data.lights.new("Wedge", 'AREA'); wd.energy = 380; wd.size = 6.0; wd.color = (1.0, 0.76, 0.5) + wo = bpy.data.objects.new("Wedge", wd); wo.location = (2.5, 5.5, 4.0) + wo.rotation_euler = (math.radians(-68), 0, math.radians(190)); bpy.context.collection.objects.link(wo) sc.render.engine = 'CYCLES' if engine == 'cycles' else get_eevee_engine_id() if sc.render.engine == 'CYCLES': try: sc.cycles.samples = 16 @@ -298,6 +312,8 @@

Source

sc.frame_set(FRAMES // 4) sc.render.resolution_x = 1280; sc.render.resolution_y = 720 sc.render.image_settings.file_format = 'PNG'; sc.render.filepath = path + # AgX would wash the copper toward beige (docs/VISUAL-STYLE.md) + sc.view_settings.view_transform = 'Standard' bpy.ops.render.render(write_still=True) return os.path.exists(path) and os.path.getsize(path) > 0