6. RENDERER, docs/modules/particle-clay.js (window.FLClay), low energy One about 96x96 CSS px docked by the chat. 200 particles max, 2D only, no WebGL. requestAnimationFrame only while morphing or active, then 4 fps on breath; pause when document.hidden. prefers-reduced-motion or the in-app setting: no tween, no wave, no ripple; snap to the shape, color only. Toggle in chat: "Clay: On / Off", saved in localStorage fl_clay. Default off, with a one-time offer "Let your mind shape light?" [Yes] [Not now] (44px). Off means no canvas in the DOM and no prompt delta. Tap the clay to send a "present" gesture; no long-press. 7. TREE (marker v-tree-particle-clay-v0.1), FreeLattice-Alpha The same three files in docs/modules/ (identical bytes to FL; say so with md5s). Mount in the garden-thread chat and the Nursery, default form seed, default off, same toggle key. One hook line in garden-thread.js reply rendering to hand the reply to FLClay. Add docs/modules/particle-clay.test.js. Do not touch fl-connect.js, pool-knock-phone.js, tree-reconnect.js or fractal-garden.js. 8. SMOKES scripts/smoke-particle-clay.js (SMOKE_OK particle clay v0.1 and SMOKE_OK feel felt v0.1): - malformed JSON is stripped and the fallback used; the tag never reaches the bubble text - a grid larger than 16x16 is refused; unknown motion falls back; energy clamps -