framefields 2.11.0 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE.md +4 -0
- package/dist/audio/index.d.mts +6 -5
- package/dist/audio/index.mjs +13 -13
- package/dist/{audio-CYZkDwae.d.mts → audio-CHV33Od9.d.mts} +3 -4
- package/dist/audio-CHV33Od9.d.mts.map +1 -0
- package/dist/{audio-BuCVk1IQ.mjs → audio-DHzLQ_RG.mjs} +4 -4
- package/dist/{audio-BuCVk1IQ.mjs.map → audio-DHzLQ_RG.mjs.map} +1 -1
- package/dist/{audio-KHBadECb.mjs → audio-DS9Jg2ls.mjs} +1 -1
- package/dist/{audio-KHBadECb.mjs.map → audio-DS9Jg2ls.mjs.map} +1 -1
- package/dist/{check-result-Culfu7Nx.mjs → check-result-DZWx73V8.mjs} +1 -1
- package/dist/{check-result-Culfu7Nx.mjs.map → check-result-DZWx73V8.mjs.map} +1 -1
- package/dist/cli/check-worker.mjs +51 -51
- package/dist/cli/check-worker.mjs.map +1 -1
- package/dist/cli/local-worker.d.mts +28 -0
- package/dist/cli/local-worker.d.mts.map +1 -0
- package/dist/cli/local-worker.mjs +83 -0
- package/dist/cli/local-worker.mjs.map +1 -0
- package/dist/cli.mjs +390 -124
- package/dist/cli.mjs.map +1 -1
- package/dist/cloud/index.d.mts +16 -3
- package/dist/cloud/index.d.mts.map +1 -1
- package/dist/cloud/index.mjs +2 -2
- package/dist/cloud-Cj1TIme8.mjs +685 -0
- package/dist/cloud-Cj1TIme8.mjs.map +1 -0
- package/dist/components/index.d.mts +15 -14
- package/dist/components/index.mjs +47 -47
- package/dist/{dist-CySGkG54.mjs → dist-BSKAbyea.mjs} +2 -2
- package/dist/dist-BSKAbyea.mjs.map +1 -0
- package/dist/{dist-CNGv-JTX.mjs → dist-B_rSWeOz.mjs} +1 -1
- package/dist/{dist-Bf2_efYP.mjs → dist-C8XSqfTx.mjs} +1 -1
- package/dist/{dist-Bf2_efYP.mjs.map → dist-C8XSqfTx.mjs.map} +1 -1
- package/dist/{dist-EQX3TUUl.mjs → dist-CUNvNDS3.mjs} +129 -82
- package/dist/dist-CUNvNDS3.mjs.map +1 -0
- package/dist/dist-CiTgmfUw.mjs +502 -0
- package/dist/dist-CiTgmfUw.mjs.map +1 -0
- package/dist/{dist-CWLLnigL.mjs → dist-D3BeAZ7X.mjs} +315 -84
- package/dist/dist-D3BeAZ7X.mjs.map +1 -0
- package/dist/{dist-BIE8fvlv.mjs → dist-DgZpN6IK.mjs} +1 -1
- package/dist/{dist-BIE8fvlv.mjs.map → dist-DgZpN6IK.mjs.map} +1 -1
- package/dist/{dist-Dg9LMWoX.mjs → dist-Kbf-JTry.mjs} +2 -2
- package/dist/{dist-Dg9LMWoX.mjs.map → dist-Kbf-JTry.mjs.map} +1 -1
- package/dist/effects/index.d.mts +6 -6
- package/dist/effects/index.mjs +36 -36
- package/dist/{effects-DKLbLXF7.mjs → effects-BiDgCK1L.mjs} +3 -3
- package/dist/{effects-DKLbLXF7.mjs.map → effects-BiDgCK1L.mjs.map} +1 -1
- package/dist/fonts/index.d.mts +1 -1
- package/dist/fonts/index.mjs +3 -3
- package/dist/{fonts-gPbGbShD.mjs → fonts-DeDPWdvJ.mjs} +2 -2
- package/dist/{fonts-gPbGbShD.mjs.map → fonts-DeDPWdvJ.mjs.map} +1 -1
- package/dist/{gpu-CpkJJLQP.mjs → gpu-CWjgql4C.mjs} +11 -3
- package/dist/gpu-CWjgql4C.mjs.map +1 -0
- package/dist/index-BFTtXosj.d.mts +63 -0
- package/dist/index-BFTtXosj.d.mts.map +1 -0
- package/dist/{index-BW0Q1ygn.d.mts → index-C5sgRLlG.d.mts} +1 -1
- package/dist/{index-BW0Q1ygn.d.mts.map → index-C5sgRLlG.d.mts.map} +1 -1
- package/dist/{index-CdCrae-I.d.mts → index-CnZhBlob.d.mts} +2 -2
- package/dist/index-CnZhBlob.d.mts.map +1 -0
- package/dist/{index-D2i9J9Zq.d.mts → index-D68eGFNE.d.mts} +3 -30
- package/dist/index-D68eGFNE.d.mts.map +1 -0
- package/dist/{index-CEU_Zsb9.d.mts → index-DBh3WphX.d.mts} +25 -23
- package/dist/index-DBh3WphX.d.mts.map +1 -0
- package/dist/{index-gOVtTm-P.d.mts → index-DQ1U3HC3.d.mts} +14 -6
- package/dist/index-DQ1U3HC3.d.mts.map +1 -0
- package/dist/{index-jSDEM-uE.d.mts → index-Dibc_xpC.d.mts} +6 -6
- package/dist/{index-jSDEM-uE.d.mts.map → index-Dibc_xpC.d.mts.map} +1 -1
- package/dist/{index-Cro-818i.d.mts → index-E2IXX0Cz.d.mts} +88 -14
- package/dist/index-E2IXX0Cz.d.mts.map +1 -0
- package/dist/{index-BuiZzc6i.d.mts → index-X2u96TEo.d.mts} +162 -5
- package/dist/index-X2u96TEo.d.mts.map +1 -0
- package/dist/{index-Bly-7YM1.d.mts → index-YB9j9KUx.d.mts} +3 -3
- package/dist/{index-Bly-7YM1.d.mts.map → index-YB9j9KUx.d.mts.map} +1 -1
- package/dist/{index-COYNQ_mf.d.mts → index-a6JrbAK0.d.mts} +1 -1
- package/dist/{index-COYNQ_mf.d.mts.map → index-a6JrbAK0.d.mts.map} +1 -1
- package/dist/{index-C8YwZ6k1.d.mts → index-rtCXNxGO.d.mts} +2 -2
- package/dist/{index-C8YwZ6k1.d.mts.map → index-rtCXNxGO.d.mts.map} +1 -1
- package/dist/index.d.mts +16 -15
- package/dist/index.mjs +58 -58
- package/dist/preview/index.d.mts +5 -4
- package/dist/preview/index.mjs +12 -12
- package/dist/{preview-BToKUTtZ.mjs → preview-PDz7o2xg.mjs} +323 -35
- package/dist/preview-PDz7o2xg.mjs.map +1 -0
- package/dist/preview-engine/audio.mjs +1 -1
- package/dist/preview-engine/{chunk-QF4JWVO3.mjs → chunk-35XSD4QM.mjs} +15 -15
- package/dist/preview-engine/{chunk-ZF2MEFKO.mjs → chunk-3DOIE4DV.mjs} +1 -1
- package/dist/preview-engine/{chunk-JDB7PMRI.mjs → chunk-3IT7LHWR.mjs} +1 -1
- package/dist/preview-engine/{chunk-DNNGWS2C.mjs → chunk-3MLGWUSK.mjs} +1 -1
- package/dist/preview-engine/{chunk-KVOFO273.mjs → chunk-3QJ5GRBH.mjs} +1 -1
- package/dist/preview-engine/{chunk-54Q5CKSV.mjs → chunk-3QTHW2CD.mjs} +1 -1
- package/dist/preview-engine/chunk-44V4V5LD.mjs +1 -0
- package/dist/preview-engine/chunk-4P3MMJWD.mjs +1 -0
- package/dist/preview-engine/chunk-4YT5YJIF.mjs +1 -0
- package/dist/preview-engine/{chunk-BJXNKMSY.mjs → chunk-64L4GUOF.mjs} +20 -6
- package/dist/preview-engine/{chunk-UMJ3VGKN.mjs → chunk-6B3NOY5W.mjs} +1 -1
- package/dist/preview-engine/chunk-77MT33VR.mjs +1 -0
- package/dist/preview-engine/{chunk-BRV7TQDV.mjs → chunk-77WWW75O.mjs} +1 -1
- package/dist/preview-engine/chunk-7M5LE6EM.mjs +483 -0
- package/dist/preview-engine/chunk-A6OAPDIA.mjs +1 -0
- package/dist/preview-engine/chunk-ADLIF544.mjs +39 -0
- package/dist/preview-engine/{chunk-OLB4TQLQ.mjs → chunk-AKVRG7UU.mjs} +1 -1
- package/dist/preview-engine/{chunk-CIVEZJYF.mjs → chunk-CRBOK3JT.mjs} +1 -1
- package/dist/preview-engine/chunk-CSLSWUUT.mjs +1 -0
- package/dist/preview-engine/{chunk-ACBBBOUM.mjs → chunk-CYM75INB.mjs} +1 -1
- package/dist/preview-engine/{chunk-JSYG6OWZ.mjs → chunk-D7OMXGIZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-EPRINA4V.mjs → chunk-E7BKWHOT.mjs} +10 -10
- package/dist/preview-engine/{chunk-NOKPBMIP.mjs → chunk-EWDJMJO5.mjs} +1 -1
- package/dist/preview-engine/{chunk-5KSBS3AL.mjs → chunk-EYE3GNL5.mjs} +1 -1
- package/dist/preview-engine/chunk-FRJPXWAG.mjs +1 -0
- package/dist/preview-engine/{chunk-IKVJ4MW5.mjs → chunk-G4ZTSLZU.mjs} +1 -1
- package/dist/preview-engine/{chunk-VZLIRYAL.mjs → chunk-GAMAKN5L.mjs} +1 -1
- package/dist/preview-engine/{chunk-ZIXPWP2B.mjs → chunk-ICWD36H6.mjs} +1 -1
- package/dist/preview-engine/{chunk-OELPPLML.mjs → chunk-IEEV5RB3.mjs} +1 -1
- package/dist/preview-engine/chunk-JAAFSVAG.mjs +1 -0
- package/dist/preview-engine/{chunk-YVZTRH4Y.mjs → chunk-KDCM7S3S.mjs} +1 -1
- package/dist/preview-engine/chunk-LZNHGH56.mjs +5 -0
- package/dist/preview-engine/{chunk-O63FLYWC.mjs → chunk-N2VISDTG.mjs} +1 -1
- package/dist/preview-engine/{chunk-GN3NDRLI.mjs → chunk-NCQHOGZK.mjs} +1 -1
- package/dist/preview-engine/{chunk-YKM7JDQY.mjs → chunk-NJO2BIJX.mjs} +1 -1
- package/dist/preview-engine/{chunk-7GMHSTRP.mjs → chunk-NTSALWFF.mjs} +1 -1
- package/dist/preview-engine/{chunk-PKNUTHPI.mjs → chunk-NVXFEDJS.mjs} +1 -1
- package/dist/preview-engine/{chunk-VFQH5KVS.mjs → chunk-ONHY4KNY.mjs} +1 -1
- package/dist/preview-engine/{chunk-Z24UEN4P.mjs → chunk-PD2HKW2S.mjs} +1 -1
- package/dist/preview-engine/chunk-PH3UUX6A.mjs +138 -0
- package/dist/preview-engine/chunk-PIHG6HJO.mjs +1 -0
- package/dist/preview-engine/{chunk-YHMBGJP6.mjs → chunk-QPT2Y2GZ.mjs} +1 -1
- package/dist/preview-engine/{chunk-4AGQN53P.mjs → chunk-QXLFTCLC.mjs} +1 -1
- package/dist/preview-engine/{chunk-65NANVQL.mjs → chunk-R4H52Q7S.mjs} +1 -1
- package/dist/preview-engine/{chunk-FQL4IJZN.mjs → chunk-RN7J5TRU.mjs} +1 -1
- package/dist/preview-engine/{chunk-26XWIHW3.mjs → chunk-RVCLMO5Q.mjs} +1 -1
- package/dist/preview-engine/{chunk-VQA4DYZU.mjs → chunk-RYSV44B4.mjs} +1 -1
- package/dist/preview-engine/{chunk-TEWRQKX3.mjs → chunk-SFHWP65D.mjs} +1 -1
- package/dist/preview-engine/{chunk-RDWLLITE.mjs → chunk-SMHEMYCV.mjs} +1 -1
- package/dist/preview-engine/{chunk-EXEO245X.mjs → chunk-SV3ZNZQU.mjs} +1 -1
- package/dist/preview-engine/{chunk-32WC4FRR.mjs → chunk-UE7Y65C3.mjs} +3 -3
- package/dist/preview-engine/chunk-UFPA36D2.mjs +2227 -0
- package/dist/preview-engine/{chunk-EAWJXW4J.mjs → chunk-UVEDFIPN.mjs} +1 -1
- package/dist/preview-engine/{chunk-6LTINEA4.mjs → chunk-VMXJZ4KQ.mjs} +1 -1
- package/dist/preview-engine/{chunk-IBPYV6HF.mjs → chunk-W4XR6F5G.mjs} +1 -1
- package/dist/preview-engine/{chunk-UI3VH33L.mjs → chunk-WPYWCWWL.mjs} +1 -1
- package/dist/preview-engine/{chunk-GHTG5XV6.mjs → chunk-XYCR3STG.mjs} +84 -25
- package/dist/preview-engine/{chunk-WFMUDL55.mjs → chunk-YAPGJZPI.mjs} +1 -1
- package/dist/preview-engine/{chunk-LMXMBX4J.mjs → chunk-YJ4DSRDY.mjs} +1 -1
- package/dist/preview-engine/{chunk-CCORQLMR.mjs → chunk-YOJKIMU5.mjs} +1 -1
- package/dist/preview-engine/{chunk-UGB6JKVS.mjs → chunk-ZHNEZZ6A.mjs} +1 -1
- package/dist/preview-engine/{chunk-LFNCWMKS.mjs → chunk-ZZMI3WOT.mjs} +1 -1
- package/dist/preview-engine/components.mjs +1 -1
- package/dist/preview-engine/effects.mjs +1 -1
- package/dist/preview-engine/fonts.mjs +1 -1
- package/dist/preview-engine/framefields.mjs +1 -1
- package/dist/preview-engine/player.mjs +5 -5
- package/dist/preview-engine/{renderers-53EI26GL.mjs → renderers-3FZVDYRQ.mjs} +1 -1
- package/dist/preview-engine/renderers-3KEBYOOF.mjs +1 -0
- package/dist/preview-engine/{renderers-6YVZUQOH.mjs → renderers-4RPQSUUZ.mjs} +1 -1
- package/dist/preview-engine/renderers-5EGFXFPF.mjs +1 -0
- package/dist/preview-engine/renderers-5SJHYUTM.mjs +1 -0
- package/dist/preview-engine/renderers-66MWDUN6.mjs +1 -0
- package/dist/preview-engine/{renderers-CCRZNGVK.mjs → renderers-6FENMFSC.mjs} +1 -1
- package/dist/preview-engine/renderers-77OXJ2GY.mjs +1 -0
- package/dist/preview-engine/renderers-7LI4QKHO.mjs +1 -0
- package/dist/preview-engine/renderers-AFTUFMQQ.mjs +1 -0
- package/dist/preview-engine/{renderers-CYJAVWHT.mjs → renderers-AIZRIW2R.mjs} +1 -1
- package/dist/preview-engine/{renderers-OGOW3NA4.mjs → renderers-BDI2BDBA.mjs} +1 -1
- package/dist/preview-engine/renderers-BDXCO6NR.mjs +1 -0
- package/dist/preview-engine/{renderers-EN7LXJLG.mjs → renderers-BUZ67FNZ.mjs} +1 -1
- package/dist/preview-engine/renderers-DMTGKURQ.mjs +1 -0
- package/dist/preview-engine/renderers-DU7KPFVV.mjs +1 -0
- package/dist/preview-engine/{renderers-WSABL3QO.mjs → renderers-ECXMT5BD.mjs} +1 -1
- package/dist/preview-engine/{renderers-MOEC2XZZ.mjs → renderers-EILFSWSJ.mjs} +1 -1
- package/dist/preview-engine/renderers-EPSF5CSQ.mjs +1 -0
- package/dist/preview-engine/{renderers-X6CORAES.mjs → renderers-EVEWFJ7U.mjs} +1 -1
- package/dist/preview-engine/renderers-F6PT2LON.mjs +1 -0
- package/dist/preview-engine/renderers-F7WPJXKT.mjs +1 -0
- package/dist/preview-engine/renderers-FIFF267S.mjs +1 -0
- package/dist/preview-engine/{renderers-GQM3KMV3.mjs → renderers-FQISHQEN.mjs} +1 -1
- package/dist/preview-engine/{renderers-HKLCB4U6.mjs → renderers-FXAVFNUN.mjs} +1 -1
- package/dist/preview-engine/{renderers-P2HORBZ6.mjs → renderers-GITAVRYZ.mjs} +1 -1
- package/dist/preview-engine/renderers-GTKRV225.mjs +1 -0
- package/dist/preview-engine/{renderers-KCGK33Y2.mjs → renderers-HG6JZIZO.mjs} +1 -1
- package/dist/preview-engine/{renderers-I6QKZ7CH.mjs → renderers-HHWMIDN3.mjs} +1 -1
- package/dist/preview-engine/renderers-HI3SRJVD.mjs +1 -0
- package/dist/preview-engine/{renderers-7CAHX35U.mjs → renderers-HXEDI4BD.mjs} +1 -1
- package/dist/preview-engine/{renderers-77PDUMYI.mjs → renderers-HXNSDJBY.mjs} +1 -1
- package/dist/preview-engine/{renderers-ACUJMDEK.mjs → renderers-I2ZOUFRU.mjs} +1 -1
- package/dist/preview-engine/renderers-JHFD4LHZ.mjs +1 -0
- package/dist/preview-engine/{renderers-IHGAWLUF.mjs → renderers-JMSAW7VY.mjs} +1 -1
- package/dist/preview-engine/renderers-KGVZUFHD.mjs +1 -0
- package/dist/preview-engine/{renderers-RN2MHIFK.mjs → renderers-KICDB5Y6.mjs} +1 -1
- package/dist/preview-engine/{renderers-C7SI3NIE.mjs → renderers-KKULMOV4.mjs} +1 -1
- package/dist/preview-engine/{renderers-HSFQIILN.mjs → renderers-KMVMPYY7.mjs} +1 -1
- package/dist/preview-engine/renderers-LN7WPG6I.mjs +1 -0
- package/dist/preview-engine/{renderers-BOBVXYAA.mjs → renderers-LWW4RF6D.mjs} +1 -1
- package/dist/preview-engine/renderers-LY57CZZB.mjs +1 -0
- package/dist/preview-engine/renderers-MBMJWZEW.mjs +1 -0
- package/dist/preview-engine/{renderers-VVP5WQOY.mjs → renderers-MPFU74I3.mjs} +1 -1
- package/dist/preview-engine/{renderers-H6PBHEYU.mjs → renderers-MW53LTMB.mjs} +1 -1
- package/dist/preview-engine/{renderers-PPZK6VEW.mjs → renderers-NQC4DPX4.mjs} +1 -1
- package/dist/preview-engine/renderers-OJWWIVNW.mjs +1 -0
- package/dist/preview-engine/{renderers-4IBFDW2S.mjs → renderers-PC2GOZDT.mjs} +1 -1
- package/dist/preview-engine/{renderers-UG2C3C7T.mjs → renderers-Q77UPEYE.mjs} +1 -1
- package/dist/preview-engine/renderers-QHXCFDHI.mjs +1 -0
- package/dist/preview-engine/renderers-RDYJRNAR.mjs +1 -0
- package/dist/preview-engine/renderers-RENLKAA7.mjs +1 -0
- package/dist/preview-engine/renderers-RHMRWX46.mjs +1 -0
- package/dist/preview-engine/{renderers-5XLGCEOA.mjs → renderers-RIPXT4AL.mjs} +1 -1
- package/dist/preview-engine/{renderers-FY2HOQCS.mjs → renderers-SFVFAS3C.mjs} +1 -1
- package/dist/preview-engine/{renderers-VIGZYJYX.mjs → renderers-SWQVCJHB.mjs} +1 -1
- package/dist/preview-engine/renderers-SZVDZDY7.mjs +1 -0
- package/dist/preview-engine/renderers-TTXTV4PC.mjs +228 -0
- package/dist/preview-engine/renderers-TYSLUZ53.mjs +1 -0
- package/dist/preview-engine/{renderers-6LNDAO4B.mjs → renderers-U4IXWMD6.mjs} +1 -1
- package/dist/preview-engine/renderers-VEHYARKY.mjs +1 -0
- package/dist/preview-engine/renderers-VRXAG3FR.mjs +1 -0
- package/dist/preview-engine/{renderers-33FCFHDR.mjs → renderers-VUQAZ56P.mjs} +1 -1
- package/dist/preview-engine/renderers-W5YFMLSB.mjs +1 -0
- package/dist/preview-engine/renderers-XKDWUK56.mjs +1 -0
- package/dist/preview-engine/renderers-XKSBNCLZ.mjs +1 -0
- package/dist/preview-engine/renderers-XLQXVD37.mjs +1 -0
- package/dist/preview-engine/renderers-ZHSOWEMQ.mjs +1 -0
- package/dist/preview-engine/renderers-ZMDRNYSS.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -1
- package/dist/preview-engine/{src-4IUYUKIZ.mjs → src-YXNX4MLK.mjs} +1 -1
- package/dist/{program-Bc860ko5.mjs → program-Bn6ko_I4.mjs} +44 -17
- package/dist/program-Bn6ko_I4.mjs.map +1 -0
- package/dist/renderer/index.d.mts +4 -3
- package/dist/renderer/index.mjs +3 -3
- package/dist/{renderer-B3Dme2es.mjs → renderer--Q0pM9Vh.mjs} +5 -5
- package/dist/{renderer-B3Dme2es.mjs.map → renderer--Q0pM9Vh.mjs.map} +1 -1
- package/dist/renderer-1aSF5BmY.mjs +5 -0
- package/dist/{renderer-CAWnCsQc.mjs → renderer-45ifiDkn.mjs} +5 -5
- package/dist/{renderer-CAWnCsQc.mjs.map → renderer-45ifiDkn.mjs.map} +1 -1
- package/dist/{renderer-Cz-n883J.mjs → renderer-549d94qG.mjs} +5 -5
- package/dist/{renderer-Cz-n883J.mjs.map → renderer-549d94qG.mjs.map} +1 -1
- package/dist/{renderer-BhsrlGKp.mjs → renderer-B-LUGB9h.mjs} +74 -21
- package/dist/renderer-B-LUGB9h.mjs.map +1 -0
- package/dist/renderer-B2e4Gr9u.mjs +5 -0
- package/dist/{renderer-B1LD29TV.mjs → renderer-B5b-ehRb.mjs} +3 -3
- package/dist/{renderer-B1LD29TV.mjs.map → renderer-B5b-ehRb.mjs.map} +1 -1
- package/dist/renderer-B6fz4j50.mjs +5 -0
- package/dist/{renderer-_9gbYS-3.mjs → renderer-BCTUqJG7.mjs} +5 -5
- package/dist/{renderer-_9gbYS-3.mjs.map → renderer-BCTUqJG7.mjs.map} +1 -1
- package/dist/renderer-BEftIYw-.mjs +5 -0
- package/dist/{renderer-C9BSXyrq.mjs → renderer-BHPgkoEL.mjs} +4 -4
- package/dist/{renderer-C9BSXyrq.mjs.map → renderer-BHPgkoEL.mjs.map} +1 -1
- package/dist/renderer-BHTnO-7e.mjs +5 -0
- package/dist/{renderer-fs8f1QeE.mjs → renderer-BIieU9pY.mjs} +5 -5
- package/dist/{renderer-fs8f1QeE.mjs.map → renderer-BIieU9pY.mjs.map} +1 -1
- package/dist/{renderer-DwK9jsER.mjs → renderer-BKi6jDi_.mjs} +4 -4
- package/dist/{renderer-DwK9jsER.mjs.map → renderer-BKi6jDi_.mjs.map} +1 -1
- package/dist/renderer-BMlnQqTO.mjs +5 -0
- package/dist/{renderer-BNJ6Jk7-.mjs → renderer-BMpmmYOq.mjs} +4 -4
- package/dist/{renderer-BNJ6Jk7-.mjs.map → renderer-BMpmmYOq.mjs.map} +1 -1
- package/dist/{renderer-DkqZmfm8.mjs → renderer-BO_wuUKA.mjs} +5 -5
- package/dist/{renderer-DkqZmfm8.mjs.map → renderer-BO_wuUKA.mjs.map} +1 -1
- package/dist/renderer-BOzcFezY.mjs +5 -0
- package/dist/{renderer-Bxjb0HYU.mjs → renderer-BPOh9x5X.mjs} +4 -4
- package/dist/{renderer-Bxjb0HYU.mjs.map → renderer-BPOh9x5X.mjs.map} +1 -1
- package/dist/{renderer-Ros7XQg2.mjs → renderer-BPiWsrC2.mjs} +3 -3
- package/dist/{renderer-Ros7XQg2.mjs.map → renderer-BPiWsrC2.mjs.map} +1 -1
- package/dist/{renderer-lHNTgiOM.mjs → renderer-BUj7jE6t.mjs} +3 -3
- package/dist/{renderer-lHNTgiOM.mjs.map → renderer-BUj7jE6t.mjs.map} +1 -1
- package/dist/renderer-BVbjJIKJ.mjs +5 -0
- package/dist/renderer-BXsHKf4k.mjs +5 -0
- package/dist/{renderer-D0aAZHC7.mjs → renderer-BZgJj8Cl.mjs} +4 -4
- package/dist/{renderer-D0aAZHC7.mjs.map → renderer-BZgJj8Cl.mjs.map} +1 -1
- package/dist/{renderer-V4dhrf_h.mjs → renderer-BgjPbgbn.mjs} +6 -6
- package/dist/{renderer-V4dhrf_h.mjs.map → renderer-BgjPbgbn.mjs.map} +1 -1
- package/dist/{renderer-BaIJIfJ6.mjs → renderer-BjgFpwVK.mjs} +5 -5
- package/dist/{renderer-BaIJIfJ6.mjs.map → renderer-BjgFpwVK.mjs.map} +1 -1
- package/dist/renderer-Bks49NVl.mjs +5 -0
- package/dist/{renderer-CU8v-LxD.mjs → renderer-BlZgyBSo.mjs} +5 -5
- package/dist/{renderer-CU8v-LxD.mjs.map → renderer-BlZgyBSo.mjs.map} +1 -1
- package/dist/{renderer-B6Oeahe_.mjs → renderer-BqUAyzCZ.mjs} +5 -5
- package/dist/{renderer-B6Oeahe_.mjs.map → renderer-BqUAyzCZ.mjs.map} +1 -1
- package/dist/{renderer-h62QaJYz.mjs → renderer-Br8km655.mjs} +4 -4
- package/dist/{renderer-h62QaJYz.mjs.map → renderer-Br8km655.mjs.map} +1 -1
- package/dist/{renderer-sfqZK6L5.mjs → renderer-BsMZ5Iaq.mjs} +4 -4
- package/dist/{renderer-sfqZK6L5.mjs.map → renderer-BsMZ5Iaq.mjs.map} +1 -1
- package/dist/{renderer-g_1t2je9.mjs → renderer-BtgqTg2K.mjs} +3 -3
- package/dist/{renderer-DcvjSolU.mjs → renderer-BuvKGwk3.mjs} +11 -2
- package/dist/{renderer-DcvjSolU.mjs.map → renderer-BuvKGwk3.mjs.map} +1 -1
- package/dist/{renderer-BOrMBwQS.mjs → renderer-C-3qhk5x.mjs} +2 -2
- package/dist/{renderer-BOrMBwQS.mjs.map → renderer-C-3qhk5x.mjs.map} +1 -1
- package/dist/{renderer-CLAvn9c6.mjs → renderer-C-GTxnfv.mjs} +4 -4
- package/dist/{renderer-CLAvn9c6.mjs.map → renderer-C-GTxnfv.mjs.map} +1 -1
- package/dist/renderer-C-t7qFKr.mjs +5 -0
- package/dist/{renderer-BDZC3o3N.mjs → renderer-C1ctHdXl.mjs} +4 -4
- package/dist/{renderer-BDZC3o3N.mjs.map → renderer-C1ctHdXl.mjs.map} +1 -1
- package/dist/renderer-C24n-6CX.mjs +6 -0
- package/dist/{renderer-pNmI-A9o.mjs → renderer-C7m7Yxgc.mjs} +5 -5
- package/dist/{renderer-pNmI-A9o.mjs.map → renderer-C7m7Yxgc.mjs.map} +1 -1
- package/dist/{renderer-Bf4-N7k7.mjs → renderer-C9dqx3U7.mjs} +5 -5
- package/dist/{renderer-Bf4-N7k7.mjs.map → renderer-C9dqx3U7.mjs.map} +1 -1
- package/dist/renderer-CCReX-7M.mjs +5 -0
- package/dist/{renderer-JHByuUNb.mjs → renderer-CE4535aW.mjs} +3 -3
- package/dist/{renderer-JHByuUNb.mjs.map → renderer-CE4535aW.mjs.map} +1 -1
- package/dist/renderer-CIxFQrAm.mjs +5 -0
- package/dist/{renderer-ByjaseAo.mjs → renderer-CL-vyXgX.mjs} +5 -5
- package/dist/{renderer-ByjaseAo.mjs.map → renderer-CL-vyXgX.mjs.map} +1 -1
- package/dist/renderer-CLHBMIqJ.mjs +5 -0
- package/dist/renderer-CMJKi-Ye.mjs +5 -0
- package/dist/{renderer-B-CMRUag.mjs → renderer-CMnlgAGs.mjs} +4 -4
- package/dist/{renderer-B-CMRUag.mjs.map → renderer-CMnlgAGs.mjs.map} +1 -1
- package/dist/{renderer-BNHcwxw9.mjs → renderer-CQFMyC_c.mjs} +4 -4
- package/dist/{renderer-BNHcwxw9.mjs.map → renderer-CQFMyC_c.mjs.map} +1 -1
- package/dist/{renderer-DgPn_SOC.mjs → renderer-CYwVNbUh.mjs} +4 -4
- package/dist/{renderer-DgPn_SOC.mjs.map → renderer-CYwVNbUh.mjs.map} +1 -1
- package/dist/{renderer-DLPhfwbR.mjs → renderer-CZ5mwBW1.mjs} +3 -3
- package/dist/{renderer-DLPhfwbR.mjs.map → renderer-CZ5mwBW1.mjs.map} +1 -1
- package/dist/{renderer-4ZUv3X1I.mjs → renderer-C_1eqfI0.mjs} +5 -5
- package/dist/{renderer-4ZUv3X1I.mjs.map → renderer-C_1eqfI0.mjs.map} +1 -1
- package/dist/renderer-C_H3mHZa.mjs +5 -0
- package/dist/{renderer-B1esRxGy.mjs → renderer-CciiDHuU.mjs} +4 -4
- package/dist/{renderer-B1esRxGy.mjs.map → renderer-CciiDHuU.mjs.map} +1 -1
- package/dist/renderer-CfkTdR5B.mjs +5 -0
- package/dist/{renderer-ynFRJh7G.mjs → renderer-CgK7Q1G8.mjs} +3 -3
- package/dist/{renderer-CR0mDPYY.mjs → renderer-CnL8Cmmr.mjs} +3 -3
- package/dist/renderer-CnhkXJ0R.mjs +5 -0
- package/dist/{renderer-fwKnV9zs.mjs → renderer-Cp_HOmp7.mjs} +5 -5
- package/dist/{renderer-fwKnV9zs.mjs.map → renderer-Cp_HOmp7.mjs.map} +1 -1
- package/dist/renderer-CqpyVsq_.mjs +5 -0
- package/dist/renderer-CtWgIpTE.mjs +5 -0
- package/dist/{renderer-riIFosX6.mjs → renderer-Cu3iKMSJ.mjs} +5 -5
- package/dist/{renderer-riIFosX6.mjs.map → renderer-Cu3iKMSJ.mjs.map} +1 -1
- package/dist/{renderer-D4f8f66C.mjs → renderer-CuPAQjDK.mjs} +4 -4
- package/dist/{renderer-D4f8f66C.mjs.map → renderer-CuPAQjDK.mjs.map} +1 -1
- package/dist/{renderer-CxGx1Lhi.mjs → renderer-CwlY8Tb-.mjs} +3 -3
- package/dist/{renderer-CxGx1Lhi.mjs.map → renderer-CwlY8Tb-.mjs.map} +1 -1
- package/dist/{renderer-o68mVeyk.mjs → renderer-CxSFvKd1.mjs} +4 -4
- package/dist/{renderer-o68mVeyk.mjs.map → renderer-CxSFvKd1.mjs.map} +1 -1
- package/dist/{renderer-CrR8Mpxq.mjs → renderer-CyUiXLRa.mjs} +5 -5
- package/dist/{renderer-CrR8Mpxq.mjs.map → renderer-CyUiXLRa.mjs.map} +1 -1
- package/dist/renderer-CyuKr5ca.mjs +5 -0
- package/dist/renderer-CzgcZXKH.mjs +3 -0
- package/dist/{renderer-Bx14Wnxl.mjs → renderer-D-GWBoVT.mjs} +58 -4
- package/dist/renderer-D-GWBoVT.mjs.map +1 -0
- package/dist/{renderer-BwrfKKqw.mjs → renderer-D-fzEZfX.mjs} +4 -4
- package/dist/{renderer-BwrfKKqw.mjs.map → renderer-D-fzEZfX.mjs.map} +1 -1
- package/dist/renderer-D5yp74NL.mjs +3 -0
- package/dist/{renderer-DAn9xiQT.mjs → renderer-D8gN7aqk.mjs} +4 -4
- package/dist/{renderer-DAn9xiQT.mjs.map → renderer-D8gN7aqk.mjs.map} +1 -1
- package/dist/renderer-D9ON_1Hf.mjs +5 -0
- package/dist/renderer-DAnTgh4o.mjs +5 -0
- package/dist/{renderer-Dpl6poqD.mjs → renderer-DGOMfyh8.mjs} +2 -2
- package/dist/{renderer-Dpl6poqD.mjs.map → renderer-DGOMfyh8.mjs.map} +1 -1
- package/dist/{renderer-Rw87u1Cr.mjs → renderer-DGb_wgTW.mjs} +6 -6
- package/dist/{renderer-Rw87u1Cr.mjs.map → renderer-DGb_wgTW.mjs.map} +1 -1
- package/dist/{renderer-Co6UFbZB.mjs → renderer-DJPZs_zV.mjs} +5 -5
- package/dist/{renderer-Co6UFbZB.mjs.map → renderer-DJPZs_zV.mjs.map} +1 -1
- package/dist/renderer-DKJOon6y.d.mts +1 -0
- package/dist/{renderer-DOkbn1ot.mjs → renderer-DOZPZTxe.mjs} +5 -5
- package/dist/{renderer-DOkbn1ot.mjs.map → renderer-DOZPZTxe.mjs.map} +1 -1
- package/dist/{renderer-DaXQgGg3.mjs → renderer-DRal7Goa.mjs} +5 -5
- package/dist/{renderer-DaXQgGg3.mjs.map → renderer-DRal7Goa.mjs.map} +1 -1
- package/dist/renderer-DWgpivA3.mjs +5 -0
- package/dist/{renderer-Bo7shNdU.mjs → renderer-DXFJv_e6.mjs} +4 -4
- package/dist/{renderer-Bo7shNdU.mjs.map → renderer-DXFJv_e6.mjs.map} +1 -1
- package/dist/renderer-Dh_qNNwR.mjs +5 -0
- package/dist/renderer-DkCpXPMP.mjs +5 -0
- package/dist/{renderer-eMCTAa9e.mjs → renderer-Dp5ChuOs.mjs} +4 -4
- package/dist/{renderer-eMCTAa9e.mjs.map → renderer-Dp5ChuOs.mjs.map} +1 -1
- package/dist/{renderer-1uoKiILq.mjs → renderer-DpZballM.mjs} +3 -3
- package/dist/{renderer-1uoKiILq.mjs.map → renderer-DpZballM.mjs.map} +1 -1
- package/dist/renderer-Dre-6cDR.mjs +5 -0
- package/dist/renderer-Ds5z4_HX.mjs +5 -0
- package/dist/{renderer-7ow5Acsg.mjs → renderer-DwGlDNOV.mjs} +3 -3
- package/dist/{renderer-7ow5Acsg.mjs.map → renderer-DwGlDNOV.mjs.map} +1 -1
- package/dist/{renderer-q7q6k_cD.mjs → renderer-DxB_OfLs.mjs} +4 -4
- package/dist/{renderer-q7q6k_cD.mjs.map → renderer-DxB_OfLs.mjs.map} +1 -1
- package/dist/{renderer-DFJWPqOJ.mjs → renderer-Dz6P-rPI.mjs} +3 -3
- package/dist/{renderer-DFJWPqOJ.mjs.map → renderer-Dz6P-rPI.mjs.map} +1 -1
- package/dist/{renderer-BURhYcpA.mjs → renderer-FPiLBwj5.mjs} +4 -4
- package/dist/{renderer-BURhYcpA.mjs.map → renderer-FPiLBwj5.mjs.map} +1 -1
- package/dist/renderer-HGSCOMyP.mjs +5 -0
- package/dist/renderer-KMY8W-cJ.mjs +5 -0
- package/dist/{renderer-D-QVGphn.mjs → renderer-KgsVk9c6.mjs} +4 -4
- package/dist/{renderer-D-QVGphn.mjs.map → renderer-KgsVk9c6.mjs.map} +1 -1
- package/dist/{renderer-COcKhouz.mjs → renderer-LXhEPCmy.mjs} +5 -5
- package/dist/{renderer-COcKhouz.mjs.map → renderer-LXhEPCmy.mjs.map} +1 -1
- package/dist/{renderer-HDj9Zb-O.mjs → renderer-NBMmvqWl.mjs} +20 -7
- package/dist/renderer-NBMmvqWl.mjs.map +1 -0
- package/dist/{renderer-DE9Jik9K.mjs → renderer-Nnu32rqg.mjs} +3 -3
- package/dist/{renderer-DE9Jik9K.mjs.map → renderer-Nnu32rqg.mjs.map} +1 -1
- package/dist/renderer-R21YvXz3.mjs +5 -0
- package/dist/{renderer-celhuAL7.mjs → renderer-RAq3LnNy.mjs} +3 -3
- package/dist/{renderer-celhuAL7.mjs.map → renderer-RAq3LnNy.mjs.map} +1 -1
- package/dist/renderer-RtzCz37W.mjs +5 -0
- package/dist/{renderer-50JEMaVo.mjs → renderer-RzkU_O1i.mjs} +5 -5
- package/dist/{renderer-50JEMaVo.mjs.map → renderer-RzkU_O1i.mjs.map} +1 -1
- package/dist/{renderer-Bbxh4N8Y.mjs → renderer-S9tVGneU.mjs} +95 -80
- package/dist/renderer-S9tVGneU.mjs.map +1 -0
- package/dist/{renderer-BSELd5vU.mjs → renderer-SJyp9-62.mjs} +3 -3
- package/dist/{renderer-BSELd5vU.mjs.map → renderer-SJyp9-62.mjs.map} +1 -1
- package/dist/{renderer-jnAIhWn_.mjs → renderer-_54hiCq0.mjs} +5 -5
- package/dist/{renderer-jnAIhWn_.mjs.map → renderer-_54hiCq0.mjs.map} +1 -1
- package/dist/{renderer-88C3QpKL.d.mts → renderer-aRk849b3.d.mts} +2 -2
- package/dist/{renderer-88C3QpKL.d.mts.map → renderer-aRk849b3.d.mts.map} +1 -1
- package/dist/{renderer-BQetXCcZ.mjs → renderer-dGEMVaZ3.mjs} +4 -4
- package/dist/{renderer-BQetXCcZ.mjs.map → renderer-dGEMVaZ3.mjs.map} +1 -1
- package/dist/{renderer-RvI3qRUI.mjs → renderer-dRXP2dJU.mjs} +5 -5
- package/dist/{renderer-RvI3qRUI.mjs.map → renderer-dRXP2dJU.mjs.map} +1 -1
- package/dist/{renderer-D06HxSXO.mjs → renderer-g9SstkTz.mjs} +3 -3
- package/dist/renderer-iMrqAjix.mjs +5 -0
- package/dist/{renderer-BJ-7WRgO.mjs → renderer-opVuiAQR.mjs} +3 -3
- package/dist/{renderer-BJ-7WRgO.mjs.map → renderer-opVuiAQR.mjs.map} +1 -1
- package/dist/{renderer-KKk7myX1.mjs → renderer-puQhVfDS.mjs} +5 -5
- package/dist/{renderer-KKk7myX1.mjs.map → renderer-puQhVfDS.mjs.map} +1 -1
- package/dist/renderer-sMed1u1O.mjs +5 -0
- package/dist/renderer-tsAuo46l.mjs +5 -0
- package/dist/{renderer-TKZCA0B9.mjs → renderer-vll8LX0I.mjs} +211 -72
- package/dist/renderer-vll8LX0I.mjs.map +1 -0
- package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs → renderers-CP8CFWDs-BRQyvcut.mjs} +4 -4
- package/dist/{renderers-CP8CFWDs-DRoslK4F.mjs.map → renderers-CP8CFWDs-BRQyvcut.mjs.map} +1 -1
- package/dist/sam/index.d.mts +3 -3
- package/dist/sam/index.mjs +1 -1
- package/dist/signals/index.d.mts +7 -7
- package/dist/signals/index.mjs +8 -8
- package/dist/{signals-BfJ1aqpT.mjs → signals-tiho_9fp.mjs} +4 -4
- package/dist/{signals-BfJ1aqpT.mjs.map → signals-tiho_9fp.mjs.map} +1 -1
- package/dist/{src-Bnr8DUC--BRDqRF6I.mjs → src-BU6vm9sP-DdTHmCr4.mjs} +76 -11
- package/dist/src-BU6vm9sP-DdTHmCr4.mjs.map +1 -0
- package/dist/{src-BYp6r-cS.mjs → src-BzFGotRc.mjs} +250 -30
- package/dist/src-BzFGotRc.mjs.map +1 -0
- package/dist/storage/index.d.mts +206 -0
- package/dist/storage/index.d.mts.map +1 -0
- package/dist/storage/index.mjs +3 -0
- package/package.json +67 -59
- package/dist/audio-CYZkDwae.d.mts.map +0 -1
- package/dist/cloud-xcfV4J03.mjs +0 -233
- package/dist/cloud-xcfV4J03.mjs.map +0 -1
- package/dist/dist-CWLLnigL.mjs.map +0 -1
- package/dist/dist-CySGkG54.mjs.map +0 -1
- package/dist/dist-EQX3TUUl.mjs.map +0 -1
- package/dist/gpu-CpkJJLQP.mjs.map +0 -1
- package/dist/index-BuiZzc6i.d.mts.map +0 -1
- package/dist/index-CEU_Zsb9.d.mts.map +0 -1
- package/dist/index-CdCrae-I.d.mts.map +0 -1
- package/dist/index-Cro-818i.d.mts.map +0 -1
- package/dist/index-D2i9J9Zq.d.mts.map +0 -1
- package/dist/index-gOVtTm-P.d.mts.map +0 -1
- package/dist/preview-BToKUTtZ.mjs.map +0 -1
- package/dist/preview-engine/chunk-4FY4TNST.mjs +0 -1
- package/dist/preview-engine/chunk-7LDSMOO3.mjs +0 -1
- package/dist/preview-engine/chunk-AGAZJZWI.mjs +0 -1
- package/dist/preview-engine/chunk-BXPM5SJ3.mjs +0 -1
- package/dist/preview-engine/chunk-C4M3B2Q2.mjs +0 -1
- package/dist/preview-engine/chunk-CIVJXFWH.mjs +0 -4
- package/dist/preview-engine/chunk-D73ZKPFN.mjs +0 -138
- package/dist/preview-engine/chunk-KOVN277Z.mjs +0 -1
- package/dist/preview-engine/chunk-M4QANUJI.mjs +0 -480
- package/dist/preview-engine/chunk-P4Y3PMJF.mjs +0 -1
- package/dist/preview-engine/chunk-SE2C623Z.mjs +0 -5
- package/dist/preview-engine/chunk-XF6DYP6B.mjs +0 -1974
- package/dist/preview-engine/chunk-XYGDTPO7.mjs +0 -39
- package/dist/preview-engine/chunk-YGKO4NIU.mjs +0 -1
- package/dist/preview-engine/renderers-2NGIILMI.mjs +0 -1
- package/dist/preview-engine/renderers-466Z77BH.mjs +0 -1
- package/dist/preview-engine/renderers-4KRENGZA.mjs +0 -1
- package/dist/preview-engine/renderers-4W52BQEU.mjs +0 -1
- package/dist/preview-engine/renderers-55PRAS7G.mjs +0 -1
- package/dist/preview-engine/renderers-5LLYINHW.mjs +0 -1
- package/dist/preview-engine/renderers-63N3Y2XO.mjs +0 -1
- package/dist/preview-engine/renderers-6ROVFDIN.mjs +0 -1
- package/dist/preview-engine/renderers-A4RVLPMG.mjs +0 -1
- package/dist/preview-engine/renderers-A53P4J6O.mjs +0 -1
- package/dist/preview-engine/renderers-AFJ3373L.mjs +0 -1
- package/dist/preview-engine/renderers-ATFWTA3U.mjs +0 -1
- package/dist/preview-engine/renderers-BPYJXHBU.mjs +0 -1
- package/dist/preview-engine/renderers-D3ZF7FXT.mjs +0 -1
- package/dist/preview-engine/renderers-D7YN6B4B.mjs +0 -1
- package/dist/preview-engine/renderers-DBLASKF5.mjs +0 -1
- package/dist/preview-engine/renderers-DC5ZYYHM.mjs +0 -1
- package/dist/preview-engine/renderers-J6ZEXW5L.mjs +0 -1
- package/dist/preview-engine/renderers-JV4MF46Q.mjs +0 -1
- package/dist/preview-engine/renderers-KQKH4ZIX.mjs +0 -1
- package/dist/preview-engine/renderers-MDHPQY6D.mjs +0 -1
- package/dist/preview-engine/renderers-MEITHN4N.mjs +0 -1
- package/dist/preview-engine/renderers-MN3HSBTJ.mjs +0 -1
- package/dist/preview-engine/renderers-NTG3QGNH.mjs +0 -1
- package/dist/preview-engine/renderers-OU4SFMB2.mjs +0 -1
- package/dist/preview-engine/renderers-P6TIBJIG.mjs +0 -1
- package/dist/preview-engine/renderers-POJWQ7L3.mjs +0 -1
- package/dist/preview-engine/renderers-RJ7S6VHD.mjs +0 -1
- package/dist/preview-engine/renderers-RJJAJZYN.mjs +0 -1
- package/dist/preview-engine/renderers-UEQ733VK.mjs +0 -1
- package/dist/preview-engine/renderers-ULO2AW2U.mjs +0 -1
- package/dist/preview-engine/renderers-UPVHGHCK.mjs +0 -1
- package/dist/preview-engine/renderers-UZHSNNIM.mjs +0 -1
- package/dist/preview-engine/renderers-V5KWZL2C.mjs +0 -1
- package/dist/preview-engine/renderers-WL372W36.mjs +0 -228
- package/dist/preview-engine/renderers-YMXKYOHQ.mjs +0 -1
- package/dist/preview-engine/renderers-YWDAZ2NZ.mjs +0 -1
- package/dist/program-Bc860ko5.mjs.map +0 -1
- package/dist/renderer--Ymc_4XJ.mjs +0 -5
- package/dist/renderer-B-OdV-eq.mjs +0 -5
- package/dist/renderer-B65fwoA2.mjs +0 -5
- package/dist/renderer-B92Ahkcv.mjs +0 -5
- package/dist/renderer-B9z2AK31.mjs +0 -5
- package/dist/renderer-BIF3Dg3Z.mjs +0 -5
- package/dist/renderer-BJUVaIAT.mjs +0 -5
- package/dist/renderer-BKRDMbI-.mjs +0 -5
- package/dist/renderer-BSwhyVWa.mjs +0 -5
- package/dist/renderer-BUqSZn2X.mjs +0 -5
- package/dist/renderer-BVKOQarx.d.mts +0 -99
- package/dist/renderer-BVKOQarx.d.mts.map +0 -1
- package/dist/renderer-BbmvjqK9.mjs +0 -3
- package/dist/renderer-Bbxh4N8Y.mjs.map +0 -1
- package/dist/renderer-BhsrlGKp.mjs.map +0 -1
- package/dist/renderer-Bpe4k_x6.mjs +0 -5
- package/dist/renderer-Bx14Wnxl.mjs.map +0 -1
- package/dist/renderer-C1NjG0CJ.mjs +0 -5
- package/dist/renderer-C7Puyst9.mjs +0 -5
- package/dist/renderer-CGA_7320.mjs +0 -5
- package/dist/renderer-CLnFkXO7.mjs +0 -5
- package/dist/renderer-CMQIT1Kh.mjs +0 -5
- package/dist/renderer-CQ1rwjIh.mjs +0 -5
- package/dist/renderer-CT8h0boY.mjs +0 -5
- package/dist/renderer-Cb0lszt3.mjs +0 -5
- package/dist/renderer-Ci7oLye9.mjs +0 -5
- package/dist/renderer-CjqXB3CZ.mjs +0 -5
- package/dist/renderer-CqTV04zQ.mjs +0 -5
- package/dist/renderer-CtWeRtHK.mjs +0 -5
- package/dist/renderer-CzolnwCo.mjs +0 -5
- package/dist/renderer-D6qhcx_C.mjs +0 -5
- package/dist/renderer-DDfEf0jt.mjs +0 -5
- package/dist/renderer-DDpa8ztp.mjs +0 -5
- package/dist/renderer-DbQBqzmx.mjs +0 -5
- package/dist/renderer-DfUcwMKa.mjs +0 -5
- package/dist/renderer-DgIjNANM.mjs +0 -6
- package/dist/renderer-Dsh6Tgu0.mjs +0 -3
- package/dist/renderer-DuIwR9GT.mjs +0 -5
- package/dist/renderer-Dv4u2c14.mjs +0 -5
- package/dist/renderer-HDj9Zb-O.mjs.map +0 -1
- package/dist/renderer-IE1yu3lZ.mjs +0 -5
- package/dist/renderer-PY_wnEN0.mjs +0 -5
- package/dist/renderer-TKZCA0B9.mjs.map +0 -1
- package/dist/renderer-gv24VyzO.mjs +0 -5
- package/dist/renderer-nN6lPZf9.mjs +0 -5
- package/dist/src-BYp6r-cS.mjs.map +0 -1
- package/dist/src-Bnr8DUC--BRDqRF6I.mjs.map +0 -1
- /package/dist/{chunk-W71TSjRM.mjs → chunk-DOL2i2sR.mjs} +0 -0
- /package/dist/{renderer-B6rZUBwE.mjs → renderer-Co2YqWX0.mjs} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderer-TKZCA0B9.mjs","names":[],"sources":["../../../nodes/node-compositor/dist/renderers-X4CI4wde.mjs"],"sourcesContent":["import { defineRenderer } from \"@framefields/node-sdk/renderer\";\nimport { resolveMediaSourceUrl } from \"@framefields/client-utils\";\nimport { decodeAudioSource, resolveLayerDuration } from \"@framefields/compositions\";\nimport { collectNodeOps, computeLayout, evaluateKeyframes, evaluateTrackAtFrame, initLayout } from \"@framefields/compositions/program\";\nimport { DEFAULT_DURATION_MS, getActiveMediaMetadata, mediaSourceTime, reportRenderDiagnostic } from \"@framefields/core\";\nimport { audioRegistry, effectReach, resolveBoolean, resolveFrameNumber, resolveNumber, solveHomography } from \"@framefields/node-sdk\";\nimport { FULLSCREEN_QUAD_WGSL, PREMULTIPLIED_BLEND, createFullscreenPipeline, fragmentBindGroupLayout } from \"@framefields/node-sdk/gpu\";\nimport { measureText } from \"@framefields/renderers\";\nimport { TemporalDeflickerPipeline } from \"@framefields/tensor-webgpu\";\nimport { AudioLatentTrackCache, Camera3D, Light3D, Matrix4Math, Renderer3D, ScreenSpaceRelightPipeline, SlugFontCache, Vector3Math, fitSpansToText, generateExtrudedTextGeometry, getPrimitiveGeometry, jointMatrices, measureMaxCaptionHeight, parseColor, poseNodes, resolveTextSpans, sampleMorphWeights, spansText, srtLoader } from \"@framefields/webgpu-renderers\";\nimport gsapModule from \"gsap\";\n\n//#region src/shared/bezier-solver.ts\n/**\n* Solves a cubic bezier curve defined by control points (x1, y1) and (x2, y2)\n* for a given progress parameter t in [0, 1].\n*/\nfunction solveCubicBezier(x1, y1, x2, y2, t) {\n\tif (t <= 0) return 0;\n\tif (t >= 1) return 1;\n\tif (x1 === y1 && x2 === y2) return t;\n\tlet u = t;\n\tfor (let i = 0; i < 8; i++) {\n\t\tconst oneMinusU$1 = 1 - u;\n\t\tconst oneMinusU2 = oneMinusU$1 * oneMinusU$1;\n\t\tconst u2 = u * u;\n\t\tconst diff = 3 * oneMinusU2 * u * x1 + 3 * oneMinusU$1 * u2 * x2 + u2 * u - t;\n\t\tif (Math.abs(diff) < 1e-6) break;\n\t\tconst dx = 3 * oneMinusU2 * x1 + 6 * oneMinusU$1 * u * (x2 - x1) + 3 * u2 * (1 - x2);\n\t\tif (Math.abs(dx) < 1e-6) break;\n\t\tu -= diff / dx;\n\t\tu = Math.max(0, Math.min(1, u));\n\t}\n\tconst oneMinusU = 1 - u;\n\tconst checkX = 3 * oneMinusU * oneMinusU * u * x1 + 3 * oneMinusU * u * u * x2 + u * u * u;\n\tif (Math.abs(checkX - t) > .001) {\n\t\tlet low = 0;\n\t\tlet high = 1;\n\t\tu = t;\n\t\tfor (let i = 0; i < 16; i++) {\n\t\t\tconst mid = (low + high) * .5;\n\t\t\tconst oMid = 1 - mid;\n\t\t\tconst xMid = 3 * oMid * oMid * mid * x1 + 3 * oMid * mid * mid * x2 + mid * mid * mid;\n\t\t\tif (Math.abs(xMid - t) < 1e-5) {\n\t\t\t\tu = mid;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (xMid < t) low = mid;\n\t\t\telse high = mid;\n\t\t\tu = mid;\n\t\t}\n\t}\n\tconst oU = 1 - u;\n\treturn 3 * oU * oU * u * y1 + 3 * oU * u * u * y2 + u * u * u;\n}\n\n//#endregion\n//#region src/shared/compiler.ts\nconst gsap = gsapModule.timeline ? gsapModule : gsapModule.default || gsapModule;\n/** GSAP's shaping for a keyframe segment, so draw-time tracks ease like baked ones. */\nfunction gsapEase(fps) {\n\treturn (ease, deltaFrames, t) => {\n\t\tconst e = mappedEase(ease, deltaFrames, fps);\n\t\tconst fn = typeof e === \"function\" ? e : gsap.parseEase(e);\n\t\treturn fn ? fn(t) : t;\n\t};\n}\nfunction evaluateLive(live, frame, fps, signals) {\n\tif ((live.track.source ?? { type: \"keyframe\" }).type === \"keyframe\") return evaluateKeyframes(live.track, frame - live.startFrame, gsapEase(fps));\n\treturn evaluateTrackAtFrame(live.track, frame, fps, {\n\t\tstartFrame: live.startFrame,\n\t\tbaseValues: live.stub,\n\t\tsignals\n\t});\n}\n/** Seeks the compiled timeline to a frame and applies its live signal tracks. */\nfunction seekTimeline(result, frame, fps) {\n\tresult.tl.seek(frame / fps);\n\tfor (const live of result.live) {\n\t\tlet f = Math.max(live.startFrame, Math.min(live.endFrame, frame));\n\t\tif (live.step && live.step > 1) f = live.startFrame + Math.floor((f - live.startFrame) / live.step) * live.step;\n\t\tlive.stub[live.track.prop] = evaluateLive(live, f, fps, result.signals);\n\t}\n}\nconst cache = /* @__PURE__ */ new Map();\nconst nodesHashMemo = /* @__PURE__ */ new WeakMap();\n/** Entries untouched for this long are dropped (and their timeline killed). */\nconst CACHE_TTL_MS = 1e4;\n/** Max compiled timelines retained per cache. */\nconst TIMELINE_CACHE_MAX = 50;\nconst LAYER_TIMELINE_CACHE_MAX = 50;\nfunction fnv1a(str) {\n\tlet hash = 2166136261;\n\tfor (let i = 0; i < str.length; i++) {\n\t\thash ^= str.charCodeAt(i);\n\t\thash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n\t}\n\treturn (hash >>> 0).toString(16);\n}\nconst signalIds = /* @__PURE__ */ new WeakMap();\nlet nextSignalId = 0;\nfunction signalsKey(signals) {\n\tif (!signals || typeof signals !== \"object\") return stableStringify(signals);\n\treturn Object.keys(signals).sort().map((name) => {\n\t\tconst s = signals[name];\n\t\tif (s && typeof s === \"object\" && typeof s.get === \"function\") {\n\t\t\tlet id = signalIds.get(s);\n\t\t\tif (id === void 0) {\n\t\t\t\tid = nextSignalId++;\n\t\t\t\tsignalIds.set(s, id);\n\t\t\t}\n\t\t\treturn `${JSON.stringify(name)}:#${id}`;\n\t\t}\n\t\treturn `${JSON.stringify(name)}:${stableStringify(s)}`;\n\t}).join(\",\");\n}\n/**\n* Paused gsap timelines stay attached to gsap's global timeline until killed,\n* so anything dropped from a cache must be killed or it is never collected.\n*/\nfunction release(value) {\n\tvalue.tl.kill();\n}\n/**\n* Make room for one insertion: drop and kill TTL-expired entries, then evict\n* the least-recently-used entry if the cache is at capacity. Every dropped\n* timeline MUST be killed — see `release`.\n*/\nfunction evictForInsert(cache$1, maxSize) {\n\tconst now = Date.now();\n\tfor (const [key, entry] of cache$1.entries()) if (now - entry.cacheTime > CACHE_TTL_MS) {\n\t\tcache$1.delete(key);\n\t\trelease(entry.value);\n\t}\n\tif (cache$1.size >= maxSize) {\n\t\tconst oldestKey = cache$1.keys().next().value;\n\t\tif (oldestKey !== void 0) {\n\t\t\tconst oldest = cache$1.get(oldestKey);\n\t\t\tcache$1.delete(oldestKey);\n\t\t\tif (oldest) release(oldest.value);\n\t\t}\n\t}\n}\nfunction stableStringify(obj) {\n\tif (obj === null) return \"null\";\n\tif (obj === void 0) return \"undefined\";\n\tif (typeof obj !== \"object\") return JSON.stringify(obj);\n\tif (ArrayBuffer.isView(obj)) return `[TypedArray:${obj.byteLength}]`;\n\tif (Array.isArray(obj)) return \"[\" + obj.map(stableStringify).join(\",\") + \"]\";\n\treturn \"{\" + Object.keys(obj).sort().map((key) => {\n\t\treturn `${JSON.stringify(key)}:${stableStringify(obj[key])}`;\n\t}).join(\",\") + \"}\";\n}\nfunction getCachedTimeline(cacheKey) {\n\tconst entry = cache.get(cacheKey);\n\tif (entry) {\n\t\tif (Date.now() - entry.cacheTime > CACHE_TTL_MS) {\n\t\t\tcache.delete(cacheKey);\n\t\t\trelease(entry.value);\n\t\t\treturn;\n\t\t}\n\t\tentry.cacheTime = Date.now();\n\t\tcache.delete(cacheKey);\n\t\tcache.set(cacheKey, entry);\n\t\treturn entry.value;\n\t}\n}\nfunction setCachedTimeline(cacheKey, value) {\n\tevictForInsert(cache, TIMELINE_CACHE_MAX);\n\tcache.set(cacheKey, {\n\t\tcacheTime: Date.now(),\n\t\tvalue\n\t});\n}\nfunction mappedEase(ease, durationFrames, fps = 24) {\n\tif (!ease) return \"none\";\n\tconst { name, dir, params } = ease;\n\tif (name === \"none\") return \"none\";\n\tif (name === \"spring\") {\n\t\tconst damping = Math.max(.001, params?.[0] ?? 10);\n\t\tconst stiffness = Math.max(.001, params?.[1] ?? 100);\n\t\tconst mass = Math.max(.001, params?.[2] ?? 1);\n\t\treturn (p) => {\n\t\t\tconst t = p * (durationFrames && durationFrames > 0 ? durationFrames / (fps > 0 ? fps : 24) : 1);\n\t\t\tconst m = mass;\n\t\t\tconst k = stiffness;\n\t\t\tconst c = damping;\n\t\t\tconst w0 = Math.sqrt(k / m);\n\t\t\tconst zeta = c / (2 * Math.sqrt(k * m));\n\t\t\tlet x = 0;\n\t\t\tif (zeta < 1) {\n\t\t\t\tconst wd = w0 * Math.sqrt(1 - zeta * zeta);\n\t\t\t\tconst A = -1;\n\t\t\t\tconst B = -zeta * w0 / wd;\n\t\t\t\tx = Math.exp(-zeta * w0 * t) * (A * Math.cos(wd * t) + B * Math.sin(wd * t));\n\t\t\t} else if (zeta === 1) {\n\t\t\t\tconst A = -1;\n\t\t\t\tconst B = -w0;\n\t\t\t\tx = Math.exp(-w0 * t) * (A + B * t);\n\t\t\t} else {\n\t\t\t\tconst r1 = -w0 * (zeta - Math.sqrt(zeta * zeta - 1));\n\t\t\t\tconst r2 = -w0 * (zeta + Math.sqrt(zeta * zeta - 1));\n\t\t\t\tconst C1 = -1 / (1 - r1 / r2);\n\t\t\t\tconst C2 = -1 - C1;\n\t\t\t\tx = C1 * Math.exp(r1 * t) + C2 * Math.exp(r2 * t);\n\t\t\t}\n\t\t\treturn 1 + x;\n\t\t};\n\t}\n\tif (name === \"cubic\") {\n\t\tconst x1 = params?.[0] ?? .25;\n\t\tconst y1 = params?.[1] ?? .1;\n\t\tconst x2 = params?.[2] ?? .25;\n\t\tconst y2 = params?.[3] ?? 1;\n\t\treturn (p) => solveCubicBezier(x1, y1, x2, y2, p);\n\t}\n\tif (name === \"hold\") return (p) => p >= .9999 ? 1 : 0;\n\tconst easeName = name;\n\tlet suffix = \"\";\n\tif (params && params.length > 0) suffix = `(${params.join(\", \")})`;\n\telse if (name === \"back\") suffix = \"(1.7)\";\n\telse if (name === \"elastic\") suffix = \"(1, 0.3)\";\n\treturn `${easeName}.${dir}${suffix}`;\n}\nfunction compileTrackToTimeline(tl, stub, track, startFrame, fps, durationFrames, signals, live, step) {\n\tconst prop = track.prop;\n\tconst source = track.source ?? { type: \"keyframe\" };\n\tconst stepped = step !== void 0 && step > 1;\n\tif ((source.type === \"signal\" || stepped || prop === \"d\") && live && !track.repeat) {\n\t\tconst entry = {\n\t\t\tstub,\n\t\t\ttrack,\n\t\t\tstartFrame,\n\t\t\tendFrame: startFrame + (Number.isFinite(durationFrames) ? durationFrames : Math.round(fps * 5)),\n\t\t\t...stepped && { step }\n\t\t};\n\t\tstub[prop] = evaluateLive(entry, startFrame, fps, signals);\n\t\tlive.push(entry);\n\t\treturn {\n\t\t\tdropped: 0,\n\t\t\tmaxAuthoredFrame: 0\n\t\t};\n\t}\n\tif (source.type !== \"keyframe\") {\n\t\tconst endF = Number.isFinite(durationFrames) ? durationFrames : Math.round(fps * 5);\n\t\tconst frameStepSec = 1 / fps;\n\t\tconst kfList = [];\n\t\tconst firstVal = evaluateTrackAtFrame(track, startFrame, fps, {\n\t\t\tstartFrame,\n\t\t\tbaseValues: stub,\n\t\t\tsignals\n\t\t});\n\t\tstub[prop] = firstVal;\n\t\tkfList.push({\n\t\t\t[prop]: firstVal,\n\t\t\tduration: 0\n\t\t});\n\t\tfor (let f = 1; f <= endF; f++) {\n\t\t\tconst val = evaluateTrackAtFrame(track, startFrame + f, fps, {\n\t\t\t\tstartFrame,\n\t\t\t\tbaseValues: stub,\n\t\t\t\tsignals\n\t\t\t});\n\t\t\tkfList.push({\n\t\t\t\t[prop]: val,\n\t\t\t\tduration: frameStepSec,\n\t\t\t\tease: \"none\"\n\t\t\t});\n\t\t}\n\t\ttl.to(stub, {\n\t\t\tkeyframes: kfList,\n\t\t\trepeat: track.repeat ?? 0,\n\t\t\tyoyo: !!track.yoyo,\n\t\t\tlazy: false,\n\t\t\toverwrite: false,\n\t\t\timmediateRender: false\n\t\t}, startFrame / fps);\n\t\treturn {\n\t\t\tdropped: 0,\n\t\t\tmaxAuthoredFrame: 0\n\t\t};\n\t}\n\tconst sortedKeyframes = [...track.keyframes].sort((a, b) => a.frame - b.frame);\n\tconst validKeyframes = sortedKeyframes.filter((kf) => kf.frame >= 0 && kf.frame <= durationFrames);\n\tconst dropped = sortedKeyframes.length - validKeyframes.length;\n\tconst maxAuthoredFrame = dropped > 0 ? sortedKeyframes[sortedKeyframes.length - 1].frame : 0;\n\tif (validKeyframes.length === 0) return {\n\t\tdropped,\n\t\tmaxAuthoredFrame\n\t};\n\tif (prop === \"hidden\" || prop === \"muted\") for (const kf of validKeyframes) {\n\t\tconst absoluteSec = (startFrame + kf.frame) / fps;\n\t\ttl.set(stub, {\n\t\t\t[prop]: kf.value,\n\t\t\timmediateRender: false\n\t\t}, absoluteSec);\n\t}\n\telse {\n\t\tconst repeat = track.repeat ?? 0;\n\t\tconst yoyo = !!track.yoyo;\n\t\tif (validKeyframes.length === 1) {\n\t\t\tconst kf0 = validKeyframes[0];\n\t\t\tconst absoluteSec = (startFrame + kf0.frame) / fps;\n\t\t\ttl.set(stub, {\n\t\t\t\t[prop]: kf0.value,\n\t\t\t\timmediateRender: false\n\t\t\t}, absoluteSec);\n\t\t} else if (validKeyframes.length === 2) {\n\t\t\tconst kf0 = validKeyframes[0];\n\t\t\tconst kf1 = validKeyframes[1];\n\t\t\tconst val0 = kf0.value;\n\t\t\tconst val1 = kf1.value;\n\t\t\tconst startSec = (startFrame + kf0.frame) / fps;\n\t\t\tconst durSec = (kf1.frame - kf0.frame) / fps;\n\t\t\tconst trackDurationFrames = track.durationFrames ?? kf1.frame - kf0.frame;\n\t\t\tconst easeVal = mappedEase(kf1.ease ?? kf0.ease, trackDurationFrames, fps);\n\t\t\tif (val0 === stub[prop]) tl.to(stub, {\n\t\t\t\t[prop]: val1,\n\t\t\t\tduration: durSec,\n\t\t\t\tease: easeVal,\n\t\t\t\trepeat,\n\t\t\t\tyoyo,\n\t\t\t\tlazy: false,\n\t\t\t\toverwrite: false,\n\t\t\t\timmediateRender: false\n\t\t\t}, startSec);\n\t\t\telse tl.fromTo(stub, { [prop]: val0 }, {\n\t\t\t\t[prop]: val1,\n\t\t\t\tduration: durSec,\n\t\t\t\tease: easeVal,\n\t\t\t\trepeat,\n\t\t\t\tyoyo,\n\t\t\t\tlazy: false,\n\t\t\t\toverwrite: false,\n\t\t\t\timmediateRender: false\n\t\t\t}, startSec);\n\t\t} else {\n\t\t\tconst kf0 = validKeyframes[0];\n\t\t\tconst startSec = (startFrame + kf0.frame) / fps;\n\t\t\tconst kfList = [];\n\t\t\tkfList.push({\n\t\t\t\t[prop]: kf0.value,\n\t\t\t\tduration: 0\n\t\t\t});\n\t\t\tfor (let i = 1; i < validKeyframes.length; i++) {\n\t\t\t\tconst prevKf = validKeyframes[i - 1];\n\t\t\t\tconst currKf = validKeyframes[i];\n\t\t\t\tconst deltaFrames = currKf.frame - prevKf.frame;\n\t\t\t\tconst durSec = deltaFrames / fps;\n\t\t\t\tconst easeVal = mappedEase(currKf.ease, deltaFrames, fps);\n\t\t\t\tkfList.push({\n\t\t\t\t\t[prop]: currKf.value,\n\t\t\t\t\tduration: durSec,\n\t\t\t\t\tease: easeVal\n\t\t\t\t});\n\t\t\t}\n\t\t\ttl.to(stub, {\n\t\t\t\tkeyframes: kfList,\n\t\t\t\trepeat,\n\t\t\t\tyoyo,\n\t\t\t\tlazy: false,\n\t\t\t\toverwrite: false,\n\t\t\t\timmediateRender: false\n\t\t\t}, startSec);\n\t\t}\n\t}\n\treturn {\n\t\tdropped,\n\t\tmaxAuthoredFrame\n\t};\n}\n/**\n* Dedupe per compiled cache key — a fresh render of the same broken doc SHOULD\n* re-warn. Single-frame renders are the exception: each `renderFrame` call has\n* its own `img-` render id, so probing a doc frame by frame would repeat the\n* warning on every frame; those dedupe per document instead.\n*/\nconst truncationWarnedKeys = /* @__PURE__ */ new Set();\nconst TRUNCATION_WARNED_CAP = 100;\nfunction warnTruncationOnce(cacheKey, truncations) {\n\tif (truncationWarnedKeys.has(cacheKey)) return;\n\tif (truncationWarnedKeys.size >= TRUNCATION_WARNED_CAP) truncationWarnedKeys.clear();\n\ttruncationWarnedKeys.add(cacheKey);\n\tconst details = truncations.map((t) => `'${t.prop}' (track '${t.trackId}') on '${t.layerId}': ${t.dropped} keyframe(s) past the clip window (last authored frame ${t.maxAuthoredFrame})`).join(\"; \");\n\tconsole.warn(`[compositor] ${truncations.length} track(s) truncated — animation tails will not play: ${details}. Extend durationFrames or move those keyframes.`);\n}\nfunction hashNodes(nodeOps, width, height, fps, durationSec) {\n\treturn fnv1a(stableStringify({\n\t\tnodes: nodeOps.map((vm) => {\n\t\t\tconst lop = vm?.operation || {};\n\t\t\treturn {\n\t\t\t\tid: lop.id,\n\t\t\t\tanimation: lop.animation,\n\t\t\t\tstartFrame: lop.startFrame,\n\t\t\t\tdurationFrames: lop.durationFrames,\n\t\t\t\tx: lop.x,\n\t\t\t\ty: lop.y,\n\t\t\t\tscale: lop.scale,\n\t\t\t\trotation: lop.rotation,\n\t\t\t\topacity: lop.opacity,\n\t\t\t\tvolume: lop.volume,\n\t\t\t\twidth: lop.width,\n\t\t\t\theight: lop.height,\n\t\t\t\thidden: lop.hidden,\n\t\t\t\tmuted: lop.muted,\n\t\t\t\tbackgroundColor: lop.backgroundColor,\n\t\t\t\tfill: lop.fill,\n\t\t\t\tborderColor: lop.borderColor,\n\t\t\t\ttextBackgroundColor: lop.textBackgroundColor,\n\t\t\t\trotateX: lop.rotateX,\n\t\t\t\trotateY: lop.rotateY,\n\t\t\t\trotateZ: lop.rotateZ,\n\t\t\t\tperspective: lop.perspective,\n\t\t\t\tperspectiveOriginX: lop.perspectiveOriginX,\n\t\t\t\tperspectiveOriginY: lop.perspectiveOriginY,\n\t\t\t\ttranslateZ: lop.translateZ,\n\t\t\t\tbackfaceVisibility: lop.backfaceVisibility,\n\t\t\t\ttransformStyle: lop.transformStyle,\n\t\t\t\tis3D: lop.is3D,\n\t\t\t\tz: lop.z,\n\t\t\t\tscaleZ: lop.scaleZ,\n\t\t\t\ttwoSided: lop.twoSided,\n\t\t\t\tcameraX: lop.cameraX,\n\t\t\t\tcameraY: lop.cameraY,\n\t\t\t\tcameraZ: lop.cameraZ,\n\t\t\t\ttargetX: lop.targetX,\n\t\t\t\ttargetY: lop.targetY,\n\t\t\t\ttargetZ: lop.targetZ,\n\t\t\t\tcameraPitch: lop.cameraPitch,\n\t\t\t\tcameraYaw: lop.cameraYaw,\n\t\t\t\tcameraRoll: lop.cameraRoll,\n\t\t\t\tcameraFov: lop.cameraFov,\n\t\t\t\tcameraZoom: lop.cameraZoom,\n\t\t\t\tfocalLength: lop.focalLength,\n\t\t\t\tfocusDistance: lop.focusDistance,\n\t\t\t\tfStop: lop.fStop,\n\t\t\t\tmaxBlurRadius: lop.maxBlurRadius,\n\t\t\t\tshakeTranslation: lop.shakeTranslation,\n\t\t\t\tshakeRotation: lop.shakeRotation,\n\t\t\t\torbitRadius: lop.orbitRadius,\n\t\t\t\torbitAzimuth: lop.orbitAzimuth,\n\t\t\t\torbitElevation: lop.orbitElevation,\n\t\t\t\tmaterial: lop.material,\n\t\t\t\tshininess: lop.shininess,\n\t\t\t\troughness: lop.roughness,\n\t\t\t\tspecularIntensity: lop.specularIntensity,\n\t\t\t\tambientIntensity: lop.ambientIntensity,\n\t\t\t\tmetallic: lop.metallic,\n\t\t\t\tlightType: lop.lightType,\n\t\t\t\tintensity: lop.intensity,\n\t\t\t\tradius: lop.radius,\n\t\t\t\tangle: lop.angle,\n\t\t\t\tpenumbra: lop.penumbra,\n\t\t\t\tanimationProgress: lop.animationProgress,\n\t\t\t\tanimationTime: lop.animationTime,\n\t\t\t\tanimationSpeed: lop.animationSpeed,\n\t\t\t\twireframe: lop.wireframe,\n\t\t\t\tscaleX: lop.scaleX,\n\t\t\t\tscaleY: lop.scaleY,\n\t\t\t\tfontSize: lop.fontSize,\n\t\t\t\ttext: lop.text\n\t\t\t};\n\t\t}),\n\t\twidth,\n\t\theight,\n\t\tfps,\n\t\tdurationSec\n\t}));\n}\nfunction compileTimeline(renderId, virtualMedia, options) {\n\tconst fps = options.fps;\n\tconst durationSec = options.durationSec;\n\tconst width = virtualMedia?.metadata?.width ?? 1920;\n\tconst height = virtualMedia?.metadata?.height ?? 1080;\n\tconst nodeOps = collectNodeOps(virtualMedia?.children ?? []);\n\tconst memoKey = virtualMedia?.children;\n\tconst memo = memoKey ? nodesHashMemo.get(memoKey) : void 0;\n\tlet nodesHash;\n\tif (memo && memo.width === width && memo.height === height && memo.fps === fps && memo.durationSec === durationSec) nodesHash = memo.hash;\n\telse {\n\t\tnodesHash = hashNodes(nodeOps, width, height, fps, durationSec);\n\t\tif (memoKey) nodesHashMemo.set(memoKey, {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tfps,\n\t\t\tdurationSec,\n\t\t\thash: nodesHash\n\t\t});\n\t}\n\tconst irHash = fnv1a(`${nodesHash}|${signalsKey(virtualMedia?.operation?.signals ?? virtualMedia?.signals)}`);\n\tconst cacheKey = `${renderId}_${irHash}`;\n\tconst cached = getCachedTimeline(cacheKey);\n\tif (cached) return cached;\n\tconst tl = gsap.timeline({\n\t\tpaused: true,\n\t\tsmoothChildTiming: false\n\t});\n\tconst targetsById = {};\n\tconst signals = virtualMedia?.operation?.signals ?? virtualMedia?.signals ?? {};\n\tnodeOps.forEach((vm, index) => {\n\t\tconst lop = vm?.operation || {};\n\t\tconst layerId = lop.id || lop.inputHandleId || `layer_${index}`;\n\t\tconst stub = {\n\t\t\tid: layerId,\n\t\t\tinputHandleId: lop.inputHandleId || `layer_${index}`,\n\t\t\ttrackId: layerId,\n\t\t\tx: lop.kind === \"camera\" || lop.kind === \"light\" ? lop.x ?? lop.cameraX : lop.x ?? 0,\n\t\t\ty: lop.kind === \"camera\" || lop.kind === \"light\" ? lop.y ?? lop.cameraY : lop.y ?? 0,\n\t\t\tscale: lop.scale ?? 1,\n\t\t\trotation: lop.rotation ?? 0,\n\t\t\topacity: lop.opacity ?? 1,\n\t\t\tvolume: lop.volume ?? 1,\n\t\t\twidth: lop.width,\n\t\t\theight: lop.height,\n\t\t\thidden: !!lop.hidden,\n\t\t\tmuted: !!lop.muted,\n\t\t\trotateX: lop.rotateX ?? 0,\n\t\t\trotateY: lop.rotateY ?? 0,\n\t\t\trotateZ: lop.rotateZ ?? 0,\n\t\t\tperspective: lop.perspective ?? 0,\n\t\t\tperspectiveOriginX: lop.perspectiveOriginX ?? .5,\n\t\t\tperspectiveOriginY: lop.perspectiveOriginY ?? .5,\n\t\t\ttranslateZ: lop.translateZ ?? 0,\n\t\t\tbackfaceVisibility: lop.backfaceVisibility ?? \"visible\",\n\t\t\ttransformStyle: lop.transformStyle ?? \"flat\",\n\t\t\tfontSize: lop.fontSize,\n\t\t\ttext: 1,\n\t\t\tfill: lop.fill,\n\t\t\tfillColor: lop.fillColor ?? lop.fill,\n\t\t\tstrokeColor: lop.strokeColor ?? lop.stroke,\n\t\t\tstrokeWidth: lop.strokeWidth,\n\t\t\tletterSpacing: lop.letterSpacing,\n\t\t\tfirstMargin: lop.firstMargin ?? lop.pathOptions?.firstMargin,\n\t\t\tlastMargin: lop.lastMargin ?? lop.pathOptions?.lastMargin,\n\t\t\tbaselineShift: lop.baselineShift ?? lop.pathOptions?.baselineShift,\n\t\t\toffset: lop.offset,\n\t\t\trangeStart: lop.rangeStart,\n\t\t\trangeEnd: lop.rangeEnd,\n\t\t\tanimators: lop.animators,\n\t\t\tpathOptions: lop.pathOptions,\n\t\t\ttypewriter: lop.typewriter,\n\t\t\tmarquee: lop.marquee,\n\t\t\tis3D: lop.is3D ?? (lop.kind === \"camera\" || lop.kind === \"light\" || lop.kind === \"model3d\" ? true : false),\n\t\t\tz: lop.z ?? (lop.kind === \"camera\" ? lop.z ?? -1500 : 0),\n\t\t\tscaleZ: lop.scaleZ ?? 1,\n\t\t\ttwoSided: lop.twoSided ?? true,\n\t\t\tmaterial: lop.material,\n\t\t\tshininess: lop.shininess,\n\t\t\troughness: lop.roughness,\n\t\t\tspecularIntensity: lop.specularIntensity,\n\t\t\tambientIntensity: lop.ambientIntensity,\n\t\t\tmetallic: lop.metallic,\n\t\t\tanimationProgress: lop.animationProgress ?? 0,\n\t\t\tanimationTime: lop.animationTime ?? 0,\n\t\t\tanimationSpeed: lop.animationSpeed ?? 1,\n\t\t\twireframe: lop.wireframe ?? false,\n\t\t\tscaleX: lop.scaleX ?? 1,\n\t\t\tscaleY: lop.scaleY ?? 1,\n\t\t\tcameraX: lop.cameraX ?? (lop.kind === \"camera\" ? lop.x : void 0),\n\t\t\tcameraY: lop.cameraY ?? (lop.kind === \"camera\" ? lop.y : void 0),\n\t\t\tcameraZ: lop.cameraZ ?? (lop.kind === \"camera\" ? lop.z : void 0),\n\t\t\ttargetX: lop.targetX,\n\t\t\ttargetY: lop.targetY,\n\t\t\ttargetZ: lop.targetZ,\n\t\t\tcameraPitch: lop.cameraPitch ?? lop.pitch ?? 0,\n\t\t\tcameraYaw: lop.cameraYaw ?? lop.yaw ?? 0,\n\t\t\tcameraRoll: lop.cameraRoll ?? lop.roll ?? 0,\n\t\t\tcameraFov: lop.cameraFov ?? lop.lens?.fov ?? 50,\n\t\t\tcameraZoom: lop.cameraZoom ?? lop.lens?.zoom ?? 1,\n\t\t\tfocalLength: lop.focalLength ?? lop.lens?.focalLength ?? 50,\n\t\t\tfocusDistance: lop.focusDistance ?? lop.dof?.focusDistance,\n\t\t\tfStop: lop.fStop ?? lop.dof?.fStop ?? 2.8,\n\t\t\tmaxBlurRadius: lop.maxBlurRadius ?? lop.dof?.maxBlurRadius ?? 24,\n\t\t\tshakeTranslation: lop.shakeTranslation ?? (lop.shake?.enabled ? lop.shake?.translationAmplitude ?? 0 : 0),\n\t\t\tshakeRotation: lop.shakeRotation ?? (lop.shake?.enabled ? lop.shake?.rotationAmplitude ?? 0 : 0),\n\t\t\torbitRadius: lop.orbitRadius,\n\t\t\torbitAzimuth: lop.orbitAzimuth,\n\t\t\torbitElevation: lop.orbitElevation,\n\t\t\tlightType: lop.lightType,\n\t\t\tintensity: lop.intensity ?? (lop.kind === \"light\" ? 1 : void 0),\n\t\t\tradius: lop.radius,\n\t\t\tangle: lop.angle,\n\t\t\tpenumbra: lop.penumbra,\n\t\t\tdecay: lop.decay\n\t\t};\n\t\tfor (const track of lop.animation?.tracks ?? []) if ((track.source ?? { type: \"keyframe\" }).type !== \"keyframe\") stub[track.prop] = evaluateTrackAtFrame(track, lop.startFrame ?? 0, fps, {\n\t\t\tstartFrame: lop.startFrame ?? 0,\n\t\t\tbaseValues: stub,\n\t\t\tsignals\n\t\t});\n\t\telse if (track.keyframes && track.keyframes.length > 0) {\n\t\t\tconst kf0 = track.keyframes[0];\n\t\t\tconst seeded = stub;\n\t\t\tif (kf0.frame === 0) seeded[track.prop] = kf0.value;\n\t\t\telse if (seeded[track.prop] === void 0) seeded[track.prop] = lop[track.prop] ?? kf0.value;\n\t\t}\n\t\ttargetsById[layerId] = stub;\n\t});\n\tconst truncations = [];\n\tconst live = [];\n\tnodeOps.forEach((vm) => {\n\t\tconst lop = vm?.operation || {};\n\t\tconst layerId = lop.id || lop.inputHandleId;\n\t\tconst stub = layerId ? targetsById[layerId] : void 0;\n\t\tif (!stub) return;\n\t\tconst startFrame = lop.startFrame ?? 0;\n\t\tlet durationFrames = lop.durationFrames;\n\t\tif (durationFrames === void 0) {\n\t\t\tconst child = vm.children?.[0];\n\t\t\tconst childMeta = child ? getActiveMediaMetadata(child) : null;\n\t\t\tconst composeDuration = virtualMedia?.metadata?.durationMs ?? DEFAULT_DURATION_MS;\n\t\t\tconst layerType = lop.type ?? (lop.kind === \"text\" ? \"Text\" : lop.kind === \"media\" ? child ? child.operation?.dataType : void 0 : void 0);\n\t\t\tconst durationMs = resolveLayerDuration(void 0, childMeta?.durationMs ?? void 0, composeDuration, layerType);\n\t\t\tdurationFrames = Math.max(1, Math.round(durationMs / 1e3 * fps));\n\t\t}\n\t\tfor (const track of lop.animation?.tracks ?? []) {\n\t\t\tconst { dropped, maxAuthoredFrame } = compileTrackToTimeline(tl, stub, track, startFrame, fps, durationFrames, signals, live, lop.animation?.frameStep);\n\t\t\tif (dropped > 0) truncations.push({\n\t\t\t\tlayerId,\n\t\t\t\ttrackId: track.id,\n\t\t\t\tprop: track.prop,\n\t\t\t\tdropped,\n\t\t\t\tmaxAuthoredFrame\n\t\t\t});\n\t\t}\n\t});\n\tif (truncations.length > 0) {\n\t\twarnTruncationOnce(renderId.startsWith(\"img-\") ? `frame_${irHash}` : cacheKey, truncations);\n\t\tfor (const t of truncations) reportRenderDiagnostic(renderId, {\n\t\t\tseverity: \"warning\",\n\t\t\tcode: \"animation_truncated\",\n\t\t\tlayerId: t.layerId,\n\t\t\tmessage: `'${t.prop}' on '${t.layerId}': ${t.dropped} keyframe(s) past the clip window (last authored frame ${t.maxAuthoredFrame}) never play`\n\t\t});\n\t}\n\ttl.seek(1e-6);\n\ttl.seek(0);\n\tconst compileResult = {\n\t\ttl,\n\t\ttargetsById,\n\t\tnodes: nodeOps,\n\t\tlive,\n\t\tsignals\n\t};\n\tsetCachedTimeline(cacheKey, compileResult);\n\treturn compileResult;\n}\nconst layerTimelineCache = /* @__PURE__ */ new Map();\nfunction compileLayerTimeline(layerId, animation, baseVolume, baseMuted, fps) {\n\tconst cacheKey = `layer_${layerId}_${fnv1a(stableStringify({\n\t\tanimation,\n\t\tbaseVolume,\n\t\tbaseMuted,\n\t\tfps\n\t}))}`;\n\tconst cached = layerTimelineCache.get(cacheKey);\n\tif (cached) {\n\t\tif (Date.now() - cached.cacheTime <= CACHE_TTL_MS) {\n\t\t\tcached.cacheTime = Date.now();\n\t\t\treturn cached.value;\n\t\t}\n\t\tlayerTimelineCache.delete(cacheKey);\n\t\trelease(cached.value);\n\t}\n\tconst tl = gsap.timeline({\n\t\tpaused: true,\n\t\tsmoothChildTiming: false\n\t});\n\tconst stub = {\n\t\tvolume: baseVolume,\n\t\tmuted: baseMuted\n\t};\n\tconst tracks = animation?.tracks ?? [];\n\tfor (const track of tracks) {\n\t\tconst prop = track.prop;\n\t\tif (prop !== \"volume\" && prop !== \"muted\") continue;\n\t\tcompileTrackToTimeline(tl, stub, track, 0, fps, Infinity);\n\t}\n\ttl.seek(1e-6);\n\ttl.seek(0);\n\tconst result = {\n\t\ttl,\n\t\tstub\n\t};\n\tevictForInsert(layerTimelineCache, LAYER_TIMELINE_CACHE_MAX);\n\tlayerTimelineCache.set(cacheKey, {\n\t\tcacheTime: Date.now(),\n\t\tvalue: result\n\t});\n\treturn result;\n}\n\n//#endregion\n//#region src/renderers/container-bg.ts\n/**\n* Which container kinds paint their own background.\n*\n* flex/block/box all accept an optional `background` in the program schema.\n* The renderer must draw the rounded background pass for ALL of them (the old\n* code only painted `box`, so flex/block backgrounds were silently dropped and\n* their \"transparent-optimized\" fast path skipped the fill entirely).\n*/\nfunction shouldPaintContainerBackground(kind, background) {\n\tif (!background) return false;\n\treturn kind === \"flex\" || kind === \"block\" || kind === \"box\";\n}\n\n//#endregion\n//#region src/renderers/mesh-instancing.ts\nconst TRANSFORMS = new Set([\n\t\"position\",\n\t\"rotation\",\n\t\"scale\",\n\t\"modelMatrix\",\n\t\"normalMatrix\",\n\t\"bounds\"\n]);\n/** Compare material state without treating different GPU resources as equal. */\nfunction sameValue(a, b) {\n\tif (a === b) return true;\n\tif (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((value, i) => sameValue(value, b[i]));\n\tif (!a || !b || typeof a !== \"object\" || typeof b !== \"object\") return false;\n\tif (Object.getPrototypeOf(a) !== Object.prototype || Object.getPrototypeOf(b) !== Object.prototype) return false;\n\tconst left = a;\n\tconst right = b;\n\tconst keys = Object.keys(left);\n\treturn keys.length === Object.keys(right).length && keys.every((key) => Object.hasOwn(right, key) && sameValue(left[key], right[key]));\n}\nfunction canInstanceMesh(item) {\n\tconst o = item.opts;\n\treturn !item.meshBuffers && !o.transparent && !o.instanceBuffer && (o.instanceCount ?? 1) === 1 && !o.firstInstance && !o.matrixInstances && !o.isSkinned && !o.skinningMatrices && !o.audioDeform && !o.morphWeights?.length && o.material !== \"glass\" && o.material !== \"acrylic\" && o.material !== \"frosted\" && (o.opacity ?? 1) >= 1 && (o.colorTint?.[3] ?? 1) >= 1;\n}\nfunction compatibleMeshDraws(a, b) {\n\tif (!canInstanceMesh(a) || !canInstanceMesh(b) || a.mesh !== b.mesh || a.texture !== b.texture) return false;\n\tconst left = a.opts;\n\tconst right = b.opts;\n\tconst keys = new Set([...Object.keys(left), ...Object.keys(right)]);\n\tfor (const key of keys) if (!TRANSFORMS.has(key) && !sameValue(left[key], right[key])) return false;\n\treturn true;\n}\n\n//#endregion\n//#region src/renderers/transform.ts\nfunction translate(tx, ty) {\n\treturn {\n\t\ta: 1,\n\t\tb: 0,\n\t\tc: 0,\n\t\td: 1,\n\t\te: tx,\n\t\tf: ty\n\t};\n}\n/** Rotation in degrees (screen convention: positive = clockwise, y-down). */\nfunction rotate(degrees) {\n\tconst rad = degrees * Math.PI / 180;\n\tconst cos = Math.cos(rad);\n\tconst sin = Math.sin(rad);\n\treturn {\n\t\ta: cos,\n\t\tb: sin,\n\t\tc: -sin,\n\t\td: cos,\n\t\te: 0,\n\t\tf: 0\n\t};\n}\nfunction scale(sx, sy = sx) {\n\treturn {\n\t\ta: sx,\n\t\tb: 0,\n\t\tc: 0,\n\t\td: sy,\n\t\te: 0,\n\t\tf: 0\n\t};\n}\n/** m1 ∘ m2 (m2 applied first — matches DOMMatrix.multiply ordering). */\nfunction multiply(m1, m2) {\n\treturn {\n\t\ta: m1.a * m2.a + m1.c * m2.b,\n\t\tb: m1.b * m2.a + m1.d * m2.b,\n\t\tc: m1.a * m2.c + m1.c * m2.d,\n\t\td: m1.b * m2.c + m1.d * m2.d,\n\t\te: m1.a * m2.e + m1.c * m2.f + m1.e,\n\t\tf: m1.b * m2.e + m1.d * m2.f + m1.f\n\t};\n}\nfunction transformPoint(m, x, y) {\n\treturn {\n\t\tx: m.a * x + m.c * y + m.e,\n\t\ty: m.b * x + m.d * y + m.f\n\t};\n}\n/** Materialize into a DOMMatrix for the renderer's transform stack. */\nfunction toDOMMatrix(m) {\n\treturn new DOMMatrix([\n\t\tm.a,\n\t\tm.b,\n\t\tm.c,\n\t\tm.d,\n\t\tm.e,\n\t\tm.f\n\t]);\n}\n/**\n* Layer transform matrix with anchor-aware pivot semantics.\n*\n* The composition node box is drawn at (0, 0, width, height) in local space\n* and positioned at `x`/`y`. `anchorX`/`anchorY` (0–1 fractions of the box)\n* select the pivot point that scale/rotation are applied AROUND:\n*\n* position → pivot → rotate → scale → un-pivot\n*\n* With the default center anchor (0.5, 0.5) a `scale: 2` animation grows the\n* node symmetrically from its middle instead of from its top-left corner.\n* The pivot point itself is invariant under rotation and scale.\n*/\nfunction buildLayerMatrix(params) {\n\tconst ax = params.anchorX ?? .5;\n\tconst ay = params.anchorY ?? .5;\n\tconst px = ax * params.width;\n\tconst py = ay * params.height;\n\tconst uniformScale = params.scale ?? 1;\n\tconst sx = (params.scaleX ?? 1) * uniformScale;\n\tconst sy = (params.scaleY ?? 1) * uniformScale;\n\treturn multiply(translate(params.x, params.y), multiply(translate(px, py), multiply(rotate(params.rotation), multiply(scale(sx, sy), translate(-px, -py)))));\n}\n/**\n* Resolves a layer's 2D world position on the canvas.\n*\n* For top-level layers, this is the layout position + animated translation delta.\n* For children inside a 2D parent container, this inherits the parent container's\n* 2D translation and transformation (parentMatrix).\n*/\nfunction resolveLayer2DPosition(params) {\n\tconst baseX = params.baseX ?? 0;\n\tconst baseY = params.baseY ?? 0;\n\tconst sampledX = params.sampledX ?? baseX;\n\tconst sampledY = params.sampledY ?? baseY;\n\tlet localX = 0;\n\tlet localY = 0;\n\tif (params.rect && params.parentRect) {\n\t\tlocalX = params.rect.x - params.parentRect.x + (sampledX - baseX);\n\t\tlocalY = params.rect.y - params.parentRect.y + (sampledY - baseY);\n\t} else if (params.rect) {\n\t\tlocalX = params.rect.x + (sampledX - baseX);\n\t\tlocalY = params.rect.y + (sampledY - baseY);\n\t} else {\n\t\tlocalX = sampledX;\n\t\tlocalY = sampledY;\n\t}\n\tconst pm = params.parentMatrix;\n\tif (!pm) return {\n\t\tx: localX,\n\t\ty: localY\n\t};\n\tif (\"isIdentity\" in pm && pm.isIdentity) return {\n\t\tx: localX,\n\t\ty: localY\n\t};\n\treturn transformPoint(pm, localX, localY);\n}\n\n//#endregion\n//#region src/renderers/transform3d.ts\nconst Transform3DMath = {\n\tidentity() {\n\t\treturn [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\tmultiply(a, b) {\n\t\tconst out = new Array(16);\n\t\tfor (let row = 0; row < 4; row++) for (let col = 0; col < 4; col++) out[col * 4 + row] = a[0 + row] * b[col * 4 + 0] + a[4 + row] * b[col * 4 + 1] + a[8 + row] * b[col * 4 + 2] + a[12 + row] * b[col * 4 + 3];\n\t\treturn out;\n\t},\n\ttranslate(tx, ty, tz = 0) {\n\t\treturn [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\ttx,\n\t\t\tty,\n\t\t\ttz,\n\t\t\t1\n\t\t];\n\t},\n\tscale(sx, sy, sz = 1) {\n\t\treturn [\n\t\t\tsx,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tsy,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tsz,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\trotateX(rad) {\n\t\tconst c = Math.cos(rad);\n\t\tconst s = Math.sin(rad);\n\t\treturn [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tc,\n\t\t\ts,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-s,\n\t\t\tc,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\trotateY(rad) {\n\t\tconst c = Math.cos(rad);\n\t\tconst s = Math.sin(rad);\n\t\treturn [\n\t\t\tc,\n\t\t\t0,\n\t\t\t-s,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\ts,\n\t\t\t0,\n\t\t\tc,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\trotateZ(rad) {\n\t\tconst c = Math.cos(rad);\n\t\tconst s = Math.sin(rad);\n\t\treturn [\n\t\t\tc,\n\t\t\ts,\n\t\t\t0,\n\t\t\t0,\n\t\t\t-s,\n\t\t\tc,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t];\n\t},\n\tperspective(d) {\n\t\tif (d <= 0) return Transform3DMath.identity();\n\t\tconst m = Transform3DMath.identity();\n\t\tm[11] = -1 / d;\n\t\treturn m;\n\t},\n\tbuildLayer3DMatrix(config) {\n\t\tconst { x, y, width, height, rotateXDeg = 0, rotateYDeg = 0, rotateZDeg = 0, scaleX = 1, scaleY = 1, perspectivePx = 0, originXRatio = .5, originYRatio = .5, translateZPx = 0 } = config;\n\t\tconst pivotX = x + width * originXRatio;\n\t\tconst pivotY = y + height * originYRatio;\n\t\tconst rxRad = rotateXDeg * Math.PI / 180;\n\t\tconst ryRad = rotateYDeg * Math.PI / 180;\n\t\tconst rzRad = rotateZDeg * Math.PI / 180;\n\t\tlet m = Transform3DMath.identity();\n\t\tm = Transform3DMath.multiply(m, Transform3DMath.translate(pivotX, pivotY, 0));\n\t\tif (perspectivePx > 0) m = Transform3DMath.multiply(m, Transform3DMath.perspective(perspectivePx));\n\t\tif (translateZPx !== 0) m = Transform3DMath.multiply(m, Transform3DMath.translate(0, 0, translateZPx));\n\t\tif (rzRad !== 0) m = Transform3DMath.multiply(m, Transform3DMath.rotateZ(rzRad));\n\t\tif (ryRad !== 0) m = Transform3DMath.multiply(m, Transform3DMath.rotateY(ryRad));\n\t\tif (rxRad !== 0) m = Transform3DMath.multiply(m, Transform3DMath.rotateX(rxRad));\n\t\tm = Transform3DMath.multiply(m, Transform3DMath.translate(-width * originXRatio, -height * originYRatio, 0));\n\t\tif (scaleX !== 1 || scaleY !== 1) m = Transform3DMath.multiply(m, Transform3DMath.scale(scaleX, scaleY, 1));\n\t\treturn m;\n\t},\n\tprojectPoint(m, p) {\n\t\tconst x = p.x;\n\t\tconst y = p.y;\n\t\tconst z = p.z;\n\t\tconst X = m[0] * x + m[4] * y + m[8] * z + m[12];\n\t\tconst Y = m[1] * x + m[5] * y + m[9] * z + m[13];\n\t\tconst W = m[3] * x + m[7] * y + m[11] * z + m[15];\n\t\tconst wInv = Math.abs(W) > 1e-6 ? 1 / W : 1;\n\t\treturn {\n\t\t\tx: X * wInv,\n\t\t\ty: Y * wInv\n\t\t};\n\t},\n\tprojectRectangleCorners(matrix, width, height) {\n\t\treturn {\n\t\t\ttopLeft: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t\tz: 0\n\t\t\t}),\n\t\t\ttopRight: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: width,\n\t\t\t\ty: 0,\n\t\t\t\tz: 0\n\t\t\t}),\n\t\t\tbottomLeft: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: 0,\n\t\t\t\ty: height,\n\t\t\t\tz: 0\n\t\t\t}),\n\t\t\tbottomRight: Transform3DMath.projectPoint(matrix, {\n\t\t\t\tx: width,\n\t\t\t\ty: height,\n\t\t\t\tz: 0\n\t\t\t})\n\t\t};\n\t},\n\tcomputeSignedArea(quad) {\n\t\tconst { topLeft: p0, topRight: p1, bottomRight: p2, bottomLeft: p3 } = quad;\n\t\treturn .5 * (p0.x * p1.y - p1.x * p0.y + (p1.x * p2.y - p2.x * p1.y) + (p2.x * p3.y - p3.x * p2.y) + (p3.x * p0.y - p0.x * p3.y));\n\t}\n};\n/**\n* Checks whether a layer operation or compiled stub activates the 3D perspective path.\n*/\nfunction has3DTransform(target, lop) {\n\tconst rx = target?.rotateX ?? lop?.rotateX ?? 0;\n\tconst ry = target?.rotateY ?? lop?.rotateY ?? 0;\n\tconst rz = target?.rotateZ ?? lop?.rotateZ ?? 0;\n\tconst tz = target?.translateZ ?? lop?.translateZ ?? 0;\n\tconst p = target?.perspective ?? lop?.perspective ?? 0;\n\tif (rx !== 0 || ry !== 0 || tz !== 0 || p > 0 && (rx !== 0 || ry !== 0 || tz !== 0 || rz !== 0)) return true;\n\tif (target?.rotateZ !== void 0 && target.rotateZ !== 0 || lop?.rotateZ !== void 0 && lop.rotateZ !== 0) return true;\n\tconst tracks = lop?.animation?.tracks;\n\tif (tracks && tracks.length > 0) {\n\t\tfor (const t of tracks) if (t.prop === \"rotateX\" || t.prop === \"rotateY\" || t.prop === \"rotateZ\" || t.prop === \"translateZ\" || t.prop === \"perspective\") return true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/renderers/webgpu-renderer.ts\nconst meshHasAlpha = /* @__PURE__ */ new WeakMap();\nfunction hasVertexAlpha(mesh) {\n\tconst cached = meshHasAlpha.get(mesh);\n\tif (cached !== void 0) return cached;\n\tconst colors = mesh.colors;\n\tlet transparent = false;\n\tif (colors) {\n\t\tfor (let i = 3; i < colors.length; i += 4) if (colors[i] < 1) {\n\t\t\ttransparent = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tmeshHasAlpha.set(mesh, transparent);\n\treturn transparent;\n}\nconst LAYOUT_PROPS = [\n\t\"width\",\n\t\"height\",\n\t\"gap\",\n\t\"padding\",\n\t\"fontSize\",\n\t\"letterSpacing\"\n];\nconst layoutMemo = /* @__PURE__ */ new WeakMap();\nfunction layoutKey(width, height, targetsById, mediaDims) {\n\tconst parts = [width, height];\n\tfor (const id in targetsById) {\n\t\tconst t = targetsById[id];\n\t\tfor (const k of LAYOUT_PROPS) if (t[k] !== void 0) parts.push(id, k, t[k]);\n\t}\n\tfor (const [id, d] of mediaDims) parts.push(id, d.width, d.height);\n\treturn JSON.stringify(parts);\n}\nconst compositorHomographyWgsl = `\nstruct HomographyUniforms {\n\tmatrix_row0 : vec4<f32>,\n\tmatrix_row1 : vec4<f32>,\n\tmatrix_row2 : vec4<f32>,\n\tparams : vec4<f32>, // params.x = opacity\n};\n\n@group(0) @binding(0) var<uniform> u : HomographyUniforms;\n@group(1) @binding(0) var tex : texture_2d<f32>;\n@group(1) @binding(1) var samp : sampler;\n${FULLSCREEN_QUAD_WGSL}\n\n@fragment fn fs(in : VSOut) -> @location(0) vec4<f32> {\n\tlet x = in.uv.x;\n\tlet y = in.uv.y;\n\n\tlet d = u.matrix_row2.x * x + u.matrix_row2.y * y + u.matrix_row2.z;\n\tif (d <= 1e-6) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet src_u = (u.matrix_row0.x * x + u.matrix_row0.y * y + u.matrix_row0.z) / d;\n\tlet src_v = (u.matrix_row1.x * x + u.matrix_row1.y * y + u.matrix_row1.z) / d;\n\n\tif (src_u < 0.0 || src_u > 1.0 || src_v < 0.0 || src_v > 1.0) {\n\t\treturn vec4<f32>(0.0);\n\t}\n\n\tlet color = textureSampleLevel(tex, samp, vec2<f32>(src_u, src_v), 0.0);\n\treturn color * u.params.x;\n}\n`;\nconst deviceHomographyCache = /* @__PURE__ */ new WeakMap();\nfunction getHomographyResources(device, format) {\n\tlet res = deviceHomographyCache.get(device);\n\tif (!res) {\n\t\tconst uniformLayout = fragmentBindGroupLayout(device, [\"uniform\"]);\n\t\tconst textureLayout = fragmentBindGroupLayout(device, [\"texture\", \"sampler\"]);\n\t\tres = {\n\t\t\tpipeline: createFullscreenPipeline(device, {\n\t\t\t\tlabel: \"CompositorHomographyPipeline\",\n\t\t\t\tmodule: device.createShaderModule({\n\t\t\t\t\tlabel: \"compositor_homography.wgsl\",\n\t\t\t\t\tcode: compositorHomographyWgsl\n\t\t\t\t}),\n\t\t\t\tlayouts: [uniformLayout, textureLayout],\n\t\t\t\tformat,\n\t\t\t\tblend: PREMULTIPLIED_BLEND\n\t\t\t}),\n\t\t\tuniformLayout,\n\t\t\ttextureLayout\n\t\t};\n\t\tdeviceHomographyCache.set(device, res);\n\t}\n\treturn res;\n}\nconst audioTrackLatentCache = /* @__PURE__ */ new Map();\nconst swarmStateMap = /* @__PURE__ */ new WeakMap();\nconst deviceRenderer3DCache = /* @__PURE__ */ new WeakMap();\n/** One Renderer3D per device, target format and MSAA sample count. */\nfunction getRenderer3D(device, format, sampleCount) {\n\tlet byConfig = deviceRenderer3DCache.get(device);\n\tif (!byConfig) {\n\t\tbyConfig = /* @__PURE__ */ new Map();\n\t\tdeviceRenderer3DCache.set(device, byConfig);\n\t}\n\tconst key = `${format}|${sampleCount}`;\n\tlet r3d = byConfig.get(key);\n\tif (!r3d) {\n\t\tr3d = new Renderer3D(device, format, sampleCount);\n\t\tbyConfig.set(key, r3d);\n\t}\n\treturn r3d;\n}\nconst deviceRelightPipelineCache = /* @__PURE__ */ new WeakMap();\nfunction getScreenSpaceRelightPipeline(device, format) {\n\tlet relight = deviceRelightPipelineCache.get(device);\n\tif (!relight || relight.format !== format) {\n\t\trelight = new ScreenSpaceRelightPipeline(device, format);\n\t\tdeviceRelightPipelineCache.set(device, relight);\n\t}\n\treturn relight;\n}\nconst deviceDeflickerPipelineCache = /* @__PURE__ */ new WeakMap();\nfunction getTemporalDeflickerPipeline(device, layerKey) {\n\tlet map = deviceDeflickerPipelineCache.get(device);\n\tif (!map) {\n\t\tmap = /* @__PURE__ */ new Map();\n\t\tdeviceDeflickerPipelineCache.set(device, map);\n\t}\n\tlet pipe = map.get(layerKey);\n\tif (!pipe) {\n\t\tpipe = new TemporalDeflickerPipeline(device);\n\t\tmap.set(layerKey, pipe);\n\t}\n\treturn pipe;\n}\nfunction synthesizeRelightLights(relightOpts, sceneLights, bounds, shiftedFrame, fps) {\n\tif (sceneLights.length > 0 || relightOpts.lightType === void 0 && relightOpts.intensity === void 0 && relightOpts.lightPosX === void 0) return sceneLights;\n\tconst lightTypeStr = String(relightOpts.lightType ?? \"point\").toLowerCase();\n\tconst lightKind = lightTypeStr === \"directional\" ? \"directional\" : lightTypeStr === \"spot\" ? \"spot\" : \"point\";\n\tconst intensity = resolveFrameNumber(relightOpts.intensity ?? 1, 1, shiftedFrame, fps);\n\tconst normX = resolveFrameNumber(relightOpts.lightPosX, .5, shiftedFrame, fps);\n\tconst normY = resolveFrameNumber(relightOpts.lightPosY, .5, shiftedFrame, fps);\n\tconst normZ = resolveFrameNumber(relightOpts.lightPosZ, .25, shiftedFrame, fps);\n\tconst normRadius = resolveFrameNumber(relightOpts.lightRadius, .75, shiftedFrame, fps);\n\tconst lightX = bounds.x + normX * bounds.width;\n\tconst lightY = bounds.y + normY * bounds.height;\n\tconst lightZ = normZ * Math.max(bounds.width, bounds.height);\n\tconst lightRadius = normRadius * Math.max(bounds.width, bounds.height);\n\tconst synthLight = {\n\t\tlightType: lightKind,\n\t\tcolor: relightOpts.lightColor ?? \"#ffffff\",\n\t\tintensity,\n\t\tx: lightX,\n\t\ty: lightY,\n\t\tz: lightZ,\n\t\tradius: lightRadius,\n\t\tdecay: 1\n\t};\n\tconst ambientInt = resolveFrameNumber(relightOpts.ambientIntensity, .15, shiftedFrame, fps);\n\treturn [{\n\t\tlightType: \"ambient\",\n\t\tcolor: relightOpts.ambientColor ?? \"#ffffff\",\n\t\tintensity: ambientInt\n\t}, synthLight];\n}\nfunction drawProjectedQuad(ctx, encoder, destView, sourceTex, quad, destWidth, destHeight, opacity) {\n\tif (Math.abs(Transform3DMath.computeSignedArea(quad)) < 1e-4) return;\n\tconst minX = Math.max(0, Math.min(destWidth, Math.floor(Math.min(quad.topLeft.x, quad.topRight.x, quad.bottomLeft.x, quad.bottomRight.x))));\n\tconst minY = Math.max(0, Math.min(destHeight, Math.floor(Math.min(quad.topLeft.y, quad.topRight.y, quad.bottomLeft.y, quad.bottomRight.y))));\n\tconst maxX = Math.max(0, Math.min(destWidth, Math.ceil(Math.max(quad.topLeft.x, quad.topRight.x, quad.bottomLeft.x, quad.bottomRight.x))));\n\tconst maxY = Math.max(0, Math.min(destHeight, Math.ceil(Math.max(quad.topLeft.y, quad.topRight.y, quad.bottomLeft.y, quad.bottomRight.y))));\n\tconst scissorW = maxX - minX;\n\tconst scissorH = maxY - minY;\n\tif (scissorW <= 0 || scissorH <= 0) return;\n\tconst h = solveHomography([\n\t\t{\n\t\t\tx: quad.topLeft.x / destWidth,\n\t\t\ty: quad.topLeft.y / destHeight\n\t\t},\n\t\t{\n\t\t\tx: quad.topRight.x / destWidth,\n\t\t\ty: quad.topRight.y / destHeight\n\t\t},\n\t\t{\n\t\t\tx: quad.bottomLeft.x / destWidth,\n\t\t\ty: quad.bottomLeft.y / destHeight\n\t\t},\n\t\t{\n\t\t\tx: quad.bottomRight.x / destWidth,\n\t\t\ty: quad.bottomRight.y / destHeight\n\t\t}\n\t]);\n\tfor (const val of h) if (!Number.isFinite(val)) return;\n\tconst uniformData = new Float32Array(16);\n\tuniformData[0] = h[0];\n\tuniformData[1] = h[1];\n\tuniformData[2] = h[2];\n\tuniformData[3] = 0;\n\tuniformData[4] = h[3];\n\tuniformData[5] = h[4];\n\tuniformData[6] = h[5];\n\tuniformData[7] = 0;\n\tuniformData[8] = h[6];\n\tuniformData[9] = h[7];\n\tuniformData[10] = h[8];\n\tuniformData[11] = 0;\n\tuniformData[12] = opacity;\n\tuniformData[13] = 0;\n\tuniformData[14] = 0;\n\tuniformData[15] = 0;\n\tconst { pipeline, uniformLayout, textureLayout } = getHomographyResources(ctx.device, ctx.renderer.format);\n\tconst sampler = ctx.renderer.samplerCache.getSampler(ctx.device);\n\tconst uniformBuffer = ctx.renderer.getTemporaryBuffer(uniformData);\n\tconst uniformBindGroup = ctx.device.createBindGroup({\n\t\tlayout: uniformLayout,\n\t\tentries: [{\n\t\t\tbinding: 0,\n\t\t\tresource: { buffer: uniformBuffer }\n\t\t}]\n\t});\n\tconst textureBindGroup = ctx.renderer.bindGroupCache.getBindGroup(ctx.device, textureLayout, sourceTex, sampler);\n\tconst renderPass = encoder.beginRenderPass({ colorAttachments: [{\n\t\tview: destView,\n\t\tloadOp: \"load\",\n\t\tstoreOp: \"store\"\n\t}] });\n\trenderPass.setPipeline(pipeline);\n\trenderPass.setScissorRect(minX, minY, scissorW, scissorH);\n\trenderPass.setBindGroup(0, uniformBindGroup);\n\trenderPass.setBindGroup(1, textureBindGroup);\n\trenderPass.draw(4);\n\trenderPass.end();\n}\n/**\n* Emissive and shadow participation for a 3D draw: animated values first,\n* then the node's own, then (meshes) the model file's material.\n*/\nfunction surfaceProps(target, lop, mat) {\n\tconst toSrgb = (v) => v <= .0031308 ? 12.92 * v : 1.055 * v ** (1 / 2.4) - .055;\n\tconst emissive = target?.emissive ?? lop.emissive ?? (mat?.emissive ? [\n\t\ttoSrgb(mat.emissive[0]),\n\t\ttoSrgb(mat.emissive[1]),\n\t\ttoSrgb(mat.emissive[2])\n\t] : void 0);\n\tconst out = {};\n\tif (emissive !== void 0) {\n\t\tout.emissive = emissive;\n\t\tout.emissiveIntensity = target?.emissiveIntensity ?? lop.emissiveIntensity ?? mat?.emissiveStrength ?? 1;\n\t}\n\tif (lop.castShadow !== void 0) out.castShadow = lop.castShadow;\n\treturn out;\n}\nfunction computeContainerScissor(matrix, width, height) {\n\tconst corners = [\n\t\tmatrix.transformPoint(new DOMPoint(0, 0)),\n\t\tmatrix.transformPoint(new DOMPoint(width, 0)),\n\t\tmatrix.transformPoint(new DOMPoint(0, height)),\n\t\tmatrix.transformPoint(new DOMPoint(width, height))\n\t];\n\tconst xs = corners.map((p) => p.x);\n\tconst ys = corners.map((p) => p.y);\n\tconst minX = Math.min(...xs);\n\tconst minY = Math.min(...ys);\n\tconst maxX = Math.max(...xs);\n\tconst maxY = Math.max(...ys);\n\treturn {\n\t\tx: Math.round(minX),\n\t\ty: Math.round(minY),\n\t\twidth: Math.max(0, Math.round(maxX - minX)),\n\t\theight: Math.max(0, Math.round(maxY - minY))\n\t};\n}\n/**\n* How far a layer's effects draw past its pixels, px: the sum of what each\n* effect's renderer declares (`reach`), or null as soon as one doesn't\n* (it then runs over the whole target, as any effect may need to).\n*/\nfunction effectsReach(effects) {\n\tlet reach = 0;\n\tfor (const e of effects) {\n\t\tconst op = e && typeof e.toOperation === \"function\" ? e.toOperation() : e;\n\t\tconst r = op ? effectReach(op) : null;\n\t\tif (r === null) return null;\n\t\treach += r;\n\t}\n\treturn reach;\n}\nfunction quatFromEulerAngles(rx, ry, rz) {\n\tconst DEG = Math.PI / 180;\n\tconst halfX = rx * DEG / 2;\n\tconst halfY = ry * DEG / 2;\n\tconst halfZ = rz * DEG / 2;\n\tconst cx = Math.cos(halfX);\n\tconst sx = Math.sin(halfX);\n\tconst cy = Math.cos(halfY);\n\tconst sy = Math.sin(halfY);\n\tconst cz = Math.cos(halfZ);\n\tconst sz = Math.sin(halfZ);\n\treturn [\n\t\tcz * cy * sx - sz * sy * cx,\n\t\tcz * sy * cx + sz * cy * sx,\n\t\tsz * cy * cx - cz * sy * sx,\n\t\tcz * cy * cx + sz * sy * sx\n\t];\n}\nfunction sampleColorRamp(ramp, factor) {\n\tif (!Array.isArray(ramp) || ramp.length === 0) {\n\t\tconst p = parseColor(ramp || \"#ffffff\") ?? {\n\t\t\tr: 1,\n\t\t\tg: 1,\n\t\t\tb: 1\n\t\t};\n\t\treturn [\n\t\t\tp.r,\n\t\t\tp.g,\n\t\t\tp.b\n\t\t];\n\t}\n\tif (ramp.length === 1) {\n\t\tconst p = parseColor(ramp[0]) ?? {\n\t\t\tr: 1,\n\t\t\tg: 1,\n\t\t\tb: 1\n\t\t};\n\t\treturn [\n\t\t\tp.r,\n\t\t\tp.g,\n\t\t\tp.b\n\t\t];\n\t}\n\tconst t = Math.max(0, Math.min(1, factor)) * (ramp.length - 1);\n\tconst idx = Math.min(Math.floor(t), ramp.length - 2);\n\tconst frac = t - idx;\n\tconst c0 = parseColor(ramp[idx]) ?? {\n\t\tr: 1,\n\t\tg: 1,\n\t\tb: 1\n\t};\n\tconst c1 = parseColor(ramp[idx + 1]) ?? {\n\t\tr: 1,\n\t\tg: 1,\n\t\tb: 1\n\t};\n\treturn [\n\t\tc0.r + (c1.r - c0.r) * frac,\n\t\tc0.g + (c1.g - c0.g) * frac,\n\t\tc0.b + (c1.b - c0.b) * frac\n\t];\n}\nfunction expandRect(r, by) {\n\treturn {\n\t\tx: r.x - by,\n\t\ty: r.y - by,\n\t\twidth: r.width + by * 2,\n\t\theight: r.height + by * 2\n\t};\n}\n/** `r` within a `width` × `height` target, in whole pixels; null when nothing is left. */\nfunction clampRect(r, width, height) {\n\tconst x0 = Math.max(0, Math.floor(r.x));\n\tconst y0 = Math.max(0, Math.floor(r.y));\n\tconst x1 = Math.min(width, Math.ceil(r.x + r.width));\n\tconst y1 = Math.min(height, Math.ceil(r.y + r.height));\n\treturn x1 > x0 && y1 > y0 ? {\n\t\tx: x0,\n\t\ty: y0,\n\t\twidth: x1 - x0,\n\t\theight: y1 - y0\n\t} : null;\n}\n/**\n* `applyLayerEffects` over `region` of a full-target texture only: the\n* region is cut out, its effects run at its size, and the result lands back\n* at its place in a full-target texture. Without a region (or when it is\n* most of the target) the effects run over the whole texture.\n*/\nasync function applyLayerEffectsInRegion(region, effects, sourceTex, width, height, ctx, encoder, props, drawChild, excludes, shiftedFrame, compositionFrame, fps, isVideoMode, layerId) {\n\tconst run = (tex, w, h, ex) => applyLayerEffects(effects, tex, w, h, ctx, encoder, props, drawChild, ex, shiftedFrame, compositionFrame, fps, isVideoMode, layerId);\n\tif (!region || region.width * region.height > width * height * .6) return run(sourceTex, width, height, excludes);\n\tconst blit = (dest, w, h, src, at) => {\n\t\tconst pass = ctx.renderer.beginFrame(encoder, dest.createView(), {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, w, h, \"clear\");\n\t\tctx.renderer.pushScissor({\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: w,\n\t\t\theight: h\n\t\t});\n\t\tctx.renderer.pushIdentity();\n\t\tctx.renderer.drawTexture(pass, src, at, { opacity: 1 });\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t\tpass.end();\n\t};\n\tconst cut = ctx.renderer.getTemporaryTexture(region.width, region.height, [sourceTex, ...excludes]);\n\tblit(cut, region.width, region.height, sourceTex, {\n\t\tx: -region.x,\n\t\ty: -region.y,\n\t\twidth,\n\t\theight\n\t});\n\tconst fx = await run(cut, region.width, region.height, [\n\t\tsourceTex,\n\t\tcut,\n\t\t...excludes\n\t]);\n\tconst out = ctx.renderer.getTemporaryTexture(width, height, [\n\t\tfx.texture,\n\t\tsourceTex,\n\t\tcut,\n\t\t...excludes\n\t]);\n\tblit(out, width, height, fx.texture, region);\n\treturn {\n\t\ttexture: out,\n\t\tview: out.createView()\n\t};\n}\nasync function applyLayerEffects(effects, sourceTex, width, height, ctx, encoder, props, drawChild, excludes, shiftedFrame, compositionFrame, fps, isVideoMode, layerId) {\n\tconst remainingEffects = effects.filter((e) => {\n\t\tif (!e || typeof e !== \"object\") return false;\n\t\tconst op = e?.op;\n\t\tconst name = e?.constructor?.name;\n\t\tif (op === \"TemporalDeflicker\" || op === \"Deflicker\" || op === \"Relight3D\" || name === \"TemporalDeflicker\" || name === \"Relight3D\") return false;\n\t\treturn true;\n\t});\n\tif (remainingEffects.length === 0) return {\n\t\ttexture: sourceTex,\n\t\tview: sourceTex.createView()\n\t};\n\tlet currentMedia = {\n\t\tmetadata: {\n\t\t\twidth,\n\t\t\theight\n\t\t},\n\t\toperation: {\n\t\t\top: \"TextureSource\",\n\t\t\tsourceTexture: sourceTex,\n\t\t\tdataType: \"Image\"\n\t\t},\n\t\tchildren: []\n\t};\n\tfor (let i = 0; i < remainingEffects.length; i++) {\n\t\tconst eff = remainingEffects[i];\n\t\tconst effOp = eff && typeof eff.toOperation === \"function\" ? eff.toOperation() : eff;\n\t\tconst opName = String(effOp.op ?? \"effect\");\n\t\tcurrentMedia = {\n\t\t\tmetadata: {\n\t\t\t\twidth,\n\t\t\t\theight\n\t\t\t},\n\t\t\toperation: {\n\t\t\t\top: opName,\n\t\t\t\tid: `${layerId}-${opName}_${i}`,\n\t\t\t\teffect: eff,\n\t\t\t\t...effOp,\n\t\t\t\tdataType: \"Image\"\n\t\t\t},\n\t\t\tchildren: [currentMedia]\n\t\t};\n\t}\n\tconst outTex = ctx.renderer.getTemporaryTexture(width, height, [sourceTex, ...excludes]);\n\tconst outView = outTex.createView();\n\tctx.renderer.beginFrame(encoder, outView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, width, height, \"clear\").end();\n\tctx.renderer.pushScissor({\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth,\n\t\theight\n\t});\n\tctx.renderer.pushIdentity();\n\ttry {\n\t\tawait drawChild(currentMedia, {\n\t\t\t...props,\n\t\t\tcontainerWidth: width,\n\t\t\tcontainerHeight: height,\n\t\t\trenderId: `${props.renderId}-${layerId}-fx`,\n\t\t\tframe: shiftedFrame,\n\t\t\tcompositionFrame,\n\t\t\tfps,\n\t\t\tisVideoMode,\n\t\t\tsignals: props.signals,\n\t\t\texcludeTextures: [\n\t\t\t\tsourceTex,\n\t\t\t\toutTex,\n\t\t\t\t...excludes\n\t\t\t]\n\t\t}, outView, outTex, width, height);\n\t} finally {\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t}\n\treturn {\n\t\ttexture: outTex,\n\t\tview: outView\n\t};\n}\nconst CompositorWebGPURenderer = async (args) => {\n\tconst { ctx, pass, targetView, targetTexture, targetWidth, targetHeight, encoder, props, drawChild } = args;\n\tconst { virtualMedia, fps, frame } = props;\n\tconst op = virtualMedia.operation;\n\tif (!op) return;\n\tpass.end();\n\tif (op.op === \"CompositorLayer\") {\n\t\tconsole.warn(\"CompositorWebGPURenderer called directly with legacy CompositorLayer operation. This is a bug.\");\n\t\targs.pass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\treturn;\n\t}\n\tif (op.op === \"Compositor\") {\n\t\tconst vop = op;\n\t\tconst sampleCount3d = vop.antialias3d === false ? 1 : 4;\n\t\tconst containerWidth = props.containerWidth ?? ctx.surface.width;\n\t\tconst containerHeight = props.containerHeight ?? ctx.surface.height;\n\t\tconst nativeWidth = vop.width ?? containerWidth;\n\t\tconst nativeHeight = vop.height ?? containerHeight;\n\t\tconst opacity = typeof vop.opacity === \"number\" ? vop.opacity : 1;\n\t\tconst isVideoMode = props.isVideoMode ?? (vop.mode === \"Video\" || vop.dataType === \"Video\" || virtualMedia?.metadata?.durationMs != null);\n\t\tconst inheritedSeekOffset = props.inheritedSeekOffset ?? 0;\n\t\tconst shiftedFrame = Math.max(0, frame != null && fps != null ? frame + Math.round(inheritedSeekOffset * fps) : frame ?? 0);\n\t\tconst compositionFrame = props.compositionFrame ?? shiftedFrame;\n\t\tconst compTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [...props.excludeTextures || [], targetTexture]);\n\t\tconst compView = compTex.createView();\n\t\tconst composeDuration = virtualMedia?.metadata?.durationMs ?? DEFAULT_DURATION_MS;\n\t\tconst durationSec = composeDuration / 1e3;\n\t\tconst compiled = compileTimeline(props.renderId, virtualMedia, {\n\t\t\tfps: fps ?? 24,\n\t\t\tdurationSec\n\t\t});\n\t\tconst { targetsById } = compiled;\n\t\tseekTimeline(compiled, shiftedFrame, fps ?? 24);\n\t\tgetRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d).resetPools();\n\t\tgetScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? \"rgba8unorm\").resetPools();\n\t\tconst clearColor = parseColor(vop.backgroundColor);\n\t\tctx.renderer.beginFrame(encoder, compView, clearColor, nativeWidth, nativeHeight, \"clear\").end();\n\t\tlet currentCompTex = compTex;\n\t\tctx.renderer.pushScissor({\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: nativeWidth,\n\t\t\theight: nativeHeight\n\t\t});\n\t\tctx.renderer.pushIdentity();\n\t\tawait initLayout();\n\t\tconst mediaDims = /* @__PURE__ */ new Map();\n\t\tfor (const vm of collectNodeOps(virtualMedia.children)) {\n\t\t\tconst lop = vm.operation;\n\t\t\tif (lop.kind === \"media\") {\n\t\t\t\tconst meta = getActiveMediaMetadata(vm.children?.[0]);\n\t\t\t\tif (meta?.width && meta?.height) mediaDims.set(lop.id, {\n\t\t\t\t\twidth: meta.width,\n\t\t\t\t\theight: meta.height\n\t\t\t\t});\n\t\t\t\telse if (lop.dataType === \"Caption\" || (vm.children?.[0]?.operation)?.dataType === \"Caption\" || (vm.children?.[0]?.operation)?.srtText !== void 0) {\n\t\t\t\t\tconst lopWidth = targetsById[lop.id]?.width ?? lop.width;\n\t\t\t\t\tconst autoWidth = typeof lopWidth === \"number\" ? lopWidth : Math.round(nativeWidth * .8);\n\t\t\t\t\tconst lopHeight = targetsById[lop.id]?.height ?? lop.height;\n\t\t\t\t\tlet autoHeight = typeof lopHeight === \"number\" ? lopHeight : 160;\n\t\t\t\t\tconst contentVM = vm.children?.[0];\n\t\t\t\t\tconst src = resolveMediaSourceUrl(contentVM) ?? (contentVM?.operation)?.url ?? (contentVM?.operation)?.src ?? (contentVM?.operation)?.srtText ?? lop.src ?? lop.url;\n\t\t\t\t\tif (typeof lopHeight !== \"number\" && src) try {\n\t\t\t\t\t\tconst captions = await srtLoader.load(src);\n\t\t\t\t\t\tif (captions && captions.length > 0) autoHeight = measureMaxCaptionHeight(captions, lop, autoWidth);\n\t\t\t\t\t} catch {}\n\t\t\t\t\tmediaDims.set(lop.id, {\n\t\t\t\t\t\twidth: autoWidth,\n\t\t\t\t\t\theight: autoHeight\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst frameResolveNode = (vm) => {\n\t\t\tconst lop = vm?.operation ?? {};\n\t\t\tconst target = targetsById[lop.id];\n\t\t\tconst pick = (k) => target && target[k] !== void 0 ? target[k] : lop[k];\n\t\t\tconst node = {\n\t\t\t\t...lop,\n\t\t\t\twidth: pick(\"width\"),\n\t\t\t\theight: pick(\"height\"),\n\t\t\t\tgap: pick(\"gap\"),\n\t\t\t\tpadding: pick(\"padding\"),\n\t\t\t\tfontSize: pick(\"fontSize\"),\n\t\t\t\tletterSpacing: pick(\"letterSpacing\")\n\t\t\t};\n\t\t\tnode.children = (vm?.children ?? []).map(frameResolveNode);\n\t\t\tif (!node.children.length) node.children = void 0;\n\t\t\treturn node;\n\t\t};\n\t\tconst layoutRoots = () => (virtualMedia.children ?? []).map(frameResolveNode).filter((node) => node?.kind !== \"camera\" && node?.kind !== \"light\");\n\t\tconst memoTree = virtualMedia.children;\n\t\tconst memoKey = layoutKey(nativeWidth, nativeHeight, targetsById, mediaDims);\n\t\tconst memo = memoTree ? layoutMemo.get(memoTree) : void 0;\n\t\tconst { rects } = memo?.key === memoKey ? memo : await computeLayout({\n\t\t\tlayout: layoutRoots(),\n\t\t\tviewport: {\n\t\t\t\twidth: nativeWidth,\n\t\t\t\theight: nativeHeight\n\t\t\t},\n\t\t\tmeasure: (node, constraintWidth) => {\n\t\t\t\tif (node.kind === \"text\") {\n\t\t\t\t\tconst textStyle = {\n\t\t\t\t\t\tfontSize: node.fontSize ?? 48,\n\t\t\t\t\t\tfontWeight: node.fontWeight,\n\t\t\t\t\t\tfontFamily: node.fontFamily,\n\t\t\t\t\t\tletterSpacing: node.letterSpacing,\n\t\t\t\t\t\tlineHeight: node.lineHeight,\n\t\t\t\t\t\tpadding: node.padding,\n\t\t\t\t\t\tdirection: node.direction\n\t\t\t\t\t};\n\t\t\t\t\tif (constraintWidth !== void 0) {\n\t\t\t\t\t\tconst isAuto = typeof node.width !== \"number\";\n\t\t\t\t\t\tconst wrapped$1 = measureText(node.text ?? \"\", {\n\t\t\t\t\t\t\t...textStyle,\n\t\t\t\t\t\t\twidth: isAuto ? void 0 : constraintWidth,\n\t\t\t\t\t\t\tkeepNaturalWidth: true\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: isAuto ? Math.ceil(wrapped$1.width) : Math.min(constraintWidth, Math.ceil(wrapped$1.width)),\n\t\t\t\t\t\t\theight: Math.ceil(wrapped$1.height)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tconst natural = measureText(node.text ?? \"\", textStyle);\n\t\t\t\t\tif (typeof node.width !== \"number\") return {\n\t\t\t\t\t\twidth: Math.ceil(natural.width),\n\t\t\t\t\t\theight: Math.ceil(natural.height)\n\t\t\t\t\t};\n\t\t\t\t\tconst wrapped = measureText(node.text ?? \"\", {\n\t\t\t\t\t\t...textStyle,\n\t\t\t\t\t\twidth: node.width\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: Math.ceil(wrapped.width),\n\t\t\t\t\t\theight: Math.ceil(wrapped.height)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (node.kind === \"media\") return mediaDims.get(node.id) ?? null;\n\t\t\t\treturn null;\n\t\t\t}\n\t\t});\n\t\tif (memoTree && memo?.key !== memoKey) layoutMemo.set(memoTree, {\n\t\t\tkey: memoKey,\n\t\t\trects\n\t\t});\n\t\tconst allNodeOps = collectNodeOps(virtualMedia.children ?? []);\n\t\tconst cameraVMs = allNodeOps.filter((vm) => vm.operation?.kind === \"camera\");\n\t\tconst cameraVM = isVideoMode ? cameraVMs.filter((vm) => {\n\t\t\tconst op$1 = vm.operation;\n\t\t\tconst start = op$1.startFrame ?? 0;\n\t\t\tconst dur = op$1.durationFrames;\n\t\t\treturn shiftedFrame >= start && (dur === void 0 || shiftedFrame < start + dur);\n\t\t}).sort((a, b) => (b.operation.startFrame ?? 0) - (a.operation.startFrame ?? 0))[0] : cameraVMs[0];\n\t\tconst lightVMs = allNodeOps.filter((vm) => vm.operation?.kind === \"light\");\n\t\tconst has3DLayer = allNodeOps.some((vm) => {\n\t\t\tconst lop = vm.operation;\n\t\t\tconst target = lop.id ? targetsById[lop.id] : void 0;\n\t\t\treturn lop.kind !== \"camera\" && lop.kind !== \"light\" && (Boolean(target?.is3D ?? lop.is3D) || (target?.z ?? lop.z ?? 0) !== 0);\n\t\t});\n\t\tconst is3DScene = Boolean(cameraVM || has3DLayer || lightVMs.length > 0);\n\t\tlet camera = null;\n\t\tlet dofEnabled = false;\n\t\tconst sceneLights = [];\n\t\tlet sceneEnvironment = null;\n\t\tlet sceneBloom = null;\n\t\tlet shadowMapSize;\n\t\tif (is3DScene) {\n\t\t\tconst camOp = cameraVM?.operation;\n\t\t\tconst camStub = camOp?.id ? targetsById[camOp.id] : void 0;\n\t\t\tconst fov = camStub?.cameraFov ?? camOp?.lens?.fov ?? 50;\n\t\t\tcamera = Camera3D.createDefaultCamera(nativeWidth, nativeHeight, fov);\n\t\t\tcamera.near = camOp?.lens?.near ?? 1;\n\t\t\tcamera.far = camOp?.lens?.far ?? 5e4;\n\t\t\tcamera.zoom = camStub?.cameraZoom ?? camOp?.lens?.zoom ?? 1;\n\t\t\tconst defaultEye = camera.eye;\n\t\t\tconst defaultTarget = camera.target;\n\t\t\tconst eyeX = camStub?.cameraX ?? camStub?.x ?? camOp?.x ?? defaultEye[0];\n\t\t\tconst eyeY = camStub?.cameraY ?? camStub?.y ?? camOp?.y ?? defaultEye[1];\n\t\t\tconst eyeZ = camStub?.cameraZ ?? camStub?.z ?? camOp?.z ?? defaultEye[2];\n\t\t\tcamera.eye = [\n\t\t\t\teyeX,\n\t\t\t\teyeY,\n\t\t\t\teyeZ\n\t\t\t];\n\t\t\tif (camStub?.targetX !== void 0 || camStub?.targetY !== void 0 || camStub?.targetZ !== void 0 || camOp?.targetX !== void 0 || camOp?.targetY !== void 0 || camOp?.targetZ !== void 0) camera.target = [\n\t\t\t\tcamStub?.targetX ?? camOp?.targetX ?? defaultTarget[0],\n\t\t\t\tcamStub?.targetY ?? camOp?.targetY ?? defaultTarget[1],\n\t\t\t\tcamStub?.targetZ ?? camOp?.targetZ ?? defaultTarget[2]\n\t\t\t];\n\t\t\telse camera.target = [\n\t\t\t\teyeX,\n\t\t\t\teyeY,\n\t\t\t\t0\n\t\t\t];\n\t\t\tconst pitch = camStub?.cameraPitch ?? camOp?.pitch ?? 0;\n\t\t\tconst yaw = camStub?.cameraYaw ?? camOp?.yaw ?? 0;\n\t\t\tconst roll = camStub?.cameraRoll ?? camOp?.roll ?? 0;\n\t\t\tif (pitch !== 0 || yaw !== 0 || roll !== 0) camera = Camera3D.applyOrientation(camera, pitch, yaw, roll);\n\t\t\tconst orbitAzimuth = camStub?.orbitAzimuth;\n\t\t\tconst orbitElevation = camStub?.orbitElevation;\n\t\t\tconst orbitRadius = camStub?.orbitRadius;\n\t\t\tif (orbitAzimuth !== void 0 || orbitElevation !== void 0 || orbitRadius !== void 0) {\n\t\t\t\tconst radius = orbitRadius ?? Vector3Math.distance(camera.eye, camera.target);\n\t\t\t\tcamera.eye = Camera3D.orbit(camera.target, radius, orbitAzimuth ?? 0, orbitElevation ?? 0);\n\t\t\t}\n\t\t\tconst shakeTrans = camStub?.shakeTranslation ?? (camOp?.shake?.enabled ? camOp?.shake?.translationAmplitude : 0) ?? 0;\n\t\t\tconst shakeRot = camStub?.shakeRotation ?? (camOp?.shake?.enabled ? camOp?.shake?.rotationAmplitude : 0) ?? 0;\n\t\t\tif (shakeTrans > 0 || shakeRot > 0) {\n\t\t\t\tconst t = shiftedFrame / (fps ?? 24);\n\t\t\t\tcamera = Camera3D.applyCameraShake(camera, t, {\n\t\t\t\t\ttranslationAmplitude: shakeTrans,\n\t\t\t\t\trotationAmplitude: shakeRot,\n\t\t\t\t\tfrequency: camOp?.shake?.frequency ?? 1.5,\n\t\t\t\t\toctaves: camOp?.shake?.octaves ?? 3,\n\t\t\t\t\tseed: camOp?.shake?.seed ?? 42\n\t\t\t\t});\n\t\t\t}\n\t\t\tdofEnabled = Boolean(camOp?.dof?.enabled || camStub?.focusDistance !== void 0);\n\t\t\tif (dofEnabled) {\n\t\t\t\tcamera.focusDistance = camStub?.focusDistance ?? camOp?.dof?.focusDistance ?? Vector3Math.distance(camera.eye, camera.target);\n\t\t\t\tcamera.fStop = camStub?.fStop ?? camOp?.dof?.fStop ?? 2.8;\n\t\t\t\tcamera.maxBlurRadius = camStub?.maxBlurRadius ?? camOp?.dof?.maxBlurRadius ?? 24;\n\t\t\t}\n\t\t\tfor (const lvm of lightVMs) {\n\t\t\t\tconst lop = lvm.operation;\n\t\t\t\tconst targetId = lop.id || lop.inputHandleId;\n\t\t\t\tconst target = targetId ? targetsById[targetId] : void 0;\n\t\t\t\tif (target?.hidden || lop.hidden) continue;\n\t\t\t\tif (isVideoMode) {\n\t\t\t\t\tconst startFrame = lop.startFrame ?? 0;\n\t\t\t\t\tconst durationFrames = lop.durationFrames;\n\t\t\t\t\tif (shiftedFrame < startFrame) continue;\n\t\t\t\t\tif (durationFrames !== void 0 && shiftedFrame >= startFrame + durationFrames) continue;\n\t\t\t\t}\n\t\t\t\tconst lightType = target?.lightType ?? lop.lightType ?? \"point\";\n\t\t\t\tif (lightType === \"environment\") {\n\t\t\t\t\tconst intensity$1 = target?.intensity ?? lop.intensity;\n\t\t\t\t\tsceneEnvironment = {\n\t\t\t\t\t\tpreset: lop.preset,\n\t\t\t\t\t\ttop: lop.top,\n\t\t\t\t\t\thorizon: lop.horizon,\n\t\t\t\t\t\tbottom: lop.bottom,\n\t\t\t\t\t\tsoftboxes: target?.softboxes ?? lop.softboxes,\n\t\t\t\t\t\trotation: target?.rotation ?? lop.rotation,\n\t\t\t\t\t\texposure: target?.exposure ?? lop.exposure,\n\t\t\t\t\t\ttoneMapping: lop.toneMapping,\n\t\t\t\t\t\tfog: lop.fog,\n\t\t\t\t\t\tfloor: lop.floor,\n\t\t\t\t\t\t...intensity$1 !== void 0 && { intensity: intensity$1 }\n\t\t\t\t\t};\n\t\t\t\t\tsceneBloom = lop.bloom === true ? {} : lop.bloom && typeof lop.bloom === \"object\" ? { ...lop.bloom } : null;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst color = parseColor(target?.color ?? lop.color ?? \"#ffffff\");\n\t\t\t\tconst intensity = target?.intensity ?? lop.intensity ?? 1;\n\t\t\t\tconst x = target?.x ?? lop.x ?? 0;\n\t\t\t\tconst y = target?.y ?? lop.y ?? 0;\n\t\t\t\tconst z = target?.z ?? lop.z ?? 0;\n\t\t\t\tconst targetX = target?.targetX ?? lop.targetX ?? 0;\n\t\t\t\tconst targetY = target?.targetY ?? lop.targetY ?? 0;\n\t\t\t\tconst targetZ = target?.targetZ ?? lop.targetZ ?? 0;\n\t\t\t\tconst radius = target?.radius ?? lop.radius ?? 1e3;\n\t\t\t\tconst angle = target?.angle ?? lop.angle ?? 45;\n\t\t\t\tconst penumbra = target?.penumbra ?? lop.penumbra ?? .2;\n\t\t\t\tconst decay = target?.decay ?? lop.decay ?? 1;\n\t\t\t\tsceneLights.push({\n\t\t\t\t\ttype: lightType,\n\t\t\t\t\tcolor,\n\t\t\t\t\tintensity,\n\t\t\t\t\tposition: [\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t\tz\n\t\t\t\t\t],\n\t\t\t\t\ttarget: [\n\t\t\t\t\t\ttargetX,\n\t\t\t\t\t\ttargetY,\n\t\t\t\t\t\ttargetZ\n\t\t\t\t\t],\n\t\t\t\t\tradius,\n\t\t\t\t\tangle,\n\t\t\t\t\tpenumbra,\n\t\t\t\t\tdecay,\n\t\t\t\t\tcastShadow: Boolean(lop.castShadow),\n\t\t\t\t\tshadowSoftness: target?.shadowSoftness ?? lop.shadowSoftness,\n\t\t\t\t\tshadowDarkness: target?.shadowDarkness ?? lop.shadowDarkness\n\t\t\t\t});\n\t\t\t\tif (lop.castShadow && lop.shadowMapSize) shadowMapSize = lop.shadowMapSize;\n\t\t\t}\n\t\t}\n\t\tconst pending3DItems = [];\n\t\t/** Textures the queued 3D items still read: their layers and mattes. */\n\t\tconst pendingTextures = () => pending3DItems.flatMap((q) => [q.texture, q.opts.matte]).filter((t) => Boolean(t));\n\t\tconst flush3DPass = (curTex, curView, curExcludes) => {\n\t\t\tif (pending3DItems.length === 0 || !camera) return {\n\t\t\t\tfinalTex: curTex,\n\t\t\t\tfinalView: curView\n\t\t\t};\n\t\t\tconst r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\tfor (const item of pending3DItems) {\n\t\t\t\tif (item.kind !== \"mesh\") continue;\n\t\t\t\tif (item.opts.morphWeights?.length) item.meshBuffers = r3d.morphMesh(encoder, item.mesh, item.opts.morphWeights, item.opts.wireframe);\n\t\t\t\tif (item.opts.audioDeform) item.meshBuffers = r3d.deformMesh(encoder, item.mesh, item.opts.audioDeform, item.opts.wireframe, item.meshBuffers);\n\t\t\t}\n\t\t\tconst itemTextures = pendingTextures();\n\t\t\tconst scene3dTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [\n\t\t\t\tcurTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...curExcludes,\n\t\t\t\t...itemTextures\n\t\t\t]);\n\t\t\tconst scene3dView = scene3dTex.createView();\n\t\t\tlet linearDepthTex;\n\t\t\tlet linearDepthView;\n\t\t\tif (dofEnabled) {\n\t\t\t\tlinearDepthTex = r3d.getOrCreateLinearDepthTexture(nativeWidth, nativeHeight);\n\t\t\t\tlinearDepthView = linearDepthTex.createView();\n\t\t\t}\n\t\t\tconst shadow = [];\n\t\t\tconst shadowLights = sceneLights.filter((light) => (light.lightType ?? light.type) !== \"ambient\").map((light, index) => ({\n\t\t\t\tlight,\n\t\t\t\tindex\n\t\t\t})).filter(({ light }) => light.castShadow && ((light.lightType ?? light.type) === \"directional\" || (light.lightType ?? light.type) === \"spot\"));\n\t\t\tif (shadowLights.length > 0) {\n\t\t\t\tconst casters = [];\n\t\t\t\tconst receivers = [];\n\t\t\t\tfor (const item of pending3DItems) if (item.kind === \"mesh\") {\n\t\t\t\t\tconst caster = {\n\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\tmesh: item.mesh,\n\t\t\t\t\t\tbuffers: item.meshBuffers,\n\t\t\t\t\t\topts: item.opts\n\t\t\t\t\t};\n\t\t\t\t\treceivers.push(r3d.worldBounds(caster));\n\t\t\t\t\tif (item.opts.castShadow !== false && item.opts.material !== \"unlit\") casters.push(caster);\n\t\t\t\t} else if (item.kind === \"quad\") {\n\t\t\t\t\tconst caster = {\n\t\t\t\t\t\tkind: \"quad\",\n\t\t\t\t\t\ttexture: item.texture,\n\t\t\t\t\t\topts: item.opts\n\t\t\t\t\t};\n\t\t\t\t\treceivers.push(r3d.worldBounds(caster));\n\t\t\t\t\tif (item.opts.castShadow === true) casters.push(caster);\n\t\t\t\t}\n\t\t\t\tif (casters.length > 0) for (const { light, index } of shadowLights) {\n\t\t\t\t\tconst result = r3d.renderShadowMap(encoder, light, index, casters, receivers, {\n\t\t\t\t\t\tmapSize: shadowMapSize,\n\t\t\t\t\t\tlayer: shadow.length,\n\t\t\t\t\t\tlayerCount: shadowLights.length\n\t\t\t\t\t});\n\t\t\t\t\tif (result) shadow.push(result);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst isGlass = (item) => item.kind === \"mesh\" && (item.opts.material === \"glass\" || item.opts.material === \"acrylic\" || item.opts.material === \"frosted\");\n\t\t\tconst opaque = [];\n\t\t\tconst glass = [];\n\t\t\tconst transparent = [];\n\t\t\tconst forward = Vector3Math.subtract(camera.target, camera.eye);\n\t\t\tfor (const item of pending3DItems) if (isGlass(item)) glass.push(item);\n\t\t\telse if (item.kind === \"mesh\" && item.opts.transparent) {\n\t\t\t\tconst bounds = r3d.worldBounds({\n\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\tmesh: item.mesh,\n\t\t\t\t\topts: item.opts\n\t\t\t\t});\n\t\t\t\tconst center = bounds.min.map((v, i) => (v + bounds.max[i]) / 2);\n\t\t\t\tconst depth = center[0] * forward[0] + center[1] * forward[1] + center[2] * forward[2];\n\t\t\t\ttransparent.push({\n\t\t\t\t\titem,\n\t\t\t\t\tdepth\n\t\t\t\t});\n\t\t\t} else opaque.push(item);\n\t\t\ttransparent.sort((a, b) => b.depth - a.depth);\n\t\t\tconst batchedOpaque = [];\n\t\t\tconst maxInstances = Math.max(1, Math.floor(ctx.device.limits.maxStorageBufferBindingSize / 128));\n\t\t\tfor (let i = 0; i < opaque.length;) {\n\t\t\t\tconst first = opaque[i];\n\t\t\t\tif (first.kind !== \"mesh\") {\n\t\t\t\t\tbatchedOpaque.push(first);\n\t\t\t\t\ti++;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet end = i + 1;\n\t\t\t\twhile (end < opaque.length && end - i < maxInstances) {\n\t\t\t\t\tconst next = opaque[end];\n\t\t\t\t\tif (next.kind !== \"mesh\" || !compatibleMeshDraws(first, next)) break;\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t\tif (end - i === 1) batchedOpaque.push(first);\n\t\t\t\telse {\n\t\t\t\t\tconst data = new Float32Array((end - i) * 32);\n\t\t\t\t\tfor (let j = i; j < end; j++) {\n\t\t\t\t\t\tconst item = opaque[j];\n\t\t\t\t\t\tif (item.kind !== \"mesh\") throw new Error(\"Invalid mesh batch\");\n\t\t\t\t\t\tconst matrix = r3d.meshModelMatrix(item.opts);\n\t\t\t\t\t\tdata.set(matrix, (j - i) * 32);\n\t\t\t\t\t\tdata.set(item.opts.normalMatrix ?? Light3D.computeNormalMatrix(matrix), (j - i) * 32 + 16);\n\t\t\t\t\t}\n\t\t\t\t\tbatchedOpaque.push({\n\t\t\t\t\t\t...first,\n\t\t\t\t\t\topts: {\n\t\t\t\t\t\t\t...first.opts,\n\t\t\t\t\t\t\tmodelMatrix: Matrix4Math.identity(),\n\t\t\t\t\t\t\tnormalMatrix: Matrix4Math.identity(),\n\t\t\t\t\t\t\tinstanceBuffer: r3d.uploadInstanceData(data),\n\t\t\t\t\t\t\tinstanceCount: end - i,\n\t\t\t\t\t\t\tmatrixInstances: true\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ti = end;\n\t\t\t}\n\t\t\tconst ordered = [\n\t\t\t\t...batchedOpaque,\n\t\t\t\t...transparent.map(({ item }) => item),\n\t\t\t\t...glass\n\t\t\t];\n\t\t\tconst floorSpec = sceneEnvironment?.floor;\n\t\t\tlet blurredReflectionTex = null;\n\t\t\tif (floorSpec && typeof floorSpec.y === \"number\" && camera.eye[1] < floorSpec.y) {\n\t\t\t\tconst reflectedCamera = {\n\t\t\t\t\t...camera,\n\t\t\t\t\teye: [\n\t\t\t\t\t\tcamera.eye[0],\n\t\t\t\t\t\t2 * floorSpec.y - camera.eye[1],\n\t\t\t\t\t\tcamera.eye[2]\n\t\t\t\t\t],\n\t\t\t\t\ttarget: [\n\t\t\t\t\t\tcamera.target[0],\n\t\t\t\t\t\t2 * floorSpec.y - camera.target[1],\n\t\t\t\t\t\tcamera.target[2]\n\t\t\t\t\t],\n\t\t\t\t\tup: [\n\t\t\t\t\t\tcamera.up[0],\n\t\t\t\t\t\tcamera.up[1],\n\t\t\t\t\t\tcamera.up[2]\n\t\t\t\t\t]\n\t\t\t\t};\n\t\t\t\tconst { pass: reflPass, cameraBindGroup: reflCamBind, lightsBindGroup: reflLightsBind, reflectionTexture: reflTex } = r3d.beginReflectionPass(encoder, nativeWidth, nativeHeight, reflectedCamera, sceneLights, {\n\t\t\t\t\tenvironment: sceneEnvironment,\n\t\t\t\t\tshadow: null\n\t\t\t\t});\n\t\t\t\tfor (const item of ordered) if (item.kind === \"quad\") r3d.drawTextureQuad(reflPass, reflCamBind, reflLightsBind, item.texture, item.opts, false);\n\t\t\t\telse if (item.kind === \"slug\") r3d.drawSlugText(reflPass, reflCamBind, reflLightsBind, item.batches, item.opts, item.stackBase, false);\n\t\t\t\telse if (item.kind === \"mesh\") r3d.drawMesh3D(reflPass, reflCamBind, reflLightsBind, item.meshBuffers ?? item.mesh, item.texture, item.opts, false);\n\t\t\t\treflPass.end();\n\t\t\t\tblurredReflectionTex = r3d.blurReflection(encoder, reflTex, floorSpec.roughness ?? .35);\n\t\t\t}\n\t\t\tconst { pass: pass3d, cameraBindGroup, cameraBuffer, lightsBindGroup } = r3d.beginPass(encoder, scene3dView, nativeWidth, nativeHeight, camera, \"clear\", {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, linearDepthView, sceneLights, {\n\t\t\t\tenvironment: sceneEnvironment,\n\t\t\t\tshadow: shadow.length ? shadow : null\n\t\t\t}, Boolean(sceneBloom));\n\t\t\tif (floorSpec && blurredReflectionTex) r3d.drawFloor(pass3d, cameraBindGroup, lightsBindGroup, blurredReflectionTex, floorSpec, dofEnabled, Boolean(sceneBloom));\n\t\t\tfor (const item of ordered) if (item.kind === \"quad\") r3d.drawTextureQuad(pass3d, cameraBindGroup, lightsBindGroup, item.texture, item.opts, dofEnabled);\n\t\t\telse if (item.kind === \"slug\") r3d.drawSlugText(pass3d, cameraBindGroup, lightsBindGroup, item.batches, item.opts, item.stackBase, dofEnabled);\n\t\t\telse if (item.kind === \"mesh\") r3d.drawMesh3D(pass3d, cameraBindGroup, lightsBindGroup, item.meshBuffers ?? item.mesh, item.texture, isGlass(item) ? {\n\t\t\t\t...item.opts,\n\t\t\t\tbackdrop: curTex\n\t\t\t} : item.opts, dofEnabled);\n\t\t\tpass3d.end();\n\t\t\tlet final3dTex = scene3dTex;\n\t\t\tif (dofEnabled && linearDepthTex) {\n\t\t\t\tconst dofResultTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [\n\t\t\t\t\tcurTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\tscene3dTex,\n\t\t\t\t\t...curExcludes\n\t\t\t\t]);\n\t\t\t\tr3d.applyDepthOfField(encoder, scene3dTex, linearDepthTex, dofResultTex.createView(), cameraBuffer);\n\t\t\t\tfinal3dTex = dofResultTex;\n\t\t\t}\n\t\t\tif (sceneBloom) {\n\t\t\t\tconst bloomTex = ctx.renderer.getTemporaryTexture(nativeWidth, nativeHeight, [\n\t\t\t\t\tcurTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\tfinal3dTex,\n\t\t\t\t\tscene3dTex,\n\t\t\t\t\t...curExcludes\n\t\t\t\t]);\n\t\t\t\tr3d.applyBloom(encoder, final3dTex, bloomTex, sceneBloom, r3d.hdrSource());\n\t\t\t\tfinal3dTex = bloomTex;\n\t\t\t}\n\t\t\tconst nextTex = ctx.renderer.composite(encoder, curTex, final3dTex, \"normal\", [targetTexture, ...curExcludes]);\n\t\t\tpending3DItems.length = 0;\n\t\t\treturn {\n\t\t\t\tfinalTex: nextTex,\n\t\t\t\tfinalView: nextTex.createView()\n\t\t\t};\n\t\t};\n\t\tlet nodeIndex = 0;\n\t\t/**\n\t\t* True when every child of a rounded box sits where the rounding can't\n\t\t* touch it (inside the inset at which the corner arcs meet 45°), as laid\n\t\t* out and moved this frame, untransformed and without effects of its own.\n\t\t*/\n\t\tconst childrenClearOfCorners = (children, box, radius) => {\n\t\t\tconst k = radius * (1 - Math.SQRT1_2);\n\t\t\tfor (const child of children) {\n\t\t\t\tconst cop = child.operation;\n\t\t\t\tif (!cop) return false;\n\t\t\t\tconst t = targetsById[cop.id || cop.inputHandleId];\n\t\t\t\tif (t?.hidden || cop.hidden) continue;\n\t\t\t\tconst r = rects[cop.id];\n\t\t\t\tif (!r) return false;\n\t\t\t\tconst v = (key, d) => t?.[key] ?? cop[key] ?? d;\n\t\t\t\tif (v(\"scale\", 1) !== 1 || v(\"scaleX\", 1) !== 1 || v(\"scaleY\", 1) !== 1 || v(\"rotation\", 0) !== 0 || v(\"rotateX\", 0) !== 0 || v(\"rotateY\", 0) !== 0) return false;\n\t\t\t\tif (Array.isArray(cop.effects) && cop.effects.length > 0) return false;\n\t\t\t\tif ((t?.animators ?? cop.animators)?.length) return false;\n\t\t\t\tconst x = r.x - box.x + (v(\"x\", 0) - (cop.x ?? 0));\n\t\t\t\tconst y = r.y - box.y + (v(\"y\", 0) - (cop.y ?? 0));\n\t\t\t\tif (x < k || y < k || x + r.width > box.width - k || y + r.height > box.height - k) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\t\tconst renderNodeTree = async (vms, initialTex, initialView, excludes, accumulatedOpacity = 1, parentMatrix = new DOMMatrix(), parentRect = null, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {\n\t\t\tconst sorted = [...vms].sort((a, b) => {\n\t\t\t\treturn (a.operation?.zIndex ?? 0) - (b.operation?.zIndex ?? 0);\n\t\t\t});\n\t\t\tlet activeTex = initialTex;\n\t\t\tlet activeView = initialView;\n\t\t\tlet activeExcludes = excludes;\n\t\t\tconst mattesByOwner = /* @__PURE__ */ new Map();\n\t\t\tfor (const vm of vms) {\n\t\t\t\tconst owner = vm.operation?.matteOf;\n\t\t\t\tif (owner) mattesByOwner.set(owner, vm);\n\t\t\t}\n\t\t\tfor (const child of sorted) {\n\t\t\t\tconst lop = child.operation;\n\t\t\t\tif (lop.kind === \"camera\" || lop.kind === \"light\") continue;\n\t\t\t\tif (lop.matteOf) continue;\n\t\t\t\tconst targetId = lop.id || lop.inputHandleId;\n\t\t\t\tconst target = targetId ? targetsById[targetId] : void 0;\n\t\t\t\tconst isChild3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D)) || Boolean(parent3DMatrix);\n\t\t\t\tif (isRootScene && !isChild3D && pending3DItems.length > 0) {\n\t\t\t\t\tconst flushed = flush3DPass(activeTex, activeView, activeExcludes);\n\t\t\t\t\tif (flushed.finalTex !== activeTex) activeExcludes = [...activeExcludes, flushed.finalTex];\n\t\t\t\t\tactiveTex = flushed.finalTex;\n\t\t\t\t\tactiveView = flushed.finalView;\n\t\t\t\t}\n\t\t\t\tif (lop.op !== \"CompositorLayer\") {\n\t\t\t\t\tawait drawChild(child, {\n\t\t\t\t\t\tcontainerWidth: targetW,\n\t\t\t\t\t\tcontainerHeight: targetH,\n\t\t\t\t\t\trenderId: `${props.renderId}-c${nodeIndex}-${lop.op}`,\n\t\t\t\t\t\tfps,\n\t\t\t\t\t\tisVideoMode,\n\t\t\t\t\t\tframe: shiftedFrame,\n\t\t\t\t\t\tcompositionFrame,\n\t\t\t\t\t\texcludeTextures: [targetTexture, ...activeExcludes]\n\t\t\t\t\t}, activeView, activeTex, targetW, targetH);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tnodeIndex += 1;\n\t\t\t\tconst matteVM = lop.matteId ? mattesByOwner.get(lop.id) : void 0;\n\t\t\t\tif (matteVM) {\n\t\t\t\t\tconst isolate = async (vm, index) => {\n\t\t\t\t\t\tconst queued = pending3DItems.splice(0);\n\t\t\t\t\t\tconst busy = [\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\t\t...queued.flatMap((q) => [q.texture, q.opts.matte])\n\t\t\t\t\t\t].filter((t) => Boolean(t));\n\t\t\t\t\t\tconst tex = ctx.renderer.getTemporaryTexture(targetW, targetH, busy);\n\t\t\t\t\t\tconst view = tex.createView();\n\t\t\t\t\t\tctx.renderer.beginFrame(encoder, view, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\t\tconst drawn = (await renderLayerVM(vm, index, tex, view, busy.filter((t) => t !== targetTexture), accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, false))?.finalTex ?? tex;\n\t\t\t\t\t\tconst flat = flush3DPass(drawn, drawn.createView(), busy).finalTex;\n\t\t\t\t\t\tpending3DItems.push(...queued);\n\t\t\t\t\t\treturn flat;\n\t\t\t\t\t};\n\t\t\t\t\tconst mode = matteVM.operation.matteMode ?? \"alpha\";\n\t\t\t\t\tconst blend = mode === \"luma\" ? \"luma-in\" : mode === \"luma-inverted\" ? \"luma-out\" : mode === \"alpha-inverted\" ? \"destination-out\" : \"destination-in\";\n\t\t\t\t\tif (isChild3D) {\n\t\t\t\t\t\tlet coverage = await isolate(matteVM, nodeIndex);\n\t\t\t\t\t\tactiveExcludes = [...activeExcludes, coverage];\n\t\t\t\t\t\tnodeIndex += 1;\n\t\t\t\t\t\tif (mode !== \"alpha\") {\n\t\t\t\t\t\t\tconst white = ctx.renderer.getTemporaryTexture(targetW, targetH, [\n\t\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\t\t\t...pendingTextures()\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tctx.renderer.beginFrame(encoder, white.createView(), {\n\t\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\t\tg: 1,\n\t\t\t\t\t\t\t\tb: 1,\n\t\t\t\t\t\t\t\ta: 1\n\t\t\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\t\t\tcoverage = ctx.renderer.composite(encoder, white, coverage, blend, [\n\t\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\t\t\t...pendingTextures(),\n\t\t\t\t\t\t\t\twhite\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tactiveExcludes = [...activeExcludes, coverage];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst before = pending3DItems.length;\n\t\t\t\t\t\tconst res$1 = await renderLayerVM(child, nodeIndex, activeTex, activeView, activeExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);\n\t\t\t\t\t\tfor (const item of pending3DItems.slice(before)) item.opts.matte = coverage;\n\t\t\t\t\t\tif (res$1) {\n\t\t\t\t\t\t\tif (res$1.finalTex !== activeTex) activeExcludes = [...activeExcludes, res$1.finalTex];\n\t\t\t\t\t\t\tactiveTex = res$1.finalTex;\n\t\t\t\t\t\t\tactiveView = res$1.finalView;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst contentTex = await isolate(child, nodeIndex);\n\t\t\t\t\tactiveExcludes = [...activeExcludes, contentTex];\n\t\t\t\t\tnodeIndex += 1;\n\t\t\t\t\tconst matteTex = await isolate(matteVM, nodeIndex);\n\t\t\t\t\tconst masked = ctx.renderer.composite(encoder, contentTex, matteTex, blend, [\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\tmatteTex\n\t\t\t\t\t]);\n\t\t\t\t\tconst next = ctx.renderer.composite(encoder, activeTex, masked, \"normal\", [\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...activeExcludes,\n\t\t\t\t\t\tmatteTex\n\t\t\t\t\t]);\n\t\t\t\t\tactiveExcludes = [...activeExcludes, next];\n\t\t\t\t\tactiveTex = next;\n\t\t\t\t\tactiveView = next.createView();\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst res = await renderLayerVM(child, nodeIndex, activeTex, activeView, activeExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);\n\t\t\t\tif (res) {\n\t\t\t\t\tif (res.finalTex !== activeTex) activeExcludes = [...activeExcludes, res.finalTex];\n\t\t\t\t\tactiveTex = res.finalTex;\n\t\t\t\t\tactiveView = res.finalView;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isRootScene && pending3DItems.length > 0) {\n\t\t\t\tconst flushed = flush3DPass(activeTex, activeView, activeExcludes);\n\t\t\t\tif (flushed.finalTex !== activeTex) activeExcludes = [...activeExcludes, flushed.finalTex];\n\t\t\t\tactiveTex = flushed.finalTex;\n\t\t\t\tactiveView = flushed.finalView;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tfinalTex: activeTex,\n\t\t\t\tfinalView: activeView\n\t\t\t};\n\t\t};\n\t\tconst renderLayerVM = async (nodeVM, i, destTex, destView, baseExcludes, accumulatedOpacity, parentMatrix, parentRect, targetW = nativeWidth, targetH = nativeHeight, parent3DMatrix = null, isRootScene = false) => {\n\t\t\tconst excludes = [...baseExcludes, ...pendingTextures()];\n\t\t\tconst lop = nodeVM.operation;\n\t\t\tif (lop.kind === \"camera\" || lop.kind === \"light\") return;\n\t\t\tconst targetId = lop.id || lop.inputHandleId;\n\t\t\tconst target = targetId ? targetsById[targetId] : void 0;\n\t\t\tif (target?.hidden || lop.hidden) return;\n\t\t\tconst kind = lop.kind;\n\t\t\tconst isContainer = kind === \"flex\" || kind === \"block\" || kind === \"box\";\n\t\t\tif (isVideoMode) {\n\t\t\t\tconst startFrame = lop.startFrame ?? 0;\n\t\t\t\tconst durationFrames = lop.durationFrames;\n\t\t\t\tif (shiftedFrame < startFrame) return;\n\t\t\t\tif (durationFrames !== void 0 && shiftedFrame >= startFrame + durationFrames) return;\n\t\t\t}\n\t\t\tif (kind === \"model3d\") {\n\t\t\t\tconst r3d = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\t\tlet modelSrc = lop.modelData ?? lop.src;\n\t\t\t\tif (!modelSrc && lop.text3dOptions) {\n\t\t\t\t\tconst tOpts = lop.text3dOptions;\n\t\t\t\t\tconst font = (tOpts.fontFamily ? SlugFontCache.getParsed(tOpts.fontFamily) : null) ?? SlugFontCache.getParsed(\"Inter\") ?? SlugFontCache.getParsed(\"Unbounded\") ?? SlugFontCache.getFirstParsed();\n\t\t\t\t\tif (font) {\n\t\t\t\t\t\tmodelSrc = generateExtrudedTextGeometry({\n\t\t\t\t\t\t\t...tOpts,\n\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t}).modelData;\n\t\t\t\t\t\tlop.modelData = modelSrc;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!modelSrc && lop.primitive3d) {\n\t\t\t\t\tmodelSrc = getPrimitiveGeometry(lop.primitive3d);\n\t\t\t\t\tlop.modelData = modelSrc;\n\t\t\t\t}\n\t\t\t\tif (!modelSrc) return;\n\t\t\t\tlet model;\n\t\t\t\ttry {\n\t\t\t\t\tmodel = typeof modelSrc === \"object\" && modelSrc !== null && \"meshes\" in modelSrc ? modelSrc : await r3d.loadModelAsync(modelSrc, lop.modelFormat ?? \"auto\", {\n\t\t\t\t\t\tcenter: lop.center,\n\t\t\t\t\t\tnormalizeSize: lop.normalizeSize\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tthrow new Error(`Failed to load 3D model ${lop.id ?? \"(unnamed)\"}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });\n\t\t\t\t}\n\t\t\t\tif (!model || model.meshes.length === 0) return;\n\t\t\t\tconst baseX$1 = lop.x ?? 0;\n\t\t\t\tconst baseY$1 = lop.y ?? 0;\n\t\t\t\tconst sampledX$1 = target?.x ?? baseX$1;\n\t\t\t\tconst sampledY$1 = target?.y ?? baseY$1;\n\t\t\t\tconst posZ = target?.z ?? lop.z ?? 0;\n\t\t\t\tlet posX = sampledX$1;\n\t\t\t\tlet posY = sampledY$1;\n\t\t\t\tif (!parent3DMatrix) {\n\t\t\t\t\tconst pos = resolveLayer2DPosition({\n\t\t\t\t\t\trect: null,\n\t\t\t\t\t\tparentRect: null,\n\t\t\t\t\t\tbaseX: baseX$1,\n\t\t\t\t\t\tbaseY: baseY$1,\n\t\t\t\t\t\tsampledX: sampledX$1,\n\t\t\t\t\t\tsampledY: sampledY$1,\n\t\t\t\t\t\tparentMatrix\n\t\t\t\t\t});\n\t\t\t\t\tposX = pos.x;\n\t\t\t\t\tposY = pos.y;\n\t\t\t\t}\n\t\t\t\tconst rotX = target?.rotateX ?? lop.rotateX ?? 0;\n\t\t\t\tconst rotY = target?.rotateY ?? lop.rotateY ?? 0;\n\t\t\t\tconst rotZ = (target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : target?.rotation ?? lop.rotation ?? 0;\n\t\t\t\tconst sc = target?.scale ?? lop.scale ?? 1;\n\t\t\t\tconst scX = (target?.scaleX ?? lop.scaleX ?? 1) * sc;\n\t\t\t\tconst scY = (target?.scaleY ?? lop.scaleY ?? 1) * sc;\n\t\t\t\tconst scZ = (target?.scaleZ ?? lop.scaleZ ?? 1) * sc;\n\t\t\t\tlet localM = Matrix4Math.identity();\n\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.translate(posX, posY, posZ));\n\t\t\t\tconst rxRad = rotX * Math.PI / 180;\n\t\t\t\tconst ryRad = rotY * Math.PI / 180;\n\t\t\t\tconst rzRad = rotZ * Math.PI / 180;\n\t\t\t\tif (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));\n\t\t\t\tif (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));\n\t\t\t\tif (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));\n\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.scale(scX, scY, scZ));\n\t\t\t\tconst finalModelMatrix = parent3DMatrix ? Matrix4Math.multiply(parent3DMatrix, localM) : localM;\n\t\t\t\tconst colorParsed = target?.colorTint || target?.color || lop.colorTint || lop.color ? parseColor(target?.colorTint ?? target?.color ?? lop.colorTint ?? lop.color) : void 0;\n\t\t\t\tconst colorTint = colorParsed ? [\n\t\t\t\t\tcolorParsed.r,\n\t\t\t\t\tcolorParsed.g,\n\t\t\t\t\tcolorParsed.b,\n\t\t\t\t\tcolorParsed.a\n\t\t\t\t] : [\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\t1\n\t\t\t\t];\n\t\t\t\tconst modelOpacity = (target?.opacity ?? lop.opacity ?? 1) * accumulatedOpacity;\n\t\t\t\tif (lop.instances3d) {\n\t\t\t\t\tconst instOpt = lop.instances3d;\n\t\t\t\t\tconst rawMeshes = Array.isArray(instOpt.mesh) ? instOpt.mesh : instOpt.mesh ? [instOpt.mesh] : lop.modelData ? [lop.modelData] : lop.primitive3d ? [getPrimitiveGeometry(lop.primitive3d)] : [];\n\t\t\t\t\tconst variants = [];\n\t\t\t\t\tfor (const m of rawMeshes) {\n\t\t\t\t\t\tlet vModel;\n\t\t\t\t\t\tif (typeof m === \"object\" && m !== null) {\n\t\t\t\t\t\t\tif (\"meshes\" in m && Array.isArray(m.meshes)) vModel = m;\n\t\t\t\t\t\t\telse if (m.modelData && \"meshes\" in m.modelData) vModel = m.modelData;\n\t\t\t\t\t\t\telse if (m.primitive3d) vModel = getPrimitiveGeometry(m.primitive3d);\n\t\t\t\t\t\t\telse if (m.src) try {\n\t\t\t\t\t\t\t\tvModel = r3d.loadModel(m.src, m.modelFormat ?? \"auto\", {\n\t\t\t\t\t\t\t\t\tcenter: m.center,\n\t\t\t\t\t\t\t\t\tnormalizeSize: m.normalizeSize\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (vModel && vModel.meshes && vModel.meshes.length > 0) variants.push(vModel);\n\t\t\t\t\t}\n\t\t\t\t\tif (variants.length === 0 && model) variants.push(model);\n\t\t\t\t\tif (variants.length > 0) {\n\t\t\t\t\t\tconst count = instOpt.bodies && Array.isArray(instOpt.bodies) && instOpt.bodies.length > 0 ? instOpt.bodies.length : instOpt.count ?? (Array.isArray(instOpt.transforms) ? instOpt.transforms.length : 0);\n\t\t\t\t\t\tif (count > 0) {\n\t\t\t\t\t\t\tconst numVariants = variants.length;\n\t\t\t\t\t\t\tconst bucketCounts = new Uint32Array(numVariants);\n\t\t\t\t\t\t\tfor (let i$1 = 0; i$1 < count; i$1++) bucketCounts[i$1 % numVariants]++;\n\t\t\t\t\t\t\tconst bucketItems = [];\n\t\t\t\t\t\t\tconst bucketBounds = [];\n\t\t\t\t\t\t\tfor (let k = 0; k < numVariants; k++) {\n\t\t\t\t\t\t\t\tbucketItems.push(new Float32Array(bucketCounts[k] * 16));\n\t\t\t\t\t\t\t\tbucketBounds.push({\n\t\t\t\t\t\t\t\t\tmin: [\n\t\t\t\t\t\t\t\t\t\tInfinity,\n\t\t\t\t\t\t\t\t\t\tInfinity,\n\t\t\t\t\t\t\t\t\t\tInfinity\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tmax: [\n\t\t\t\t\t\t\t\t\t\t-Infinity,\n\t\t\t\t\t\t\t\t\t\t-Infinity,\n\t\t\t\t\t\t\t\t\t\t-Infinity\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst bucketCursors = new Uint32Array(numVariants);\n\t\t\t\t\t\t\tconst frameCtx = {\n\t\t\t\t\t\t\t\tframe: shiftedFrame ?? 0,\n\t\t\t\t\t\t\t\tfps: fps || 30,\n\t\t\t\t\t\t\t\ttime: (shiftedFrame ?? 0) / (fps || 30),\n\t\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\t\t\tprogress: 0,\n\t\t\t\t\t\t\t\tdeltaTime: 1 / (fps || 30)\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tfor (let i$1 = 0; i$1 < count; i$1++) {\n\t\t\t\t\t\t\t\tconst k = i$1 % numVariants;\n\t\t\t\t\t\t\t\tconst cursor = bucketCursors[k];\n\t\t\t\t\t\t\t\tconst bData = bucketItems[k];\n\t\t\t\t\t\t\t\tconst bBox = bucketBounds[k];\n\t\t\t\t\t\t\t\tconst off = cursor * 16;\n\t\t\t\t\t\t\t\tlet ix = 0;\n\t\t\t\t\t\t\t\tlet iy = 0;\n\t\t\t\t\t\t\t\tlet iz = 0;\n\t\t\t\t\t\t\t\tlet iscale = 1;\n\t\t\t\t\t\t\t\tlet iqx = 0;\n\t\t\t\t\t\t\t\tlet iqy = 0;\n\t\t\t\t\t\t\t\tlet iqz = 0;\n\t\t\t\t\t\t\t\tlet iqw = 1;\n\t\t\t\t\t\t\t\tlet icr = 1;\n\t\t\t\t\t\t\t\tlet icg = 1;\n\t\t\t\t\t\t\t\tlet icb = 1;\n\t\t\t\t\t\t\t\tlet ica = 1;\n\t\t\t\t\t\t\t\tlet ier = 0;\n\t\t\t\t\t\t\t\tlet ieg = 0;\n\t\t\t\t\t\t\t\tlet ieb = 0;\n\t\t\t\t\t\t\t\tlet iew = 0;\n\t\t\t\t\t\t\t\tif (instOpt.bodies && instOpt.bodies[i$1]) {\n\t\t\t\t\t\t\t\t\tconst b = instOpt.bodies[i$1];\n\t\t\t\t\t\t\t\t\tix = typeof b.x?.get === \"function\" ? Number(b.x.get(frameCtx)) : Number(b.x ?? 0);\n\t\t\t\t\t\t\t\t\tiy = typeof b.y?.get === \"function\" ? Number(b.y.get(frameCtx)) : Number(b.y ?? 0);\n\t\t\t\t\t\t\t\t\tiz = typeof b.z?.get === \"function\" ? Number(b.z.get(frameCtx)) : Number(b.z ?? 0);\n\t\t\t\t\t\t\t\t\tconst q = quatFromEulerAngles(typeof b.rotateX?.get === \"function\" ? Number(b.rotateX.get(frameCtx)) : Number(b.rotateX ?? 0), typeof b.rotateY?.get === \"function\" ? Number(b.rotateY.get(frameCtx)) : Number(b.rotateY ?? 0), typeof b.rotateZ?.get === \"function\" ? Number(b.rotateZ.get(frameCtx)) : Number(b.rotateZ ?? 0));\n\t\t\t\t\t\t\t\t\tiqx = q[0];\n\t\t\t\t\t\t\t\t\tiqy = q[1];\n\t\t\t\t\t\t\t\t\tiqz = q[2];\n\t\t\t\t\t\t\t\t\tiqw = q[3];\n\t\t\t\t\t\t\t\t\tif (instOpt.emissiveBySpeed) {\n\t\t\t\t\t\t\t\t\t\tconst spd = typeof b.speed?.get === \"function\" ? Number(b.speed.get(frameCtx)) : Number(b.speed ?? 0);\n\t\t\t\t\t\t\t\t\t\tconst maxSpd = instOpt.emissiveBySpeed.maxSpeed || 1e3;\n\t\t\t\t\t\t\t\t\t\tconst factor = Math.min(1, Math.max(0, spd / maxSpd));\n\t\t\t\t\t\t\t\t\t\tif (factor > .001) {\n\t\t\t\t\t\t\t\t\t\t\tconst ramp = sampleColorRamp(instOpt.emissiveBySpeed.color, factor);\n\t\t\t\t\t\t\t\t\t\t\tier = ramp[0];\n\t\t\t\t\t\t\t\t\t\t\tieg = ramp[1];\n\t\t\t\t\t\t\t\t\t\t\tieb = ramp[2];\n\t\t\t\t\t\t\t\t\t\t\tiew = factor * (instOpt.emissiveBySpeed.intensity ?? 3);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (instOpt.emissiveByImpact) {\n\t\t\t\t\t\t\t\t\t\tconst imp = typeof b.impact?.get === \"function\" ? Number(b.impact.get(frameCtx)) : Number(b.impact ?? 0);\n\t\t\t\t\t\t\t\t\t\tif (imp > .01) {\n\t\t\t\t\t\t\t\t\t\t\tconst impCol = parseColor(instOpt.emissiveByImpact.color ?? \"#ffffff\") ?? {\n\t\t\t\t\t\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tg: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tb: 1,\n\t\t\t\t\t\t\t\t\t\t\t\ta: 1\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\tier = Math.max(ier, impCol.r);\n\t\t\t\t\t\t\t\t\t\t\tieg = Math.max(ieg, impCol.g);\n\t\t\t\t\t\t\t\t\t\t\tieb = Math.max(ieb, impCol.b);\n\t\t\t\t\t\t\t\t\t\t\tiew = Math.max(iew, imp * (instOpt.emissiveByImpact.intensity ?? 4));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (typeof instOpt.instanceAt === \"function\") {\n\t\t\t\t\t\t\t\t\tconst t = instOpt.instanceAt(i$1, shiftedFrame ?? 0, fps || 30);\n\t\t\t\t\t\t\t\t\tif (!t) continue;\n\t\t\t\t\t\t\t\t\tix = t.x ?? 0;\n\t\t\t\t\t\t\t\t\tiy = t.y ?? 0;\n\t\t\t\t\t\t\t\t\tiz = t.z ?? 0;\n\t\t\t\t\t\t\t\t\tif (typeof t.scale === \"number\") iscale = t.scale;\n\t\t\t\t\t\t\t\t\tif (iscale <= 0) continue;\n\t\t\t\t\t\t\t\t\tif (t.rotation) if (t.rotation.length === 4) {\n\t\t\t\t\t\t\t\t\t\tiqx = t.rotation[0];\n\t\t\t\t\t\t\t\t\t\tiqy = t.rotation[1];\n\t\t\t\t\t\t\t\t\t\tiqz = t.rotation[2];\n\t\t\t\t\t\t\t\t\t\tiqw = t.rotation[3];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst q = quatFromEulerAngles(t.rotation[0], t.rotation[1], t.rotation[2]);\n\t\t\t\t\t\t\t\t\t\tiqx = q[0];\n\t\t\t\t\t\t\t\t\t\tiqy = q[1];\n\t\t\t\t\t\t\t\t\t\tiqz = q[2];\n\t\t\t\t\t\t\t\t\t\tiqw = q[3];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (t.color) {\n\t\t\t\t\t\t\t\t\t\tconst p = typeof t.color === \"string\" ? parseColor(t.color) : {\n\t\t\t\t\t\t\t\t\t\t\tr: t.color[0],\n\t\t\t\t\t\t\t\t\t\t\tg: t.color[1],\n\t\t\t\t\t\t\t\t\t\t\tb: t.color[2],\n\t\t\t\t\t\t\t\t\t\t\ta: t.color[3] ?? 1\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\t\t\t\ticr = p.r;\n\t\t\t\t\t\t\t\t\t\t\ticg = p.g;\n\t\t\t\t\t\t\t\t\t\t\ticb = p.b;\n\t\t\t\t\t\t\t\t\t\t\tica = p.a;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (t.emissive) {\n\t\t\t\t\t\t\t\t\t\tconst p = typeof t.emissive === \"string\" ? parseColor(t.emissive) : {\n\t\t\t\t\t\t\t\t\t\t\tr: t.emissive[0],\n\t\t\t\t\t\t\t\t\t\t\tg: t.emissive[1],\n\t\t\t\t\t\t\t\t\t\t\tb: t.emissive[2]\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\t\t\t\tier = p.r;\n\t\t\t\t\t\t\t\t\t\t\tieg = p.g;\n\t\t\t\t\t\t\t\t\t\t\tieb = p.b;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiew = t.emissiveIntensity ?? 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (Array.isArray(instOpt.transforms) && instOpt.transforms[i$1]) {\n\t\t\t\t\t\t\t\t\tconst t = instOpt.transforms[i$1];\n\t\t\t\t\t\t\t\t\tix = t.x ?? 0;\n\t\t\t\t\t\t\t\t\tiy = t.y ?? 0;\n\t\t\t\t\t\t\t\t\tiz = t.z ?? 0;\n\t\t\t\t\t\t\t\t\tif (typeof t.scale === \"number\") iscale = t.scale;\n\t\t\t\t\t\t\t\t\tif (iscale <= 0) continue;\n\t\t\t\t\t\t\t\t\tif (t.rotation) if (t.rotation.length === 4) {\n\t\t\t\t\t\t\t\t\t\tiqx = t.rotation[0];\n\t\t\t\t\t\t\t\t\t\tiqy = t.rotation[1];\n\t\t\t\t\t\t\t\t\t\tiqz = t.rotation[2];\n\t\t\t\t\t\t\t\t\t\tiqw = t.rotation[3];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst q = quatFromEulerAngles(t.rotation[0], t.rotation[1], t.rotation[2]);\n\t\t\t\t\t\t\t\t\t\tiqx = q[0];\n\t\t\t\t\t\t\t\t\t\tiqy = q[1];\n\t\t\t\t\t\t\t\t\t\tiqz = q[2];\n\t\t\t\t\t\t\t\t\t\tiqw = q[3];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (t.color) {\n\t\t\t\t\t\t\t\t\t\tconst p = typeof t.color === \"string\" ? parseColor(t.color) : {\n\t\t\t\t\t\t\t\t\t\t\tr: t.color[0],\n\t\t\t\t\t\t\t\t\t\t\tg: t.color[1],\n\t\t\t\t\t\t\t\t\t\t\tb: t.color[2],\n\t\t\t\t\t\t\t\t\t\t\ta: t.color[3] ?? 1\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\t\t\t\ticr = p.r;\n\t\t\t\t\t\t\t\t\t\t\ticg = p.g;\n\t\t\t\t\t\t\t\t\t\t\ticb = p.b;\n\t\t\t\t\t\t\t\t\t\t\tica = p.a;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (t.emissive) {\n\t\t\t\t\t\t\t\t\t\tconst p = typeof t.emissive === \"string\" ? parseColor(t.emissive) : {\n\t\t\t\t\t\t\t\t\t\t\tr: t.emissive[0],\n\t\t\t\t\t\t\t\t\t\t\tg: t.emissive[1],\n\t\t\t\t\t\t\t\t\t\t\tb: t.emissive[2]\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\t\t\t\tier = p.r;\n\t\t\t\t\t\t\t\t\t\t\tieg = p.g;\n\t\t\t\t\t\t\t\t\t\t\tieb = p.b;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tiew = t.emissiveIntensity ?? 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else continue;\n\t\t\t\t\t\t\t\tbucketCursors[k]++;\n\t\t\t\t\t\t\t\tbData[off + 0] = ix;\n\t\t\t\t\t\t\t\tbData[off + 1] = iy;\n\t\t\t\t\t\t\t\tbData[off + 2] = iz;\n\t\t\t\t\t\t\t\tbData[off + 3] = iscale;\n\t\t\t\t\t\t\t\tbData[off + 4] = iqx;\n\t\t\t\t\t\t\t\tbData[off + 5] = iqy;\n\t\t\t\t\t\t\t\tbData[off + 6] = iqz;\n\t\t\t\t\t\t\t\tbData[off + 7] = iqw;\n\t\t\t\t\t\t\t\tbData[off + 8] = icr;\n\t\t\t\t\t\t\t\tbData[off + 9] = icg;\n\t\t\t\t\t\t\t\tbData[off + 10] = icb;\n\t\t\t\t\t\t\t\tbData[off + 11] = ica;\n\t\t\t\t\t\t\t\tbData[off + 12] = ier;\n\t\t\t\t\t\t\t\tbData[off + 13] = ieg;\n\t\t\t\t\t\t\t\tbData[off + 14] = ieb;\n\t\t\t\t\t\t\t\tbData[off + 15] = iew;\n\t\t\t\t\t\t\t\tconst rad = 50 * iscale;\n\t\t\t\t\t\t\t\tbBox.min[0] = Math.min(bBox.min[0], ix - rad);\n\t\t\t\t\t\t\t\tbBox.min[1] = Math.min(bBox.min[1], iy - rad);\n\t\t\t\t\t\t\t\tbBox.min[2] = Math.min(bBox.min[2], iz - rad);\n\t\t\t\t\t\t\t\tbBox.max[0] = Math.max(bBox.max[0], ix + rad);\n\t\t\t\t\t\t\t\tbBox.max[1] = Math.max(bBox.max[1], iy + rad);\n\t\t\t\t\t\t\t\tbBox.max[2] = Math.max(bBox.max[2], iz + rad);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (let k = 0; k < numVariants; k++) {\n\t\t\t\t\t\t\t\tconst bCount = bucketCursors[k];\n\t\t\t\t\t\t\t\tif (bCount === 0) continue;\n\t\t\t\t\t\t\t\tconst v = variants[k];\n\t\t\t\t\t\t\t\tconst activeSlice = bCount === bucketCounts[k] ? bucketItems[k] : bucketItems[k].subarray(0, bCount * 16);\n\t\t\t\t\t\t\t\tconst instanceBuffer = r3d.uploadInstanceData(activeSlice);\n\t\t\t\t\t\t\t\tconst bounds = Number.isFinite(bucketBounds[k].min[0]) ? bucketBounds[k] : void 0;\n\t\t\t\t\t\t\t\tfor (const mesh of v.meshes) {\n\t\t\t\t\t\t\t\t\tconst mat = mesh.materialName ? v.materials[mesh.materialName] : void 0;\n\t\t\t\t\t\t\t\t\tconst meshOpts = {\n\t\t\t\t\t\t\t\t\t\tmodelMatrix: finalModelMatrix,\n\t\t\t\t\t\t\t\t\t\topacity: modelOpacity * (mat?.opacity ?? 1),\n\t\t\t\t\t\t\t\t\t\tcolorTint,\n\t\t\t\t\t\t\t\t\t\ttransparent: false,\n\t\t\t\t\t\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? true,\n\t\t\t\t\t\t\t\t\t\twireframe: Boolean(target?.wireframe ?? lop.wireframe),\n\t\t\t\t\t\t\t\t\t\tmaterial: target?.material ?? lop.material ?? instOpt.material ?? mat?.shading ?? \"lit\",\n\t\t\t\t\t\t\t\t\t\troughness: target?.roughness ?? lop.roughness ?? instOpt.roughness ?? mat?.roughness,\n\t\t\t\t\t\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity ?? instOpt.specularIntensity ?? .5,\n\t\t\t\t\t\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity ?? instOpt.ambientIntensity ?? 1,\n\t\t\t\t\t\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic ?? instOpt.metallic ?? mat?.metallic,\n\t\t\t\t\t\t\t\t\t\t...surfaceProps(target, lop, mat),\n\t\t\t\t\t\t\t\t\t\tinstanceBuffer,\n\t\t\t\t\t\t\t\t\t\tinstanceCount: bCount,\n\t\t\t\t\t\t\t\t\t\tbounds\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\t\t\t\t\tmesh,\n\t\t\t\t\t\t\t\t\t\ttexture: mat ? await r3d.materialTexture(mat) : void 0,\n\t\t\t\t\t\t\t\t\t\topts: meshOpts\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tfinalTex: destTex,\n\t\t\t\t\t\t\t\tfinalView: destView\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lop.swarm3d) {\n\t\t\t\t\tconst swarmOpt = lop.swarm3d;\n\t\t\t\t\tconst max = swarmOpt.max ?? 2e3;\n\t\t\t\t\tconst seed = swarmOpt.seed ?? 42;\n\t\t\t\t\tconst substeps = swarmOpt.substeps ?? 2;\n\t\t\t\t\tconst prewarm = swarmOpt.prewarm ?? 0;\n\t\t\t\t\tconst emitter = swarmOpt.emitter ?? {};\n\t\t\t\t\tconst speed = Array.isArray(swarmOpt.speed) ? swarmOpt.speed : [swarmOpt.speed ?? 100, swarmOpt.speed ?? 300];\n\t\t\t\t\tconst direction = swarmOpt.direction ?? [\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t-1,\n\t\t\t\t\t\t0\n\t\t\t\t\t];\n\t\t\t\t\tconst spread = (swarmOpt.spread ?? 45) * Math.PI / 180;\n\t\t\t\t\tconst angularSpeed = Array.isArray(swarmOpt.angularSpeed) ? swarmOpt.angularSpeed : [swarmOpt.angularSpeed ?? 1, swarmOpt.angularSpeed ?? 6];\n\t\t\t\t\tconst angularDrag = swarmOpt.angularDrag ?? .1;\n\t\t\t\t\tconst lifetime = Array.isArray(swarmOpt.lifetime) ? swarmOpt.lifetime : [swarmOpt.lifetime ?? 2, swarmOpt.lifetime ?? 4];\n\t\t\t\t\tconst size = Array.isArray(swarmOpt.size) ? swarmOpt.size : [swarmOpt.size ?? 18, swarmOpt.size ?? 12];\n\t\t\t\t\tconst sizeJitter = swarmOpt.sizeJitter ?? .25;\n\t\t\t\t\tconst fade = swarmOpt.fade ?? [.15, .2];\n\t\t\t\t\tconst colorStops = [];\n\t\t\t\t\tif (Array.isArray(swarmOpt.color)) for (const c of swarmOpt.color) {\n\t\t\t\t\t\tconst p = parseColor(c);\n\t\t\t\t\t\tif (p) colorStops.push([\n\t\t\t\t\t\t\tp.r,\n\t\t\t\t\t\t\tp.g,\n\t\t\t\t\t\t\tp.b,\n\t\t\t\t\t\t\tp.a\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof swarmOpt.color === \"string\") {\n\t\t\t\t\t\tconst p = parseColor(swarmOpt.color);\n\t\t\t\t\t\tif (p) colorStops.push([\n\t\t\t\t\t\t\tp.r,\n\t\t\t\t\t\t\tp.g,\n\t\t\t\t\t\t\tp.b,\n\t\t\t\t\t\t\tp.a\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t\tif (colorStops.length === 0) colorStops.push([\n\t\t\t\t\t\t.15,\n\t\t\t\t\t\t.14,\n\t\t\t\t\t\t.18,\n\t\t\t\t\t\t1\n\t\t\t\t\t]);\n\t\t\t\t\tconst heatOpt = swarmOpt.heat ?? {};\n\t\t\t\t\tconst heatColorStops = [\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t.1,\n\t\t\t\t\t\t\t.05,\n\t\t\t\t\t\t\t.15\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t.6\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t.9,\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t]\n\t\t\t\t\t];\n\t\t\t\t\tif (Array.isArray(heatOpt.color) && heatOpt.color.length >= 2) {\n\t\t\t\t\t\tconst c0 = parseColor(heatOpt.color[0]) ?? {\n\t\t\t\t\t\t\tr: .1,\n\t\t\t\t\t\t\tg: .05,\n\t\t\t\t\t\t\tb: .15\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst c1 = parseColor(heatOpt.color[Math.floor(heatOpt.color.length / 2)]) ?? {\n\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: .6\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst c2 = parseColor(heatOpt.color[heatOpt.color.length - 1]) ?? {\n\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\tg: .9,\n\t\t\t\t\t\t\tb: 1\n\t\t\t\t\t\t};\n\t\t\t\t\t\theatColorStops[0] = [\n\t\t\t\t\t\t\tc0.r,\n\t\t\t\t\t\t\tc0.g,\n\t\t\t\t\t\t\tc0.b\n\t\t\t\t\t\t];\n\t\t\t\t\t\theatColorStops[1] = [\n\t\t\t\t\t\t\tc1.r,\n\t\t\t\t\t\t\tc1.g,\n\t\t\t\t\t\t\tc1.b\n\t\t\t\t\t\t];\n\t\t\t\t\t\theatColorStops[2] = [\n\t\t\t\t\t\t\tc2.r,\n\t\t\t\t\t\t\tc2.g,\n\t\t\t\t\t\t\tc2.b\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\tconst rawVariants = Array.isArray(swarmOpt.meshVariants) ? swarmOpt.meshVariants : swarmOpt.mesh ? [swarmOpt.mesh] : [];\n\t\t\t\t\tconst variants = [];\n\t\t\t\t\tfor (const m of rawVariants) {\n\t\t\t\t\t\tlet vModel;\n\t\t\t\t\t\tif (m && typeof m === \"object\") {\n\t\t\t\t\t\t\tif (\"meshes\" in m && Array.isArray(m.meshes)) vModel = m;\n\t\t\t\t\t\t\telse if (m.modelData && \"meshes\" in m.modelData) vModel = m.modelData;\n\t\t\t\t\t\t\telse if (m.primitive3d) vModel = getPrimitiveGeometry(m.primitive3d);\n\t\t\t\t\t\t\telse if (m.src) try {\n\t\t\t\t\t\t\t\tvModel = r3d.loadModel(m.src, m.modelFormat ?? \"auto\", {\n\t\t\t\t\t\t\t\t\tcenter: m.center,\n\t\t\t\t\t\t\t\t\tnormalizeSize: m.normalizeSize\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (vModel && vModel.meshes && vModel.meshes.length > 0) variants.push(vModel);\n\t\t\t\t\t}\n\t\t\t\t\tif (variants.length === 0 && model) variants.push(model);\n\t\t\t\t\tlet meshRadius = 20;\n\t\t\t\t\tconst primaryBounds = variants[0]?.bounds;\n\t\t\t\t\tif (primaryBounds) {\n\t\t\t\t\t\tconst dx = primaryBounds.max[0] - primaryBounds.min[0];\n\t\t\t\t\t\tconst dy = primaryBounds.max[1] - primaryBounds.min[1];\n\t\t\t\t\t\tconst dz = primaryBounds.max[2] - primaryBounds.min[2];\n\t\t\t\t\t\tconst maxExtent = Math.max(dx, dy, dz) * .5;\n\t\t\t\t\t\tif (Number.isFinite(maxExtent) && maxExtent > .1) meshRadius = maxExtent;\n\t\t\t\t\t}\n\t\t\t\t\tlet sparksConfig;\n\t\t\t\t\tif (swarmOpt.sparks && typeof swarmOpt.sparks === \"object\") {\n\t\t\t\t\t\tconst sp = swarmOpt.sparks;\n\t\t\t\t\t\tconst spSize = Array.isArray(sp.size) ? [sp.size[0] ?? 3.2, sp.size[1] ?? 1.2] : [sp.size ?? 3.2, (sp.size ?? 3.2) * .35];\n\t\t\t\t\t\tconst spLife = Array.isArray(sp.lifetime) ? [sp.lifetime[0] ?? .35, sp.lifetime[1] ?? .9] : [sp.lifetime ?? .35, (sp.lifetime ?? .6) * 1.4];\n\t\t\t\t\t\tconst spSpeed = Array.isArray(sp.speed) ? [sp.speed[0] ?? 60, sp.speed[1] ?? 260] : [60, sp.speed ?? 260];\n\t\t\t\t\t\tlet spColor = [\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t.9,\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t];\n\t\t\t\t\t\tif (Array.isArray(sp.color) && sp.color.length >= 1) {\n\t\t\t\t\t\t\tconst sc$1 = parseColor(sp.color[Math.floor(sp.color.length / 2)]) ?? parseColor(sp.color[0]) ?? {\n\t\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\t\tg: .9,\n\t\t\t\t\t\t\t\tb: 1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tspColor = [\n\t\t\t\t\t\t\t\tsc$1.r,\n\t\t\t\t\t\t\t\tsc$1.g,\n\t\t\t\t\t\t\t\tsc$1.b\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} else if (typeof sp.color === \"string\") {\n\t\t\t\t\t\t\tconst sc$1 = parseColor(sp.color) ?? {\n\t\t\t\t\t\t\t\tr: 1,\n\t\t\t\t\t\t\t\tg: .9,\n\t\t\t\t\t\t\t\tb: 1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tspColor = [\n\t\t\t\t\t\t\t\tsc$1.r,\n\t\t\t\t\t\t\t\tsc$1.g,\n\t\t\t\t\t\t\t\tsc$1.b\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsparksConfig = {\n\t\t\t\t\t\t\tmax: sp.max ?? 2e3,\n\t\t\t\t\t\t\trate: sp.rate ?? 600,\n\t\t\t\t\t\t\tthreshold: sp.threshold ?? .25,\n\t\t\t\t\t\t\tsize: [spSize[0], spSize[1]],\n\t\t\t\t\t\t\tlifetime: [spLife[0], spLife[1]],\n\t\t\t\t\t\t\tspeed: [spSpeed[0], spSpeed[1]],\n\t\t\t\t\t\t\tintensity: sp.intensity ?? 9,\n\t\t\t\t\t\t\tcolor: spColor\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tconst staticConfig = {\n\t\t\t\t\t\tmax,\n\t\t\t\t\t\tseed,\n\t\t\t\t\t\tsubsteps,\n\t\t\t\t\t\tprewarm,\n\t\t\t\t\t\temitter: {\n\t\t\t\t\t\t\tshape: emitter.shape ?? \"point\",\n\t\t\t\t\t\t\tx: emitter.x ?? 0,\n\t\t\t\t\t\t\ty: emitter.y ?? 0,\n\t\t\t\t\t\t\tz: emitter.z ?? 0,\n\t\t\t\t\t\t\twidth: emitter.width ?? 100,\n\t\t\t\t\t\t\theight: emitter.height ?? 100,\n\t\t\t\t\t\t\tdepth: emitter.depth ?? 100,\n\t\t\t\t\t\t\tradius: emitter.radius ?? 50\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspeed: [speed[0], speed[1]],\n\t\t\t\t\t\tdirection: [\n\t\t\t\t\t\t\tdirection[0],\n\t\t\t\t\t\t\tdirection[1],\n\t\t\t\t\t\t\tdirection[2]\n\t\t\t\t\t\t],\n\t\t\t\t\t\tspread,\n\t\t\t\t\t\tangularSpeed: [angularSpeed[0], angularSpeed[1]],\n\t\t\t\t\t\tangularDrag,\n\t\t\t\t\t\tlifetime: [lifetime[0], lifetime[1]],\n\t\t\t\t\t\tsize: [size[0], size[1]],\n\t\t\t\t\t\tsizeJitter,\n\t\t\t\t\t\tfade: [fade[0], fade[1]],\n\t\t\t\t\t\tcolors: colorStops,\n\t\t\t\t\t\theat: {\n\t\t\t\t\t\t\tsource: heatOpt.source ?? \"both\",\n\t\t\t\t\t\t\tmaxSpeed: heatOpt.maxSpeed ?? 900,\n\t\t\t\t\t\t\tcurve: heatOpt.curve ?? 1.6,\n\t\t\t\t\t\t\tintensity: heatOpt.intensity ?? 5,\n\t\t\t\t\t\t\tcolors: heatColorStops\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvariants: Math.max(1, variants.length),\n\t\t\t\t\t\tmeshRadius,\n\t\t\t\t\t\tsparks: sparksConfig\n\t\t\t\t\t};\n\t\t\t\t\tlet swarmState = swarmStateMap.get(lop);\n\t\t\t\t\tif (!swarmState || swarmState.device !== ctx.device) {\n\t\t\t\t\t\tswarmState = r3d.swarm3dPipeline.createState(staticConfig);\n\t\t\t\t\t\tswarmStateMap.set(lop, swarmState);\n\t\t\t\t\t}\n\t\t\t\t\tconst targetF = shiftedFrame ?? 0;\n\t\t\t\t\tconst frameSampler = (f) => {\n\t\t\t\t\t\tconst fCtx = {\n\t\t\t\t\t\t\tframe: f,\n\t\t\t\t\t\t\tfps: fps || 30,\n\t\t\t\t\t\t\ttime: f / (fps || 30),\n\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\t\tprogress: 0,\n\t\t\t\t\t\t\tdeltaTime: 1 / (fps || 30)\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst sample = (d, fallback) => typeof d === \"number\" ? d : typeof d?.get === \"function\" ? Number(d.get(fCtx)) : typeof d === \"function\" ? Number(d(f)) : fallback;\n\t\t\t\t\t\tconst grav = swarmOpt.gravity;\n\t\t\t\t\t\tlet gx = 0;\n\t\t\t\t\t\tlet gy = 1200;\n\t\t\t\t\t\tlet gz = 0;\n\t\t\t\t\t\tif (Array.isArray(grav)) {\n\t\t\t\t\t\t\tgx = sample(grav[0], 0);\n\t\t\t\t\t\t\tgy = sample(grav[1], 1200);\n\t\t\t\t\t\t\tgz = sample(grav[2], 0);\n\t\t\t\t\t\t} else if (grav !== void 0) gy = sample(grav, 1200);\n\t\t\t\t\t\tconst rate = sample(emitter.rate, 150);\n\t\t\t\t\t\tconst dragVal = sample(swarmOpt.drag, .05);\n\t\t\t\t\t\tlet noiseStrength = 0;\n\t\t\t\t\t\tlet noiseScale = 200;\n\t\t\t\t\t\tlet noiseSpeed = 1;\n\t\t\t\t\t\tif (swarmOpt.noise) {\n\t\t\t\t\t\t\tnoiseStrength = sample(swarmOpt.noise.strength, 0);\n\t\t\t\t\t\t\tnoiseScale = swarmOpt.noise.scale ?? 200;\n\t\t\t\t\t\t\tnoiseSpeed = swarmOpt.noise.speed ?? 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst attractors = [];\n\t\t\t\t\t\tif (Array.isArray(swarmOpt.attractors)) for (const a of swarmOpt.attractors) attractors.push({\n\t\t\t\t\t\t\tx: sample(a.x, 0),\n\t\t\t\t\t\t\ty: sample(a.y, 0),\n\t\t\t\t\t\t\tz: sample(a.z, 0),\n\t\t\t\t\t\t\tstrength: sample(a.strength, 0),\n\t\t\t\t\t\t\tradius: a.radius\n\t\t\t\t\t\t});\n\t\t\t\t\t\tlet vortex;\n\t\t\t\t\t\tif (swarmOpt.vortex) vortex = {\n\t\t\t\t\t\t\tx: sample(swarmOpt.vortex.x, 0),\n\t\t\t\t\t\t\ty: sample(swarmOpt.vortex.y, 0),\n\t\t\t\t\t\t\tz: sample(swarmOpt.vortex.z, 0),\n\t\t\t\t\t\t\taxis: swarmOpt.vortex.axis ?? [\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t-1,\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tswirl: sample(swarmOpt.vortex.swirl, 0),\n\t\t\t\t\t\t\tpull: sample(swarmOpt.vortex.pull, 0),\n\t\t\t\t\t\t\taxial: sample(swarmOpt.vortex.axial, 0),\n\t\t\t\t\t\t\tradius: swarmOpt.vortex.radius ?? 800\n\t\t\t\t\t\t};\n\t\t\t\t\t\tlet floor;\n\t\t\t\t\t\tif (swarmOpt.floor) floor = {\n\t\t\t\t\t\t\ty: swarmOpt.floor.y ?? 500,\n\t\t\t\t\t\t\tbounce: swarmOpt.floor.bounce ?? .3,\n\t\t\t\t\t\t\tfriction: sample(swarmOpt.floor.friction, 1.5),\n\t\t\t\t\t\t\theatGain: swarmOpt.floor.heatGain ?? 1,\n\t\t\t\t\t\t\theatDecay: swarmOpt.floor.heatDecay ?? .45\n\t\t\t\t\t\t};\n\t\t\t\t\t\tlet emitterPos;\n\t\t\t\t\t\tif (emitter.x !== void 0 || emitter.y !== void 0 || emitter.z !== void 0) emitterPos = [\n\t\t\t\t\t\t\tsample(emitter.x, 0),\n\t\t\t\t\t\t\tsample(emitter.y, 0),\n\t\t\t\t\t\t\tsample(emitter.z, 0)\n\t\t\t\t\t\t];\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\trate,\n\t\t\t\t\t\t\tgravity: [\n\t\t\t\t\t\t\t\tgx,\n\t\t\t\t\t\t\t\tgy,\n\t\t\t\t\t\t\t\tgz\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tdrag: dragVal,\n\t\t\t\t\t\t\tnoise: {\n\t\t\t\t\t\t\t\tstrength: noiseStrength,\n\t\t\t\t\t\t\t\tscale: noiseScale,\n\t\t\t\t\t\t\t\tspeed: noiseSpeed\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tattractors,\n\t\t\t\t\t\t\tvortex,\n\t\t\t\t\t\t\tfloor,\n\t\t\t\t\t\t\temitterPos\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\tr3d.swarm3dPipeline.advance(swarmState, staticConfig, targetF, fps || 30, frameSampler);\n\t\t\t\t\tif (variants.length > 0) {\n\t\t\t\t\t\tconst sliceCount = swarmState.sliceCount;\n\t\t\t\t\t\tfor (let vIdx = 0; vIdx < variants.length; vIdx++) {\n\t\t\t\t\t\t\tconst vModel = variants[vIdx];\n\t\t\t\t\t\t\tconst firstInstance = vIdx * sliceCount;\n\t\t\t\t\t\t\tfor (const mesh of vModel.meshes) {\n\t\t\t\t\t\t\t\tconst mat = mesh.materialName ? vModel.materials[mesh.materialName] : void 0;\n\t\t\t\t\t\t\t\tconst meshOpts = {\n\t\t\t\t\t\t\t\t\tmodelMatrix: finalModelMatrix,\n\t\t\t\t\t\t\t\t\topacity: modelOpacity,\n\t\t\t\t\t\t\t\t\tcolorTint,\n\t\t\t\t\t\t\t\t\ttransparent: false,\n\t\t\t\t\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? true,\n\t\t\t\t\t\t\t\t\twireframe: Boolean(target?.wireframe ?? lop.wireframe),\n\t\t\t\t\t\t\t\t\tmaterial: target?.material ?? lop.material ?? swarmOpt.material ?? mat?.shading ?? \"lit\",\n\t\t\t\t\t\t\t\t\troughness: target?.roughness ?? lop.roughness ?? swarmOpt.roughness ?? mat?.roughness ?? .35,\n\t\t\t\t\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity ?? swarmOpt.specularIntensity ?? .5,\n\t\t\t\t\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity ?? swarmOpt.ambientIntensity ?? 1,\n\t\t\t\t\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic ?? swarmOpt.metallic ?? mat?.metallic ?? .7,\n\t\t\t\t\t\t\t\t\t...surfaceProps(target, lop, mat),\n\t\t\t\t\t\t\t\t\tinstanceBuffer: swarmState.instances,\n\t\t\t\t\t\t\t\t\tinstanceCount: sliceCount,\n\t\t\t\t\t\t\t\t\tfirstInstance\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\t\t\t\tmesh,\n\t\t\t\t\t\t\t\t\ttexture: mat ? await r3d.materialTexture(mat) : void 0,\n\t\t\t\t\t\t\t\t\topts: meshOpts\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (sparksConfig && sparksConfig.max > 0) {\n\t\t\t\t\t\t\tconst sparkModel = variants[0];\n\t\t\t\t\t\t\tconst sparkFirst = variants.length * sliceCount;\n\t\t\t\t\t\t\tfor (const mesh of sparkModel.meshes) {\n\t\t\t\t\t\t\t\tconst mat = mesh.materialName ? sparkModel.materials[mesh.materialName] : void 0;\n\t\t\t\t\t\t\t\tconst sparkOpts = {\n\t\t\t\t\t\t\t\t\tmodelMatrix: finalModelMatrix,\n\t\t\t\t\t\t\t\t\topacity: modelOpacity,\n\t\t\t\t\t\t\t\t\tcolorTint,\n\t\t\t\t\t\t\t\t\ttransparent: false,\n\t\t\t\t\t\t\t\t\ttwoSided: true,\n\t\t\t\t\t\t\t\t\twireframe: false,\n\t\t\t\t\t\t\t\t\tmaterial: \"lit\",\n\t\t\t\t\t\t\t\t\troughness: .2,\n\t\t\t\t\t\t\t\t\tspecularIntensity: .8,\n\t\t\t\t\t\t\t\t\tambientIntensity: 1,\n\t\t\t\t\t\t\t\t\tmetallic: .9,\n\t\t\t\t\t\t\t\t\t...surfaceProps(target, lop, mat),\n\t\t\t\t\t\t\t\t\tinstanceBuffer: swarmState.instances,\n\t\t\t\t\t\t\t\t\tinstanceCount: sparksConfig.max,\n\t\t\t\t\t\t\t\t\tfirstInstance: sparkFirst\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\t\t\t\tmesh,\n\t\t\t\t\t\t\t\t\ttexture: mat ? await r3d.materialTexture(mat) : void 0,\n\t\t\t\t\t\t\t\t\topts: sparkOpts\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: destTex,\n\t\t\t\t\t\tfinalView: destView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tlet skinningMatrices;\n\t\t\t\tconst animProgress = target?.animationProgress ?? lop.animationProgress ?? 0;\n\t\t\t\tconst animTime = target?.animationTime ?? lop.animationTime ?? 0;\n\t\t\t\tconst animSpeed = target?.animationSpeed ?? lop.animationSpeed ?? 1;\n\t\t\t\tconst clip = (lop.animationName ? model.animations.find((a) => a.name === lop.animationName) : void 0) ?? model.animations[0];\n\t\t\t\tlet clipSec = 0;\n\t\t\t\tif (clip && clip.duration > 0) {\n\t\t\t\t\tclipSec = animProgress > 0 ? animProgress * clip.duration : animTime + (shiftedFrame ?? 0) / (fps || 30) * animSpeed;\n\t\t\t\t\tif (lop.loop ?? true) clipSec %= clip.duration;\n\t\t\t\t}\n\t\t\t\tconst sceneRoot = Matrix4Math.multiply(finalModelMatrix, model.rootTransform ?? Matrix4Math.identity());\n\t\t\t\tconst posed = model.nodes ? poseNodes(model, clip, clipSec) : void 0;\n\t\t\t\tconst skinCache = /* @__PURE__ */ new Map();\n\t\t\t\tconst placeMesh = (mesh) => {\n\t\t\t\t\tif (!posed) return { matrix: sceneRoot };\n\t\t\t\t\tif (mesh.skin !== void 0) {\n\t\t\t\t\t\tlet joints = skinCache.get(mesh.skin);\n\t\t\t\t\t\tif (!joints) {\n\t\t\t\t\t\t\tjoints = jointMatrices(model, mesh.skin, posed);\n\t\t\t\t\t\t\tskinCache.set(mesh.skin, joints);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tmatrix: sceneRoot,\n\t\t\t\t\t\t\tjoints\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tif (mesh.node !== void 0) return { matrix: Matrix4Math.multiply(sceneRoot, posed[mesh.node]) };\n\t\t\t\t\treturn { matrix: sceneRoot };\n\t\t\t\t};\n\t\t\t\tif (!posed && clip && clip.duration > 0) {\n\t\t\t\t\tconst currentSec = clipSec;\n\t\t\t\t\tif (model.skeleton && model.skeleton.bones.length > 0) {\n\t\t\t\t\t\tconst numBones = model.skeleton.bones.length;\n\t\t\t\t\t\tskinningMatrices = new Float32Array(numBones * 16);\n\t\t\t\t\t\tfor (let b = 0; b < numBones; b++) {\n\t\t\t\t\t\t\tskinningMatrices[b * 16] = 1;\n\t\t\t\t\t\t\tskinningMatrices[b * 16 + 5] = 1;\n\t\t\t\t\t\t\tskinningMatrices[b * 16 + 10] = 1;\n\t\t\t\t\t\t\tskinningMatrices[b * 16 + 15] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (const track of clip.tracks) {\n\t\t\t\t\t\t\tconst boneIdx = model.skeleton.boneIndicesByName[track.nodeName];\n\t\t\t\t\t\t\tif (boneIdx !== void 0 && boneIdx < numBones) {\n\t\t\t\t\t\t\t\tconst times = track.times;\n\t\t\t\t\t\t\t\tlet sampleIdx = 0;\n\t\t\t\t\t\t\t\tfor (let k = 0; k < times.length - 1; k++) if (currentSec >= times[k] && currentSec <= times[k + 1]) {\n\t\t\t\t\t\t\t\t\tsampleIdx = k;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst t0 = times[sampleIdx] ?? 0;\n\t\t\t\t\t\t\t\tconst t1 = times[sampleIdx + 1] ?? t0;\n\t\t\t\t\t\t\t\tconst alpha = t1 > t0 ? (currentSec - t0) / (t1 - t0) : 0;\n\t\t\t\t\t\t\t\tif (track.translations) {\n\t\t\t\t\t\t\t\t\tconst x0 = track.translations[sampleIdx * 3] ?? 0;\n\t\t\t\t\t\t\t\t\tconst y0 = track.translations[sampleIdx * 3 + 1] ?? 0;\n\t\t\t\t\t\t\t\t\tconst z0 = track.translations[sampleIdx * 3 + 2] ?? 0;\n\t\t\t\t\t\t\t\t\tconst x1 = track.translations[(sampleIdx + 1) * 3] ?? x0;\n\t\t\t\t\t\t\t\t\tconst y1 = track.translations[(sampleIdx + 1) * 3 + 1] ?? y0;\n\t\t\t\t\t\t\t\t\tconst z1 = track.translations[(sampleIdx + 1) * 3 + 2] ?? z0;\n\t\t\t\t\t\t\t\t\tconst curX = x0 + (x1 - x0) * alpha;\n\t\t\t\t\t\t\t\t\tconst curY = y0 + (y1 - y0) * alpha;\n\t\t\t\t\t\t\t\t\tconst curZ = z0 + (z1 - z0) * alpha;\n\t\t\t\t\t\t\t\t\tconst boneMat = Matrix4Math.translate(curX, curY, curZ);\n\t\t\t\t\t\t\t\t\tconst bone = model.skeleton.bones[boneIdx];\n\t\t\t\t\t\t\t\t\tconst skinMat = bone ? Matrix4Math.multiply(boneMat, bone.inverseBindMatrix) : boneMat;\n\t\t\t\t\t\t\t\t\tskinningMatrices.set(skinMat, boneIdx * 16);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (const mesh of model.meshes) {\n\t\t\t\t\tconst mat = mesh.materialName ? model.materials[mesh.materialName] : void 0;\n\t\t\t\t\tconst placed = placeMesh(mesh);\n\t\t\t\t\tconst meshSkin = placed.joints ?? skinningMatrices;\n\t\t\t\t\tlet meshColorTint;\n\t\t\t\t\tif (colorParsed) if (mat?.diffuseColor) meshColorTint = [\n\t\t\t\t\t\tmat.diffuseColor[0] * colorTint[0],\n\t\t\t\t\t\tmat.diffuseColor[1] * colorTint[1],\n\t\t\t\t\t\tmat.diffuseColor[2] * colorTint[2],\n\t\t\t\t\t\t(mat.diffuseColor[3] ?? 1) * colorTint[3]\n\t\t\t\t\t];\n\t\t\t\t\telse meshColorTint = colorTint;\n\t\t\t\t\telse if (mat?.diffuseColor) meshColorTint = mat.diffuseColor;\n\t\t\t\t\telse meshColorTint = [\n\t\t\t\t\t\t.8,\n\t\t\t\t\t\t.8,\n\t\t\t\t\t\t.85,\n\t\t\t\t\t\t1\n\t\t\t\t\t];\n\t\t\t\t\tconst audioDeformConfig = target?.audioDeform ?? lop.audioDeform;\n\t\t\t\t\tlet meshAudioDeform;\n\t\t\t\t\tif (audioDeformConfig) {\n\t\t\t\t\t\tconst currentSec = (shiftedFrame ?? 0) / (fps || 30);\n\t\t\t\t\t\tconst timeMs = currentSec * 1e3;\n\t\t\t\t\t\tlet latentBuffer = audioDeformConfig.latentBuffer;\n\t\t\t\t\t\tif (!latentBuffer && audioDeformConfig.audioBuffer) latentBuffer = audioDeformConfig.audioBuffer;\n\t\t\t\t\t\tif (!latentBuffer) {\n\t\t\t\t\t\t\tconst directAudio = audioDeformConfig.audioData;\n\t\t\t\t\t\t\tif (directAudio) {\n\t\t\t\t\t\t\t\tconst cacheKey = (lop.id ?? \"audio-mesh\") + \"-direct-audio\";\n\t\t\t\t\t\t\t\tlet trackCache = audioTrackLatentCache.get(cacheKey);\n\t\t\t\t\t\t\t\tif (!trackCache) {\n\t\t\t\t\t\t\t\t\tconst chs = Array.isArray(directAudio) ? directAudio : directAudio.channels;\n\t\t\t\t\t\t\t\t\tconst sRate = Array.isArray(directAudio) ? 48e3 : directAudio.sampleRate;\n\t\t\t\t\t\t\t\t\tconst totalF = Math.max(10, Math.ceil((chs[0]?.length ?? 0) / sRate * (fps || 30)) + 10);\n\t\t\t\t\t\t\t\t\ttrackCache = new AudioLatentTrackCache(chs, sRate, fps || 30, totalF);\n\t\t\t\t\t\t\t\t\taudioTrackLatentCache.set(cacheKey, trackCache);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlatentBuffer = trackCache.getGpuBuffer(ctx.device, shiftedFrame ?? 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!latentBuffer && audioDeformConfig.audioTrackId) {\n\t\t\t\t\t\t\tconst trackId = audioDeformConfig.audioTrackId;\n\t\t\t\t\t\t\tlet foundAudioUrl;\n\t\t\t\t\t\t\tconst searchVms = (list) => {\n\t\t\t\t\t\t\t\tfor (const v of list) {\n\t\t\t\t\t\t\t\t\tconst op$1 = v.operation;\n\t\t\t\t\t\t\t\t\tif (op$1) {\n\t\t\t\t\t\t\t\t\t\tif (op$1.id === trackId || op$1.inputHandleId === trackId) {\n\t\t\t\t\t\t\t\t\t\t\tfoundAudioUrl = op$1.inputHandleId || op$1.src || op$1.url;\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (v.children) searchVms(v.children);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (virtualMedia.children) searchVms(virtualMedia.children);\n\t\t\t\t\t\t\tif (!foundAudioUrl && (trackId.endsWith(\".mp3\") || trackId.endsWith(\".wav\") || trackId.endsWith(\".ogg\"))) foundAudioUrl = trackId;\n\t\t\t\t\t\t\tif (foundAudioUrl) try {\n\t\t\t\t\t\t\t\tlet trackCache = audioTrackLatentCache.get(foundAudioUrl);\n\t\t\t\t\t\t\t\tif (!trackCache) {\n\t\t\t\t\t\t\t\t\tconst decoded = await decodeAudioSource(foundAudioUrl);\n\t\t\t\t\t\t\t\t\tif (decoded && decoded.channels.length > 0) {\n\t\t\t\t\t\t\t\t\t\tconst sRate = decoded.sampleRate || 48e3;\n\t\t\t\t\t\t\t\t\t\tconst ch0Len = decoded.channels[0]?.length ?? 0;\n\t\t\t\t\t\t\t\t\t\tconst durationSec$1 = decoded.durationSec ?? ch0Len / sRate;\n\t\t\t\t\t\t\t\t\t\tconst totalF = Math.max(10, Math.ceil(durationSec$1 * (fps || 30)) + 10);\n\t\t\t\t\t\t\t\t\t\ttrackCache = new AudioLatentTrackCache(decoded.channels, sRate, fps || 30, totalF);\n\t\t\t\t\t\t\t\t\t\taudioTrackLatentCache.set(foundAudioUrl, trackCache);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (trackCache) latentBuffer = trackCache.getGpuBuffer(ctx.device, shiftedFrame ?? 0);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tconsole.warn(\"[webgpu-renderer] Failed to decode audio for deformWithAudio:\", err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (latentBuffer) {\n\t\t\t\t\t\t\tlet amplitudeMultiplier = audioDeformConfig.amplitudeMultiplier ?? 1;\n\t\t\t\t\t\t\tif (typeof amplitudeMultiplier !== \"number\" && typeof amplitudeMultiplier?.get === \"function\") {\n\t\t\t\t\t\t\t\tconst frameCtx = {\n\t\t\t\t\t\t\t\t\tframe: shiftedFrame ?? 0,\n\t\t\t\t\t\t\t\t\tfps: fps || 30,\n\t\t\t\t\t\t\t\t\ttime: currentSec,\n\t\t\t\t\t\t\t\t\tduration: 0,\n\t\t\t\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\t\t\t\tprogress: 0,\n\t\t\t\t\t\t\t\t\tdeltaTime: 1 / (fps || 30)\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tamplitudeMultiplier = Number(amplitudeMultiplier.get(frameCtx));\n\t\t\t\t\t\t\t} else if (typeof amplitudeMultiplier !== \"number\" && typeof amplitudeMultiplier?.value === \"number\") amplitudeMultiplier = amplitudeMultiplier.value;\n\t\t\t\t\t\t\tmeshAudioDeform = {\n\t\t\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\t\t\t...audioDeformConfig,\n\t\t\t\t\t\t\t\t\tamplitudeMultiplier: Number.isFinite(amplitudeMultiplier) ? amplitudeMultiplier : 1\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlatentBuffer,\n\t\t\t\t\t\t\t\ttimeMs,\n\t\t\t\t\t\t\t\tsampleRate: 48e3\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst meshOpts = {\n\t\t\t\t\t\tmodelMatrix: placed.matrix,\n\t\t\t\t\t\tmorphWeights: sampleMorphWeights(mesh, clip, clipSec),\n\t\t\t\t\t\topacity: modelOpacity * (mat?.opacity ?? 1),\n\t\t\t\t\t\tcolorTint: meshColorTint,\n\t\t\t\t\t\ttransparent: mat?.alphaMode === \"blend\" || modelOpacity * (mat?.opacity ?? 1) < 1 || meshColorTint[3] < 1 || hasVertexAlpha(mesh),\n\t\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? mat?.twoSided ?? true,\n\t\t\t\t\t\twireframe: Boolean(target?.wireframe ?? lop.wireframe),\n\t\t\t\t\t\tisSkinned: Boolean(meshSkin || mesh.jointIndices && mesh.jointWeights),\n\t\t\t\t\t\tskinningMatrices: meshSkin,\n\t\t\t\t\t\tmaterial: target?.material ?? lop.material ?? mat?.shading ?? \"lit\",\n\t\t\t\t\t\tshadeColor: mat?.shadeColor,\n\t\t\t\t\t\talphaCutoff: mat?.alphaCutoff,\n\t\t\t\t\t\ttextureWrap: mat?.textureWrap,\n\t\t\t\t\t\ttextureFilter: mat?.textureFilter,\n\t\t\t\t\t\tshininess: target?.shininess ?? lop.shininess ?? mat?.shininess ?? 32,\n\t\t\t\t\t\troughness: target?.roughness ?? lop.roughness ?? mat?.roughness,\n\t\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity ?? .5,\n\t\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity ?? 1,\n\t\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic ?? mat?.metallic,\n\t\t\t\t\t\t...surfaceProps(target, lop, mat),\n\t\t\t\t\t\tior: target?.ior ?? lop.ior,\n\t\t\t\t\t\tdispersion: target?.dispersion ?? lop.dispersion,\n\t\t\t\t\t\tthickness: target?.thickness ?? lop.thickness,\n\t\t\t\t\t\taudioDeform: meshAudioDeform\n\t\t\t\t\t};\n\t\t\t\t\tif (mat) meshOpts.maps = await r3d.materialMaps(mat);\n\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\tkind: \"mesh\",\n\t\t\t\t\t\tmesh,\n\t\t\t\t\t\ttexture: mat ? await r3d.materialTexture(mat) : void 0,\n\t\t\t\t\t\topts: meshOpts\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: destTex,\n\t\t\t\t\tfinalView: destView\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst rect = rects[lop.id];\n\t\t\tif (!rect) {\n\t\t\t\tif (isContainer) return await renderNodeTree(nodeVM.children ?? [], destTex, destView, excludes, accumulatedOpacity, parentMatrix, parentRect, targetW, targetH, parent3DMatrix, isRootScene);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst baseX = lop.x ?? 0;\n\t\t\tconst baseY = lop.y ?? 0;\n\t\t\tconst sampledX = target?.x ?? baseX;\n\t\t\tconst sampledY = target?.y ?? baseY;\n\t\t\tlet localX = 0;\n\t\t\tlet localY = 0;\n\t\t\tif (parentRect) {\n\t\t\t\tconst localLayoutX = rect.x - parentRect.x;\n\t\t\t\tconst localLayoutY = rect.y - parentRect.y;\n\t\t\t\tlocalX = localLayoutX + (sampledX - baseX);\n\t\t\t\tlocalY = localLayoutY + (sampledY - baseY);\n\t\t\t} else {\n\t\t\t\tlocalX = rect.x + (sampledX - baseX);\n\t\t\t\tlocalY = rect.y + (sampledY - baseY);\n\t\t\t}\n\t\t\tconst scale$1 = target?.scale ?? lop.scale ?? 1;\n\t\t\tconst scaleX = target?.scaleX ?? lop.scaleX ?? 1;\n\t\t\tconst scaleY = target?.scaleY ?? lop.scaleY ?? 1;\n\t\t\tconst rotation = target?.rotation ?? lop.rotation ?? 0;\n\t\t\tconst layerOpacity = (target?.opacity ?? lop.opacity ?? 1) * accumulatedOpacity;\n\t\t\tconst rawAnimators = target?.animators ?? lop.animators;\n\t\t\tconst isPathText = kind === \"text\" && Boolean(lop.pathOptions || target?.pathOptions);\n\t\t\tconst hasKineticAnimators = kind === \"text\" && Array.isArray(rawAnimators) && rawAnimators.length > 0;\n\t\t\tconst hasFormation = kind === \"text\" && Array.isArray(rawAnimators) && rawAnimators.some((a) => {\n\t\t\t\tconst anim = a;\n\t\t\t\treturn anim?.props?.formation !== void 0 || anim?.formation !== void 0;\n\t\t\t});\n\t\t\tlet padX = 0;\n\t\t\tlet padY = 0;\n\t\t\tif (hasFormation) {\n\t\t\t\tlet formationRadius = 0;\n\t\t\t\tlet formationPitch = 0;\n\t\t\t\tfor (const a of rawAnimators) {\n\t\t\t\t\tconst anim = a;\n\t\t\t\t\tconst f = anim?.props?.formation ?? anim?.formation;\n\t\t\t\t\tif (f) {\n\t\t\t\t\t\tif (typeof f.radius === \"number\") formationRadius = Math.max(formationRadius, f.radius);\n\t\t\t\t\t\tif (typeof f.pitch === \"number\") formationPitch = Math.max(formationPitch, f.pitch);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpadX = Math.max(160, Math.ceil(formationRadius + 100));\n\t\t\t\tpadY = Math.max(100, Math.ceil(formationRadius + formationPitch * 15 + 100));\n\t\t\t} else if (!isPathText && hasKineticAnimators) {\n\t\t\t\tpadX = Math.max(80, Math.ceil(rect.width * .2));\n\t\t\t\tpadY = Math.max(50, Math.ceil(rect.height * .5));\n\t\t\t}\n\t\t\tconst layerW = isPathText ? targetW : rect.width + padX * 2;\n\t\t\tconst layerH = isPathText ? targetH : rect.height + padY * 2;\n\t\t\tif (!isPathText && hasKineticAnimators) {\n\t\t\t\tlocalX -= padX;\n\t\t\t\tlocalY -= padY;\n\t\t\t}\n\t\t\tconst anchorX = lop.anchorX ?? .5;\n\t\t\tconst anchorY = lop.anchorY ?? .5;\n\t\t\tconst localMatrix = toDOMMatrix(buildLayerMatrix({\n\t\t\t\tx: localX,\n\t\t\t\ty: localY,\n\t\t\t\twidth: layerW,\n\t\t\t\theight: layerH,\n\t\t\t\trotation,\n\t\t\t\tscale: scale$1,\n\t\t\t\tscaleX,\n\t\t\t\tscaleY,\n\t\t\t\tanchorX: isPathText ? anchorX * rect.width / layerW : anchorX,\n\t\t\t\tanchorY: isPathText ? anchorY * rect.height / layerH : anchorY\n\t\t\t}));\n\t\t\tconst layerMatrix = parentMatrix.multiply(localMatrix);\n\t\t\tconst blendMode = lop.blendMode || \"normal\";\n\t\t\tlet activeTex = destTex;\n\t\t\tlet activeView = destView;\n\t\t\tconst is3D = has3DTransform(target, lop);\n\t\t\tconst rotateX = target?.rotateX ?? lop.rotateX ?? 0;\n\t\t\tconst rotateY = target?.rotateY ?? lop.rotateY ?? 0;\n\t\t\tconst rotateZ = target?.rotateZ ?? lop.rotateZ ?? 0;\n\t\t\tconst translateZ = target?.translateZ ?? lop.translateZ ?? 0;\n\t\t\tconst perspective = target?.perspective ?? lop.perspective ?? 0;\n\t\t\tconst perspectiveOriginX = target?.perspectiveOriginX ?? lop.perspectiveOriginX ?? lop.anchorX ?? .5;\n\t\t\tconst perspectiveOriginY = target?.perspectiveOriginY ?? lop.perspectiveOriginY ?? lop.anchorY ?? .5;\n\t\t\tconst backfaceVisibility = target?.backfaceVisibility ?? lop.backfaceVisibility ?? \"visible\";\n\t\t\tlet quad3D = null;\n\t\t\tif (is3D) {\n\t\t\t\tconst m3d = Transform3DMath.buildLayer3DMatrix({\n\t\t\t\t\tx: localX,\n\t\t\t\t\ty: localY,\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH,\n\t\t\t\t\trotateXDeg: rotateX,\n\t\t\t\t\trotateYDeg: rotateY,\n\t\t\t\t\trotateZDeg: rotateZ !== 0 ? rotateZ : rotation,\n\t\t\t\t\tscaleX: scaleX * scale$1,\n\t\t\t\t\tscaleY: scaleY * scale$1,\n\t\t\t\t\tperspectivePx: perspective,\n\t\t\t\t\toriginXRatio: perspectiveOriginX,\n\t\t\t\t\toriginYRatio: perspectiveOriginY,\n\t\t\t\t\ttranslateZPx: translateZ\n\t\t\t\t});\n\t\t\t\tlet q = Transform3DMath.projectRectangleCorners(m3d, layerW, layerH);\n\t\t\t\tif (!parentMatrix.isIdentity) q = {\n\t\t\t\t\ttopLeft: parentMatrix.transformPoint(new DOMPoint(q.topLeft.x, q.topLeft.y)),\n\t\t\t\t\ttopRight: parentMatrix.transformPoint(new DOMPoint(q.topRight.x, q.topRight.y)),\n\t\t\t\t\tbottomLeft: parentMatrix.transformPoint(new DOMPoint(q.bottomLeft.x, q.bottomLeft.y)),\n\t\t\t\t\tbottomRight: parentMatrix.transformPoint(new DOMPoint(q.bottomRight.x, q.bottomRight.y))\n\t\t\t\t};\n\t\t\t\tif (backfaceVisibility === \"hidden\" && Transform3DMath.computeSignedArea(q) < 0) return;\n\t\t\t\tquad3D = q;\n\t\t\t}\n\t\t\tconst isTrue3D = Boolean(target?.is3D ?? lop.is3D) || Boolean(camera && ((target?.z ?? lop.z ?? 0) !== 0 || lop.is3D));\n\t\t\tif (isContainer) {\n\t\t\t\tif (lop.transformStyle === \"preserve-3d\" && isTrue3D) {\n\t\t\t\t\tlet current3DMatrix = Matrix4Math.identity();\n\t\t\t\t\tconst containerX = parent3DMatrix !== null ? target?.x ?? lop.x ?? 0 : target?.x ?? lop.x ?? localX + layerW * .5;\n\t\t\t\t\tconst containerY = parent3DMatrix !== null ? target?.y ?? lop.y ?? 0 : target?.y ?? lop.y ?? localY + layerH * .5;\n\t\t\t\t\tconst containerZ = target?.z ?? lop.z ?? 0;\n\t\t\t\t\tcurrent3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.translate(containerX, containerY, containerZ));\n\t\t\t\t\tconst rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);\n\t\t\t\t\tif (rzRad !== 0) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.rotateZ(rzRad));\n\t\t\t\t\tif (ryRad !== 0) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.rotateY(ryRad));\n\t\t\t\t\tif (rxRad !== 0) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.rotateX(rxRad));\n\t\t\t\t\tconst csX = (target?.scaleX ?? lop.scaleX ?? 1) * scale$1;\n\t\t\t\t\tconst csY = (target?.scaleY ?? lop.scaleY ?? 1) * scale$1;\n\t\t\t\t\tconst csZ = (target?.scaleZ ?? lop.scaleZ ?? 1) * scale$1;\n\t\t\t\t\tif (csX !== 1 || csY !== 1 || csZ !== 1) current3DMatrix = Matrix4Math.multiply(current3DMatrix, Matrix4Math.scale(csX, csY, csZ));\n\t\t\t\t\tif (parent3DMatrix) current3DMatrix = Matrix4Math.multiply(parent3DMatrix, current3DMatrix);\n\t\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, activeTex, activeView, excludes, layerOpacity, new DOMMatrix(), null, layerW, layerH, current3DMatrix, false);\n\t\t\t\t\t\tactiveTex = res.finalTex;\n\t\t\t\t\t\tactiveView = res.finalView;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (isTrue3D) {\n\t\t\t\t\tconst texW$1 = Math.max(1, Math.ceil(layerW));\n\t\t\t\t\tconst texH$1 = Math.max(1, Math.ceil(layerH));\n\t\t\t\t\tconst groupExcludes$1 = [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes,\n\t\t\t\t\t\t...pendingTextures()\n\t\t\t\t\t];\n\t\t\t\t\tconst groupTex$1 = ctx.renderer.getTemporaryTexture(texW$1, texH$1, groupExcludes$1);\n\t\t\t\t\tconst groupView$1 = groupTex$1.createView();\n\t\t\t\t\tctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW$1, texH$1, \"clear\").end();\n\t\t\t\t\tconst br$2 = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\t\theight: layerH\n\t\t\t\t\t\t}, lop.background, 0, { opacity: 1 });\n\t\t\t\t\t\tbgPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tlet activeGroupTex$1 = groupTex$1;\n\t\t\t\t\tlet activeGroupView$1 = groupView$1;\n\t\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, groupTex$1, groupView$1, [groupTex$1, ...groupExcludes$1], 1, new DOMMatrix(), rect, texW$1, texH$1, null, false);\n\t\t\t\t\t\tactiveGroupTex$1 = res.finalTex;\n\t\t\t\t\t\tactiveGroupView$1 = res.finalView;\n\t\t\t\t\t}\n\t\t\t\t\tconst borderResult$2 = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$2, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [activeGroupTex$1, ...groupExcludes$1]) : null;\n\t\t\t\t\tif (borderResult$2) {\n\t\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, activeGroupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult$2.borderTex, {\n\t\t\t\t\t\t\tx: borderResult$2.ox,\n\t\t\t\t\t\t\ty: borderResult$2.oy,\n\t\t\t\t\t\t\twidth: borderResult$2.ow,\n\t\t\t\t\t\t\theight: borderResult$2.oh\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tborderPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tlet modelMatrix;\n\t\t\t\t\tif (parent3DMatrix) {\n\t\t\t\t\t\tlet localM = Matrix4Math.identity();\n\t\t\t\t\t\tconst childX = target?.x ?? lop.x ?? 0;\n\t\t\t\t\t\tconst childY = target?.y ?? lop.y ?? 0;\n\t\t\t\t\t\tconst childZ = target?.z ?? lop.z ?? 0;\n\t\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.translate(childX, childY, childZ));\n\t\t\t\t\t\tconst rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;\n\t\t\t\t\t\tconst ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;\n\t\t\t\t\t\tconst rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);\n\t\t\t\t\t\tif (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));\n\t\t\t\t\t\tif (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));\n\t\t\t\t\t\tif (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));\n\t\t\t\t\t\tconst sx = layerW * scale$1 * scaleX;\n\t\t\t\t\t\tconst sy = layerH * scale$1 * scaleY;\n\t\t\t\t\t\tconst sz = target?.scaleZ ?? lop.scaleZ ?? 1;\n\t\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.scale(sx, sy, sz));\n\t\t\t\t\t\tconst ax = lop.anchorX ?? .5;\n\t\t\t\t\t\tconst ay = lop.anchorY ?? .5;\n\t\t\t\t\t\tconst pivotX = .5 - ax;\n\t\t\t\t\t\tconst pivotY = .5 - ay;\n\t\t\t\t\t\tif (pivotX !== 0 || pivotY !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.translate(pivotX, pivotY, 0));\n\t\t\t\t\t\tmodelMatrix = Matrix4Math.multiply(parent3DMatrix, localM);\n\t\t\t\t\t}\n\t\t\t\t\tconst quadOpts = {\n\t\t\t\t\t\tposition: [\n\t\t\t\t\t\t\tlocalX + layerW * .5,\n\t\t\t\t\t\t\tlocalY + layerH * .5,\n\t\t\t\t\t\t\ttarget?.z ?? lop.z ?? 0\n\t\t\t\t\t\t],\n\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\theight: layerH,\n\t\t\t\t\t\ttextureExtent: [layerW / activeGroupTex$1.width, layerH / activeGroupTex$1.height],\n\t\t\t\t\t\trotation: [\n\t\t\t\t\t\t\ttarget?.rotateX ?? lop.rotateX ?? 0,\n\t\t\t\t\t\t\ttarget?.rotateY ?? lop.rotateY ?? 0,\n\t\t\t\t\t\t\t(target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation\n\t\t\t\t\t\t],\n\t\t\t\t\t\tscale: [\n\t\t\t\t\t\t\tscale$1 * scaleX,\n\t\t\t\t\t\t\tscale$1 * scaleY,\n\t\t\t\t\t\t\ttarget?.scaleZ ?? lop.scaleZ ?? 1\n\t\t\t\t\t\t],\n\t\t\t\t\t\tanchor: [lop.anchorX ?? .5, lop.anchorY ?? .5],\n\t\t\t\t\t\tborderRadius: br$2,\n\t\t\t\t\t\tborderWidth: lop.borderWidth,\n\t\t\t\t\t\tborderColor: lop.borderColor,\n\t\t\t\t\t\topacity: layerOpacity,\n\t\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? true,\n\t\t\t\t\t\tmaterial: target?.material ?? lop.material,\n\t\t\t\t\t\tshininess: target?.shininess ?? lop.shininess,\n\t\t\t\t\t\troughness: target?.roughness ?? lop.roughness,\n\t\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity,\n\t\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,\n\t\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic,\n\t\t\t\t\t\t...surfaceProps(target, lop),\n\t\t\t\t\t\t...modelMatrix && { modelMatrix }\n\t\t\t\t\t};\n\t\t\t\t\tpending3DItems.push({\n\t\t\t\t\t\tkind: \"quad\",\n\t\t\t\t\t\ttexture: activeGroupTex$1,\n\t\t\t\t\t\topts: quadOpts\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (is3D && quad3D) {\n\t\t\t\t\tconst texW$1 = Math.max(1, Math.ceil(layerW));\n\t\t\t\t\tconst texH$1 = Math.max(1, Math.ceil(layerH));\n\t\t\t\t\tconst groupExcludes$1 = [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t];\n\t\t\t\t\tconst groupTex$1 = ctx.renderer.getTemporaryTexture(texW$1, texH$1, groupExcludes$1);\n\t\t\t\t\tconst groupView$1 = groupTex$1.createView();\n\t\t\t\t\tctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW$1, texH$1, \"clear\").end();\n\t\t\t\t\tconst br$2 = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, groupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\t\theight: layerH\n\t\t\t\t\t\t}, lop.background, br$2, { opacity: 1 });\n\t\t\t\t\t\tbgPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tlet activeGroupTex$1 = groupTex$1;\n\t\t\t\t\tlet activeGroupView$1 = groupView$1;\n\t\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, groupTex$1, groupView$1, [groupTex$1, ...groupExcludes$1], 1, new DOMMatrix(), rect, texW$1, texH$1, null, false);\n\t\t\t\t\t\tactiveGroupTex$1 = res.finalTex;\n\t\t\t\t\t\tactiveGroupView$1 = res.finalView;\n\t\t\t\t\t}\n\t\t\t\t\tconst borderResult$2 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$2, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [activeGroupTex$1, ...groupExcludes$1]) : null;\n\t\t\t\t\tif (borderResult$2) {\n\t\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, activeGroupView$1, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, texW$1, texH$1, \"load\");\n\t\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult$2.borderTex, {\n\t\t\t\t\t\t\tx: borderResult$2.ox,\n\t\t\t\t\t\t\ty: borderResult$2.oy,\n\t\t\t\t\t\t\twidth: borderResult$2.ow,\n\t\t\t\t\t\t\theight: borderResult$2.oh\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tborderPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tconst container3DShutter = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;\n\t\t\t\t\tif (container3DShutter > 0 && fps && shiftedFrame !== void 0) {\n\t\t\t\t\t\tseekTimeline(compiled, shiftedFrame - 1, fps);\n\t\t\t\t\t\tconst prevTarget = targetId ? targetsById[targetId] : void 0;\n\t\t\t\t\t\tconst prevX = prevTarget?.x ?? baseX;\n\t\t\t\t\t\tconst prevY = prevTarget?.y ?? baseY;\n\t\t\t\t\t\tseekTimeline(compiled, shiftedFrame, fps);\n\t\t\t\t\t\tconst vx = sampledX - prevX;\n\t\t\t\t\t\tconst vy = sampledY - prevY;\n\t\t\t\t\t\tif (Math.hypot(vx, vy) > .5) {\n\t\t\t\t\t\t\tactiveGroupTex$1 = ctx.renderer.applyMotionBlur(encoder, activeGroupTex$1, vx, vy, container3DShutter, 16, [\n\t\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tactiveGroupView$1 = activeGroupTex$1.createView();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (blendMode === \"normal\" || blendMode === \"source-over\") drawProjectedQuad(ctx, encoder, activeView, activeGroupTex$1, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst compositeExcludes$1 = [\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\tactiveGroupTex$1,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t];\n\t\t\t\t\t\tif (borderResult$2) compositeExcludes$1.push(borderResult$2.borderTex);\n\t\t\t\t\t\tconst layerTex = ctx.renderer.getTemporaryTexture(targetW, targetH, compositeExcludes$1);\n\t\t\t\t\t\tconst layerView = layerTex.createView();\n\t\t\t\t\t\tctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\t\tdrawProjectedQuad(ctx, encoder, layerView, activeGroupTex$1, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, layerTex, blendMode, [targetTexture, ...excludes]);\n\t\t\t\t\t\tactiveView = activeTex.createView();\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst shouldClip = lop.overflow !== \"visible\";\n\t\t\t\tconst scissorRect = shouldClip ? computeContainerScissor(layerMatrix, layerW, layerH) : null;\n\t\t\t\tconst clipRadius = shouldClip ? Math.min(target?.borderRadius ?? lop.borderRadius ?? 0, layerW / 2, layerH / 2) : 0;\n\t\t\t\tif ((kind === \"flex\" || kind === \"block\") && (!Array.isArray(lop.effects) || lop.effects.length === 0) && clipRadius <= 0 && !shouldPaintContainerBackground(kind, lop.background) && layerOpacity === 1 && blendMode === \"normal\" && !lop.borderWidth && !lop.borderColor && (typeof lop.relighting !== \"object\" || !lop.relighting) && (typeof lop.relight !== \"object\" || !lop.relight) && (typeof target?.relighting !== \"object\" || !target?.relighting) && (typeof target?.relight !== \"object\" || !target?.relight) && (typeof lop.deflicker !== \"object\" || !lop.deflicker) && (typeof target?.deflicker !== \"object\" || !target?.deflicker)) {\n\t\t\t\t\tif (scissorRect) ctx.renderer.pushScissorIntersect(scissorRect);\n\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children ?? [], activeTex, activeView, excludes, accumulatedOpacity, layerMatrix, rect, targetW, targetH, null, isRootScene);\n\t\t\t\t\tif (scissorRect) ctx.renderer.popScissor();\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tif ((!nodeVM.children || nodeVM.children.length === 0) && (!Array.isArray(lop.effects) || lop.effects.length === 0) && blendMode === \"normal\" && !(target?.motionBlurShutter ?? lop.motionBlurShutter) && (typeof lop.relighting !== \"object\" || !lop.relighting) && (typeof lop.relight !== \"object\" || !lop.relight) && (typeof target?.relighting !== \"object\" || !target?.relighting) && (typeof target?.relight !== \"object\" || !target?.relight) && (typeof lop.deflicker !== \"object\" || !lop.deflicker) && (typeof target?.deflicker !== \"object\" || !target?.deflicker)) {\n\t\t\t\t\tif (layerOpacity <= 0) return {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t\tconst br$2 = Math.min(target?.borderRadius ?? lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\t\tconst paint = shouldPaintContainerBackground(kind, lop.background);\n\t\t\t\t\tconst border = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$2, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t]) : null;\n\t\t\t\t\tif (paint || border) {\n\t\t\t\t\t\tconst pass$1 = ctx.renderer.beginFrame(encoder, activeView, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\t\tif (paint) ctx.renderer.drawRect(pass$1, {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\t\theight: layerH\n\t\t\t\t\t\t}, lop.background, br$2, { opacity: layerOpacity });\n\t\t\t\t\t\tif (border) ctx.renderer.drawTexture(pass$1, border.borderTex, {\n\t\t\t\t\t\t\tx: border.ox,\n\t\t\t\t\t\t\ty: border.oy,\n\t\t\t\t\t\t\twidth: border.ow,\n\t\t\t\t\t\t\theight: border.oh\n\t\t\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\t\tpass$1.end();\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0 && (!Array.isArray(lop.effects) || lop.effects.length === 0) && layerOpacity === 1 && blendMode === \"normal\" && !(target?.motionBlurShutter ?? lop.motionBlurShutter) && (typeof lop.relighting !== \"object\" || !lop.relighting) && (typeof lop.relight !== \"object\" || !lop.relight) && (typeof target?.relighting !== \"object\" || !target?.relighting) && (typeof target?.relight !== \"object\" || !target?.relight) && (typeof lop.deflicker !== \"object\" || !lop.deflicker) && (typeof target?.deflicker !== \"object\" || !target?.deflicker) && (clipRadius <= 0 || childrenClearOfCorners(nodeVM.children, rect, clipRadius))) {\n\t\t\t\t\tconst br$2 = Math.min(target?.borderRadius ?? lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, activeView, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\t\theight: layerH\n\t\t\t\t\t\t}, lop.background, br$2, { opacity: 1 });\n\t\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\t\tbgPass.end();\n\t\t\t\t\t}\n\t\t\t\t\tif (scissorRect) ctx.renderer.pushScissorIntersect(scissorRect);\n\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, activeTex, activeView, excludes, accumulatedOpacity, layerMatrix, rect, targetW, targetH, null, isRootScene);\n\t\t\t\t\tif (scissorRect) ctx.renderer.popScissor();\n\t\t\t\t\tactiveTex = res.finalTex;\n\t\t\t\t\tactiveView = res.finalView;\n\t\t\t\t\tconst border = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$2, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t]) : null;\n\t\t\t\t\tif (border) {\n\t\t\t\t\t\tconst pass$1 = ctx.renderer.beginFrame(encoder, activeView, {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\t\tctx.renderer.drawTexture(pass$1, border.borderTex, {\n\t\t\t\t\t\t\tx: border.ox,\n\t\t\t\t\t\t\ty: border.oy,\n\t\t\t\t\t\t\twidth: border.ow,\n\t\t\t\t\t\t\theight: border.oh\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\t\tpass$1.end();\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\t\tfinalView: activeView\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst groupExcludes = [\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t];\n\t\t\t\tconst groupTex = ctx.renderer.getTemporaryTexture(targetW, targetH, groupExcludes);\n\t\t\t\tconst groupView = groupTex.createView();\n\t\t\t\tctx.renderer.beginFrame(encoder, groupView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\tconst br$1 = Math.min(target?.borderRadius ?? lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\t\tif (shouldPaintContainerBackground(kind, lop.background)) {\n\t\t\t\t\tconst bgPass = ctx.renderer.beginFrame(encoder, groupView, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\tctx.renderer.drawRect(bgPass, {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\theight: layerH\n\t\t\t\t\t}, lop.background, br$1, { opacity: layerOpacity });\n\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\tbgPass.end();\n\t\t\t\t}\n\t\t\t\tlet activeGroupTex = groupTex;\n\t\t\t\tlet activeGroupView = groupView;\n\t\t\t\tif (nodeVM.children && nodeVM.children.length > 0) {\n\t\t\t\t\tif (scissorRect) ctx.renderer.pushScissorIntersect(scissorRect);\n\t\t\t\t\tconst res = await renderNodeTree(nodeVM.children, groupTex, groupView, [groupTex, ...groupExcludes], layerOpacity, layerMatrix, rect, targetW, targetH, null, false);\n\t\t\t\t\tif (scissorRect) ctx.renderer.popScissor();\n\t\t\t\t\tactiveGroupTex = res.finalTex;\n\t\t\t\t\tactiveGroupView = res.finalView;\n\t\t\t\t}\n\t\t\t\tif (clipRadius > 0) {\n\t\t\t\t\tconst maskTex = ctx.renderer.getTemporaryTexture(targetW, targetH, [activeGroupTex, ...groupExcludes]);\n\t\t\t\t\tconst maskPass = ctx.renderer.beginFrame(encoder, maskTex.createView(), {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"clear\");\n\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\tctx.renderer.drawRect(maskPass, {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\twidth: layerW,\n\t\t\t\t\t\theight: layerH\n\t\t\t\t\t}, \"#ffffff\", clipRadius);\n\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\tmaskPass.end();\n\t\t\t\t\tactiveGroupTex = ctx.renderer.composite(encoder, activeGroupTex, maskTex, \"mask-in\", [\n\t\t\t\t\t\tactiveGroupTex,\n\t\t\t\t\t\tmaskTex,\n\t\t\t\t\t\t...groupExcludes\n\t\t\t\t\t]);\n\t\t\t\t\tactiveGroupView = activeGroupTex.createView();\n\t\t\t\t}\n\t\t\t\tconst borderResult$1 = lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br$1, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", [activeGroupTex, ...groupExcludes]) : null;\n\t\t\t\tif (borderResult$1) {\n\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, activeGroupView, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult$1.borderTex, {\n\t\t\t\t\t\tx: borderResult$1.ox,\n\t\t\t\t\t\ty: borderResult$1.oy,\n\t\t\t\t\t\twidth: borderResult$1.ow,\n\t\t\t\t\t\theight: borderResult$1.oh\n\t\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\t\tctx.renderer.popTransform();\n\t\t\t\t\tborderPass.end();\n\t\t\t\t}\n\t\t\t\tconst containerShutter = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;\n\t\t\t\tif (containerShutter > 0 && fps && shiftedFrame !== void 0) {\n\t\t\t\t\tseekTimeline(compiled, shiftedFrame - 1, fps);\n\t\t\t\t\tconst prevTarget = targetId ? targetsById[targetId] : void 0;\n\t\t\t\t\tconst prevX = prevTarget?.x ?? baseX;\n\t\t\t\t\tconst prevY = prevTarget?.y ?? baseY;\n\t\t\t\t\tseekTimeline(compiled, shiftedFrame, fps);\n\t\t\t\t\tconst vx = sampledX - prevX;\n\t\t\t\t\tconst vy = sampledY - prevY;\n\t\t\t\t\tif (Math.hypot(vx, vy) > .5) {\n\t\t\t\t\t\tactiveGroupTex = ctx.renderer.applyMotionBlur(encoder, activeGroupTex, vx, vy, containerShutter, 16, [\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tactiveGroupView = activeGroupTex.createView();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst deflickerFromEffects = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"TemporalDeflicker\" || e?.op === \"Deflicker\" || e?.constructor?.name === \"TemporalDeflicker\") : void 0;\n\t\t\t\tconst rawDeflicker = target?.deflicker ?? lop.deflicker ?? deflickerFromEffects;\n\t\t\t\tconst deflickerOpts$1 = typeof rawDeflicker === \"object\" && rawDeflicker !== null ? rawDeflicker : void 0;\n\t\t\t\tif (deflickerOpts$1) {\n\t\t\t\t\tconst deflickerPipe = getTemporalDeflickerPipeline(ctx.device, lop.id || `layer_${i}`);\n\t\t\t\t\tif (shiftedFrame === 0) deflickerPipe.reset();\n\t\t\t\t\tactiveGroupTex = deflickerPipe.execute(activeGroupTex, deflickerOpts$1, encoder);\n\t\t\t\t\tactiveGroupView = activeGroupTex.createView();\n\t\t\t\t}\n\t\t\t\tconst relightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"Relight3D\" || e?.constructor?.name === \"Relight3D\") : void 0;\n\t\t\t\tconst rawRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === \"object\" ? lop.relight : void 0) ?? relightEffect;\n\t\t\t\tconst relightOpts$1 = typeof rawRelight === \"object\" && rawRelight !== null ? rawRelight : void 0;\n\t\t\t\tif (relightOpts$1) {\n\t\t\t\t\tconst relightPipeline = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? \"rgba8unorm\");\n\t\t\t\t\tconst r3dInstance = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\t\t\tconst activeLights = synthesizeRelightLights(relightOpts$1, sceneLights, rect, compositionFrame, fps ?? 24);\n\t\t\t\t\tconst lightsBuffer = r3dInstance.getOrCreateLightsBuffer(activeLights);\n\t\t\t\t\tconst relitTex = ctx.renderer.getTemporaryTexture(targetW, targetH, [\n\t\t\t\t\t\tactiveGroupTex,\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t]);\n\t\t\t\t\tconst relitView = relitTex.createView();\n\t\t\t\t\tconst normalTex = relightOpts$1.normalTexture ?? relightOpts$1.normalMap;\n\t\t\t\t\trelightPipeline.execute(encoder, relitView, activeGroupTex, normalTex, lightsBuffer, {\n\t\t\t\t\t\tviewportWidth: targetW,\n\t\t\t\t\t\tviewportHeight: targetH,\n\t\t\t\t\t\tlayerX: 0,\n\t\t\t\t\t\tlayerY: 0,\n\t\t\t\t\t\troughness: resolveFrameNumber(target?.roughness ?? target?.relightRoughness ?? relightOpts$1.specularRoughness ?? relightOpts$1.roughness, .35, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tspecularStrength: resolveFrameNumber(target?.specularStrength ?? target?.relightSpecularStrength ?? relightOpts$1.specularStrength, .7, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tmetallic: resolveFrameNumber(target?.metallic ?? target?.relightMetallic ?? relightOpts$1.metallic, 0, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tambientIntensity: resolveFrameNumber(target?.ambientIntensity ?? target?.relightAmbientIntensity ?? relightOpts$1.ambientIntensity, .15, compositionFrame, fps ?? 24),\n\t\t\t\t\t\tdepthScale: resolveFrameNumber(target?.depthScale ?? target?.relightDepthScale ?? relightOpts$1.depthScale, 1, compositionFrame, fps ?? 24),\n\t\t\t\t\t\topacity: 1\n\t\t\t\t\t}, \"clear\");\n\t\t\t\t\tactiveGroupTex = relitTex;\n\t\t\t\t\tactiveGroupView = relitView;\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(lop.effects) && lop.effects.length > 0) {\n\t\t\t\t\tconst reach = shouldClip ? effectsReach(lop.effects) : null;\n\t\t\t\t\tconst postEffects = await applyLayerEffectsInRegion(reach === null ? null : clampRect(expandRect(computeContainerScissor(layerMatrix, layerW, layerH), reach), targetW, targetH), lop.effects, activeGroupTex, targetW, targetH, ctx, encoder, props, drawChild, [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t], shiftedFrame, compositionFrame, fps ?? 24, isVideoMode, lop.id ?? `container_${i}`);\n\t\t\t\t\tactiveGroupTex = postEffects.texture;\n\t\t\t\t\tactiveGroupView = postEffects.view;\n\t\t\t\t}\n\t\t\t\tconst compositeExcludes = [\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t];\n\t\t\t\tif (borderResult$1) compositeExcludes.push(borderResult$1.borderTex);\n\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, activeGroupTex, blendMode, compositeExcludes);\n\t\t\t\tactiveView = activeTex.createView();\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\tfinalView: activeView\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (!(layerW > 0 && layerH > 0)) return {\n\t\t\t\tfinalTex: activeTex,\n\t\t\t\tfinalView: activeView\n\t\t\t};\n\t\t\tconst br = Math.min(lop.borderRadius ?? lop.strokeRadius ?? 0, layerW / 2, layerH / 2);\n\t\t\tconst texW = Math.ceil(layerW);\n\t\t\tconst texH = Math.ceil(layerH);\n\t\t\tconst savedScissors = ctx.renderer.suspendScissors?.() ?? [];\n\t\t\tconst localTex = ctx.renderer.getTemporaryTexture(texW, texH, [\n\t\t\t\tactiveTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...excludes\n\t\t\t]);\n\t\t\tconst localView = localTex.createView();\n\t\t\tctx.renderer.beginFrame(encoder, localView, {\n\t\t\t\tr: 0,\n\t\t\t\tg: 0,\n\t\t\t\tb: 0,\n\t\t\t\ta: 0\n\t\t\t}, texW, texH, \"clear\").end();\n\t\t\tlet content;\n\t\t\tlet isCaption = false;\n\t\t\tif (kind === \"media\") {\n\t\t\t\tcontent = nodeVM.children?.[0];\n\t\t\t\tisCaption = content?.operation?.dataType === \"Caption\" || lop.dataType === \"Caption\" || (content?.operation)?.srtText !== void 0;\n\t\t\t} else if (kind === \"text\") {\n\t\t\t\tconst rawSpans = target?.spans ?? lop.spans;\n\t\t\t\tconst spanFps = fps ?? 24;\n\t\t\t\tconst spans = rawSpans?.length ? resolveTextSpans(rawSpans, {\n\t\t\t\t\tframe: compositionFrame,\n\t\t\t\t\tfps: spanFps,\n\t\t\t\t\ttime: compositionFrame / spanFps,\n\t\t\t\t\tduration: composeDuration / 1e3,\n\t\t\t\t\tdurationMs: composeDuration,\n\t\t\t\t\tprogress: composeDuration > 0 ? Math.min(1, compositionFrame / spanFps * 1e3 / composeDuration) : 0,\n\t\t\t\t\tdeltaTime: 1 / spanFps\n\t\t\t\t}) : void 0;\n\t\t\t\tconst fullText = spans ? spansText(spans) : lop.text ?? \"\";\n\t\t\t\tlet displayText = fullText;\n\t\t\t\tlet resolvedAnimators = rawAnimators;\n\t\t\t\tif (Array.isArray(rawAnimators) && rawAnimators.length > 0) resolvedAnimators = rawAnimators.map((animator, idx) => {\n\t\t\t\t\tconst a = {\n\t\t\t\t\t\t...animator,\n\t\t\t\t\t\ttransform: { ...animator.transform ?? {} }\n\t\t\t\t\t};\n\t\t\t\t\tif (idx === 0) {\n\t\t\t\t\t\tconst offsetVal = typeof target?.offset === \"number\" ? target.offset : typeof target?.animatorOffset === \"number\" ? target.animatorOffset : void 0;\n\t\t\t\t\t\tconst rangeStartVal = typeof target?.rangeStart === \"number\" ? target.rangeStart : typeof target?.animatorRangeStart === \"number\" ? target.animatorRangeStart : void 0;\n\t\t\t\t\t\tconst rangeEndVal = typeof target?.rangeEnd === \"number\" ? target.rangeEnd : typeof target?.animatorRangeEnd === \"number\" ? target.animatorRangeEnd : void 0;\n\t\t\t\t\t\tif (offsetVal !== void 0) a.offset = offsetVal;\n\t\t\t\t\t\tif (rangeStartVal !== void 0) a.rangeStart = rangeStartVal;\n\t\t\t\t\t\tif (rangeEndVal !== void 0) a.rangeEnd = rangeEndVal;\n\t\t\t\t\t\tif (Array.isArray(a.selectors)) a.selectors = a.selectors.map((s) => {\n\t\t\t\t\t\t\tif (s.type === \"range\") return {\n\t\t\t\t\t\t\t\t...s,\n\t\t\t\t\t\t\t\t...offsetVal !== void 0 ? { offset: offsetVal } : {},\n\t\t\t\t\t\t\t\t...rangeStartVal !== void 0 ? { start: rangeStartVal } : {},\n\t\t\t\t\t\t\t\t...rangeEndVal !== void 0 ? { end: rangeEndVal } : {}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn s;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn a;\n\t\t\t\t});\n\t\t\t\tconst hasTypewriter = Boolean(lop.typewriter || target?.typewriter);\n\t\t\t\tconst textTrack = lop.animation?.tracks?.find((t) => t.prop === \"text\");\n\t\t\t\tif (!hasTypewriter && (textTrack !== void 0 || typeof target?.text === \"number\") && fullText.length > 0) {\n\t\t\t\t\tconst progress = typeof target?.text === \"number\" ? Math.max(0, Math.min(1, target.text)) : 1;\n\t\t\t\t\tconst countsUnits = typeof target?.text === \"number\" && target.text > 1.0001;\n\t\t\t\t\tif (progress >= 1 && !countsUnits) displayText = fullText;\n\t\t\t\t\telse if (progress <= 0) displayText = \"\";\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst presetType = textTrack?.keyframes?.find((k) => k.presetType)?.presetType ?? \"typewriter\";\n\t\t\t\t\t\tconst textNumeric = typeof target?.text === \"number\" ? target.text : null;\n\t\t\t\t\t\tconst isDirectCount = textNumeric !== null && textNumeric > 1.0001;\n\t\t\t\t\t\tif (presetType === \"word-reveal\" || presetType === \"karaoke\") {\n\t\t\t\t\t\t\tconst tokens = fullText.split(/(\\s+)/);\n\t\t\t\t\t\t\tconst wordIndices = [];\n\t\t\t\t\t\t\ttokens.forEach((token, idx) => {\n\t\t\t\t\t\t\t\tif (token.trim().length > 0) wordIndices.push(idx);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst visibleWordCount = isDirectCount && textNumeric !== null ? Math.min(wordIndices.length, Math.round(textNumeric)) : Math.round(wordIndices.length * progress);\n\t\t\t\t\t\t\tif (visibleWordCount === 0) displayText = \"\";\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconst lastTokenIdx = wordIndices[Math.min(wordIndices.length - 1, visibleWordCount - 1)];\n\t\t\t\t\t\t\t\tdisplayText = tokens.slice(0, lastTokenIdx + 1).join(\"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (presetType === \"line-reveal\") {\n\t\t\t\t\t\t\tconst lines = fullText.split(\"\\n\");\n\t\t\t\t\t\t\tconst visibleLineCount = isDirectCount && textNumeric !== null ? Math.min(lines.length, Math.round(textNumeric)) : Math.round(lines.length * progress);\n\t\t\t\t\t\t\tdisplayText = lines.slice(0, Math.max(0, visibleLineCount)).join(\"\\n\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst visibleChars = isDirectCount && textNumeric !== null ? Math.min(fullText.length, Math.round(textNumeric)) : Math.round(fullText.length * progress);\n\t\t\t\t\t\t\tdisplayText = fullText.slice(0, visibleChars);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontent = {\n\t\t\t\t\tmetadata: {},\n\t\t\t\t\toperation: {\n\t\t\t\t\t\top: \"text\",\n\t\t\t\t\t\ttext: displayText,\n\t\t\t\t\t\tspans: spans && displayText !== fullText ? fitSpansToText(spans, displayText) : spans,\n\t\t\t\t\t\tanimators: resolvedAnimators,\n\t\t\t\t\t\tpathOptions: target?.pathOptions ?? lop.pathOptions,\n\t\t\t\t\t\ttypewriter: target?.typewriter ?? lop.typewriter,\n\t\t\t\t\t\tmarquee: target?.marquee ?? lop.marquee,\n\t\t\t\t\t\ttextProgress: typeof target?.text === \"number\" ? target.text : void 0,\n\t\t\t\t\t\tfirstMargin: target?.firstMargin ?? lop.firstMargin,\n\t\t\t\t\t\tlastMargin: target?.lastMargin ?? lop.lastMargin,\n\t\t\t\t\t\tbaselineShift: target?.baselineShift ?? lop.baselineShift,\n\t\t\t\t\t\tsignals: virtualMedia?.operation?.signals ?? virtualMedia?.signals,\n\t\t\t\t\t\tfontSize: target?.fontSize ?? lop.fontSize,\n\t\t\t\t\t\tfontFamily: lop.fontFamily,\n\t\t\t\t\t\tfontStyle: lop.fontStyle,\n\t\t\t\t\t\tfontWeight: lop.fontWeight,\n\t\t\t\t\t\tfill: target?.fill ?? target?.color ?? lop.fill,\n\t\t\t\t\t\talign: lop.align,\n\t\t\t\t\t\tdirection: lop.direction,\n\t\t\t\t\t\tverticalAlign: lop.verticalAlign,\n\t\t\t\t\t\tletterSpacing: target?.letterSpacing ?? lop.letterSpacing,\n\t\t\t\t\t\tlineHeight: lop.lineHeight,\n\t\t\t\t\t\tpadding: lop.padding,\n\t\t\t\t\t\ttextBackgroundColor: target?.textBackgroundColor ?? target?.background ?? lop.background,\n\t\t\t\t\t\tborderRadius: lop.borderRadius,\n\t\t\t\t\t\tstroke: target?.stroke ?? target?.strokeColor ?? lop.stroke,\n\t\t\t\t\t\tstrokeWidth: target?.strokeWidth ?? lop.strokeWidth,\n\t\t\t\t\t\tstrokeAlign: lop.strokeAlign,\n\t\t\t\t\t\ttextShadow: lop.textShadow,\n\t\t\t\t\t\tshadows: lop.shadows,\n\t\t\t\t\t\tx: isPathText ? 0 : padX,\n\t\t\t\t\t\ty: isPathText ? 0 : padY,\n\t\t\t\t\t\twidth: isPathText ? targetW : lop.width !== void 0 ? rect.width : void 0,\n\t\t\t\t\t\theight: isPathText ? targetH : lop.height !== void 0 ? rect.height : void 0\n\t\t\t\t\t},\n\t\t\t\t\tchildren: []\n\t\t\t\t};\n\t\t\t}\n\t\t\tlet glyphBatches = null;\n\t\t\tlet layerHasRaster = true;\n\t\t\tif (content) {\n\t\t\t\tconst contentDurationMs = getActiveMediaMetadata(content)?.durationMs ?? composeDuration;\n\t\t\t\tconst layerDurationInMS = Math.max(1, Math.round(contentDurationMs / 1e3 * (fps ?? 24))) / (fps ?? 24) * 1e3;\n\t\t\t\tconst contentIsImageCompositor = content.operation?.op === \"Compositor\" && content.operation?.dataType === \"Image\";\n\t\t\t\tconst captureGlyphs = isTrue3D && kind === \"text\";\n\t\t\t\tconst rasterDrawsBefore = ctx.renderer.rasterDrawCount;\n\t\t\t\tif (captureGlyphs) ctx.renderer.slugPipeline.beginCapture();\n\t\t\t\ttry {\n\t\t\t\t\tawait drawChild(content, {\n\t\t\t\t\t\tcontainerWidth: layerW,\n\t\t\t\t\t\tcontainerHeight: layerH,\n\t\t\t\t\t\trenderId: `${props.renderId}-l${i}`,\n\t\t\t\t\t\tdurationMs: layerDurationInMS,\n\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\tfps,\n\t\t\t\t\t\t...typeof lop.dpr === \"number\" && { dpr: lop.dpr },\n\t\t\t\t\t\texcludeTextures: [\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t],\n\t\t\t\t\t\tisVideoMode: isVideoMode && !contentIsImageCompositor,\n\t\t\t\t\t\t...isVideoMode && lop.timeRemap && kind === \"media\" && lop.dataType === \"Video\" && { sourceTimeSec: mediaSourceTime(lop.timeRemap, Math.max(0, shiftedFrame - (lop.startFrame ?? 0)), fps ?? 24) },\n\t\t\t\t\t\t...isVideoMode && { frame: lop.timeRemap && kind === \"media\" && lop.dataType === \"Video\" ? Math.max(0, shiftedFrame - (lop.startFrame ?? 0)) : Math.max(0, shiftedFrame - (lop.startFrame ?? 0)) + (lop.mediaStartFrame ?? lop.trimStartFrames ?? (lop.trimStartSec != null ? Math.round(lop.trimStartSec * (fps ?? 24)) : 0)) },\n\t\t\t\t\t\tcompositionFrame,\n\t\t\t\t\t\t...isCaption && {\n\t\t\t\t\t\t\tfontFamily: lop.fontFamily,\n\t\t\t\t\t\t\tfontSize: target?.fontSize ?? lop.fontSize,\n\t\t\t\t\t\t\tfontWeight: lop.fontWeight,\n\t\t\t\t\t\t\tfontStyle: lop.fontStyle,\n\t\t\t\t\t\t\tfill: lop.fill,\n\t\t\t\t\t\t\tcolor: lop.fill,\n\t\t\t\t\t\t\talign: lop.align ?? \"center\",\n\t\t\t\t\t\t\tdirection: lop.direction,\n\t\t\t\t\t\t\tverticalAlign: lop.verticalAlign ?? lop.textAlignVertical,\n\t\t\t\t\t\t\tlineHeight: lop.lineHeight,\n\t\t\t\t\t\t\tletterSpacing: lop.letterSpacing,\n\t\t\t\t\t\t\ttextBackgroundColor: lop.background ?? lop.textBackgroundColor,\n\t\t\t\t\t\t\tborderRadius: lop.borderRadius ?? lop.strokeRadius,\n\t\t\t\t\t\t\tstrokeRadius: lop.strokeRadius ?? lop.borderRadius,\n\t\t\t\t\t\t\tstroke: lop.stroke,\n\t\t\t\t\t\t\tstrokeWidth: lop.strokeWidth,\n\t\t\t\t\t\t\tshadows: lop.shadows,\n\t\t\t\t\t\t\tpadding: lop.padding,\n\t\t\t\t\t\t\tmaxWidth: lop.maxWidth ?? layerW\n\t\t\t\t\t\t}\n\t\t\t\t\t}, localView, localTex, texW, texH);\n\t\t\t\t} finally {\n\t\t\t\t\tif (captureGlyphs) glyphBatches = ctx.renderer.slugPipeline.endCapture();\n\t\t\t\t}\n\t\t\t\tlayerHasRaster = ctx.renderer.rasterDrawCount !== rasterDrawsBefore;\n\t\t\t} else if (kind === \"shape\") {\n\t\t\t\tconst shapePass = ctx.renderer.beginFrame(encoder, localView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\tconst shapeConfig = {\n\t\t\t\t\tshapeType: lop.shapeType ?? lop.shape ?? \"rect\",\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH,\n\t\t\t\t\tpath: target?.d ?? lop.d ?? lop.path,\n\t\t\t\t\tcornerRadius: target?.cornerRadius ?? lop.cornerRadius ?? lop.borderRadius ?? lop.radius ?? 0,\n\t\t\t\t\tstarPoints: lop.starPoints ?? 5,\n\t\t\t\t\tstarInnerRadiusRatio: target?.starInnerRadiusRatio ?? lop.starInnerRadiusRatio ?? .5,\n\t\t\t\t\tpolygonSides: lop.polygonSides ?? 5\n\t\t\t\t};\n\t\t\t\tconst fillType = lop.fillType ?? \"solid\";\n\t\t\t\tconst fillColor = target?.fillColor ?? target?.fill ?? lop.fillColor ?? lop.fill ?? \"#38bdf8\";\n\t\t\t\tconst color2 = target?.gradientEndColor ?? lop.gradientEndColor ?? lop.fillColor2 ?? \"#9333ea\";\n\t\t\t\tlet startX = lop.fillStartX;\n\t\t\t\tlet startY = lop.fillStartY;\n\t\t\t\tlet endX = lop.fillEndX;\n\t\t\t\tlet endY = lop.fillEndY;\n\t\t\t\tif (fillType === \"linear\" && startX === void 0 && lop.gradientAngle !== void 0) {\n\t\t\t\t\tconst rad = lop.gradientAngle * Math.PI / 180;\n\t\t\t\t\tconst cx = layerW / 2;\n\t\t\t\t\tconst cy = layerH / 2;\n\t\t\t\t\tconst half = (Math.abs(layerW * Math.cos(rad)) + Math.abs(layerH * Math.sin(rad))) / 2;\n\t\t\t\t\tstartX = cx - Math.cos(rad) * half;\n\t\t\t\t\tstartY = cy - Math.sin(rad) * half;\n\t\t\t\t\tendX = cx + Math.cos(rad) * half;\n\t\t\t\t\tendY = cy + Math.sin(rad) * half;\n\t\t\t\t}\n\t\t\t\tconst fillConfig = {\n\t\t\t\t\ttype: fillType,\n\t\t\t\t\tcolor: fillColor,\n\t\t\t\t\tcolor2,\n\t\t\t\t\tstartX,\n\t\t\t\t\tstartY,\n\t\t\t\t\tendX,\n\t\t\t\t\tendY,\n\t\t\t\t\tcx: lop.fillCx,\n\t\t\t\t\tcy: lop.fillCy,\n\t\t\t\t\tradius: lop.fillRadius\n\t\t\t\t};\n\t\t\t\tconst strokeWidth = target?.strokeWidth ?? lop.strokeWidth ?? 0;\n\t\t\t\tconst strokeColor = target?.strokeColor ?? lop.strokeColor ?? lop.stroke ?? \"#ffffff\";\n\t\t\t\tconst strokeLineCap = lop.strokeLineCap ?? \"round\";\n\t\t\t\tconst strokeDashArray = lop.strokeDashArray;\n\t\t\t\tconst strokeDashOffset = target?.strokeDashOffset ?? lop.strokeDashOffset ?? 0;\n\t\t\t\tconst trimStart = target?.trimStart ?? lop.trimStart ?? 0;\n\t\t\t\tconst trimEnd = target?.trimEnd ?? lop.trimEnd ?? 1;\n\t\t\t\tconst trimOffset = target?.trimOffset ?? lop.trimOffset ?? 0;\n\t\t\t\tctx.renderer.drawShape(shapePass, shapeConfig, fillConfig, strokeWidth > 0 ? {\n\t\t\t\t\tcolor: strokeColor,\n\t\t\t\t\twidth: strokeWidth,\n\t\t\t\t\tcap: strokeLineCap,\n\t\t\t\t\ttrimStart,\n\t\t\t\t\ttrimEnd,\n\t\t\t\t\ttrimOffset,\n\t\t\t\t\tdashArray: strokeDashArray,\n\t\t\t\t\tdashOffset: strokeDashOffset\n\t\t\t\t} : void 0);\n\t\t\t\tshapePass.end();\n\t\t\t}\n\t\t\tconst leafDeflickerEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"TemporalDeflicker\" || e?.constructor?.name === \"TemporalDeflicker\") : void 0;\n\t\t\tconst deflickerOpts = target?.deflicker ?? lop.deflicker ?? leafDeflickerEffect;\n\t\t\tconst leafRelightEffect = Array.isArray(lop.effects) ? lop.effects.find((e) => e?.op === \"Relight3D\" || e?.constructor?.name === \"Relight3D\") : void 0;\n\t\t\tconst rawLeafRelight = target?.relighting ?? lop.relighting ?? (typeof lop.relight === \"object\" ? lop.relight : void 0) ?? leafRelightEffect;\n\t\t\tconst relightOpts = typeof rawLeafRelight === \"object\" && rawLeafRelight !== null ? rawLeafRelight : void 0;\n\t\t\tconst shutterAngle = target?.motionBlurShutter ?? lop.motionBlurShutter ?? 0;\n\t\t\tconst hasEffects = kind !== \"media\" && Array.isArray(lop.effects) && lop.effects.length > 0;\n\t\t\tif (glyphBatches && glyphBatches.length > 0 && (deflickerOpts || relightOpts || shutterAngle > 0 || hasEffects)) {\n\t\t\t\tconst glyphPass = ctx.renderer.beginFrame(encoder, localView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\tctx.renderer.slugPipeline.drawBatches(glyphPass, glyphBatches, texW, texH);\n\t\t\t\tglyphPass.end();\n\t\t\t\tglyphBatches = null;\n\t\t\t\tlayerHasRaster = true;\n\t\t\t}\n\t\t\tlet finalTex = localTex;\n\t\t\tif (!isTrue3D && br > 0 && !isCaption && kind !== \"shape\") {\n\t\t\t\tconst maskTex = ctx.renderer.getTemporaryTexture(texW, texH, [\n\t\t\t\t\tlocalTex,\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t]);\n\t\t\t\tconst maskView = maskTex.createView();\n\t\t\t\tctx.renderer.beginFrame(encoder, maskView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"clear\").end();\n\t\t\t\tconst maskPass = ctx.renderer.beginFrame(encoder, maskView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\tctx.renderer.drawRect(maskPass, {\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 0,\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH\n\t\t\t\t}, {\n\t\t\t\t\tr: 1,\n\t\t\t\t\tg: 1,\n\t\t\t\t\tb: 1,\n\t\t\t\t\ta: 1\n\t\t\t\t}, br);\n\t\t\t\tmaskPass.end();\n\t\t\t\tfinalTex = ctx.renderer.composite(encoder, localTex, maskTex, \"mask-in\", [\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t]);\n\t\t\t}\n\t\t\tif (deflickerOpts) {\n\t\t\t\tconst deflickerPipe = getTemporalDeflickerPipeline(ctx.device, lop.id || `layer_${i}`);\n\t\t\t\tif (shiftedFrame === 0) deflickerPipe.reset();\n\t\t\t\tfinalTex = deflickerPipe.execute(finalTex, deflickerOpts, encoder);\n\t\t\t}\n\t\t\tif (relightOpts) {\n\t\t\t\tconst relightPipeline = getScreenSpaceRelightPipeline(ctx.device, ctx.renderer.format ?? \"rgba8unorm\");\n\t\t\t\tconst r3dInstance = getRenderer3D(ctx.device, ctx.renderer.format ?? \"rgba8unorm\", sampleCount3d);\n\t\t\t\tconst activeLights = synthesizeRelightLights(relightOpts, sceneLights, {\n\t\t\t\t\tx: sampledX,\n\t\t\t\t\ty: sampledY,\n\t\t\t\t\twidth: texW,\n\t\t\t\t\theight: texH\n\t\t\t\t}, compositionFrame, fps ?? 24);\n\t\t\t\tconst lightsBuffer = r3dInstance.getOrCreateLightsBuffer(activeLights);\n\t\t\t\tconst relitTex = ctx.renderer.getTemporaryTexture(texW, texH, [\n\t\t\t\t\tfinalTex,\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t]);\n\t\t\t\tconst relitView = relitTex.createView();\n\t\t\t\tconst normalTex = relightOpts.normalTexture ?? relightOpts.normalMap;\n\t\t\t\trelightPipeline.execute(encoder, relitView, finalTex, normalTex, lightsBuffer, {\n\t\t\t\t\tviewportWidth: texW,\n\t\t\t\t\tviewportHeight: texH,\n\t\t\t\t\tlayerX: sampledX,\n\t\t\t\t\tlayerY: sampledY,\n\t\t\t\t\troughness: resolveFrameNumber(target?.roughness ?? target?.relightRoughness ?? relightOpts.specularRoughness ?? relightOpts.roughness, .35, compositionFrame, fps ?? 24),\n\t\t\t\t\tspecularStrength: resolveFrameNumber(target?.specularStrength ?? target?.relightSpecularStrength ?? relightOpts.specularStrength, .7, compositionFrame, fps ?? 24),\n\t\t\t\t\tmetallic: resolveFrameNumber(target?.metallic ?? target?.relightMetallic ?? relightOpts.metallic, 0, compositionFrame, fps ?? 24),\n\t\t\t\t\tambientIntensity: resolveFrameNumber(target?.ambientIntensity ?? target?.relightAmbientIntensity ?? relightOpts.ambientIntensity, .15, compositionFrame, fps ?? 24),\n\t\t\t\t\tdepthScale: resolveFrameNumber(target?.depthScale ?? target?.relightDepthScale ?? relightOpts.depthScale, 1, compositionFrame, fps ?? 24),\n\t\t\t\t\topacity: 1\n\t\t\t\t}, \"clear\");\n\t\t\t\tfinalTex = relitTex;\n\t\t\t}\n\t\t\tlet blurPadX = 0;\n\t\t\tlet blurPadY = 0;\n\t\t\tif (shutterAngle > 0 && fps && shiftedFrame !== void 0) {\n\t\t\t\tseekTimeline(compiled, shiftedFrame - 1, fps);\n\t\t\t\tconst prevTarget = targetId ? targetsById[targetId] : void 0;\n\t\t\t\tconst prevX = prevTarget?.x ?? baseX;\n\t\t\t\tconst prevY = prevTarget?.y ?? baseY;\n\t\t\t\tseekTimeline(compiled, shiftedFrame, fps);\n\t\t\t\tconst vx = sampledX - prevX;\n\t\t\t\tconst vy = sampledY - prevY;\n\t\t\t\tif (Math.hypot(vx, vy) > .5) {\n\t\t\t\t\tif (!isTrue3D && !(is3D && quad3D)) {\n\t\t\t\t\t\tconst reach = shutterAngle / 360;\n\t\t\t\t\t\tblurPadX = Math.ceil(Math.abs(vx) * reach);\n\t\t\t\t\t\tblurPadY = Math.ceil(Math.abs(vy) * reach);\n\t\t\t\t\t\tconst paddedTex = ctx.renderer.getTemporaryTexture(texW + blurPadX * 2, texH + blurPadY * 2, [\n\t\t\t\t\t\t\tfinalTex,\n\t\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t\t...excludes\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tconst padPass = ctx.renderer.beginFrame(encoder, paddedTex.createView(), {\n\t\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\t\ta: 0\n\t\t\t\t\t\t}, paddedTex.width, paddedTex.height, \"clear\");\n\t\t\t\t\t\tctx.renderer.drawTexture(padPass, finalTex, {\n\t\t\t\t\t\t\tx: blurPadX,\n\t\t\t\t\t\t\ty: blurPadY,\n\t\t\t\t\t\t\twidth: texW,\n\t\t\t\t\t\t\theight: texH\n\t\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\t\tpadPass.end();\n\t\t\t\t\t\tfinalTex = paddedTex;\n\t\t\t\t\t}\n\t\t\t\t\tconst streakPx = Math.hypot(vx, vy) * (shutterAngle / 360) * 2;\n\t\t\t\t\tconst samples = Math.min(128, Math.max(16, Math.ceil(streakPx / 2)));\n\t\t\t\t\tfinalTex = ctx.renderer.applyMotionBlur(encoder, finalTex, vx, vy, shutterAngle, samples, [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (kind !== \"media\" && Array.isArray(lop.effects) && lop.effects.length > 0) finalTex = (await applyLayerEffects(lop.effects, finalTex, texW, texH, ctx, encoder, props, drawChild, [\n\t\t\t\tlocalTex,\n\t\t\t\tactiveTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...excludes\n\t\t\t], shiftedFrame, compositionFrame, fps ?? 24, isVideoMode, lop.id ?? `leaf_${i}`)).texture;\n\t\t\tconst borderExcludes = [\n\t\t\t\tlocalTex,\n\t\t\t\tfinalTex,\n\t\t\t\tactiveTex,\n\t\t\t\ttargetTexture,\n\t\t\t\t...excludes\n\t\t\t];\n\t\t\tconst borderResult = !isTrue3D && lop.borderWidth !== void 0 && lop.borderColor ? createBorderTexture(ctx, encoder, layerW, layerH, br, lop.borderWidth, lop.borderColor, lop.strokeAlign ?? \"inside\", borderExcludes) : null;\n\t\t\tif (savedScissors.length > 0) ctx.renderer.resumeScissors?.(savedScissors);\n\t\t\tif (isTrue3D) {\n\t\t\t\tconst renderedTex = finalTex;\n\t\t\t\tif (borderResult) {\n\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, renderedTex.createView(), {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult.borderTex, {\n\t\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\t\theight: borderResult.oh\n\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\tborderPass.end();\n\t\t\t\t}\n\t\t\t\tlet modelMatrix;\n\t\t\t\tif (parent3DMatrix) {\n\t\t\t\t\tlet localM = Matrix4Math.identity();\n\t\t\t\t\tconst childX = target?.x ?? lop.x ?? 0;\n\t\t\t\t\tconst childY = target?.y ?? lop.y ?? 0;\n\t\t\t\t\tconst childZ = target?.z ?? lop.z ?? 0;\n\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.translate(childX, childY, childZ));\n\t\t\t\t\tconst rxRad = (target?.rotateX ?? lop.rotateX ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst ryRad = (target?.rotateY ?? lop.rotateY ?? 0) * Math.PI / 180;\n\t\t\t\t\tconst rzRad = ((target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation) * (Math.PI / 180);\n\t\t\t\t\tif (rzRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateZ(rzRad));\n\t\t\t\t\tif (ryRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateY(ryRad));\n\t\t\t\t\tif (rxRad !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.rotateX(rxRad));\n\t\t\t\t\tconst sx = layerW * scale$1 * scaleX;\n\t\t\t\t\tconst sy = layerH * scale$1 * scaleY;\n\t\t\t\t\tconst sz = target?.scaleZ ?? lop.scaleZ ?? 1;\n\t\t\t\t\tlocalM = Matrix4Math.multiply(localM, Matrix4Math.scale(sx, sy, sz));\n\t\t\t\t\tconst ax = lop.anchorX ?? .5;\n\t\t\t\t\tconst ay = lop.anchorY ?? .5;\n\t\t\t\t\tconst pivotX = .5 - ax;\n\t\t\t\t\tconst pivotY = .5 - ay;\n\t\t\t\t\tif (pivotX !== 0 || pivotY !== 0) localM = Matrix4Math.multiply(localM, Matrix4Math.translate(pivotX, pivotY, 0));\n\t\t\t\t\tmodelMatrix = Matrix4Math.multiply(parent3DMatrix, localM);\n\t\t\t\t}\n\t\t\t\tconst quadOpts = {\n\t\t\t\t\tposition: [\n\t\t\t\t\t\tlocalX + layerW * .5,\n\t\t\t\t\t\tlocalY + layerH * .5,\n\t\t\t\t\t\ttarget?.z ?? lop.z ?? 0\n\t\t\t\t\t],\n\t\t\t\t\twidth: layerW,\n\t\t\t\t\theight: layerH,\n\t\t\t\t\ttextureExtent: [layerW / texW, layerH / texH],\n\t\t\t\t\trotation: [\n\t\t\t\t\t\ttarget?.rotateX ?? lop.rotateX ?? 0,\n\t\t\t\t\t\ttarget?.rotateY ?? lop.rotateY ?? 0,\n\t\t\t\t\t\t(target?.rotateZ ?? lop.rotateZ ?? 0) !== 0 ? target?.rotateZ ?? lop.rotateZ ?? 0 : rotation\n\t\t\t\t\t],\n\t\t\t\t\tscale: [\n\t\t\t\t\t\tscale$1 * scaleX,\n\t\t\t\t\t\tscale$1 * scaleY,\n\t\t\t\t\t\ttarget?.scaleZ ?? lop.scaleZ ?? 1\n\t\t\t\t\t],\n\t\t\t\t\tanchor: [lop.anchorX ?? .5, lop.anchorY ?? .5],\n\t\t\t\t\tborderRadius: br,\n\t\t\t\t\tborderWidth: lop.borderWidth,\n\t\t\t\t\tborderColor: lop.borderColor,\n\t\t\t\t\topacity: layerOpacity,\n\t\t\t\t\ttwoSided: target?.twoSided ?? lop.twoSided ?? true,\n\t\t\t\t\tmaterial: target?.material ?? lop.material,\n\t\t\t\t\tshininess: target?.shininess ?? lop.shininess,\n\t\t\t\t\troughness: target?.roughness ?? lop.roughness,\n\t\t\t\t\tspecularIntensity: target?.specularIntensity ?? lop.specularIntensity,\n\t\t\t\t\tambientIntensity: target?.ambientIntensity ?? lop.ambientIntensity,\n\t\t\t\t\tmetallic: target?.metallic ?? lop.metallic,\n\t\t\t\t\t...surfaceProps(target, lop),\n\t\t\t\t\t...modelMatrix && { modelMatrix }\n\t\t\t\t};\n\t\t\t\tconst quadHasContent = layerHasRaster || Boolean(quadOpts.borderWidth && quadOpts.borderWidth > 0 && quadOpts.borderColor);\n\t\t\t\tif (!glyphBatches || quadHasContent) pending3DItems.push({\n\t\t\t\t\tkind: \"quad\",\n\t\t\t\t\ttexture: renderedTex,\n\t\t\t\t\topts: quadOpts\n\t\t\t\t});\n\t\t\t\tif (glyphBatches && glyphBatches.length > 0) pending3DItems.push({\n\t\t\t\t\tkind: \"slug\",\n\t\t\t\t\tbatches: glyphBatches,\n\t\t\t\t\topts: quadOpts,\n\t\t\t\t\tstackBase: quadHasContent ? 1 : 0\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\tfinalView: activeView\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (is3D && quad3D) {\n\t\t\t\tconst renderedTex = finalTex;\n\t\t\t\tif (borderResult) {\n\t\t\t\t\tconst borderPass = ctx.renderer.beginFrame(encoder, renderedTex.createView(), {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, texW, texH, \"load\");\n\t\t\t\t\tctx.renderer.drawTexture(borderPass, borderResult.borderTex, {\n\t\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\t\theight: borderResult.oh\n\t\t\t\t\t}, { opacity: 1 });\n\t\t\t\t\tborderPass.end();\n\t\t\t\t}\n\t\t\t\tif (blendMode === \"normal\" || blendMode === \"source-over\") drawProjectedQuad(ctx, encoder, activeView, renderedTex, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\telse {\n\t\t\t\t\tconst layerExcludes = [\n\t\t\t\t\t\tactiveTex,\n\t\t\t\t\t\ttargetTexture,\n\t\t\t\t\t\trenderedTex,\n\t\t\t\t\t\t...excludes\n\t\t\t\t\t];\n\t\t\t\t\tif (borderResult) layerExcludes.push(borderResult.borderTex);\n\t\t\t\t\tconst layerTex = ctx.renderer.getTemporaryTexture(targetW, targetH, layerExcludes);\n\t\t\t\t\tconst layerView = layerTex.createView();\n\t\t\t\t\tctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\t\tr: 0,\n\t\t\t\t\t\tg: 0,\n\t\t\t\t\t\tb: 0,\n\t\t\t\t\t\ta: 0\n\t\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\t\tdrawProjectedQuad(ctx, encoder, layerView, renderedTex, quad3D, targetW, targetH, layerOpacity);\n\t\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, layerTex, blendMode, [targetTexture, ...excludes]);\n\t\t\t\t\tactiveView = activeTex.createView();\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tfinalTex: activeTex,\n\t\t\t\t\tfinalView: activeView\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (blendMode === \"normal\" || blendMode === \"source-over\") {\n\t\t\t\tconst drawPass = ctx.renderer.beginFrame(encoder, activeView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\tctx.renderer.drawTexture(drawPass, finalTex, {\n\t\t\t\t\tx: -blurPadX,\n\t\t\t\t\ty: -blurPadY,\n\t\t\t\t\twidth: layerW + blurPadX * 2,\n\t\t\t\t\theight: layerH + blurPadY * 2\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tif (borderResult) ctx.renderer.drawTexture(drawPass, borderResult.borderTex, {\n\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\theight: borderResult.oh\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tctx.renderer.popTransform();\n\t\t\t\tdrawPass.end();\n\t\t\t} else {\n\t\t\t\tconst layerExcludes = [\n\t\t\t\t\tfinalTex,\n\t\t\t\t\tactiveTex,\n\t\t\t\t\ttargetTexture,\n\t\t\t\t\t...excludes\n\t\t\t\t];\n\t\t\t\tif (borderResult) layerExcludes.push(borderResult.borderTex);\n\t\t\t\tconst layerTex = ctx.renderer.getTemporaryTexture(targetW, targetH, layerExcludes);\n\t\t\t\tconst layerView = layerTex.createView();\n\t\t\t\tctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"clear\").end();\n\t\t\t\tconst drawPass = ctx.renderer.beginFrame(encoder, layerView, {\n\t\t\t\t\tr: 0,\n\t\t\t\t\tg: 0,\n\t\t\t\t\tb: 0,\n\t\t\t\t\ta: 0\n\t\t\t\t}, targetW, targetH, \"load\");\n\t\t\t\tctx.renderer.pushTransform(layerMatrix);\n\t\t\t\tctx.renderer.drawTexture(drawPass, finalTex, {\n\t\t\t\t\tx: -blurPadX,\n\t\t\t\t\ty: -blurPadY,\n\t\t\t\t\twidth: layerW + blurPadX * 2,\n\t\t\t\t\theight: layerH + blurPadY * 2\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tif (borderResult) ctx.renderer.drawTexture(drawPass, borderResult.borderTex, {\n\t\t\t\t\tx: borderResult.ox,\n\t\t\t\t\ty: borderResult.oy,\n\t\t\t\t\twidth: borderResult.ow,\n\t\t\t\t\theight: borderResult.oh\n\t\t\t\t}, { opacity: layerOpacity });\n\t\t\t\tctx.renderer.popTransform();\n\t\t\t\tdrawPass.end();\n\t\t\t\tactiveTex = ctx.renderer.composite(encoder, activeTex, layerTex, blendMode, [targetTexture, ...excludes]);\n\t\t\t\tactiveView = activeTex.createView();\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tfinalTex: activeTex,\n\t\t\t\tfinalView: activeView\n\t\t\t};\n\t\t};\n\t\tconst initialExcludes = [\n\t\t\tcompTex,\n\t\t\ttargetTexture,\n\t\t\t...props.excludeTextures || []\n\t\t];\n\t\tcurrentCompTex = (await renderNodeTree(virtualMedia.children ?? [], compTex, compView, initialExcludes, 1, new DOMMatrix(), null, nativeWidth, nativeHeight, null, true)).finalTex;\n\t\tctx.renderer.popTransform();\n\t\tctx.renderer.popScissor();\n\t\tconst finalPass = ctx.renderer.beginFrame(encoder, targetView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, targetWidth, targetHeight, \"load\");\n\t\tctx.renderer.drawTexture(finalPass, currentCompTex, {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: props.containerWidth ?? targetWidth,\n\t\t\theight: props.containerHeight ?? targetHeight\n\t\t}, { opacity });\n\t\targs.pass = finalPass;\n\t}\n};\n/** Pixels of room around a border texture for its anti-aliased edge. */\nconst BORDER_AA_MARGIN = 2;\nfunction createBorderTexture(ctx, encoder, w, h, br, borderWidth, borderColor, strokeAlign, excludeTextures) {\n\tif (w <= 0 || h <= 0 || !borderColor || !borderWidth || borderWidth <= 0) return null;\n\tlet ox = 0;\n\tlet oy = 0;\n\tlet ow = w;\n\tlet oh = h;\n\tlet outerRadius = br;\n\tlet innerRadius = br;\n\tif (strokeAlign === \"inside\") {\n\t\tox = 0;\n\t\toy = 0;\n\t\tow = w;\n\t\toh = h;\n\t\touterRadius = br;\n\t\tinnerRadius = Math.max(0, br - borderWidth);\n\t} else if (strokeAlign === \"outside\") {\n\t\tox = -borderWidth;\n\t\toy = -borderWidth;\n\t\tow = w + 2 * borderWidth;\n\t\toh = h + 2 * borderWidth;\n\t\touterRadius = br + borderWidth;\n\t\tinnerRadius = br;\n\t} else {\n\t\tox = -borderWidth / 2;\n\t\toy = -borderWidth / 2;\n\t\tow = w + borderWidth;\n\t\toh = h + borderWidth;\n\t\touterRadius = br + borderWidth / 2;\n\t\tinnerRadius = Math.max(0, br - borderWidth / 2);\n\t}\n\tif (br <= 0) {\n\t\touterRadius = 0;\n\t\tinnerRadius = 0;\n\t}\n\tif (ow <= 0 || oh <= 0) return null;\n\tconst m = BORDER_AA_MARGIN;\n\tconst borderTexW = Math.ceil(ow + 2 * m);\n\tconst borderTexH = Math.ceil(oh + 2 * m);\n\tconst outerTex = ctx.renderer.getTemporaryTexture(borderTexW, borderTexH, excludeTextures);\n\tconst outerView = outerTex.createView();\n\tctx.renderer.beginFrame(encoder, outerView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, borderTexW, borderTexH, \"clear\").end();\n\tconst outerDrawPass = ctx.renderer.beginFrame(encoder, outerView, {\n\t\tr: 0,\n\t\tg: 0,\n\t\tb: 0,\n\t\ta: 0\n\t}, borderTexW, borderTexH, \"load\");\n\tctx.renderer.drawRect(outerDrawPass, {\n\t\tx: m,\n\t\ty: m,\n\t\twidth: ow,\n\t\theight: oh\n\t}, borderColor, outerRadius);\n\touterDrawPass.end();\n\tconst innerW = ow - 2 * borderWidth;\n\tconst innerH = oh - 2 * borderWidth;\n\tif (innerW > 0 && innerH > 0) {\n\t\tconst innerTex = ctx.renderer.getTemporaryTexture(borderTexW, borderTexH, [outerTex, ...excludeTextures]);\n\t\tconst innerView = innerTex.createView();\n\t\tctx.renderer.beginFrame(encoder, innerView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, borderTexW, borderTexH, \"clear\").end();\n\t\tconst innerDrawPass = ctx.renderer.beginFrame(encoder, innerView, {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t}, borderTexW, borderTexH, \"load\");\n\t\tctx.renderer.drawRect(innerDrawPass, {\n\t\t\tx: m + borderWidth,\n\t\t\ty: m + borderWidth,\n\t\t\twidth: innerW,\n\t\t\theight: innerH\n\t\t}, {\n\t\t\tr: 1,\n\t\t\tg: 1,\n\t\t\tb: 1,\n\t\t\ta: 1\n\t\t}, innerRadius);\n\t\tinnerDrawPass.end();\n\t\treturn {\n\t\t\tborderTex: ctx.renderer.composite(encoder, outerTex, innerTex, \"mask-out\", excludeTextures),\n\t\t\tox: ox - m,\n\t\t\toy: oy - m,\n\t\t\tow: borderTexW,\n\t\t\toh: borderTexH\n\t\t};\n\t}\n\treturn {\n\t\tborderTex: outerTex,\n\t\tox: ox - m,\n\t\toy: oy - m,\n\t\tow: borderTexW,\n\t\toh: borderTexH\n\t};\n}\n\n//#endregion\n//#region src/renderers/audio-processor.ts\nconst compositorLayerAudioProcessor = async (channels, sampleRate, virtualMedia, ctx) => {\n\tconst op = virtualMedia.operation;\n\tif (!op) return;\n\tconst numChannels = channels.length;\n\tif (numChannels === 0) return;\n\tconst numSamples = channels[0].length;\n\tif (numSamples === 0) return;\n\tif (op.op === \"Compositor\") {\n\t\tconst master = resolveNumber(op.volume, 1);\n\t\tif (master === 1) return;\n\t\tfor (let c = 0; c < numChannels; c++) {\n\t\t\tconst ch = channels[c];\n\t\t\tfor (let i = 0; i < ch.length; i++) ch[i] *= master;\n\t\t}\n\t\treturn;\n\t}\n\tconst volume = resolveNumber(op.volume, 1);\n\tconst muted = resolveBoolean(op.muted, false);\n\tconst animation = op.animation;\n\tconst fps = ctx?.fps ?? 24;\n\tconst tracks = animation?.tracks || [];\n\tconst hasVolumeKeys = tracks.some((t) => t.prop === \"volume\" && t.keyframes && t.keyframes.length > 0);\n\tconst hasMutedKeys = tracks.some((t) => t.prop === \"muted\" && t.keyframes && t.keyframes.length > 0);\n\tif (!hasVolumeKeys && !hasMutedKeys) return;\n\tconst { tl, stub } = compileLayerTimeline(op.id || op.inputHandleId || \"layer\", animation, volume, muted, fps);\n\tconst startTimeSec = (ctx?.elapsedMs ?? 0) / 1e3;\n\tconst subChunkSize = 128;\n\ttl.seek(startTimeSec);\n\tlet lastVol = stub.volume;\n\tlet lastMuted = stub.muted;\n\tconst baseGain = muted ? 0 : volume;\n\tfor (let i = 0; i < numSamples; i += subChunkSize) {\n\t\tconst nextI = Math.min(numSamples, i + subChunkSize);\n\t\tconst tNext = startTimeSec + nextI / sampleRate;\n\t\ttl.seek(tNext);\n\t\tconst nextVol = stub.volume;\n\t\tconst nextMuted = stub.muted;\n\t\tfor (let j = i; j < nextI; j++) {\n\t\t\tconst p = (j - i) / (nextI - i);\n\t\t\tconst currentVol = Math.min(1, Math.max(0, lastVol + (nextVol - lastVol) * p));\n\t\t\tconst finalGain = (j - i < (nextI - i) / 2 ? lastMuted : nextMuted) ? 0 : currentVol;\n\t\t\tconst relativeGain = baseGain === 0 ? 0 : finalGain / baseGain;\n\t\t\tif (relativeGain !== 1) for (let c = 0; c < numChannels; c++) channels[c][j] *= relativeGain;\n\t\t}\n\t\tlastVol = nextVol;\n\t\tlastMuted = nextMuted;\n\t}\n};\naudioRegistry.register(\"CompositorLayer\", compositorLayerAudioProcessor);\n\n//#endregion\n//#region src/renderers/index.ts\nvar renderers_default = defineRenderer({ WebGPURenderer: CompositorWebGPURenderer });\n\n//#endregion\nexport { compileTimeline as a, seekTimeline as c, compileLayerTimeline as i, setCachedTimeline as l, Transform3DMath as n, getCachedTimeline as o, has3DTransform as r, mappedEase as s, renderers_default as t };\n//# sourceMappingURL=renderers-X4CI4wde.mjs.map"],"mappings":"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"}
|