PageSourceSearch

https://flowmo.ai/_next/static/chunks/51421-5b407d13953f0334.js

js flowmo.ai collected 2026-10-05 12:01:12 UTC 48,567 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[51421],{12847:(e,t,n)=>{n.d(t,{B8:()=>d,D_:()=>a,HE:()=>f,MI:()=>o,dB:()=>l,lw:()=>s});let r=Math.PI/180,i=180/Math.PI;function a(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function o(e,t,n){let i=t[0]*r,a=t[1]*r,o=t[2]*r,s=Math.cos(i),d=Math.sin(i),l=Math.cos(a),f=Math.sin(a),u=Math.cos(o),c=Math.sin(o),m=s*u,p=s*c,h=d*u,g=d*c,[v,k,y]=n;return[l*u*v,(p+h*f)*v,(g-m*f)*v,0,-l*c*k,(m-g*f)*k,(h+p*f)*k,0,f*y,-d*l*y,s*l*y,0,e[0],e[1],e[2],1]}function s(e,t){let n=Array(16).fill(0);for(let r=0;r<4;r++)for(let i=0;i<4;i++){let a=0;for(let n=0;n<4;n++)a+=e[4*n+i]*t[4*r+n];n[4*r+i]=a}return n}function d(e){let t=Array(16);t[0]=e[5]*e[10]*e[15]-e[5]*e[11]*e[14]-e[9]*e[6]*e[15]+e[9]*e[7]*e[14]+e[13]*e[6]*e[11]-e[13]*e[7]*e[10],t[4]=-e[4]*e[10]*e[15]+e[4]*e[11]*e[14]+e[8]*e[6]*e[15]-e[8]*e[7]*e[14]-e[12]*e[6]*e[11]+e[12]*e[7]*e[10],t[8]=e[4]*e[9]*e[15]-e[4]*e[11]*e[13]-e[8]*e[5]*e[15]+e[8]*e[7]*e[13]+e[12]*e[5]*e[11]-e[12]*e[7]*e[9],t[12]=-e[4]*e[9]*e[14]+e[4]*e[10]*e[13]+e[8]*e[5]*e[14]-e[8]*e[6]*e[13]-e[12]*e[5]*e[10]+e[12]*e[6]*e[9],t[1]=-e[1]*e[10]*e[15]+e[1]*e[11]*e[14]+e[9]*e[2]*e[15]-e[9]*e[3]*e[14]-e[13]*e[2]*e[11]+e[13]*e[3]*e[10],t[5]=e[0]*e[10]*e[15]-e[0]*e[11]*e[14]-e[8]*e[2]*e[15]+e[8]*e[3]*e[14]+e[12]*e[2]*e[11]-e[12]*e[3]*e[10],t[9]=-e[0]*e[9]*e[15]+e[0]*e[11]*e[13]+e[8]*e[1]*e[15]-e[8]*e[3]*e[13]-e[12]*e[1]*e[11]+e[12]*e[3]*e[9],t[13]=e[0]*e[9]*e[14]-e[0]*e[10]*e[13]-e[8]*e[1]*e[14]+e[8]*e[2]*e[13]+e[12]*e[1]*e[10]-e[12]*e[2]*e[9],t[2]=e[1]*e[6]*e[15]-e[1]*e[7]*e[14]-e[5]*e[2]*e[15]+e[5]*e[3]*e[14]+e[13]*e[2]*e[7]-e[13]*e[3]*e[6],t[6]=-e[0]*e[6]*e[15]+e[0]*e[7]*e[14]+e[4]*e[2]*e[15]-e[4]*e[3]*e[14]-e[12]*e[2]*e[7]+e[12]*e[3]*e[6],t[10]=e[0]*e[5]*e[15]-e[0]*e[7]*e[13]-e[4]*e[1]*e[15]+e[4]*e[3]*e[13]+e[12]*e[1]*e[7]-e[12]*e[3]*e[5],t[14]=-e[0]*e[5]*e[14]+e[0]*e[6]*e[13]+e[4]*e[1]*e[14]-e[4]*e[2]*e[13]-e[12]*e[1]*e[6]+e[12]*e[2]*e[5],t[3]=-e[1]*e[6]*e[11]+e[1]*e[7]*e[10]+e[5]*e[2]*e[11]-e[5]*e[3]*e[10]-e[9]*e[2]*e[7]+e[9]*e[3]*e[6],t[7]=e[0]*e[6]*e[11]-e[0]*e[7]*e[10]-e[4]*e[2]*e[11]+e[4]*e[3]*e[10]+e[8]*e[2]*e[7]-e[8]*e[3]*e[6],t[11]=-e[0]*e[5]*e[11]+e[0]*e[7]*e[9]+e[4]*e[1]*e[11]-e[4]*e[3]*e[9]-e[8]*e[1]*e[7]+e[8]*e[3]*e[5],t[15]=e[0]*e[5]*e[10]-e[0]*e[6]*e[9]-e[4]*e[1]*e[10]+e[4]*e[2]*e[9]+e[8]*e[1]*e[6]-e[8]*e[2]*e[5];let n=e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12];if(!n)return a();n=1/n;for(let e=0;e<16;e++)t[e]*=n;return t}function l(e){let t,n,r=[e[12],e[13],e[14]],a=Math.hypot(e[0],e[1],e[2]),o=Math.hypot(e[4],e[5],e[6]),s=Math.hypot(e[8],e[9],e[10]);e[0]*(e[5]*e[10]-e[6]*e[9])-e[4]*(e[1]*e[10]-e[2]*e[9])+e[8]*(e[1]*e[6]-e[2]*e[5])<0&&(a=-a);let d=a?1/a:0,l=o?1/o:0,f=s?1/s:0,u=e[0]*d,c=e[4]*l,m=e[5]*l,p=e[6]*l,h=e[8]*f,g=e[9]*f,v=e[10]*f,k=Math.asin(Math.max(-1,Math.min(1,h)));return .9999999>Math.abs(h)?(t=Math.atan2(-g,v),n=Math.atan2(-c,u)):(t=Math.atan2(p,m),n=0),{position:r,rotationDegXYZ:[t*i,k*i,n*i],scale:[a,o,s]}}function f(e,t){let n=[],r=new Set,i=e.nodes.find(e=>e.id===t);for(;i&&!r.has(i.id);){r.add(i.id);let t=i.transform;n.push(o(t.position,t.rotation,t.scale));let a=i.parentId;i=a?e.nodes.find(e=>e.id===a):void 0}let d=a();for(let e=n.length-1;e>=0;e--)d=s(d,n[e]);return d}},20041:(e,t,n)=>{n.d(t,{H$:()=>s,L1:()=>f,V1:()=>o,a3:()=>d,tz:()=>l,zk:()=>i});var r=n(71595);let i=["x","y","z","w"];function a(e){return"vec2"===e?2:3*("vec3"===e)}function o(e,t){return`${e}.${i[t]??t}`}function s(e){let t=String(e??""),n=t.lastIndexOf(".");if(n<=0||n===t.length-1)return{name:t,component:null};let r=t.slice(n+1),a=i.indexOf(r);return a>=0?{name:t.slice(0,n),component:a}:/^[0-3]$/.test(r)?{name:t.slice(0,n),component:Number(r)}:{name:t,component:null}}function d(e,t){let n=a(e.type);return!n||t<0||t>=n?0:(0,r.Ic)(e.value,n)[t]}function l(e,t,n){let i=a(e.type);if(!i||t<0||t>=i)return!1;let o=(0,r.Ic)(e.value,i),s=Number(n);return o[t]=Number.isFinite(s)?s:0,e.value=o,!0}function f(e,t){if("color"===e.type||"texture"===e.type)return String(t);let n=a(e.type);if(n)return Array.isArray(t)?(0,r.Ic)(t,n):(0,r.Ic)(e.value,n);let i=Number(t);return Number.isFinite(i)?i:0}},51421:(e,t,n)=>{n.r(t),n.d(t,{BASE_LAYER_ID:()=>D,MATERIAL_PRESETS:()=>p,addCamera:()=>ew,addCameraFromPose:()=>eD,addLayer:()=>j,addModifier:()=>tm,addNode:()=>tt,addPathFollow:()=>ty,addPathPoint:()=>ta,addPostPass:()=>eK,addPostUniform:()=>e1,applyMaterialPreset:()=>h,applyPathSubDrag:()=>tS,collectNodeSubtrees:()=>tO,commitSceneAndFields:()=>M,defaultLayerName:()=>E,duplicateNode:()=>t_,getBaseAtTarget:()=>tG,getNodeLayers:()=>T,groupNodes:()=>
1tT,insertNodesIntoScene:()=>tA,isScene3DPayload:()=>k,makeCameraNode:()=>eM,makeEffectorNode:()=>e7,makeGroupNode:()=>tD,makeHtmlNode:()=>ed,makeInstancerNode:()=>en,makeLayerSpec:()=>L,makeLightNode:()=>e5,makeMatcapMaterial:()=>_,makeMeshNode:()=>C,makeModelNode:()=>Q,makeParticleSpec:()=>ee,makePathNode:()=>tn,makePhysicalMaterial:()=>N,makePostPass:()=>eZ,makeReplicatorSpec:()=>et,makeShaderLayerNode:()=>eo,makeShaderMaterial:()=>O,moveLayer:()=>U,moveModifier:()=>tv,moveNodeInTree:()=>tF,mutateScene:()=>S,normalizeSceneDoc:()=>y,parsePathSubId:()=>tx,readScene:()=>I,readSceneWithAnimation:()=>b,refreshHtmlNode:()=>em,removeCamera:()=>eC,removeLayer:()=>z,removeModifier:()=>tp,removeNode:()=>tB,removePathFollow:()=>tb,removePathPoint:()=>to,removePostPass:()=>eY,removePostUniform:()=>e2,renameLayer:()=>V,renameModifier:()=>tg,renameSceneObject:()=>eI,reorderLayer:()=>G,setActiveCamera:()=>eN,setBackgroundMode:()=>eV,setBaseAtTarget:()=>tz,setCameraLook:()=>eB,setCameraLookAtOrigin:()=>eA,setCameraProp:()=>e_,setCameraTransform:()=>eO,setHdriSrc:()=>eW,setHtmlAnimate:()=>eg,setHtmlGeometry:()=>ec,setHtmlInline:()=>eu,setHtmlScale:()=>ev,setHtmlSelector:()=>ef,setHtmlSourceKind:()=>el,setHtmlTransparent:()=>eh,setInstancerMode:()=>er,setInstancerSpec:()=>ea,setLayerBlend:()=>Z,setLayerKind:()=>Y,setLayerMask:()=>q,setLayerOpacity:()=>W,setLayerPlacement:()=>eJ,setLayerSpec:()=>K,setLightKind:()=>e4,setLightShadowEnabled:()=>e3,setMatcapUrl:()=>B,setMaterialKind:()=>A,setMaterialMap:()=>eF,setMaterialOverride:()=>ek,setMaterialOverrideLayers:()=>ey,setMaterialProcMap:()=>eT,setMaterialProp:()=>eH,setMeshReflective:()=>ep,setModelAutoplay:()=>eL,setModelClipIndex:()=>eE,setModelSource:()=>eP,setModifierEnabled:()=>th,setModifierValue:()=>tk,setNodeDisplace:()=>e$,setNodeLayers:()=>X,setNodeParent:()=>tE,setNodeRaycastLock:()=>ex,setNodeScaleUniform:()=>eU,setNodeVisible:()=>eS,setPathBevel:()=>tc,setPathFill:()=>tM,setPathFillMaterial:()=>tw,setPathMaterial:()=>tC,setPathPointCorner:()=>tf,setPathPointHandle:()=>td,setPathPointMode:()=>tl,setPathPointPosition:()=>ts,setPathShape:()=>tu,setPathTrim:()=>tN,setPostField:()=>eQ,setPostShaderSource:()=>e0,setReflectBump:()=>ej,setReflectColor:()=>eG,setReflectMask:()=>ez,setReflectOpacity:()=>eR,setRenderShadows:()=>e8,setSoftShadows:()=>e9,setSubMeshTransform:()=>eb,toggleLayer:()=>J,togglePostPass:()=>eX,ungroupNode:()=>t$,updateEffector:()=>te,updateInstancerSpec:()=>ei,updateLightShadow:()=>e6,updatePathFollow:()=>tI,writeScene:()=>x});var r=n(76378),i=n(11737),a=n(7628),o=n(25705),s=n(78988),d=n(92623),l=n(12847),f=n(7427),u=n(72777),c=n(20041),m=n(47708);let p={matte:{label:"Matte",mat:{color:"#9aa0b5",metalness:0,roughness:.9}},plastic:{label:"Plastic",mat:{color:"#cfd2da",metalness:0,roughness:.4,clearcoat:.6,clearcoatRoughness:.2}},chrome:{label:"Chrome",mat:{color:"#ffffff",metalness:1,roughness:.02}},gold:{label:"Gold",mat:{color:"#ffce6e",metalness:1,roughness:.18}},copper:{label:"Copper",mat:{color:"#e0855a",metalness:1,roughness:.28}},glass:{label:"Glass",mat:{color:"#ffffff",metalness:0,roughness:.02,transmission:1,ior:1.5}},liquidGlass:{label:"Liquid Glass",mat:{color:"#ffffff",metalness:0,roughness:.04,transmission:1,ior:1.45,thickness:.6,dispersion:.5,clearcoat:1,clearcoatRoughness:.08,specularIntensity:1,iridescence:.12,iridescenceIOR:1.3}},frostedGlass:{label:"Frosted Glass",mat:{color:"#ffffff",metalness:0,roughness:.4,transmission:.92,ior:1.45,thickness:.8,dispersion:.15,clearcoat:.4,clearcoatRoughness:.3}},ceramic:{label:"Ceramic",mat:{color:"#f0ede6",metalness:0,roughness:.25,clearcoat:1,clearcoatRoughness:.1}},carpaint:{label:"Car paint",mat:{color:"#2f53c8",metalness:.6,roughness:.3,clearcoat:1,clearcoatRoughness:.05}},emissive:{label:"Emissive",mat:{color:"#000000",metalness:0,roughness:1,emissive:"#6ea8ff",emissiveIntensity:2.4}}};function h(e,t,n){let r=p[n];r&&S(e,e=>{let n=e.nodes.find(e=>e.id===t);n&&"mesh"===n.kind&&(n.material={kind:"physical",...r.mat})})}function g(e){if(e&&("mesh"===e.kind&&"shader"===e.material.kind||"shaderLayer"===e.kind&&"shader"===e.material.kind))return e.material}let v=(0,o.Ac)(m.Qe);
1function k(e){return!!e?.some(e=>e.name===m.Qe)}function y(e){let t=!1;for(let n of e.nodes)(0,f.mH)(n,e.nodes)&&(t=!0);return t}function b(e){let t=I(e),n=(0,u.serializeSceneAnimation)(r.useEditorStore.getState().timelines??{},e);return n?{...t,animation:n}:t}function I(e){let t=r.useEditorStore.getState().interactiveElements[e],n=t?.fieldValues?.[v];if("string"==typeof n&&n)try{let e=JSON.parse(n);return y(e),e}catch{}return(0,s.createDefaultScene)()}function x(e,t){let n=r.useEditorStore.getState(),a=JSON.stringify(t);if((0,i.jL)(e)){let t=n.interactiveElements[e];return!!t&&(n.updateInteractivePayload(e,{fieldValues:{...t.fieldValues,[v]:a}},{skipHistory:!0}),!0)}return!!n.interactiveElements[e]&&(n.setInteractiveFieldValue(e,v,a),!0)}function S(e,t){let n=I(e);return t(n),x(e,n),n}function M(e,t){return!!x(e,t)&&(r.useEditorStore.getState().setInteractiveFields(e,(0,o.lL)(t),(0,i.jL)(e)?{skipHistory:!0}:void 0),!0)}let w={box:{name:"Cube",params:[1,1,1]},sphere:{name:"Sphere",params:[.6]},plane:{name:"Plane",params:[1.5,1.5]},cylinder:{name:"Cylinder",params:[.5,.5,1]},cone:{name:"Cone",params:[.5,1]},torus:{name:"Torus",params:[.5,.18]},capsule:{name:"Capsule",params:[.3,.7]},torusKnot:{name:"Torus knot",params:[.55,.18]},icosahedron:{name:"Icosahedron",params:[.7,0]}};function C(e="box"){let t=w[e]??w.box;return{id:(0,a.generateId)("node"),name:t.name,kind:"mesh",parentId:null,transform:(0,m.DH)({position:[0,0,0]}),visible:!0,castShadow:!0,geometry:{kind:e,params:[...t.params]},material:{kind:"physical",color:"#9aa0b5",metalness:.4,roughness:.4}}}function N(){return{kind:"physical",color:"#9aa0b5",metalness:.4,roughness:.4}}function _(){return{kind:"matcap",matcap:d.I[0]?.url??""}}function O(){return{kind:"shader",vertex:"varying vec2 vUv;\nvoid main() {\n  vUv = uv;\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}",fragment:"varying vec2 vUv;\nuniform float uTime;\nuniform float uIntensity;\nuniform vec3 uColor;\nvoid main() {\n  float wave = 0.5 + 0.5 * sin((vUv.x + vUv.y) * 6.2831853 + uTime);\n  vec3 col = uColor * (0.35 + 0.65 * wave) * uIntensity;\n  gl_FragColor = vec4(col, 1.0);\n}",uniforms:[{name:"uColor",type:"color",value:"#6ea8ff"},{name:"uIntensity",type:"float",value:1,min:0,max:4}],transparent:!1}}function A(e,t,n){let r=I(e),i=r.nodes.find(e=>e.id===t);i&&"mesh"===i.kind&&i.material.kind!==n&&(i.material="shader"===n?O():"matcap"===n?_():N(),r.exposed=r.exposed.filter(e=>"material"!==e.target.kind&&"uniform"!==e.target.kind||e.target.nodeId!==t),M(e,r))}function B(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"mesh"===r.kind&&"matcap"===r.material.kind&&(r.material.matcap=n)})}let D="base",P={physical:"Material",shader:"Custom shader",html:"HTML",matcap:"Matcap",color:"Color",gradient:"Gradient",depthGradient:"Depth gradient",fresnel:"Fresnel",image:"Image",video:"Video",glass:"Glass",rainbow:"Rainbow",toon:"Toon",outline:"Outline",noise:"Noise",pattern:"Pattern",vertexDisplace:"Displace",vertexWave:"Wave",vertexTwist:"Twist",vertexBend:"Bend",vertexInflate:"Inflate",vertexWind:"Wind"};function E(e){return P[e]??"Layer"}function L(e){switch(e){case"physical":return N();case"shader":return O();case"matcap":return _();case"html":return{kind:"html",source:{kind:"inline",html:es},transparent:!1};case"color":return{kind:"color",color:"#88aaff"};case"gradient":return{kind:"gradient",gtype:"linear",stops:[{at:0,color:"#ff6ec4"},{at:1,color:"#7873f5"}],angle:0};case"depthGradient":return{kind:"depthGradient",near:"#ffffff",far:"#000022",axis:"camera",range:[0,10],smooth:!0};case"fresnel":return{kind:"fresnel",color:"#66ccff",intensity:1,power:2};case"image":return{kind:"image",src:""};case"video":return{kind:"video",src:"",loop:!0};case"glass":return{kind:"glass",transmission:1,thickness:.5,ior:1.45,dispersion:.2,roughness:.05,tint:"#ffffff"};case"rainbow":return{kind:"rainbow",frequency:3,shift:0};case"toon":return{kind:"toon",color:"#88aaff",steps:3};case"outline":return{kind:"outline",color:"#000000",thickness:.02,mode:"normal"};case"noise":return{kind:"noise",noiseType:"simplex",scale:4,octaves:3,colorA:"#000000",colorB:"#ffffff",speed:.2};
1case"pattern":return{kind:"pattern",pattern:"dots",density:10,colorA:"#000000",colorB:"#ffffff",angle:0};case"vertexDisplace":return{kind:"vertexDisplace",amplitude:.1,frequency:2,speed:1,along:"normal",noiseType:"simplex"};case"vertexWave":return{kind:"vertexWave",amplitude:.1,wavelength:1,speed:1,axis:"y"};case"vertexTwist":return{kind:"vertexTwist",angle:45,axis:"y"};case"vertexBend":return{kind:"vertexBend",angle:30,axis:"z"};case"vertexInflate":return{kind:"vertexInflate",amount:.1,speed:0};case"vertexWind":return{kind:"vertexWind",direction:[1,0,0],strength:.1,frequency:1}}}function F(e){return{id:D,name:"Base",enabled:!0,opacity:1,blend:"normal",spec:e}}function T(e){return"mesh"!==e.kind?[]:e.layers&&e.layers.length?e.layers:[F(e.material)]}function $(e){return e.layers&&0!==e.layers.length||(e.layers=[F(e.material)]),e.layers}function H(e,t,n){return("material"===e.kind||"uniform"===e.kind)&&e.nodeId===t&&e.layerId===n}function R(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind)return;let a=$(i).find(e=>e.id===n);a&&r(a)})}function j(e,t,n){let r=(0,a.generateId)("layer");return S(e,e=>{let i=e.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind)return;let a=$(i),o={id:r,name:E(n),enabled:!0,spec:L(n)};(0,m._N)(n)||(o.opacity=1,o.blend="normal"),a.push(o)}),r}function z(e,t,n){let r=I(e),i=r.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind)return;let a=$(i).filter(e=>e.id!==n);i.layers=a.length?a:[F(N())],r.exposed=r.exposed.filter(e=>!H(e.target,t,n)),M(e,r)}function G(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind)return;let a=$(i),o=a.findIndex(e=>e.id===n);if(o<0)return;let[s]=a.splice(o,1);a.splice(Math.max(0,Math.min(a.length,r)),0,s)})}function U(e,t,n,r){let i=T(I(e).nodes.find(e=>e.id===t)??{}).findIndex(e=>e.id===n);i<0||G(e,t,n,i+r)}function J(e,t,n,r){R(e,t,n,e=>{e.enabled=r})}function V(e,t,n,r){R(e,t,n,e=>{e.name=r})}function W(e,t,n,r){R(e,t,n,e=>{e.opacity=r})}function Z(e,t,n,r){R(e,t,n,e=>{e.blend=r})}function q(e,t,n,r){R(e,t,n,e=>{r?e.mask=r:delete e.mask})}function K(e,t,n,r){let i=I(e),a=i.nodes.find(e=>e.id===t);if(!a||"mesh"!==a.kind)return;let o=$(a).find(e=>e.id===n);if(!o)return;let s=o.spec.kind!==r.kind;o.spec=r,s?(i.exposed=i.exposed.filter(e=>!H(e.target,t,n)),M(e,i)):x(e,i)}function Y(e,t,n,r){K(e,t,n,L(r))}function X(e,t,n){let r=I(e),i=r.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind)return;i.layers=n;let a=new Set(n.map(e=>e.id));
1r.exposed=r.exposed.filter(e=>{let n=e.target;return"material"!==n.kind&&"uniform"!==n.kind||n.nodeId!==t||!n.layerId||a.has(n.layerId)}),M(e,r)}function Q(e=""){return{id:(0,a.generateId)("node"),name:"Model",kind:"model",parentId:null,transform:(0,m.DH)(),visible:!0,src:e,clipIndex:0}}function ee(){return{mode:"particles",emitter:{shape:"point",size:[.2,.2,.2],rate:140,maxCount:1400,burst:0,loop:!0,duration:0},spawn:{speedMin:1,speedMax:2.6,spreadDeg:22,direction:[0,1,0],lifetimeMin:1.2,lifetimeMax:2.6,sizeMin:.04,sizeMax:.12,colorStart:"#ffd56e",colorEnd:"#ff5a3c"},overLife:{sizeStart:1,sizeEnd:.15,fadeIn:.12,fadeOut:.55,opacity:1},forces:{gravity:[0,-1,0],drag:.1,turbulence:.5,turbulenceScale:1.3},render:{blend:"add",emissive:1.6,softCircle:!0},seed:1,timeScale:1}}function et(){return{mode:"replicator",pattern:{kind:"grid",countX:4,countY:1,countZ:4,spacing:.95},source:{kind:"inline",geometry:{kind:"box",params:[.4,.4,.4]},material:{kind:"physical",color:"#8a8ad6",metalness:.3,roughness:.4}},jitter:{},seed:1}}function en(e="particles"){return{id:(0,a.generateId)("node"),name:"particles"===e?"Particles":"Replicator",kind:"instancer",parentId:null,transform:(0,m.DH)(),visible:!0,spec:"particles"===e?ee():et()}}function er(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"instancer"===r.kind&&(r.spec="particles"===n?ee():et())})}function ei(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"instancer"===r.kind&&n(r.spec)})}function ea(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"instancer"===r.kind&&(r.spec=JSON.parse(JSON.stringify(n)))})}function eo(){return{id:(0,a.generateId)("node"),name:"2D Shader",kind:"shaderLayer",parentId:null,transform:(0,m.DH)(),visible:!0,placement:"background",material:O()}}let es='<div style="width:280px;padding:24px;border-radius:16px;background:#5a3df0;color:#fff;font-family:system-ui,sans-serif"><div style="font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#c9bdff">HTML in 3D</div><div style="font-size:24px;font-weight:700;margin-top:6px">Live panel</div><p style="font-size:14px;line-height:1.5;color:#e7e0ff;margin:10px 0 0">Rendered as a texture. Point this at any element on your page to mirror it in the scene.</p></div>';function ed(){return{id:(0,a.generateId)("node"),name:"HTML",kind:"html",parentId:null,transform:(0,m.DH)({scale:[3,3,3]}),visible:!0,source:{kind:"inline",html:es},refreshMs:0}}function el(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"html"===r.kind&&("element"===n?r.source={kind:"element",selector:"element"===r.source.kind?r.source.selector:""}:r.source={kind:"inline",html:"inline"===r.source.kind?r.source.html:es})})}function ef(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"html"===r.kind&&"element"===r.source.kind&&(r.source.selector=n)})}function eu(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"html"===r.kind&&"inline"===r.source.kind&&(r.source.html=n)})}function ec(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"html"===r.kind&&(n&&"plane"!==n?r.geometry={kind:n}:delete r.geometry)})}function em(e,t){S(e,e=>{let n=e.nodes.find(e=>e.id===t);n&&"html"===n.kind&&(n.rev=(n.rev||0)+1)})}function ep(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"mesh"===r.kind&&(r.reflective=n)})}function eh(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"html"===r.kind&&(r.transparent=n)})}function eg(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);i&&"html"===i.kind&&(void 0===n?delete i.htmlAnimate:i.htmlAnimate=n,void 0!==r&&(Number.isFinite(r)?i.htmlAnimateFps=Math.max(1,Math.min(30,Math.round(r))):delete i.htmlAnimateFps))})}function ev(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"html"===r.kind&&(void 0!==n&&Number.isFinite(n)?r.htmlScale=Math.max(.25,Math.min(4,n)):delete r.htmlScale)})}function ek(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);i&&"model"===i.kind&&(r?(i.materialOverrides=i.materialOverrides||{},i.materialOverrides[n]=r):i.materialOverrides&&(delete i.materialOverrides[n],0===Object.keys(i.materialOverrides).length&&delete i.materialOverrides))})}function ey(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);i&&"model"===i.kind&&(r&&0!==r.length?(i.materialOverrideLayers=i.materialOverrideLayers||{},i.materialOverrideLayers[n]=r):i.materialOverrideLayers&&(delete i.materialOverrideLayers[n],0===Object.keys(i.materialOverrideLayers).length&&delete i.materialOverrideLayers))})}function eb(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);i&&"model"===i.kind&&(r?(i.transformOverrides=i.transformOverrides||{},i.transformOverrides[n]=r):i.transformOverrides&&(delete i.transformOverrides[n],0===Object.keys(i.transformOverrides).length&&delete i.transformOverrides))})}function eI(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);if(r){r.name=n;return}let i=(e.cameras||[]).find(e=>e.id===t);i&&(i.name=n)})}function ex(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&(n?r.raycastLock=!0:delete r.raycastLock)})}
1function eS(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);if(r){r.visible=n;return}let i=(e.cameras||[]).find(e=>e.id===t);i&&(i.visible=n)})}function eM(e){return{id:(0,a.generateId)("cam"),name:e?.name||"Camera",transform:e?.transform||(0,m.DH)({position:[0,.6,4.5]}),fov:e?.fov??45,near:e?.near??.01,far:e?.far??1e3,lookAtOrigin:e?.lookAtOrigin??!0,...e?.lookAt?{lookAt:e.lookAt}:{}}}function ew(e,t){let n=eM(t);return S(e,e=>{e.cameras=e.cameras||[],e.cameras.push(n),e.activeCameraId||(e.activeCameraId=n.id)}),n.id}function eC(e,t){S(e,e=>{e.cameras=(e.cameras||[]).filter(e=>e.id!==t),e.activeCameraId===t&&(e.activeCameraId="")})}function eN(e,t){S(e,e=>{e.activeCameraId=t})}function e_(e,t,n,r){S(e,e=>{let i=(e.cameras||[]).find(e=>e.id===t);i&&(i[n]=r)})}function eO(e,t,n){S(e,e=>{let r=(e.cameras||[]).find(e=>e.id===t);r&&(r.transform=n,r.lookAtOrigin=!1)})}function eA(e,t,n){S(e,e=>{let r=(e.cameras||[]).find(e=>e.id===t);r&&(r.lookAtOrigin=n,n&&(r.lookAt=void 0,r.lookAtNodeId=void 0))})}function eB(e,t,n){S(e,e=>{let r=(e.cameras||[]).find(e=>e.id===t);r&&(r.lookAtOrigin="origin"===n.kind,r.lookAt="point"===n.kind?n.point??[0,0,0]:void 0,r.lookAtNodeId="node"===n.kind?n.nodeId:void 0)})}function eD(e,t,n="Camera"){let r=ew(e,{name:n,transform:(0,m.DH)({position:t.position,rotation:t.rotation}),fov:t.fov??45,lookAtOrigin:!1});return eN(e,r),r}function eP(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"model"===r.kind&&(r.src=n)})}function eE(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"model"===r.kind&&(r.clipIndex=n)})}
1function eL(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"model"===r.kind&&(r.autoplay=n)})}function eF(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind||"physical"!==i.material.kind)return;let a=i.material;r?(a.maps=a.maps||{},a.maps[n]=r):a.maps&&(delete a.maps[n],0===Object.keys(a.maps).length&&delete a.maps)})}function eT(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);if(!i||"mesh"!==i.kind||"physical"!==i.material.kind)return;let a=i.material;r?(a.procMaps=a.procMaps||{},a.procMaps[n]=r):a.procMaps&&(delete a.procMaps[n],0===Object.keys(a.procMaps).length&&delete a.procMaps)})}function e$(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&("mesh"===r.kind||"model"===r.kind)&&(n?r.displace=n:delete r.displace)})}function eH(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);i&&"mesh"===i.kind&&("physical"===i.material.kind||"matcap"===i.material.kind)&&(i.material[n]=r)})}function eR(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"mesh"===r.kind&&(r.reflectOpacity=n)})}function ej(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"mesh"===r.kind&&(n&&(0,m.w8)(n)?r.reflectBump=n:delete r.reflectBump)})}function ez(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"mesh"===r.kind&&(n&&(0,m.w8)(n)?r.reflectMask=n:delete r.reflectMask)})}function eG(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"mesh"===r.kind&&(r.reflectColor=n)})}function eU(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"transform"in r&&(r.transform.scale=[n,n,n])})}function eJ(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"shaderLayer"===r.kind&&(r.placement=n)})}function eV(e,t){S(e,e=>{"transparent"===t?e.render.background={kind:"transparent"}:"hdri"===t?e.render.background={kind:"hdri"}:e.render.background={kind:"color",color:"color"===e.render.background.kind?e.render.background.color:"#0b0b12"}})}function eW(e,t){S(e,e=>{if(!t){delete e.environment.hdri,"hdri"===e.render.background.kind&&(e.render.background={kind:"color",color:"#0b0b12"});return}e.environment.hdri={src:t,intensity:e.environment.hdri?.intensity??1,rotation:e.environment.hdri?.rotation??0}})}function eZ(e){let t=(0,a.generateId)("pass");switch(e){case"bloom":return{id:t,kind:"bloom",enabled:!0,strength:.6,radius:.4,threshold:.85};case"ssao":return{id:t,kind:"ssao",enabled:!0,intensity:1,radius:8};case"vignette":return{id:t,kind:"vignette",enabled:!0,offset:1.1,darkness:1.1};case"dof":return{id:t,kind:"dof",enabled:!0,focus:4,aperture:2e-4,maxblur:.01};case"ssr":return{id:t,kind:"ssr",enabled:!0,opacity:1,maxDistance:2,thickness:.05,blur:!0,quality:"med",roughnessCutoff:.5};case"custom":return{id:t,kind:"custom",enabled:!0,fragment:"uniform sampler2D tDiffuse;\nuniform float uTime;\nuniform float uAmount;\nvarying vec2 vUv;\nvoid main(){\n  vec4 c = texture2D(tDiffuse, vUv);\n  float scan = 0.92 + 0.08 * sin(vUv.y * 700.0 + uTime * 3.0);\n  c.rgb *= mix(1.0, scan, uAmount);\n  gl_FragColor = c;\n}",uniforms:[{name:"uAmount",type:"float",value:.6,min:0,max:1}]}}}function eq(e,t){return e.render.post?.passes?.find(e=>e.id===t)}function eK(e,t){let n=eZ(t);return S(e,e=>{(e.render.post=e.render.post||{},e.render.post.passes=e.render.post.passes||[],e.render.post.passes).push(n)}),n.id}function eY(e,t){let n=I(e);n.render.post?.passes&&(n.render.post.passes=n.render.post.passes.filter(e=>e.id!==t)),n.exposed=n.exposed.filter(e=>"post"!==e.target.kind||e.target.passId!==t),M(e,n)}function eX(e,t,n){S(e,e=>{let r=eq(e,t);r&&(r.enabled=n)})}function eQ(e,t,n,r){S(e,e=>{let i=eq(e,t);i&&(i[n]=r)})}function e0(e,t,n){S(e,e=>{let r=eq(e,t);r&&"custom"===r.kind&&(r.fragment=n)})}function e1(e,t,n,r){S(e,e=>{let i=eq(e,t);i&&"custom"===i.kind&&!i.uniforms.some(e=>e.name===n)&&i.uniforms.push("color"===r?{name:n,type:"color",value:"#ffffff"}:{name:n,type:"float",value:0,min:0,max:1})})}function e2(e,t,n){let r=I(e),i=eq(r,t);i&&"custom"===i.kind&&(i.uniforms=i.uniforms.filter(e=>e.name!==n)),r.exposed=r.exposed.filter(e=>"post"!==e.target.kind||e.target.passId!==t||e.target.key!==n),M(e,r)}function e5(e="point"){return{id:(0,a.generateId)("node"),name:"point"===e?"Point light":"Light",kind:"light",parentId:null,transform:(0,m.DH)({position:[2,3,2]}),visible:!0,light:{kind:e,color:"#ffffff",intensity:1.5,castShadow:!1},targetAt:[0,0,0]}}function e4(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);if(!r||"light"!==r.kind)return;let i=r.light;i.kind=n,("point"===n||"spot"===n)&&(null==i.distance&&(i.distance=0),null==i.decay&&(i.decay=2)),"spot"===n&&(null==i.angle&&(i.angle=30),null==i.penumbra&&(i.penumbra=.2)),"ambient"===n&&(i.castShadow=!1)})}function e3(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"light"===r.kind&&(r.light.castShadow=n)})}function e6(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"light"===r.kind&&Object.assign(r.light,n)})}function e8(e,t){S(e,e=>{e.render.shadows=t})}function e9(e,t){S(e,e=>{e.render.softShadows=t})}function e7(){return{id:(0,a.generateId)("node"),name:"Effector",kind:"effector",parentId:null,transform:(0,m.DH)({position:[0,0,0]}),visible:!0,effectorType:"attract",strength:4,radius:3,falloff:"smooth",axis:"y",follow:"pointer",followLag:.15}}function te(e,t,n){S(e,e=>{let r=e.nodes.find(e=>e.id===t);r&&"effector"===r.kind&&Object.assign(r,n)})}function tt(e,t){return S(e,e=>{e.nodes.push(t)}),t.id}
1function tn(){let e=(e,t,n)=>({id:(0,a.generateId)("pt"),p:e,hIn:t,hOut:n,mode:"mirror"});return{id:(0,a.generateId)("node"),name:"Path",kind:"path",parentId:null,transform:(0,m.DH)(),visible:!0,castShadow:!0,points:[e([-1.2,-.4,0],[-.4,0,0],[.4,0,0]),e([0,.5,0],[-.5,-.2,0],[.5,.2,0]),e([1.2,-.4,0],[-.4,0,0],[.4,0,0])],curve:"bezier",bevel:{shape:"round",radius:.06,segments:16,tubularSegments:160,caps:!0,capStyle:"round",taper:1,twist:0},material:{kind:"physical",color:"#6ea8ff",metalness:.2,roughness:.35},trimStart:0,trimEnd:1}}function tr(e,t){let n=e.nodes.find(e=>e.id===t);return n&&"path"===n.kind?n:void 0}function ti(e,t,n=.28){return[(t[0]-e[0])*n,(t[1]-e[1])*n,(t[2]-e[2])*n]}function ta(e,t,n){let r=(0,a.generateId)("pt");return S(e,e=>{let i,a=tr(e,t);if(!a)return;let o=a.points,s=n?.afterId?o.findIndex(e=>e.id===n.afterId):o.length-1,d=s<0?o.length-1:s,l=o[d],f=o[d+1];if(n?.at)i=[...n.at];else if(f)i=[(l.p[0]+f.p[0])/2,(l.p[1]+f.p[1])/2,(l.p[2]+f.p[2])/2];else if(l){let e=o[d-1],t=e?[l.p[0]-e.p[0],l.p[1]-e.p[1],l.p[2]-e.p[2]]:[1,0,0];i=[l.p[0]+t[0],l.p[1]+t[1],l.p[2]+t[2]]}else i=[0,0,0];let u=f??l,c=u?ti(i,u.p):[.3,0,0],m={id:r,p:i,hIn:[-c[0],-c[1],-c[2]],hOut:[...c],mode:"mirror"};o.splice(d+1,0,m)}),r}function to(e,t,n){S(e,e=>{let r=tr(e,t);!r||r.points.length<=2||(r.points=r.points.filter(e=>e.id!==n))})}function ts(e,t,n,r){S(e,e=>{let i=tr(e,t)?.points.find(e=>e.id===n);i&&(i.p=[...r])})}function td(e,t,n,r,i){S(e,e=>{let a=tr(e,t)?.points.find(e=>e.id===n);if(!a)return;if(!i)return void delete a[r];a[r]=[...i];let o="hIn"===r?"hOut":"hIn",s=a.mode??"mirror";if("free"===s)return;let d=Math.hypot(i[0],i[1],i[2]);if(d<1e-6)return;if("mirror"===s){a[o]=[-i[0],-i[1],-i[2]];return}let l=a[o],f=(l?Math.hypot(l[0],l[1],l[2]):d)/d;a[o]=[-i[0]*f,-i[1]*f,-i[2]*f]})}function tl(e,t,n,r){S(e,e=>{let i=tr(e,t)?.points.find(e=>e.id===n);i&&(i.mode=r)})}function tf(e,t,n,r){S(e,e=>{let i,a=tr(e,t),o=a?a.points.findIndex(e=>e.id===n):-1;if(!a||o<0)return;let s=a.points[o];if(r){delete s.hIn,delete s.hOut,s.mode="free";return}let d=a.points.length-1,l=a.points[o-1]??(a.closed?a.points[d]:void 0),f=a.points[o+1]??(a.closed?a.points[0]:void 0);if(l&&f)i=[(f.p[0]-l.p[0])*.16,(f.p[1]-l.p[1])*.16,(f.p[2]-l.p[2])*.16];else if(f)i=ti(s.p,f.p);else if(l){let e=ti(s.p,l.p);i=[-e[0],-e[1],-e[2]]}else i=[.3,0,0];1e-6>Math.hypot(i[0],i[1],i[2])&&(i=[.3,0,0]),s.hOut=i,s.hIn=[-i[0],-i[1],-i[2]],s.mode="mirror"})}function tu(e,t,n){S(e,e=>{let r=tr(e,t);r&&Object.assign(r,n)})}function tc(e,t,n){S(e,e=>{let r=tr(e,t);if(!r)return;if(null===n)return void delete r.bevel;let i=r.bevel??{shape:"round",radius:.06,segments:16,tubularSegments:160,caps:!0,capStyle:"round",taper:1,twist:0};r.bevel={...i,...n}})}function tm(e,t,n){let r=(0,f.gY)(n),i=!1;return S(e,e=>{let n=e.nodes.find(e=>e.id===t);n&&(n.modifiers=n.modifiers??[],n.modifiers.push(r),i=!0)}),i?r.id:""}function tp(e,t,n){let r=I(e),i=r.nodes.find(e=>e.id===t);if(!i||!i.modifiers)return;i.modifiers=i.modifiers.filter(e=>e.id!==n),i.modifiers.length||delete i.modifiers;let a=r.exposed.length;r.exposed=r.exposed.filter(e=>"modifier"!==e.target.kind||e.target.nodeId!==t||e.target.modifierId!==n),r.exposed.length!==a?M(e,r):x(e,r)}function th(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t)?.modifiers?.find(e=>e.id===n);i&&(i.enabled=r)})}function tg(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t)?.modifiers?.find(e=>e.id===n);i&&(i.name=r)})}function tv(e,t,n,r){S(e,e=>{let i=e.nodes.find(e=>e.id===t);if(!i||!i.modifiers)return;let a=i.modifiers.findIndex(e=>e.id===n),o=a+r;if(a<0||o<0||o>=i.modifiers.length)return;let[s]=i.modifiers.splice(a,1);i.modifiers.splice(o,0,s)})}function tk(e,t,n,r,i){S(e,e=>{let a=e.nodes.find(e=>e.id===t)?.modifiers?.find(e=>e.id===n);a&&(0,f.Fh)(a,r,i)})}function ty(e,t,n){S(e,e=>{let r=tr(e,t);!r||n===t||tP(e,n,t)||!e.nodes.some(e=>e.id===n)||(r.follows=r.follows??[],r.follows.some(e=>e.nodeId===n)||r.follows.push({nodeId:n,offset:.5*!!r.follows.length,align:!0,axis:"+z"}))})}function tb(e,t,n){S(e,e=>{let r=tr(e,t);r&&r.follows&&(r.follows=r.follows.filter(e=>e.nodeId!==n),r.follows.length||delete r.follows)})}function tI(e,t,n,r){S(e,e=>{let i=tr(e,t)?.follows?.find(e=>e.nodeId===n);i&&Object.assign(i,r)})}function tx(e){if(!e)return null;let t=e.indexOf("::");if(-1===t)return null;let n=e.slice(t+2),r=n.indexOf(":");if(-1===r)return null;let i=n.slice(0,r);return"pt"!==i&&"hin"!==i&&"hout"!==i?null:{nodeId:e.slice(0,t),what:i,pointId:n.slice(r+1)}}
1function tS(e,t,n){if("pt"===t.what)return void ts(e,t.nodeId,t.pointId,n);let r=I(e),i=tr(r,t.nodeId)?.points.find(e=>e.id===t.pointId);if(!i)return;let a=[n[0]-i.p[0],n[1]-i.p[1],n[2]-i.p[2]];td(e,t.nodeId,t.pointId,"hin"===t.what?"hIn":"hOut",a)}function tM(e,t,n){S(e,e=>{let r=tr(e,t);if(!r)return;if(null===n)return void delete r.fill;let i=r.fill??{mode:"extrude",plane:"auto",depth:.25,steps:1,curveSegments:16,bevelEnabled:!1};r.fill={...i,...n},r.closed||(r.closed=!0)})}function tw(e,t,n){S(e,e=>{let r=tr(e,t);r&&(null===n?delete r.fillMaterial:r.fillMaterial=n)})}function tC(e,t,n){S(e,e=>{let r=tr(e,t);r&&(r.material=n)})}function tN(e,t,n){S(e,e=>{let r=tr(e,t);r&&Object.assign(r,n)})}function t_(e,t){let n="";return S(e,e=>{let r=e.nodes.find(e=>e.id===t);if(r){let t=[r],i=new Set([r.id]);for(let n=0;n<t.length;n++){let r=t[n];for(let n of e.nodes)n.parentId!==r.id||i.has(n.id)||(i.add(n.id),t.push(n))}let o=new Map,s=t.map(e=>JSON.parse(JSON.stringify(e)));for(let e of(s.forEach((e,n)=>{let r=t[n].id,i=function(e,t=!0){let n=(0,a.generateId)("node");if(e.id=n,e.name=`${e.name} copy`,t&&(e.transform.position=[e.transform.position[0]+.3,e.transform.position[1],e.transform.position[2]+.3]),"mesh"===e.kind&&e.layers)for(let t of e.layers)t.id=(0,a.generateId)("layer");return n}(e,0===n);o.set(r,i)}),s))e.parentId&&o.has(e.parentId)&&(e.parentId=o.get(e.parentId));e.nodes.push(...s),n=o.get(r.id)??"";return}let i=(e.cameras||[]).find(e=>e.id===t);if(i){let t=JSON.parse(JSON.stringify(i));t.id=(0,a.generateId)("cam"),t.name=`${t.name} copy`,t.transform={...t.transform,position:[t.transform.position[0]+.3,t.transform.position[1],t.transform.position[2]+.3]},e.cameras=e.cameras||[],e.cameras.push(t),n=t.id}}),n}function tO(e,t){let n=I(e),r=[],i=new Set,a=e=>{let t=n.nodes.find(t=>t.id===e);if(!(!t||i.has(e)))for(let o of(i.add(e),r.push(JSON.parse(JSON.stringify(t))),n.nodes))o.parentId===e&&a(o.id)};for(let e of t)a(e);return r}function tA(e,t,n=null){let r=[];return t.length&&S(e,e=>{let i=new Set(t.map(e=>e.id)),o=new Map,s=t.map(e=>JSON.parse(JSON.stringify(e)));for(let e of s){let t=e.id,n=(0,a.generateId)("node");if(o.set(t,n),e.id=n,"mesh"===e.kind&&e.layers)for(let t of e.layers)t.id=(0,a.generateId)("layer")}s.forEach((e,a)=>{let s=t[a];s.parentId&&i.has(s.parentId)?e.parentId=o.get(s.parentId):(e.parentId=n,e.transform.position=[e.transform.position[0]+.3,e.transform.position[1],e.transform.position[2]+.3],r.push(e.id))}),e.nodes.push(...s)}),r}function tB(e,t){let n=I(e),r=n.nodes.find(e=>e.id===t),i=r?r.parentId??null:null;for(let e of(n.nodes=n.nodes.filter(e=>e.id!==t),n.nodes))e.parentId===t&&(e.parentId=i);n.exposed=n.exposed.filter(e=>{var n,r;return n=e.target,r=t,"nodeTransform"!==n.kind&&"material"!==n.kind&&"uniform"!==n.kind&&"light"!==n.kind&&"animation"!==n.kind&&"instancer"!==n.kind&&"effector"!==n.kind&&"path"!==n.kind&&"modifier"!==n.kind||n.nodeId!==r}),M(e,n)}function tD(){return{id:(0,a.generateId)("node"),name:"Group",kind:"group",parentId:null,transform:(0,m.DH)(),visible:!0}}function tP(e,t,n){let r=e.nodes.find(e=>e.id===n),i=new Set;for(;r&&r.parentId&&!i.has(r.id);){if(i.add(r.id),r.parentId===t)return!0;let n=r.parentId;r=e.nodes.find(e=>e.id===n)}return!1}function tE(e,t,n){S(e,e=>{if(n===t||n&&tP(e,t,n))return;let r=e.nodes.find(e=>e.id===t);if(!r||(r.parentId??null)===(n??null))return;let i=(0,l.HE)(e,t),a=n?(0,l.HE)(e,n):(0,l.D_)(),o=(0,l.lw)((0,l.B8)(a),i),{position:s,rotationDegXYZ:d,scale:f}=(0,l.dB)(o);r.parentId=n,r.transform={position:s,rotation:d,scale:f}})}function tL(e,t,n,r){let i=e.find(e=>e.id===t);if(!i||t===n)return e;let a=e.filter(e=>e.id!==t),o=a.findIndex(e=>e.id===n);return o<0?e:(a.splice("before"===r?o:o+1,0,i),a)}function tF(e,t,n,r){S(e,e=>{let i;if(t===n)return;let a=e.nodes.find(e=>e.id===t),o=a?void 0:e.cameras.find(e=>e.id===t);if(a||o){if("inside"===r)i=n;else if(n){let t=e.nodes.find(e=>e.id===n),r=t?void 0:e.cameras.find(e=>e.id===n);i=t?t.parentId??null:r?r.parentId??null:null}else i=null;if(!(a&&i&&(i===t||tP(e,t,i)))){if(a){if((a.parentId??null)!==(i??null)){let n=(0,l.HE)(e,t),r=i?(0,l.HE)(e,i):(0,l.D_)(),o=(0,l.lw)((0,l.B8)(r),n),{position:s,rotationDegXYZ:d,scale:f}=(0,l.dB)(o);a.parentId=i,a.transform={position:s,rotation:d,scale:f}}
1"inside"!==r&&n&&(e.nodes=tL(e.nodes,t,n,r))}else if(o){if((o.parentId??null)!==(i??null)){let t=t=>{let n=(0,l.HE)(e,t),r=(0,l.dB)(n);return(0,l.MI)(r.position,r.rotationDegXYZ,[1,1,1])},n=o.parentId?t(o.parentId):(0,l.D_)(),r=(0,l.lw)(n,(0,l.MI)(o.transform.position,o.transform.rotation,o.transform.scale)),a=i?t(i):(0,l.D_)(),s=(0,l.lw)((0,l.B8)(a),r),{position:d,rotationDegXYZ:f,scale:u}=(0,l.dB)(s);o.parentId=i,o.transform={position:d,rotation:f,scale:u}}"inside"!==r&&n&&e.cameras.some(e=>e.id===n)&&(e.cameras=tL(e.cameras,t,n,r))}}}})}function tT(e,t){let n="";return S(e,e=>{let r=t.map(t=>e.nodes.find(e=>e.id===t)).filter(Boolean);if(0===r.length)return;let i=tD();for(let t of(i.parentId=r[0].parentId??null,e.nodes.push(i),r))t.parentId=i.id;n=i.id}),n}function t$(e,t){S(e,e=>{let n=e.nodes.find(e=>e.id===t);if(!n||"group"!==n.kind)return;let r=n.parentId??null;for(let n of e.nodes)n.parentId===t&&(n.parentId=r);e.nodes=e.nodes.filter(e=>e.id!==t)})}function tH(e){return/^\d+$/.test(e)?Number(e):e}function tR(e,t){let n=e;for(let e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[tH(e)]}return n}function tj(e,t,n){let r=t.split("."),i=e;for(let e=0;e<r.length-1;e++){if(null==i||"object"!=typeof i)return;i=i[tH(r[e])]}null!=i&&"object"==typeof i&&(i[tH(r[r.length-1])]=n)}function tz(e,t,n){switch(t.kind){case"nodeTransform":{let r=e.nodes.find(e=>e.id===t.nodeId);if(!r)return;r.transform[t.channel][t.axis]=Number(n);break}case"material":{let r=e.nodes.find(e=>e.id===t.nodeId);if(!r||"mesh"!==r.kind)return;if(t.layerId){let e=(r.layers||[]).find(e=>e.id===t.layerId);if(!e)return;if("opacity"===t.path){e.opacity=Number(n);return}e.spec[t.path]="string"==typeof n?n:Number(n);return}if("physical"!==r.material.kind)return;r.material[t.path]="color"===t.path||"emissive"===t.path?String(n):Number(n);break}case"uniform":{let r,i=e.nodes.find(e=>e.id===t.nodeId);if(t.layerId&&i&&"mesh"===i.kind){let e=(i.layers||[]).find(e=>e.id===t.layerId);e&&"shader"===e.spec.kind&&(r=e.spec)}else r=g(i);let a=(0,c.H$)(t.uniform),o=r?.uniforms.find(e=>e.name===a.name);if(!o)return;if(null!==a.component){(0,c.tz)(o,a.component,n);break}o.value=(0,c.L1)(o,n);break}case"light":{let r=e.nodes.find(e=>e.id===t.nodeId);if(!r||"light"!==r.kind)return;r.light[t.path]="color"===t.path?String(n):Number(n);break}case"render":"exposure"===t.path?e.render.exposure=Number(n):"post.bloom.strength"===t.path&&e.render.post?.bloom?e.render.post.bloom.strength=Number(n):"pathtracing.enabled"===t.path&&(e.render.pathtracing=e.render.pathtracing||{enabled:0},e.render.pathtracing.enabled=Number(n));break;case"post":{let r=e.render.post?.passes?.find(e=>e.id===t.passId);if(!r)return;if("custom"===r.kind){let e=r.uniforms.find(e=>e.name===t.key);e&&(e.value="color"===e.type?String(n):Number(n))}else r[t.key]=Number(n);break}case"env":"ambient.intensity"===t.path&&e.environment.ambient?e.environment.ambient.intensity=Number(n):"hdri.intensity"===t.path&&e.environment.hdri&&(e.environment.hdri.intensity=Number(n));break;case"camera":{let r=e.cameras.find(e=>e.id===t.cameraId);if(!r)return;if("fov"===t.path){r.fov=Number(n);break}if("near"===t.path){r.near=Number(n);break}if("far"===t.path){r.far=Number(n);break}let i=/^(position|rotation)\.(\d)$/.exec(t.path);if(i){let e=i[1],t=Number(i[2]);r.transform&&r.transform[e]&&(r.transform[e][t]=Number(n))}break}case"animation":break;case"instancer":{let r=e.nodes.find(e=>e.id===t.nodeId);if(!r||"instancer"!==r.kind)return;tj(r.spec,t.path,Number(n));break}case"effector":{let r=e.nodes.find(e=>e.id===t.nodeId);if(!r||"effector"!==r.kind)return;tj(r,t.path,Number(n));break}case"path":{let r=e.nodes.find(e=>e.id===t.nodeId);if(!r||"path"!==r.kind)return;let i=Number(n),a=(0,m.Zb)(t.path);if(a){let e=r.follows?.find(e=>e.nodeId===a.nodeId);e&&(e.offset=i);return}if(0===t.path.indexOf("bevel.")){if(!r.bevel)return;r.bevel[t.path.slice(6)]=i;return}r[t.path]=i;break}case"modifier":{let r=e.nodes.find(e=>e.id===t.nodeId)?.modifiers?.find(e=>e.id===t.modifierId);if(!r)return;(0,f.Fh)(r,t.path,"string"==typeof n?n:Number(n))}}}function tG(e,t){switch(t.kind){case"nodeTransform":{let n=e.nodes.find(e=>e.id===t.nodeId);return n?n.transform[t.channel][t.axis]:0}case"material":{let n=e.nodes.find(e=>e.id===t.nodeId);if(!n||"mesh"!==n.kind)return 0;if(t.layerId){let e=(n.layers||[]).find(e=>e.id===t.layerId);if(!e)return 0;if("opacity"===t.path)return e.opacity??1;return e.spec[t.path]??0}if("physical"!==n.material.kind)return 0;return n.material[t.path]}case"uniform":{let n,r=e.nodes.find(e=>e.id===t.nodeId);if(t.layerId&&r&&"mesh"===r.kind){let e=(r.layers||[]).find(e=>e.id===t.layerId);e&&"shader"===e.spec.kind&&(n=e.spec)}else n=g(r);let i=(0,c.H$)(t.uniform),a=n?.uniforms.find(e=>e.name===i.name);if(!a)return 0;return null!==i.component?(0,c.a3)(a,i.component):a.value}case"light":{let n=e.nodes.find(e=>e.id===t.nodeId);if(!n||"light"!==n.kind)return 0;return n.light[t.path]}
1case"render":if("exposure"===t.path)return e.render.exposure;if("pathtracing.enabled"===t.path)return e.render.pathtracing?.enabled??0;return e.render.post?.bloom?.strength??0;case"post":{let n=e.render.post?.passes?.find(e=>e.id===t.passId);if(!n)return 0;if("custom"===n.kind)return n.uniforms.find(e=>e.name===t.key)?.value??0;return n[t.key]??0}case"env":if("ambient.intensity"===t.path)return e.environment.ambient?.intensity??0;if("hdri.intensity"===t.path)return e.environment.hdri?.intensity??1;return 0;case"camera":{let n=e.cameras.find(e=>e.id===t.cameraId);if(!n)return 0;if("fov"===t.path)return n.fov;if("near"===t.path)return n.near;if("far"===t.path)return n.far;let r=/^(position|rotation)\.(\d)$/.exec(t.path);if(r){let e=r[1],t=Number(r[2]);return(n.transform&&n.transform[e]&&n.transform[e][t])??0}return 0}case"animation":default:return 0;case"instancer":{let n=e.nodes.find(e=>e.id===t.nodeId);if(!n||"instancer"!==n.kind)return 0;let r=tR(n.spec,t.path);return"number"==typeof r?r:0}case"effector":{let n=e.nodes.find(e=>e.id===t.nodeId);if(!n||"effector"!==n.kind)return 0;let r=tR(n,t.path);return"number"==typeof r?r:0}case"path":{let n=e.nodes.find(e=>e.id===t.nodeId);if(!n||"path"!==n.kind)return 0;let r=(0,m.Zb)(t.path);if(r)return n.follows?.find(e=>e.nodeId===r.nodeId)?.offset??0;if(0===t.path.indexOf("bevel.")){let e=n.bevel?n.bevel[t.path.slice(6)]:void 0;return"number"==typeof e?e:0}let i=n[t.path];return"number"==typeof i?i:+("trimEnd"===t.path)}case"modifier":{let n=e.nodes.find(e=>e.id===t.nodeId)?.modifiers?.find(e=>e.id===t.modifierId);if(!n)return 0;let r=(0,f.j_)(n,t.path);return"number"==typeof r||"string"==typeof r?r:0}}}},71595:(e,t,n)=>{n.d(t,{BX:()=>a,CN:()=>l,CU:()=>s,Ic:()=>f,V8:()=>i,bj:()=>o,we:()=>d});var r=n(88956);function i(e,t){let n=e.map(e=>({...e})),i=new Set(n.map(e=>e.name));for(let e of t)i.has(e.name)||(i.add(e.name),n.push((0,r.Dv)(e.name,e.type,e.value)));return n}function a(e,t){return e.filter(e=>e.name!==t).map(e=>({...e}))}function o(e,t,n){let r=n.trim();return!r||r===t||e.some(e=>e.name===r)?e.map(e=>({...e})):e.map(e=>e.name===t?{...e,name:r}:{...e})}function s(e,t,n){return e.map(e=>e.name!==t||e.type===n?{...e}:(0,r.Dv)(e.name,n,(0,r.vw)(n)))}function d(e,t,n,r){return e.map(e=>e.name===t&&"float"===e.type?{...e,min:n,max:r}:{...e})}function l(e,t,n){return e.map(e=>e.name===t?{...e,value:n}:{...e})}function f(e,t){let n=Array.isArray(e)?e:[];return Array.from({length:t},(e,t)=>{let r=Number(n[t]);return Number.isFinite(r)?r:0})}},88956:(e,t,n)=>{n.d(t,{Dv:()=>f,G3:()=>r,H9:()=>h,WN:()=>g,br:()=>d,nD:()=>i,ng:()=>p,rT:()=>a,uq:()=>s,vw:()=>l});let r=[{name:"uTime",glslType:"float",note:"seconds since start"},{name:"uProgress",glslType:"float",note:"0..1 scroll / drive"},{name:"uResolution",glslType:"vec2",note:"canvas pixels"},{name:"uMouse",glslType:"vec2",note:"pointer, 0..1"}],i=[{name:"tDiffuse",glslType:"sampler2D",note:"the rendered frame"},{name:"uTime",glslType:"float",note:"seconds since start"},{name:"uResolution",glslType:"vec2",note:"canvas pixels"}],a="varying vec2 vUv; void main(){ vUv=uv; gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0); }",o=new Set(["projectionMatrix","modelViewMatrix","modelMatrix","viewMatrix","normalMatrix","cameraPosition","position","uv","uv2","normal","tangent"]);function s(e){return"color"===e||"vec3"===e?"vec3":"vec2"===e?"vec2":"texture"===e?"sampler2D":"float"}function d(e,t){return`uniform ${s(t)} ${e};`}function l(e){return"color"===e?"#ffffff":"vec2"===e?[0,0]:"vec3"===e?[0,0,0]:"texture"===e?"":0}function f(e,t,n){let r=void 0===n?l(t):n;return"float"===t?{name:e,type:t,value:r,min:0,max:1}:{name:e,type:t,value:r}}function u(e){return String(e||"").replace(/\/\*[\s\S]*?\*\//g," ").replace(/\/\/[^\n]*/g," ")}let c="float|int|uint|bool|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|mat2|mat3|mat4|sampler2D|samplerCube";function m(e){let t=e.toLowerCase();return/colou?r|tint|albedo|emissive|glow|shade|hue/.test(t)?"color":/tex(ture)?$|map$|sampler|tdiffuse/.test(t)?"texture":/resolution|mouse|pointer|uv$|scroll2|size2/.test(t)?"vec2":"float"}function p({sources:e,declared:t,auto:n}){let r=new Set(t),i=new Set(n.map(e=>e.name)),a=e.filter(e=>"string"==typeof e&&e.length>0).map(u);if(0===a.length)return[];let d=[],l=new Set,f=e=>{l.has(e.name)||(l.add(e.name),d.push(e))};for(let e of a)for(let t of function(e){let t,n=u(e),r=[],i=new Set,a=RegExp(`\\buniform\\s+(?:(?:lowp|mediump|highp)\\s+)?(${c})\\s+([^;{}]+);`,"g");for(;t=a.exec(n);)for(let e of t[2].split(",")){let n=e.trim().replace(/\[[^\]]*\]/,"").trim();!/^[A-Za-z_]\w*$/.test(n)||i.has(n)||(i.add(n),r.push({name:n,glslType:t[1]}))}return r}(e)){if(r.has(t.name)||i.has(t.name)||o.has(t.name))continue;let e=function(e,t){switch(e){case"float":case"int":case"uint":case"bool":return"float";case"vec2":return"vec2";case"vec3":return"color"===m(t)?"color":"vec3";case"sampler2D":return"texture";default:return null}}(t.glslType,t.name);f({name:t.name,type:e,glslType:t.glslType,source:"declared",supported:null!==e})}
1for(let e of a){let t,n=function(e){let t,n=new Set,r=RegExp(`\\b(?:${c})\\s+([A-Za-z_]\\w*)`,"g");for(;t=r.exec(e);)n.add(t[1]);let i=RegExp(`\\b(?:${c})\\s+([^;{}()]+);`,"g");for(;t=i.exec(e);)for(let e of t[1].split(",")){let t=e.trim().split(/[\s=[]/)[0];/^[A-Za-z_]\w*$/.test(t)&&n.add(t)}return n}(e),a=/\bu[A-Z][A-Za-z0-9_]*\b/g;for(;t=a.exec(e);){let d=t[0];if(r.has(d)||i.has(d)||n.has(d)||o.has(d)||/^\s*\(/.test(e.slice(a.lastIndex)))continue;let l=m(d);f({name:d,type:l,glslType:s(l),source:"referenced",supported:!0})}}return d}function h(e,t){let n=e.filter(e=>"string"==typeof e&&e.length>0).map(u);return 0===n.length?[]:t.filter(e=>!n.some(t=>RegExp(`\\b${e.replace(/[^\w]/g,"")}\\b`).test(t)))}function g(e,t,n){let r=e.trim();if(!r)return"Name required.";if(!/^[A-Za-z_]\w*$/.test(r))return"Letters, digits and _ only; must not start with a digit.";if(r.startsWith("gl_"))return"gl_ is reserved by GLSL.";if(n.some(e=>e.name===r))return`${r} is provided automatically -- reference it without declaring it.`;if(o.has(r))return`${r} is a three.js built-in.`;for(let e of t)if(e===r)return"A uniform with that name already exists.";return null}},92623:(e,t,n)=>{n.d(t,{I:()=>i});let r="https://cdn.jsdelivr.net/gh/nidorx/matcaps@master/256",i=[{id:"chrome",label:"Chrome",url:`${r}/28292A_D3DAE5_A3ACB8_818183-256px.png`},{id:"brushed-steel",label:"Brushed Steel",url:`${r}/2D2D2F_C6C2C5_727176_94949B-256px.png`},{id:"gold",label:"Gold",url:`${r}/FBB43F_FBE993_FB552E_FCDD65-256px.png`},{id:"copper",label:"Copper",url:`${r}/C35C04_F9C30C_EE9F04_E08304-256px.png`},{id:"warm-bronze",label:"Warm Bronze",url:`${r}/9B4816_E8A138_CC7421_DC8827-256px.png`},{id:"blue-steel",label:"Blue Steel",url:`${r}/17395A_7EBCC7_4D8B9F_65A1B5-256px.png`},{id:"pearl-white",label:"Pearl White",url:`${r}/E7E2D8_B1AA9D_C9C2B3_BCB4AC-256px.png`},{id:"ceramic-pink",label:"Pink Ceramic",url:`${r}/F77777_FBE1E1_FAB2B2_FBC4C4-256px.png`},{id:"black-plastic",label:"Black Plastic",url:`${r}/0F0F0F_4B4B4B_1C1C1C_2C2C2C-256px.png`},{id:"skin",label:"Skin",url:`${r}/F79686_FCCBD4_E76644_E76B56-256px.png`},{id:"clay-red",label:"Red Clay",url:`${r}/CB4934_FB9971_F07554_F68464-256px.png`},{id:"jade",label:"Jade",url:`${r}/2D8753_5CD6A5_45BB82_4CC494-256px.png`},{id:"teal",label:"Teal",url:`${r}/2EAC9E_61EBE3_4DDDD1_43D1C6-256px.png`},{id:"electric-blue",label:"Electric Blue",url:`${r}/1D3FCC_051B5F_81A0F2_5579E9-256px.png`},{id:"purple",label:"Purple",url:`${r}/4F439F_A28BE5_8570D6_7765C9-256px.png`},{id:"violet",label:"Violet",url:`${r}/5B4CBC_B59AF2_9B84EB_8F78E4-256px.png`}]}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.