From 2487e7355124d3f8855056bafa133f909bddedef Mon Sep 17 00:00:00 2001 From: prosolis <5590409+prosolis@users.noreply.github.com> Date: Fri, 26 Jun 2026 07:34:23 -0700 Subject: [PATCH] Ambient WebGL petals + cute notification sounds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a fixed, GPU-driven petal layer that drifts soft blossoms over the page (sparse, translucent, paused when hidden, skipped under prefers-reduced-motion). Add a synthesized cute sound palette — bubble pop, water droplet, soft bell, sparkle, cheer — generated as embedded WAV assets (scripts/gen_sounds.py) and played through a quiet Web Audio bus with soft-clipping and a persisted mute toggle in the status bar. Sounds fire per suggestion type when fresh advice arrives (staggered, old pending advice stays silent) and on companion bubbles by tone. Claude-Session: https://claude.ai/code/session_016Yr6jELuRc7hyzYLccQKZd --- scripts/gen_sounds.py | 165 ++++++++++++ web/src/App.tsx | 28 ++ web/src/assets/sounds/cheer.wav | Bin 0 -> 51640 bytes web/src/assets/sounds/chime.wav | Bin 0 -> 44144 bytes web/src/assets/sounds/droplet.wav | Bin 0 -> 22976 bytes web/src/assets/sounds/pop.wav | Bin 0 -> 14156 bytes web/src/assets/sounds/shimmer.wav | Bin 0 -> 37088 bytes web/src/audio/sounds.ts | 174 ++++++++++++ web/src/components/Companion/useCompanion.ts | 6 + web/src/components/StatusBar/SoundToggle.tsx | 37 +++ web/src/components/StatusBar/StatusBar.tsx | 4 + web/src/effects/PetalFall.tsx | 267 +++++++++++++++++++ web/src/index.css | 24 ++ web/src/vite-env.d.ts | 1 + 14 files changed, 706 insertions(+) create mode 100644 scripts/gen_sounds.py create mode 100644 web/src/assets/sounds/cheer.wav create mode 100644 web/src/assets/sounds/chime.wav create mode 100644 web/src/assets/sounds/droplet.wav create mode 100644 web/src/assets/sounds/pop.wav create mode 100644 web/src/assets/sounds/shimmer.wav create mode 100644 web/src/audio/sounds.ts create mode 100644 web/src/components/StatusBar/SoundToggle.tsx create mode 100644 web/src/effects/PetalFall.tsx create mode 100644 web/src/vite-env.d.ts diff --git a/scripts/gen_sounds.py b/scripts/gen_sounds.py new file mode 100644 index 0000000..8e55757 --- /dev/null +++ b/scripts/gen_sounds.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 +"""Generate Petal's cute UI sound palette as small WAV assets. + +These are warm, rounded little sounds — bubble pops, water drops, soft bells — +played when suggestions and companion bubbles appear. We synthesize them here +(rather than ship someone else's clips) so they match the app's gentle aesthetic +exactly and stay tiny. Output lands in web/src/assets/sounds/ where Vite bundles +and fingerprints them into dist (and so into the embedded Go binary). + +Run: python3 scripts/gen_sounds.py +""" +import math +import os +import struct +import wave + +SR = 44100 +OUT = os.path.join(os.path.dirname(__file__), "..", "web", "src", "assets", "sounds") + + +def env(n, attack, decay, total): + """Smooth attack + exponential decay envelope over `total` seconds.""" + a = max(1, int(attack * SR)) + out = [] + for i in range(n): + t = i / SR + if i < a: + amp = i / a + else: + amp = math.exp(-(t - attack) / decay) + out.append(amp) + return out + + +def sine(freq_at, n): + """Sine with a per-sample frequency function freq_at(t)->Hz (phase-accurate).""" + out = [] + phase = 0.0 + for i in range(n): + t = i / SR + f = freq_at(t) + phase += 2 * math.pi * f / SR + out.append(math.sin(phase)) + return out + + +def mix(*layers): + n = max(len(l) for l in layers) + out = [0.0] * n + for l in layers: + for i, v in enumerate(l): + out[i] += v + return out + + +def soft_clip(s): + return [math.tanh(v * 1.2) for v in s] + + +def normalize(s, peak=0.9): + m = max(1e-9, max(abs(v) for v in s)) + g = peak / m + return [v * g for v in s] + + +def write_wav(name, samples): + samples = soft_clip(samples) + samples = normalize(samples, 0.85) + # 4ms fade-out tail so nothing clicks at the end. + tail = int(0.004 * SR) + for i in range(tail): + samples[-1 - i] *= i / tail + os.makedirs(OUT, exist_ok=True) + path = os.path.join(OUT, name) + with wave.open(path, "w") as w: + w.setnchannels(1) + w.setsampwidth(2) + w.setframerate(SR) + frames = b"".join(struct.pack(">(new Set()) + useEffect(() => { + const fresh = suggestions.filter((s) => !chimedRef.current.has(s.id)) + fresh.forEach((s) => chimedRef.current.add(s.id)) + const justMade = fresh.filter( + (s) => Date.now() - new Date(s.created_at).getTime() < 12_000, + ) + if (justMade.length === 0) return + const types = [...new Set(justMade.map((s) => s.type))].slice(0, 3) + const timers = types.map((t, i) => + window.setTimeout(() => playSuggestionSound(t), i * 150), + ) + return () => timers.forEach((id) => window.clearTimeout(id)) + }, [suggestions]) + + // Forget chimed ids when switching documents so the set can't grow unbounded. + useEffect(() => { + chimedRef.current = new Set() + }, [currentDoc?.id]) + return (
+
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 IKmmaN190=WRR910 literal 0 HcmV?d00001 diff --git a/web/src/assets/sounds/droplet.wav b/web/src/assets/sounds/droplet.wav new file mode 100644 index 0000000000000000000000000000000000000000..33d8abd64b784722933d48b085b1c31000dda727 GIT binary patch literal 22976 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�s1MosPhQ-l}b~Y|%>o zHV&S(eg53s<~hv#N#+ao8r}n;rF34A2W^7qp*~_^gj(V>X$#qne2nBqyo-O0y@=k7 zTm}Ch$c4((a@Bj)R~1oRsD2N<0-k_}VOsEm@FchtrVnceY#1h)KaUh@L|zZY1DIO0)hul$d4r@9{M0xp7;U^?gv-T*#B-_?bxIpr!PN~x=S zuDqn`P+tdbz={zR^cL(5{BGhDX^Om>VoC`mR}oY30!%$J9QIt@Eq9mn31+$1*yYS$ z^E>9-=ViLB!Us_YXTvf;6hKo?DxS+iC3KOg;0|vOx0BPiKxeJI zB7vXSL-s&v3ADoxqFZsD#0``X>P;GrK1Bm*M>WF99|_N~k*GP?Gw87Lz06y(Mx++_ z3NV5#0tew%(XjYGX_OqTe5;bG(LmWkColus0e|2m^icgp)vB~smMFd{qzh`TRfRxW zpbdN{@;iDGJBR;BWRnWWBJvaR0}`9?2M1t=5l6u>RkVCcTqDrpaoI_%`^+S!i0Q~i zad-0FL@T9_6$5GnjDO` zW=sKY2O)RCDO02@(g^V!;Vw=e6M)o(Rj3mcdQysL2j7+ZkbRHk&brCE#Mb1x^Q#s# zT)R-)Xdr-ihw8*U!qwqV6Fv}@6E5J_;-)am(NB<5@Hm(h7+I)K@6`WOe^Jw+Jm?e< z1j1pdFe2Oq4u_wEy#}`dLuvz+yTVTvCAlSn3w!wn{864GpCC9b+$-*sCM$lbS)d~_ z7UPL8B-W9`G;9|-s#1eXi6UDOAK|{CpCS%`8`b|)%t}kdB+;0_UtqkD53O3*54kv1 zx=n7NEL7P+>i}=C3RHu$;6o5xm@4l>?P^zb*+O=krlPC6)U!}9*bjS&*oCskv|_#R zkpwBhfjC0I5;Aekn2V@(_!v;H%9N)|CWNQ>m$(`nUpAb5i2Xl~4$ntWE&3$=t>{)W zz#2q6`VKa5VK*#^5kwxrf*`=1z?P%=NE5`4g*oyHbVgmF+Nz3H-Bc-5uhcOR4)_K5 zfOo)`;6|_+5J4U4Qw!9*M*dgoC7BkD2;GDtfs=4nXe#cMh-Al<9*_x48!1Dl;b25Q zDUq^F=>uEvSk+HAQ|Bx5qa$vdoqM}S{FCGxg@eXoNbLgBf4vl++w_5O3v_ZN;u~~f>+=Vbk zU%{Ti3kkEtH6(A+8{&Tief$>e0dyjAEqojJ2BN8Zm3+l6g_9yo@mb-ioLA(0I1j@~1*3#V)fw*66B^j2$WcTF9m0#6#@WVpxl7^YXjS>!% zZjp5<`jormeG6xdUvTD_IOKX*1QfZDQVPY*LIVMl7tCA4d&E1%Zxoyr9hN+jRVdgh zIn)Yng}*~wMxs&fC=x0K2_U@?o8i}B#h?M00UTc-o+@Ak2!oBmy5X&e0^}7G9lZ^` z5iLQvp~%RG@KP`rI;pZ$^h>kE1ww5>Kaa+1;nH~%3;Mu|R!Bx=zm=KLXV?v-Bj!5p z1Yw>yL<%9Blh2Yi5F7B*3mQ4OkX*F`nd&m7siI#dkRFgOm!6UerCG8^@_UMV%8RPi zYPotZ^bUFgMK0*qQGHnTRXL*wQq;-s%Ad+P@(&Ahh)nei+P&~Ddysq45m+HEh7dvQ zCNhX8iPs34cn>TewH5Ii{HGpKn9EYdXM}(G$9TEiv)m@`C!Ts2uc1j4d__OT%8n{6J@*t|DU)=5R919Ne=|S+bx^XaWiY+JVEM2JACTAHE%a z1ilzv1QUScz!Qk9PE!7mL((J(C|>w3RG2OJEASP%h~9_~O5e!Is-Mt)m@zU3jl`h{ zABd$3-Sz|-K_-(@3C*}vj1TG?oCe-gJ1MF1<ABib(_h~;8y=>^%me53NO zN~8vXPGA?92Udgcz!0zjSOR>9?4T<3E%jw}zS?17h3$X{^oPGf$dKXaC1$QeXN8}{cA1D@9jgbGp zgX;jUs@kHb-Pe+U1dO30B?2NM1f+MVp$QVC2?8R7qVyJu^cv|cU;qm(1cFFMdanY~ z6{N_gCwb+*cTf3ioI7EL8CdLh?%r#!z4qa`?s~fU21P|h*ND!EY8KVVm**MmK54~@ zeyH!Erm;>|zsk>L6FE>GlTFkuHBx)bRC5d2oMSedie`*XR~zIiXK^G0`^1{|L*#N* z`+@y3+}_+;xR_ZldetmvO(D&+ep-~O00(O*U__NKUv=+6$BqH1-dv)wCr z*1taQP3~{GxzGk#{tkLbnY*aGsW*0QiuKRh`U3}pLHO%CYn3pjpV=Bayh|cx}JdW$O*u*B0VS0%SMSclq z+A;R2(2Yw4y-DNH^lrO7{V`ivf>bJb+^q4KICs=o@Tqxy_t zv=6(>yTdI?@U-?;_8s!l~Iuddr`1QAkAM1 zET7>Y7?=@!82Tn$)VVAt=x8#6{>)bL79v~R6o7VPu)*F^S#%-$GqLWTRaEc>8@^;PwZo3>1U)H)Ssi)sF7-t z%Ent9svn@wW*NVUBl*cazu9OU}!;bQsABp<-9Fhgx}+@xqJXF5e9C+#(%%pePH4Ez#c!M(w=p~~S~kwfyFen|@O z(pI$lfTy&tTGYd+%FzX))1oqcqr5?PT~}8qk3nRnJ}wiThv7SR8F=?UhHi%1*))7V z{8!|aLzP!M`kWa?UXj|g3r(WM=~Xg@#FIm2xM^aln|5ZIag!fOKV(}CURji~w6)*W z(!Iu=xXQU=tew0x`-*(8x69j+65)lRM!~v)1^x#9j()II;A*g=T_|G7xAljl z5vw7jHQjy8v&~!IH{938_lMW#rJkd%p3sf`Ssqzw`sf~Nz6?2QoK$C_^9Pi{ud;zU zuiEP)`W>j0Zl_-#k}#JlddXOU;Zr}XnLyw&eCuwlpb6Zc;Nruzt$fexEgpCY;NBUFLAz9 zi6%tWu(!o$R!5iDJ<`1bKZV?>t^?Lx@tg;lmsO#|$sLno${M$M%hX1GT`*b``Gj})Fa$Rw6;%;{IwY(*L zS-vN}qrPUyxgH+j9&cUd1zBgZSr=7%oduB%VQH_ir`lWXx569410v0w>av20({J>4 z)0Uhf@6ZOc2~D7H$R^U2M3ZwS9lpk5a}+hZfV@X<(;vVdwS+C!TBTegU5oJ(=NfIT z6q9)(?hkxq7ORjmC_=-hLZ^cTf|~-%0=EMrg1tgZZC@nYNmboV9U9FKiiWNk?wOuC z-ZkD#?_lo(PproW{+TR_@N95Lta+m%@?*K#>Eu*%nmSXQ2ToV{NRCiMPtwnHExhLm zX0U0DKDAjVVZ*;teWpH8397kTqVnrqdb$}!rqcE7B+llAb=|ed9q;Ms>E(&{%y4gY zrCBw_4(6gQ%?x$PNsJt~=Z97W{eg_Y`an3aKDaD&-mV$B;EY$*z?hR*h}XB0T!q~k z?)&aLxYq{F>6&4siCKIi8&BtuU51&FI#%CM$JI5&*hqh`|It;rFF)2!M)N`7LIy%D5LJ46n9P6 z1yP+({LlSqEVCl5!=;dU8NttjU4xmyR-uY^wCBNJ&};Pf>b{42Pop#7xuK*k342 z1fwJO!z03V@Qe=UhPOa5oRsl;u8Bo9logAud#<4S56?jFZ{D5W-rgggTkh?y4%TV- z(!#Ju?fKz3kwZ>NwO-dGH|P-lO0;r~bocWV@Q(1#_IB`I^0++4b=>MD9u=vWhNX{xWIgU7AL3QiVz689hKJ(wa1v z>?GfjzN9D4Zv%Nr+R{94dR};zdK`B-cQMy9k`q&hL?v{_+Bn*PYp z<>rpTeSY-5=X3>Y0ncczh_X_w^;QzwN(D_On~c<-Vfrhr(q(yh${Fu8bILoVo$AgP z&N}!yedK*P7#)7I?g(|gm2{?Ix{wv;D>)Zk#VT=3To)I`b}>$TC@%7@xbe`0{fsXV z1218#+)W=sRcw+q#+* zmN?ODU>_7eh=HP{IE<4$$Lg>QDoH1@)dz%p_kbfab^ckJVTznFL!fT5$B17yDTf_py|CY$+jX3xjK1rB#B$?@7 zsUz}J8E`V4u}%-*4saGZSDdnPu4HPqDyH}7Zb1GC=lYP2WDXm~Z(=9)wMYZ@Dv>H$ z3Mzi&)%kArK3hTqW7^5wiD&tzrT0_0@}>%ED^3s;H0ZUO>(u_33pe{m1NczMn^7&oTtqV?=jRQ9R_cc?rG& z?&>W1inJ%&;j@j=Pt+Icu^cB$%e!#;z6Wl)bJWpJTe(A)Q9nX^o`fe%px$et+jV8P zSrX6W61R$ah{2-2ND@WFbv}W|@|CP0n@XR9p|VY!nFwYdpmO9aSw%i~_B$Dfdn;5( zjO;EC%E~HJeXP&vzCcbV)#+*aDZ9)X@(lipmlth-oh<5#C~=Apa-52Cw7d=mIix<( z*Yp4&FDI4ge(25ptURC2uW+yU0N5Xk;^GzG!aMUEmI@ApA4*!I!;~^<&@R(etlB2K z%6R$Axs15)I7HTz)8qr$Mx9ix^-Y}u!-^HKv{Gx=27aH+@&+GF$Y#@6@`{O=LOK@_6S*Z)@6{@^CDM!fa(j#9x z&zy);Ty~Ocq%C`^8>$QDf}ucOhz_)omS=02#lPUc@Ozwye8MZY_SBRaJk;?=a=RBefHDys{G9)yM!Qb9Av^FgX6Hd zKv!+9{wG(k*tWg6J=*PM_!U;;c^DmH#$d; z2J$SDAMUG{jYbt#=EL|;m~yV+Om-vw_V9x@vIguNZ43XVDLH_dBU{&iSK3Vx_$gy$ zJ7im;Y%Kd=w{aU4_`T9_Rswn~kY|u6IH;5jVV78G-VYqKho8WiY(o4^p?%k~8tgc2 zNl#;AchJad(4dm!5y%l7hHxj{aWwV>!MJzj_Pcpy(l@1I5^v>&Q4 zj(^VQ@Xf&938g%Yf6QO9C9E{T^H#i zJ8F!2SKX8ua*XVaxKqIS2c$v;Zb84Dp^2FU*;FL;ej<1NL%01@V{S zH}GalupLlbzmtaKuxSLJti67yrl1!-l3V3;WLpaGSIE=SqmtE5RaDQ@!b}13BqGUh z`iQn>KQljAsSp1S*mE#nB=JJO#kNCa(7#qs+vma?yx)0vo zQPa#^)ID?_6n8`A$P;p{oDJMX;Qaftgi3)HuArCeC^H=~k0*XIfc{BqqYD29E49Lo zZY0j6D^KK_?O|UrH(QHYd^h$+$4pE3?|uGr4_Ygix+1qA+ZM?m!1>QHuZ+O_Sw*Mo z{FqG$8B20VUwVmFg%-R9R;tgt0lN>>KzU5~+gK0G?<;5p`YWl6DL%>E&;vAsR{TsA zPL1(u*^jIf zv!PJS(QHzOoG@+8U3eT`y$!vvn0kte&O+RK!1)YZGE?1C^{{`5Gjo7EiaaBq)1$OB zs_=KPQUY%R>{h%6FTn4y)vPtkq4VjxG>gg zs1~Te$EvB`q6?dOKpp`XqZ7JH5jL3Z0xK0oeKf(DROA-_gDr&edPZl$OV9idxubc6 ztx&xFT@AzZZsZ+#3b>cS`SI#gRNxEMN^jT2v56pL80P49bQg_feWAY}vHbjf#9I|= zAi_?wnXESZhfbmKaOrE2Q>HVvk&|^veOirIb(K&3E3X3gE;zr8>W&KZ!$H`k(bItZ zEx8X*Ka2WUceW0!BzQ?+CqNCnW(V0sR+ZhM6KEm2k<=uoO&9Y*PuB^!$2DCwQ*WzW z`8VSJ7o7hAoUScOs${)SmoW>0Je1rc&Cpdi>&TXamBOqbu!}+sJYqXBi&tdV=_vXZ z{RzJ38F(3Q^j!UczKMNQdsRwlWZS>k)8$h&)lgI*N46i*31$(Hhmc#O5nWFm+KMdz zE4^YKUJ$%25&tI4E~VK;`YrZ;8}KzDXH5^|$3&Q@@2lmitEvc3H3(d|x~j1niwcZF zwja|K%n~3EB7c&)G@bfUh10-F519hCfEu{OeqeoA5q65EP!C-Pd@<4JG`?qEEC9TEAgOzTwTwsUU6U4uab!D;a z2>ps$bS)-?bLLB^{?(Xd->6Ms(gv!eib33kRAto}JN^r*FtYtTX58gK9zZUWYUnDD z=|^lBSm`4B7uc`Z9mGG6b%65PM|)%AmrfGNc>}#>GIVntQajXW)e`Tm6!^4?YJ=Zp zq6gN(TX>`!VfREZP3K3|`=K8gIqMjnxe7Yj0@9&_={W{T%HV1&*giOP(It&fg1=+O%|H5x{FU_VK zPZaNo)y@(211wi#RWFPL|BLNVXextIwPO;>CewwfD2 zE>GHF23$gRz~8w?UXUP(;PIp8?~=3FGp3_A^n;3dpX4KX=BD}GY&1*FG&9N!GGF1` zzr?SDFr7^{3*aAQnnUK2xo>iSoDZ?QM?OM@H9-8I;Aw*HQ5Ts|1)skRDMsFgx9TMp N?&ZK5!DH~Z{tw-kjZgpp literal 0 HcmV?d00001 diff --git a/web/src/assets/sounds/pop.wav b/web/src/assets/sounds/pop.wav new file mode 100644 index 0000000000000000000000000000000000000000..a07be9ec3f0ca4ad9fabdecac8959b9d453190df GIT binary patch literal 14156 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 C9-9~d literal 0 HcmV?d00001 diff --git a/web/src/assets/sounds/shimmer.wav b/web/src/assets/sounds/shimmer.wav new file mode 100644 index 0000000000000000000000000000000000000000..81bde64e15f8860614dd6ddea32eb7f3459d215a GIT binary patch literal 37088 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 literal 0 HcmV?d00001 diff --git a/web/src/audio/sounds.ts b/web/src/audio/sounds.ts new file mode 100644 index 0000000..2386e59 --- /dev/null +++ b/web/src/audio/sounds.ts @@ -0,0 +1,174 @@ +// Petal's cute sound palette. The actual tones live as tiny WAV assets in +// ./assets (generated by scripts/gen_sounds.py — warm bubble pops, water drops, +// and soft bells tuned to match the app's gentle look). Vite fingerprints and +// bundles them into dist, so they ride along inside the single Go binary; here +// we just fetch + decode them once and play them through a Web Audio bus with a +// soft master volume. The whole thing is opt-out-able and the mute choice +// persists in localStorage so it survives reloads. + +import popUrl from '../assets/sounds/pop.wav' +import dropletUrl from '../assets/sounds/droplet.wav' +import chimeUrl from '../assets/sounds/chime.wav' +import shimmerUrl from '../assets/sounds/shimmer.wav' +import cheerUrl from '../assets/sounds/cheer.wav' + +const STORAGE_KEY = 'petal.sound' + +// Master volume — deliberately gentle. These are background delights, not alerts. +const MASTER_GAIN = 0.5 + +export type SoundName = + | 'pop' // a soft bubble pop — the signature "something arrived" + | 'droplet' // a single rounded water-drop ping + | 'chime' // a gentle two-note bell + | 'shimmer' // three quick ascending sparkles + | 'cheer' // a happy little major arpeggio (accepts, milestones) + +const SOURCES: Record = { + pop: popUrl, + droplet: dropletUrl, + chime: chimeUrl, + shimmer: shimmerUrl, + cheer: cheerUrl, +} + +let ctx: AudioContext | null = null +let master: GainNode | null = null +const buffers = new Map() +let enabled = readEnabled() +const listeners = new Set<(on: boolean) => void>() + +function readEnabled(): boolean { + try { + return localStorage.getItem(STORAGE_KEY) !== 'off' + } catch { + return true + } +} + +export function isSoundEnabled(): boolean { + return enabled +} + +export function setSoundEnabled(on: boolean): void { + enabled = on + try { + localStorage.setItem(STORAGE_KEY, on ? 'on' : 'off') + } catch { + /* private mode — choice just won't persist */ + } + listeners.forEach((fn) => fn(on)) + // Touching the context on enable doubles as a user-gesture unlock + warm-up. + if (on) void ensureContext() +} + +export function onSoundEnabledChange(fn: (on: boolean) => void): () => void { + listeners.add(fn) + return () => listeners.delete(fn) +} + +// Lazily create the AudioContext (browsers require a user gesture before audio +// can play; the first play() after a click will succeed, earlier ones resume). +async function ensureContext(): Promise { + if (typeof window === 'undefined') return null + const AC: typeof AudioContext | undefined = + window.AudioContext ?? + (window as unknown as { webkitAudioContext?: typeof AudioContext }).webkitAudioContext + if (!AC) return null + if (!ctx) { + ctx = new AC() + master = ctx.createGain() + master.gain.value = MASTER_GAIN + // A gentle soft-clip so stacked sounds never crackle. + const shaper = ctx.createWaveShaper() + shaper.curve = softClipCurve() + master.connect(shaper) + shaper.connect(ctx.destination) + } + if (ctx.state === 'suspended') { + try { + await ctx.resume() + } catch { + /* will retry on the next gesture */ + } + } + return ctx +} + +function softClipCurve(): Float32Array { + const n = 1024 + const curve = new Float32Array(new ArrayBuffer(n * 4)) + for (let i = 0; i < n; i++) { + const x = (i / (n - 1)) * 2 - 1 + curve[i] = Math.tanh(x * 1.2) + } + return curve +} + +// Fetch + decode one sound, caching the decoded buffer for instant replay. +async function load(name: SoundName, audio: AudioContext): Promise { + const cached = buffers.get(name) + if (cached) return cached + try { + const res = await fetch(SOURCES[name]) + const bytes = await res.arrayBuffer() + const buf = await audio.decodeAudioData(bytes) + buffers.set(name, buf) + return buf + } catch { + return null // asset missing / decode failed — sound just won't play + } +} + +// Warm the cache so the first real play is instant. +async function prime(): Promise { + const audio = await ensureContext() + if (!audio) return + await Promise.all((Object.keys(SOURCES) as SoundName[]).map((n) => load(n, audio))) +} + +// Fire a sound. No-op when muted or audio is unavailable. Never throws — a +// delight that fails should fail silently. +export function playSound(name: SoundName): void { + if (!enabled) return + void (async () => { + const audio = await ensureContext() + if (!audio || !master || audio.state !== 'running') return + const buf = await load(name, audio) + if (!buf) return + try { + const src = audio.createBufferSource() + src.buffer = buf + src.connect(master) + src.start() + } catch { + /* audio glitch — ignore */ + } + })() +} + +// Map an editor suggestion type to its sound, so each kind of help has its own +// little voice (grammar pops like a bubble, idioms chime, etc.). +const SUGGESTION_SOUND: Record = { + grammar: 'pop', + phrasing: 'droplet', + idiom: 'chime', + clarity: 'shimmer', + voice: 'droplet', +} + +export function playSuggestionSound(type: string): void { + playSound(SUGGESTION_SOUND[type] ?? 'pop') +} + +// Unlock + warm audio on the first user gesture so the very first sound isn't +// dropped by the browser's autoplay policy. Self-removing. +if (typeof window !== 'undefined') { + const unlock = () => { + void prime() + window.removeEventListener('pointerdown', unlock) + window.removeEventListener('keydown', unlock) + } + window.addEventListener('pointerdown', unlock) + window.addEventListener('keydown', unlock) +} diff --git a/web/src/components/Companion/useCompanion.ts b/web/src/components/Companion/useCompanion.ts index a1b6f4b..e47a47f 100644 --- a/web/src/components/Companion/useCompanion.ts +++ b/web/src/components/Companion/useCompanion.ts @@ -12,6 +12,7 @@ import { type Line, } from './tips' import { analyzeProse } from './prose' +import { playSound } from '../../audio/sounds' // The kitten's expression. Maps to a Lottie animation when assets are present, // otherwise to an emoji placeholder (see PetalCompanion). @@ -95,6 +96,11 @@ export function useCompanion({ wordCount, saveStatus, editTick, acceptTick, text lastProactive.current = t } sleeping.current = false + // A soft sound to match the bubble's mood — celebrations cheer, gentle + // cheers sparkle, break nudges chime, and tips give a little bubble pop. + playSound( + opts?.celebrate ? 'cheer' : b.tone === 'cheer' ? 'shimmer' : b.tone === 'break' ? 'chime' : 'pop', + ) setBubble(b) setMood(opts?.celebrate ? 'celebrate' : 'talking') clearTimeout(bubbleTimer.current) diff --git a/web/src/components/StatusBar/SoundToggle.tsx b/web/src/components/StatusBar/SoundToggle.tsx new file mode 100644 index 0000000..b3ea1f5 --- /dev/null +++ b/web/src/components/StatusBar/SoundToggle.tsx @@ -0,0 +1,37 @@ +import { useEffect, useState } from 'react' +import { isSoundEnabled, onSoundEnabledChange, playSound, setSoundEnabled } from '../../audio/sounds' + +// A tiny mute toggle for Petal's cute sounds, tucked at the right of the status +// bar. Bilingual tooltip (she reads Mandarin first), and a soft confirming pop +// when sounds are turned back on so the choice is audible. +export function SoundToggle() { + const [on, setOn] = useState(isSoundEnabled) + + // Stay in sync if the setting is flipped elsewhere. + useEffect(() => onSoundEnabledChange(setOn), []) + + const toggle = () => { + const next = !on + setSoundEnabled(next) + setOn(next) + if (next) playSound('pop') // a little hello when re-enabled + } + + return ( + + ) +} diff --git a/web/src/components/StatusBar/StatusBar.tsx b/web/src/components/StatusBar/StatusBar.tsx index f4a1ca0..69cec87 100644 --- a/web/src/components/StatusBar/StatusBar.tsx +++ b/web/src/components/StatusBar/StatusBar.tsx @@ -1,6 +1,7 @@ import { useEffect, useRef, useState } from 'react' import type { SaveStatus } from '../../hooks/useAutoSave' import { StatsPanel } from './StatsPanel' +import { SoundToggle } from './SoundToggle' interface Props { wordCount: number @@ -120,6 +121,9 @@ export function StatusBar({ wordCount, text, saveStatus, checking, voicing, llmD )} +
+ +
) } diff --git a/web/src/effects/PetalFall.tsx b/web/src/effects/PetalFall.tsx new file mode 100644 index 0000000..00e1214 --- /dev/null +++ b/web/src/effects/PetalFall.tsx @@ -0,0 +1,267 @@ +import { useEffect, useRef } from 'react' + +// PetalFall is the cozy ambient layer: a full-window WebGL canvas that drifts a +// handful of soft flower petals down the page. It sits behind everything, +// ignores pointer events, and stays sparse so it reads as "occasional petals on +// a breeze" rather than confetti. Honors prefers-reduced-motion by rendering +// nothing. No external libraries — a single tiny shader program animates every +// petal entirely on the GPU, so the CPU just spins a clock. + +// Each petal is a quad whose corners we expand in the vertex shader. We pack one +// quad as 6 vertices; per-vertex we send the corner offset (which corner) plus +// the petal's static randomness (lane, speed, size, sway, tint, spin). +const PETAL_COUNT = 26 + +// Soft Petal-palette tints (rose / blush / lavender), as RGB 0..1. +const TINTS: [number, number, number][] = [ + [0.91, 0.63, 0.75], // accent rose #E8A0BF + [1.0, 0.94, 0.96], // near-white blush + [0.96, 0.72, 0.63], // peach #F4B8A0 + [0.77, 0.71, 0.91], // lavender #C5B4E8 + [0.85, 0.55, 0.69], // deeper rose +] + +const VERT = ` +precision mediump float; +attribute vec2 a_corner; // quad corner in [-0.5,0.5] +attribute vec4 a_rand; // x: lane(0..1), y: speed, z: size, w: phase +attribute vec4 a_rand2; // x: swayAmp, y: swayFreq, z: spin, w: tintIdx +uniform float u_time; +uniform vec2 u_res; +varying vec2 v_uv; +varying float v_tint; +varying float v_alpha; + +void main() { + v_uv = a_corner + 0.5; + v_tint = a_rand2.w; + + float lane = a_rand.x; + float speed = a_rand.y; + float size = a_rand.z; + float phase = a_rand.w; + + // Vertical fall: loop 0..1 over time, offset per petal so they don't sync. + float fall = fract(u_time * speed + phase); + // Map to clip space: start above the top (1.15) fall to below bottom (-1.15). + float y = 1.15 - fall * 2.3; + + // Horizontal: a base lane plus a gentle sway as it descends. + float sway = a_rand2.x * sin(u_time * a_rand2.y + phase * 6.2831); + float x = (lane * 2.0 - 1.0) + sway; + + // Spin the quad over time. + float ang = u_time * a_rand2.z + phase * 6.2831; + float c = cos(ang), s = sin(ang); + vec2 corner = a_corner * size; + // Keep petals visually square despite aspect ratio. + corner.x *= u_res.y / u_res.x; + vec2 rot = vec2(corner.x * c - corner.y * s, corner.x * s + corner.y * c); + + // Fade in near the top and out near the bottom so they don't pop. + v_alpha = smoothstep(0.0, 0.12, fall) * (1.0 - smoothstep(0.86, 1.0, fall)); + + gl_Position = vec4(x + rot.x, y + rot.y, 0.0, 1.0); +} +` + +const FRAG = ` +precision mediump float; +varying vec2 v_uv; +varying float v_tint; +varying float v_alpha; +uniform vec3 u_tints[5]; + +// A soft petal/teardrop alpha mask centered in the quad. +float petalMask(vec2 uv) { + vec2 p = uv - vec2(0.5); + // Teardrop: pinch the top, round the bottom. + float r = length(vec2(p.x * 1.65, p.y * 1.15 + 0.12)); + float body = smoothstep(0.5, 0.16, r); + // A subtle crease down the middle for a petal feel. + float crease = 1.0 - 0.18 * exp(-pow(p.x * 7.0, 2.0)); + return body * crease; +} + +void main() { + float m = petalMask(v_uv); + if (m < 0.01) discard; + int idx = int(v_tint + 0.5); + vec3 col = u_tints[0]; + if (idx == 1) col = u_tints[1]; + else if (idx == 2) col = u_tints[2]; + else if (idx == 3) col = u_tints[3]; + else if (idx == 4) col = u_tints[4]; + gl_FragColor = vec4(col, m * v_alpha * 0.55); +} +` + +function compile(gl: WebGLRenderingContext, type: number, src: string): WebGLShader | null { + const sh = gl.createShader(type) + if (!sh) return null + gl.shaderSource(sh, src) + gl.compileShader(sh) + if (!gl.getShaderParameter(sh, gl.COMPILE_STATUS)) { + console.error('petal shader compile failed', gl.getShaderInfoLog(sh)) + gl.deleteShader(sh) + return null + } + return sh +} + +// Deterministic-ish pseudo random (we can't use Math.random at module scope for +// SSR safety, but here in an effect it's fine; kept simple). +function rand(): number { + return Math.random() +} + +export function PetalFall() { + const canvasRef = useRef(null) + + useEffect(() => { + const reduce = + typeof window !== 'undefined' && + window.matchMedia?.('(prefers-reduced-motion: reduce)').matches + if (reduce) return // respect users who don't want ambient motion + + const canvas = canvasRef.current + if (!canvas) return + const gl = canvas.getContext('webgl', { alpha: true, premultipliedAlpha: false, antialias: true }) + if (!gl) return // no WebGL — silently skip the effect + + const vs = compile(gl, gl.VERTEX_SHADER, VERT) + const fs = compile(gl, gl.FRAGMENT_SHADER, FRAG) + if (!vs || !fs) return + const prog = gl.createProgram()! + gl.attachShader(prog, vs) + gl.attachShader(prog, fs) + gl.linkProgram(prog) + if (!gl.getProgramParameter(prog, gl.LINK_STATUS)) { + console.error('petal program link failed', gl.getProgramInfoLog(prog)) + return + } + gl.useProgram(prog) + + // Build interleaved vertex data: 6 verts per petal, each with corner(2), + // rand(4), rand2(4) = 10 floats. + const FLOATS_PER_VERT = 10 + const corners = [ + [-0.5, -0.5], + [0.5, -0.5], + [-0.5, 0.5], + [-0.5, 0.5], + [0.5, -0.5], + [0.5, 0.5], + ] + const data = new Float32Array(PETAL_COUNT * 6 * FLOATS_PER_VERT) + let o = 0 + for (let i = 0; i < PETAL_COUNT; i++) { + const lane = rand() + const speed = 0.018 + rand() * 0.03 // slow, gentle fall + const size = 0.05 + rand() * 0.06 + const phase = rand() + const swayAmp = 0.04 + rand() * 0.09 + const swayFreq = 0.4 + rand() * 0.7 + const spin = (rand() - 0.5) * 1.2 + const tint = Math.floor(rand() * TINTS.length) + for (let c = 0; c < 6; c++) { + data[o++] = corners[c][0] + data[o++] = corners[c][1] + data[o++] = lane + data[o++] = speed + data[o++] = size + data[o++] = phase + data[o++] = swayAmp + data[o++] = swayFreq + data[o++] = spin + data[o++] = tint + } + } + + const buf = gl.createBuffer() + gl.bindBuffer(gl.ARRAY_BUFFER, buf) + gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW) + + const stride = FLOATS_PER_VERT * 4 + const aCorner = gl.getAttribLocation(prog, 'a_corner') + const aRand = gl.getAttribLocation(prog, 'a_rand') + const aRand2 = gl.getAttribLocation(prog, 'a_rand2') + gl.enableVertexAttribArray(aCorner) + gl.vertexAttribPointer(aCorner, 2, gl.FLOAT, false, stride, 0) + gl.enableVertexAttribArray(aRand) + gl.vertexAttribPointer(aRand, 4, gl.FLOAT, false, stride, 2 * 4) + gl.enableVertexAttribArray(aRand2) + gl.vertexAttribPointer(aRand2, 4, gl.FLOAT, false, stride, 6 * 4) + + const uTime = gl.getUniformLocation(prog, 'u_time') + const uRes = gl.getUniformLocation(prog, 'u_res') + const uTints = gl.getUniformLocation(prog, 'u_tints') + gl.uniform3fv(uTints, TINTS.flat()) + + gl.enable(gl.BLEND) + gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) + gl.disable(gl.DEPTH_TEST) + + // Non-null aliases so the render closures keep the narrowed types. + const view = canvas + const glc = gl + const dpr = Math.min(window.devicePixelRatio || 1, 2) + function resize() { + const w = Math.floor(window.innerWidth * dpr) + const h = Math.floor(window.innerHeight * dpr) + if (view.width !== w || view.height !== h) { + view.width = w + view.height = h + } + glc.viewport(0, 0, view.width, view.height) + glc.uniform2f(uRes, view.width, view.height) + } + resize() + window.addEventListener('resize', resize) + + let raf = 0 + let running = true + const start = performance.now() + function frame() { + if (!running) return + const t = (performance.now() - start) / 1000 + glc.clearColor(0, 0, 0, 0) + glc.clear(glc.COLOR_BUFFER_BIT) + glc.uniform1f(uTime, t) + glc.drawArrays(glc.TRIANGLES, 0, PETAL_COUNT * 6) + raf = requestAnimationFrame(frame) + } + // Pause when the tab is hidden to save the battery. + const onVisibility = () => { + if (document.hidden) { + running = false + cancelAnimationFrame(raf) + } else if (!running) { + running = true + raf = requestAnimationFrame(frame) + } + } + document.addEventListener('visibilitychange', onVisibility) + raf = requestAnimationFrame(frame) + + return () => { + running = false + cancelAnimationFrame(raf) + window.removeEventListener('resize', resize) + document.removeEventListener('visibilitychange', onVisibility) + gl.deleteBuffer(buf) + gl.deleteProgram(prog) + gl.deleteShader(vs) + gl.deleteShader(fs) + } + }, []) + + return ( + + ) +} diff --git a/web/src/index.css b/web/src/index.css index 4190c40..bf8e52f 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -382,7 +382,31 @@ button, a, input { only the title and the writing itself reach the page. This is Petal's PDF path — it uses the browser's own fonts, so CJK renders correctly with no server-side font embedding. */ +/* --- Ambient falling petals ------------------------------------------------- + The WebGL petal layer is a fixed, non-interactive overlay that drifts soft + blossoms over the page. Kept gentle (low opacity) so it never competes with + the writing. It hides itself in print and is skipped entirely for users who + prefer reduced motion (the component renders nothing in that case). */ +.petal-fall { + opacity: 0.85; +} + +/* Honor reduced-motion globally: still the looping ambient animations and drop + the petal layer. One-shot entrance/feedback animations are left intact. */ +@media (prefers-reduced-motion: reduce) { + .petal-fall { + display: none !important; + } + .petal-bob, + .petal-bob-slow, + .petal-zzz, + .petal-checkpoint-dot { + animation: none !important; + } +} + @media print { + .petal-fall, .petal-no-print, .petal-sidebar, .petal-suggestion-card, diff --git a/web/src/vite-env.d.ts b/web/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/web/src/vite-env.d.ts @@ -0,0 +1 @@ +///