droidsembly 0.0.0-stage → 0.4.0-beta.1

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.
Files changed (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.it.md +184 -0
  3. package/README.md +184 -3
  4. package/bin/cubefarm.js +297 -0
  5. package/bin/distribution.d.ts +3 -0
  6. package/bin/distribution.js +48 -0
  7. package/dist/THIRD_PARTY_LICENSES.txt +2542 -0
  8. package/dist/assets/AccessibilitySettings-DSmFk9JC.js +30 -0
  9. package/dist/assets/AccessibilitySettings-HrzBDUTN.css +1 -0
  10. package/dist/assets/AppViewer-alNn4TBB.js +5 -0
  11. package/dist/assets/Balloon-UTs7npGo.js +1 -0
  12. package/dist/assets/Batched-BOgjreKO.js +45 -0
  13. package/dist/assets/Birds-BA2HM-AD.js +1 -0
  14. package/dist/assets/Blimp-CTykuz6B.js +1 -0
  15. package/dist/assets/BufferGeometryUtils-BsmWvcA2.js +1 -0
  16. package/dist/assets/Duck-DH63jUrP.js +1 -0
  17. package/dist/assets/Effects-CNyhhFkE.js +65 -0
  18. package/dist/assets/Fireworks-CJfDJOeb.js +33 -0
  19. package/dist/assets/Helicopter-CW_SP7xP.js +1 -0
  20. package/dist/assets/Hurricane-9WqZGyZg.js +33 -0
  21. package/dist/assets/Kaiju-SpSi_jBg.js +1 -0
  22. package/dist/assets/Meteors-DvjhLfbF.js +1 -0
  23. package/dist/assets/MissionConsole-BEP5CdC8.js +1 -0
  24. package/dist/assets/Office-BBnd6tyn.js +563 -0
  25. package/dist/assets/Office-DMOP02gg.css +1 -0
  26. package/dist/assets/PhotoPanel-DehErnsv.js +1 -0
  27. package/dist/assets/PhotoPanel-v4ANHBsO.css +1 -0
  28. package/dist/assets/PhotoScene-Ce-dzToM.js +115 -0
  29. package/dist/assets/Plane-0nfvzL_c.js +1 -0
  30. package/dist/assets/Pocket-CBoyL0ra.js +2 -0
  31. package/dist/assets/Rainbow-CdcWsmW8.js +28 -0
  32. package/dist/assets/Roof-mkMKniSZ.js +34 -0
  33. package/dist/assets/Shell-BmnZn4UL.js +13 -0
  34. package/dist/assets/Skywriting-06dZPAfg.js +1 -0
  35. package/dist/assets/TerminalView-BrP-ENHg.css +1 -0
  36. package/dist/assets/TerminalView-wlhSixSH.js +17 -0
  37. package/dist/assets/ToyWorld-Cuu9aW-K.js +1 -0
  38. package/dist/assets/Ufo-iHaoe5t1.js +1 -0
  39. package/dist/assets/Whale-DZg88zIX.js +1 -0
  40. package/dist/assets/all-CYErCTCA.js +11 -0
  41. package/dist/assets/billboardLayout-DSKGXPIM.js +1 -0
  42. package/dist/assets/bloomMarks-DariC6lY.js +4231 -0
  43. package/dist/assets/cheerRules-CZGSrxOB.js +1 -0
  44. package/dist/assets/cityLayout-7ckfe3wf.js +1 -0
  45. package/dist/assets/director-CrzFgnoP.js +1 -0
  46. package/dist/assets/dogState-DiOvoobI.js +1 -0
  47. package/dist/assets/doors-BHKj8tkO.js +1 -0
  48. package/dist/assets/gallery-ColCPQQE.js +1 -0
  49. package/dist/assets/gate-BplJKcLG.js +2 -0
  50. package/dist/assets/index-B6qvKFYN.js +10 -0
  51. package/dist/assets/index-COpmc42S.css +1 -0
  52. package/dist/assets/instantReplay-DGiLgvkQ.js +1 -0
  53. package/dist/assets/interact-0qw7BGhL.js +1 -0
  54. package/dist/assets/jsx-runtime-BFUkm7bt.js +1 -0
  55. package/dist/assets/jukeboxSongs-CjbAzAeb.js +1 -0
  56. package/dist/assets/kit-C6ByUQ-Y.js +2 -0
  57. package/dist/assets/mic-B316hcCe.js +1 -0
  58. package/dist/assets/news-CrPol-gz.js +1 -0
  59. package/dist/assets/paint.worker-D95XJ3xX.js +1 -0
  60. package/dist/assets/photoMode-CYxQfgUF.js +1 -0
  61. package/dist/assets/pipeline-BOTOZ69L.js +1215 -0
  62. package/dist/assets/rapier-CXAOW8OC.js +1 -0
  63. package/dist/assets/rig-wAyl3G1G.js +1 -0
  64. package/dist/assets/speechLanguage-BtfdhZNI.js +1 -0
  65. package/dist/assets/store-FA83kfnc.js +5 -0
  66. package/dist/assets/useDayTime-0XsqM14Q.js +1 -0
  67. package/dist/assets/useGraphics-Cif18p7Q.js +1 -0
  68. package/dist/assets/voiceMessages-DtNmUazr.js +1 -0
  69. package/dist/assets/weatherState-ExG1doW-.js +1 -0
  70. package/dist/icons/Sora-OFL.txt +93 -0
  71. package/dist/icons/apple-touch-icon.png +0 -0
  72. package/dist/icons/badge-96.png +0 -0
  73. package/dist/icons/badge.svg +1 -0
  74. package/dist/icons/droid-antenna.svg +29 -0
  75. package/dist/icons/droid-eyes.svg +29 -0
  76. package/dist/icons/droid-shell.svg +29 -0
  77. package/dist/icons/droid-spark.svg +29 -0
  78. package/dist/icons/droid-wire.svg +29 -0
  79. package/dist/icons/favicon-16.png +0 -0
  80. package/dist/icons/favicon-32.png +0 -0
  81. package/dist/icons/favicon.svg +1 -0
  82. package/dist/icons/icon-192.png +0 -0
  83. package/dist/icons/icon-512.png +0 -0
  84. package/dist/icons/icon-maskable-512.png +0 -0
  85. package/dist/icons/icon.svg +29 -0
  86. package/dist/icons/logo-dark.svg +29 -0
  87. package/dist/icons/logo-light.svg +29 -0
  88. package/dist/icons/sora-400.ttf +0 -0
  89. package/dist/icons/sora-700.ttf +0 -0
  90. package/dist/index.html +26 -0
  91. package/dist/manifest.webmanifest +19 -0
  92. package/dist/third-party-licenses.json +1106 -0
  93. package/dist-server/browser-init.js +24 -0
  94. package/dist-server/index.js +20049 -0
  95. package/dist-server/index.js.map +7 -0
  96. package/dist-server/ptyHost.js +234 -0
  97. package/dist-server/ptyHost.js.map +7 -0
  98. package/package.json +98 -6
@@ -0,0 +1 @@
1
+ import{a as e,i as t,r as n,s as r,u as i}from"./jsx-runtime-BFUkm7bt.js";import{f as a}from"./bloomMarks-DariC6lY.js";var o=i(r(),1),s=[`cycle`,`clock`,`day`],c=`cycle`,l=18e5,u=.6,d=.25,f=.75,p=[[0,0],[2.75,.2],[4.75,.28],[23.75,.7],[25.75,.76],[27.25,.8],[30,1]],m=e=>e-Math.floor(e),h=e=>Math.min(1,Math.max(0,e)),g=(e,t,n)=>{let r=h((n-e)/(t-e));return r*r*(3-2*r)};function _(e){let t=e/6e4;for(let e=1;e<p.length;e++){let[n,r]=p[e];if(t<=n){let[i,a]=p[e-1];return a+(t-i)/(n-i)*(r-a)}}return 0}function v(e,t){if(t===`day`)return u;if(t===`clock`){let t=new Date(e);return m((t.getHours()*3600+t.getMinutes()*60+t.getSeconds()+t.getMilliseconds()/1e3)/86400)}return m(_((e%l+l)%l))}var y=.45;function b(e,t=[0,0,0]){let n=2*Math.PI*(e-d);return t[0]=Math.cos(n),t[1]=Math.sin(n)*Math.cos(y),t[2]=Math.sin(n)*Math.sin(y),t}function x(e){return g(.24,.3,Math.abs(m(e)-.5))}var S={zenith:857656,horizon:2503787,fog:1910864,sunColor:9414399,sunIntensity:.25,hemiSky:4872858,hemiGround:2761792,ambient:.22,exposure:.9,starsOpacity:1,cityLights:1},C={zenith:9226997,horizon:12575743,fog:15985890,sunColor:16777215,sunIntensity:1.55,hemiSky:16775920,hemiGround:10783338,ambient:.18,exposure:1,starsOpacity:0,cityLights:0},w=[[0,S],[.2,{...S,horizon:2898548}],[.235,{zenith:2372462,horizon:6976176,fog:5133712,sunColor:16751226,sunIntensity:.35,hemiSky:7305400,hemiGround:3813448,ambient:.2,exposure:.92,starsOpacity:.5,cityLights:.7}],[.27,{zenith:7311312,horizon:16757920,fog:15778996,sunColor:16757898,sunIntensity:.8,hemiSky:16769232,hemiGround:8021344,ambient:.18,exposure:.96,starsOpacity:0,cityLights:.15}],[.33,{zenith:8831216,horizon:13625087,fog:15789030,sunColor:16773600,sunIntensity:1.35,hemiSky:16774894,hemiGround:10258032,ambient:.18,exposure:1,starsOpacity:0,cityLights:0}],[.5,{zenith:8176375,horizon:12904191,fog:15920870,sunColor:16777215,sunIntensity:1.65,hemiSky:16776436,hemiGround:10783338,ambient:.18,exposure:1,starsOpacity:0,cityLights:0}],[u,C],[.71,{zenith:8366304,horizon:16763016,fog:16176816,sunColor:16760944,sunIntensity:1.35,hemiSky:16770752,hemiGround:10122328,ambient:.18,exposure:1.02,starsOpacity:0,cityLights:0}],[f,{zenith:6254520,horizon:16751210,fog:15902858,sunColor:16747088,sunIntensity:.9,hemiSky:16758944,hemiGround:7229536,ambient:.19,exposure:1,starsOpacity:0,cityLights:.25}],[.775,{zenith:2767488,horizon:8022712,fog:5921430,sunColor:11575551,sunIntensity:.35,hemiSky:8026816,hemiGround:3813456,ambient:.21,exposure:.94,starsOpacity:.35,cityLights:.8}],[.81,S],[1,S]],T=(e,t,n)=>e+(t-e)*n;function E(e,t,n){let r=r=>Math.round(T(e>>r&255,t>>r&255,n));return r(16)<<16|r(8)<<8|r(0)}var D=[`zenith`,`horizon`,`fog`,`sunColor`,`hemiSky`,`hemiGround`],O=[`sunIntensity`,`ambient`,`exposure`,`starsOpacity`,`cityLights`];function k(e,t={}){let n=m(e),r=1;for(;r<w.length-1&&w[r][0]<=n;)r++;let[i,a]=w[r-1],[o,s]=w[r],c=g(i,o,n);for(let e of D)t[e]=E(a[e],s[e],c);for(let e of O)t[e]=T(a[e],s[e],c);return t}function A(e){let t=new URLSearchParams(e).get(`daytime`);if(t===null||t.trim()===``)return null;let n=Number(t);return!Number.isFinite(n)||n<0||n>1?null:m(n)}function j(e){return s.includes(e)?e:c}var M=`cubefarm:daytime`,N=6e4;function P(){try{return j(localStorage.getItem(M))}catch{return c}}function F(){try{return A(window.location.search)}catch{return null}}var I={t:0,mode:P(),frozen:F()};function L(e=Date.now()){let t=n();return I.t=I.frozen??(t===null?v(e,I.mode):v(t,`clock`)),I.t}L();var R=e(()=>({t:I.t,mode:I.mode}));function z(){R.setState({t:L(),mode:I.mode})}typeof window<`u`&&setInterval(z,N);function B(){let{t:e,mode:t}=R();return{clock:I,t:e,mode:t}}function V(e){I.mode=e;try{localStorage.setItem(M,e)}catch{}z()}var H=0;function U(e){t(e);let n=performance.now();(e===null||n-H>=1e3)&&(H=n,z())}var W=new Set;function G(e){let t=(0,o.useRef)(e);t.current=e,a((e,n)=>t.current(e,n)),(0,o.useEffect)(()=>(W.add(t),()=>void W.delete(t)),[])}function K(e){L();for(let t of W)t.current(e,0)}function q(){return a(()=>{L()}),null}typeof window<`u`&&(window.__swarmSky={get t(){return L()},get mode(){return I.mode},set mode(e){s.includes(e)&&V(e)},set(e){Number.isFinite(e)&&(I.frozen=e-Math.floor(e),z())},freeze(e){I.frozen=e?L():null,z()}});export{V as a,G as c,k as d,b as f,L as i,l,I as n,U as o,K as r,B as s,q as t,x as u};
@@ -0,0 +1 @@
1
+ import{a as e}from"./jsx-runtime-BFUkm7bt.js";import{Jr as t}from"./store-FA83kfnc.js";var n=[`low`,`medium`,`high`,`auto`],r=`auto`,i=[`low`,`medium`,`high`];function a(e){let t=typeof e==`string`?e.trim().toLowerCase():e;return n.includes(t)?t:r}function o(e){let t=e!==`low`,n=e===`high`;return{bloom:t,screenGlow:t,ao:n,contactShadows:n,grading:n}}var s=e=>Object.entries(o(e)).filter(([,e])=>e).map(([e])=>e),c=e=>i.indexOf(e),l=(e,t)=>c(e)>=c(t),u={downFps:50,downAfterMs:3e3,upFps:57,upAfterMs:2e4,maxUpAfterMs:32e4,failWindowMs:2e4,settleMs:2500,startMs:8e3};function d(e=`high`,t=u){return{tier:e,settle:t.startMs,slowMs:0,fastMs:0,upAfterMs:t.upAfterMs,sinceUpMs:null}}function f(e,t=u){e.settle=t.settleMs,e.slowMs=0,e.fastMs=0}function p(e,t,n,r=u){if(!Number.isFinite(t)||!Number.isFinite(n)||n<=0)return null;if(e.sinceUpMs!==null&&(e.sinceUpMs+=n,e.sinceUpMs>r.failWindowMs&&(e.sinceUpMs=null,e.upAfterMs=r.upAfterMs)),e.settle>0)return e.settle-=n,null;t<r.downFps?(e.slowMs+=n,e.fastMs=0):t>=r.upFps?(e.fastMs+=n,e.slowMs=0):(e.slowMs=0,e.fastMs=0);let a=c(e.tier);if(e.slowMs>=r.downAfterMs&&a>0){let n=e.tier,o=e.sinceUpMs!==null;return o&&(e.upAfterMs=Math.min(r.maxUpAfterMs,e.upAfterMs*2)),e.tier=i[a-1],e.sinceUpMs=null,f(e,r),{from:n,to:e.tier,reason:`${Math.round(t)} fps for ${Math.round(r.downAfterMs/1e3)}s${o?`, so the next step up waits ${Math.round(e.upAfterMs/1e3)}s`:``}`}}if(e.fastMs>=e.upAfterMs&&a<i.length-1){let n=e.tier,o=e.fastMs;return e.tier=i[a+1],e.sinceUpMs=0,f(e,r),{from:n,to:e.tier,reason:`${Math.round(t)} fps with headroom for ${Math.round(o/1e3)}s`}}return null}var m=`cubefarm:graphics`;function h(){try{return a(localStorage.getItem(m))}catch{return r}}var g=d(`high`),_=[],v=null,y=null,b=h(),x=e(()=>({preset:b,tier:b===`auto`?g.tier:b,shown:`low`,blocked:null})),S=e=>e.blocked?`low`:e.tier;function C(e){let t=a(e);try{localStorage.setItem(m,t)}catch{}t===`auto`&&x.getState().preset!==`auto`&&Object.assign(g,d(`high`)),x.setState({preset:t,tier:t===`auto`?g.tier:t})}function w(e){e&&(_.push({at:Date.now(),...e}),t(`gfx`,`${e.from} → ${e.to}`),_.length>20&&_.shift(),x.setState({tier:g.tier}))}function T(e,t){v={fps:Math.round(e*10)/10,ms:Math.round(t)};let n=x.getState();if(!(n.preset!==`auto`||n.blocked)){if(n.shown!==S(n)&&S(n)!==`low`){f(g);return}w(p(g,e,t))}}function E(){f(g)}function D(e){f(g),x.getState().shown!==e&&(t(`gfx`,`${e} effects on screen`),x.setState({shown:e}))}function O(e,t){x.getState().blocked||(console.warn(`Graphics effects are switched off: ${e}.`,t??``),x.setState({blocked:e,shown:`low`}))}function k(e){y=e}function A(){let e=x.getState(),t=S(e);return e.blocked?`${t} (effects off)`:e.preset===`auto`?`auto: ${t}`:t}typeof window<`u`&&(window.__swarmGfx={get preset(){return x.getState().preset},set preset(e){n.includes(e)&&C(e)},get tier(){return S(x.getState())},get shown(){return x.getState().shown},get effects(){return s(S(x.getState()))},get blocked(){return x.getState().blocked},get decisions(){return _.map(e=>({...e}))},get governor(){return{...g}},get fps(){return v},get pipeline(){return y},simulate(e,t){for(let n=0;n<t*1e3;n+=500)T(e,500);return S(x.getState())}});export{D as a,k as c,l as d,E as i,x as l,O as n,T as o,A as r,C as s,S as t,n as u};
@@ -0,0 +1 @@
1
+ import{Ci as e,Di as t,Mi as n,Ni as r,Zi as i,_i as a,aa as o,ms as s,p as c,vi as l,xi as u,yi as d,ys as f}from"./store-FA83kfnc.js";import{_ as p,g as m,h,m as g}from"./index-B6qvKFYN.js";import{c as _,m as v}from"./mic-B316hcCe.js";import{t as y}from"./speechLanguage-BtfdhZNI.js";var b=[];window.__swarmVoice=b;function x(e,t,n){setTimeout(()=>{a(e.id)&&(S=l(S,{message:e,arrived:t}),E&&C?.(),j())},Math.max(0,t+n-Date.now()))}var S=[],C=null,w=!1,T=null,E=!1,D=!1;function O(e,t){T={message:e,kind:t},D=!0,C?.(),j()}function k(){D=!0,C?.()}var A=()=>{let e=n();return e.muted?0:o(e.volume)*o(e.voice)};async function j(){if(!w){w=!0;try{for(;;){if(T){let e=T;T=null,E=!0,await N(e.message,e.kind).finally(()=>E=!1);continue}let{next:e,rest:t}=d(S,Date.now());if(S=t,!e)break;await N(e.message)}}finally{w=!1,E=!1}}}var M=!1;async function N(n,r){let{settings:i,voiceKeySet:a}=c.getState(),{voiceName:o}=i.voice,s=r?r===`clip`?`elevenlabs`:`browser`:i.voice.provider;if(s===`off`)return;let l={rec:null};D=!1;let u=f(n.text),d=(e,i=1)=>{m(n.id,u,e,i),l.rec={id:n.id,provider:s,start:performance.now(),end:null,volume:A(),...r?{replay:!0}:{}},b.push(l.rec),b.length>50&&b.splice(0,b.length-50),c.setState({voiceSpeaking:n.id}),t(!0),l.unduckMusic=v()};try{if(s===`browser`)await I(u,o,()=>d(null),e=>p(n.id,e));else if(r)await P(n.id,d,!0);else if(a)await P(n.id,d);else throw Error(`no ElevenLabs key is saved`)}catch(t){if(r){l.rec||c.getState().pushToast(`info`,r===`clip`?`🔇 Audio no longer saved`:`🔇 The browser couldn't speak this message`);return}l.rec||e(),M||(M=!0,console.warn(`[voice] couldn't read message ${n.id} aloud: ${t.message}`))}finally{C=null,l.rec&&(h(n.id),l.rec.end=performance.now(),t(!1),l.unduckMusic?.(),c.setState({voiceSpeaking:null}),!r&&!D&&n.from===`ceo`&&!S.length&&!T&&_())}}async function P(e,t,n=!1){let i=!1,a=null;C=()=>{i=!0,a?.()};for(let o=0,s=1;o<s;o++){let c=await fetch(n?`/api/voice/messages/${e}?cached=1&part=${o}`:`/api/voice/messages/${e}`);if(!c.ok)throw Error(`HTTP ${c.status}`);s=Math.max(1,Number(c.headers.get(`X-Voice-Parts`))||1);let l=await c.arrayBuffer();if(i)return;let d=u(),f=r(`voice`);if(!d||!f)throw Error(`audio is unavailable`);let p=await d.ctx.decodeAudioData(l);if(i)return;let m=d.ctx.createBufferSource();if(m.buffer=p,m.connect(f),await new Promise(n=>{let r=setTimeout(()=>n(),(p.duration+2)*1e3);m.onended=()=>{clearTimeout(r),n()},a=()=>{clearTimeout(r);try{m.stop()}catch{}n()},m.start(),o===0?t(p.duration*1e3,s):g(e,o,s,p.duration*1e3)}),a=null,m.disconnect(),i)return}}async function F(e){return e.getVoices().length||await new Promise(t=>{let n=setTimeout(t,1e3);e.addEventListener(`voiceschanged`,()=>(clearTimeout(n),t()),{once:!0})}),e.getVoices()}async function I(e,t,r,a){let o=window.speechSynthesis;if(!o||typeof SpeechSynthesisUtterance>`u`)throw Error(`this browser can't speak`);if(!e)return;let l=new SpeechSynthesisUtterance(e),u=c.getState().settings.language;l.lang=s(u);let d=y(await F(o),t,u);d&&(l.voice=d,l.lang=d.lang),l.volume=A(),await new Promise((t,s)=>{let c=i(()=>n().muted&&p()),u=setTimeout(()=>p(),2e4+e.length*150),d=!1,f=e=>{d||(d=!0,clearTimeout(u),c(),e?s(Error(e)):t())},p=()=>{f(),o.cancel()};C=p,l.onstart=r,l.onboundary=e=>e.name!==`sentence`&&a(e.charIndex),l.onend=()=>f(),l.onerror=e=>f(e.error===`interrupted`||e.error===`canceled`?void 0:`speech failed: ${e.error}`),o.speak(l)})}export{O as replayMessage,x as speakMessage,k as stopSpeaking};
@@ -0,0 +1 @@
1
+ import{a as e}from"./jsx-runtime-BFUkm7bt.js";import{Fi as t,Ni as n,Uo as r,Vi as i,co as a,oo as o,os as s,p as c,ss as l,va as u,vo as d}from"./store-FA83kfnc.js";import{f}from"./bloomMarks-DariC6lY.js";import{n as p}from"./doors-BHKj8tkO.js";import{u as m}from"./useDayTime-0XsqM14Q.js";var h=e=>Math.min(1,Math.max(0,e)),g=(e,t,n)=>{let r=h((n-e)/(t-e));return r*r*(3-2*r)},_=(e,t,n)=>e+(t-e)*n,v=.03,y=.3,b=.4,x=14e3,S=.08,C=1.6,w=16+d;function ee(e,t,n,i){if(e===`roof`)return n>12?{level:y,clarity:b,from:{x:0,z:12}}:{level:1,clarity:1,from:null};let s=v,c=0,l=null,f=0;for(let p of o){let o=r(p),m=n>=u.minZ&&n<=u.maxZ?g(16,w+.6,o*t):0,_=o*(16+d/2),v=a[e][p].door,x=h(1-Math.hypot(Math.max(0,o*(_-t)),n-v)/8)**2,S=h(i[p])*x;s=Math.max(s,m,y*S),c=Math.max(c,m,b*S);let C=Math.max(m,S);C>f&&(f=C,l=m<1?{x:_,z:v}:null)}return{level:s,clarity:c,from:l}}var T=e=>320*(x/320)**h(e);function te(e,t=`office`){let n=m(e),r=e-Math.floor(e),i=1-g(.015,.06,Math.abs(r-.765)),a=1-g(.01,.05,Math.abs(r-.27));return{wind:_(1,.8,n)*(t===`roof`?C:1),city:h(_(.75,.45,n)+.25*i),birds:h((1-n)*(1-.6*i)+.3*a),crickets:g(.35,1,n),cityHz:_(240,120,n),carsPerMin:_(2.5,.6,n)+1.5*i}}var E={bird:2.5,car:8,cricket:1.2};function ne(e,t){return e<.05?1/0:E.bird+(1.5+8*h(t))/e}function re(e,t){return e<=0?1/0:Math.max(E.car,-Math.log(1-Math.min(h(t),.999))*60/e)}function ie(e,t){return e<.05?1/0:E.cricket+(.5+4*h(t))/e}function ae(e,t){return e+(Number.isFinite(t)?t:5)}var oe=1.6;function se(e){let t=[],n=.85+e()*.35,r=Math.floor(e()*4);if(r===0){let r=2+Math.floor(e()*3),i=.12+e()*.08;for(let a=0;a<r;a++)t.push({at:a*i,dur:.06+e()*.03,from:2600*n,to:3900*n,peak:.8+e()*.2})}else if(r===1)t.push({at:0,dur:.18,from:3100*n,to:3500*n,peak:.8}),t.push({at:.24+e()*.06,dur:.3,from:3400*n,to:2300*n,peak:1});else if(r===2){let r=6+Math.floor(e()*6);for(let e=0;e<r;e++){let i=(4200+e%2*300)*n;t.push({at:e*.06,dur:.035,from:i,to:i*.92,peak:.55+.45*(1-e/r)})}}else{let r=3+Math.floor(e()*3);for(let i=0,a=0;i<r;i++){let r=(2800+e()*1600)*n,i=.07+e()*.06;t.push({at:a,dur:i,from:r,to:r*(.85+e()*.35),peak:.7+e()*.3}),a+=i+.03+e()*.06}}return t}function ce(e){let t=[],n=.45+e()*.3,r=3+Math.floor(e()*2),i=Math.floor((2.5+e()*3)/n);for(let a=0;a<i;a++){let i=.6+e()*.4;for(let e=0;e<r;e++)t.push({at:a*n+e*.04,dur:.022,from:0,to:0,peak:i})}return t.filter(e=>e.at+e.dur<=6)}var D=e=>Math.min(1,Math.max(0,e)),O={level:.32,clarity:.42},le={level:.6,clarity:.2};function k(e){return{level:Math.max(e.level,O.level),cutoff:T(Math.max(e.clarity,O.clarity))}}function A(e){return{level:Math.max(e.level,le.level),cutoff:T(Math.max(e.clarity,le.clarity))}}function j(e){return{rain:D(e.rain),patter:D(e.rain*1.6)*(1-.35*D(e.rain)),gust:D(e.wind*(.4+.6*e.storm)*e.cloud*1.2),hush:D(e.snow)}}function M(e,t,n,r){e.fill(0);let i=Math.round(e.length/t*n);for(let n=0;n<i;n++){let n=Math.floor(r()*e.length),i=t*(.002+r()*.006),a=.25+r()*.75,o=Math.min(Math.floor(i*5),e.length),s=0;for(let t=0;t<o;t++){let o=r()*2-1;s=s*.35+o*.65,e[(n+t)%e.length]+=s*a*Math.exp(-t/i)}}let a=0;for(let t=0;t<e.length;t++)a=Math.max(a,Math.abs(e[t]));if(a>1)for(let t=0;t<e.length;t++)e[t]/=a;return e}var ue=100,N={rain:.05,patter:.035,gust:.06,hush:.012,thunder:.32},de=1.5,P=null,F=null,fe=`office`,I=null,L=!1,R=0,z={level:0,clarity:0,from:null},B=!1,V={rain:-1,patter:-1,rainLevel:-1,rainCut:-1,gust:-1,hush:-1,airLevel:-1,airCut:-1,thunderLevel:-1,thunderCut:-1},pe={west:0,east:0};function me(e,t){fe=e,I=t,F||=setInterval(H,ue),H()}function he(){if(F&&clearInterval(F),F=null,I=null,P)for(let e of[P.rainLevel,P.airLevel])be(e.gain,0,.3);for(let e of Object.keys(V))V[e]=-1;B&&i(`weather:rain`,{group:`outside`,peak:0,played:!1}),B=!1,setTimeout(()=>{!F&&P&&W(P,!1)},1500)}function ge(e){e!==L&&(L=e,F&&H())}function _e(e,t,r){let a=L||typeof document<`u`&&document.hidden||!F,o=A(z),s=a?null:n(`outside`),c=s?ve(s):null;if(i(`weather:thunder`,{group:`outside`,peak:N.thunder*t*o.level,pan:r*.4,played:!!c}),c)try{W(c,!0),R=0;let n=c.ctx,i=n.currentTime+Math.max(0,e),a=n.createBufferSource();a.buffer=c.noise,a.loop=!0;let o=n.createBiquadFilter();o.type=`lowpass`,o.Q.value=.8;let s=n.createGain(),l=typeof n.createStereoPanner==`function`?n.createStereoPanner():null,u=4+3*(1-t)+Math.random()*2;o.frequency.setValueAtTime(t>.6?2600:900,i),o.frequency.exponentialRampToValueAtTime(320,i+.35),o.frequency.exponentialRampToValueAtTime(110,i+u);let d=N.thunder*t;s.gain.setValueAtTime(1e-4,i),s.gain.exponentialRampToValueAtTime(d*(t>.6?1:.55),i+(t>.6?.03:.25));let f=i+.4;for(let e=0;e<4;e++)f+=.3+u/5*Math.random(),s.gain.exponentialRampToValueAtTime(d*(.25+Math.random()*.5)*(1-e*.18),Math.min(f,i+u-.3));s.gain.exponentialRampToValueAtTime(1e-4,i+u),l&&l.pan.setValueAtTime(r*.4,i),a.connect(o).connect(s),(l?s.connect(l):s).connect(c.thunderMuffle),a.start(i,Math.random()),a.stop(i+u+.1)}catch{}}function H(){let e=t();for(let e of o)pe[e]=p(e);z=ee(fe,e.x,e.z,pe);let r=L||document.hidden||!I,a=I?.(),s=a?j(a):{rain:0,patter:0,gust:0,hush:0},c=!r&&(s.rain>.005||s.gust>.005||s.hush>.005),l=c||(P?.hooked??!1)?n(`outside`):null,u=l?ve(l):null;if(u){R=c?0:R+ue/1e3,W(u,R<de);let e=k(z),t=A(z);U(u.rain.gain,`rain`,N.rain*s.rain,1.5),U(u.patter.gain,`patter`,N.patter*s.patter,1.5),U(u.rainLevel.gain,`rainLevel`,r?0:e.level,.35),U(u.rainMuffle.frequency,`rainCut`,e.cutoff,.3,!0),U(u.gust.gain,`gust`,N.gust*s.gust,2),u.gustDepth.gain.value=N.gust*s.gust*.6,U(u.hush.gain,`hush`,N.hush*s.hush,2),U(u.airLevel.gain,`airLevel`,r?0:z.level,.35),U(u.airMuffle.frequency,`airCut`,e.cutoff*.5+200,.3,!0),U(u.thunderLevel.gain,`thunderLevel`,r?0:t.level,.35),U(u.thunderMuffle.frequency,`thunderCut`,t.cutoff,.3,!0)}let d=c&&s.rain>.05&&!!u;d!==B&&(B=d,i(`weather:rain`,{group:`outside`,peak:N.rain*s.rain*k(z).level,played:B}))}function U(e,t,n,r,i=!1){let a=V[t];a>=0&&(i?Math.abs(n/Math.max(a,1e-6)-1)<.03:Math.abs(n-a)<5e-4)||(V[t]=n,be(e,n,r))}function ve(e){if(P?.ctx===e.context&&P.out===e)return P;try{P=ye(e.context,e);for(let e of Object.keys(V))V[e]=-1;return P}catch{return null}}function ye(e,t){let n=0,r=e=>(n++,e),i=t=>{let n=r(e.createGain());return n.gain.value=t,n},a=(t,n,i)=>{let a=r(e.createBiquadFilter());return a.type=t,a.frequency.value=n,a.Q.value=i,a},o=(t,n)=>{let i=r(e.createBufferSource());return i.buffer=t,i.loop=!0,i.start(0,n),i},s=t=>{let n=r(e.createOscillator());return n.frequency.value=t,n.start(),n},c=e.createBuffer(1,e.sampleRate*2,e.sampleRate),l=c.getChannelData(0);for(let e=0;e<l.length;e++)l[e]=Math.random()*2-1;let u=e.createBuffer(1,e.sampleRate*3,e.sampleRate);M(u.getChannelData(0),e.sampleRate,38,Math.random);let d=i(1),f=a(`lowpass`,2e3,.5),p=i(0);f.connect(p).connect(d);let m=i(0);o(c,.3).connect(a(`highpass`,450,.5)).connect(a(`lowpass`,6500,.4)).connect(m).connect(f);let h=i(0);o(u,0).connect(a(`bandpass`,3200,.6)).connect(h).connect(f);let g=a(`lowpass`,1200,.5),_=i(0);g.connect(_).connect(d);let v=a(`bandpass`,520,1.4),y=i(0);o(c,1.1).connect(v).connect(y).connect(g);let b=i(0);s(.13).connect(b).connect(y.gain);let x=i(240);s(.07).connect(x).connect(v.frequency);let S=i(0);o(c,.7).connect(a(`bandpass`,2600,.35)).connect(S).connect(g);let C=a(`lowpass`,900,.5),w=i(0);return C.connect(w).connect(d),{ctx:e,out:t,hooked:!1,tail:d,rain:m,patter:h,rainMuffle:f,rainLevel:p,gust:y,gustDepth:b,hush:S,airMuffle:g,airLevel:_,thunderMuffle:C,thunderLevel:w,noise:c,nodes:n}}function W(e,t){if(t!==e.hooked)try{t?e.tail.connect(e.out):e.tail.disconnect(),e.hooked=t}catch{}}function be(e,t,n){try{let r=P?.ctx.currentTime??0;e.cancelScheduledValues(r),e.setTargetAtTime(t,r,n)}catch{}}typeof window<`u`&&!Object.getOwnPropertyDescriptor(window,`__swarmWeatherSfx`)&&Object.defineProperty(window,"__swarmWeatherSfx",{get:()=>{let e=I?.();return{running:F!==null,quiet:L||document.hidden,layers:e?j(e):null,rain:k(z),thunder:A(z),nodes:P?.nodes??0,hooked:P?.hooked??!1}},enumerable:!1,configurable:!1});var G=[`cloud`,`rain`,`snow`,`fog`,`storm`,`wind`],K=()=>({cloud:0,rain:0,snow:0,fog:0,storm:0,wind:0}),xe={clear:K(),cloudy:{cloud:.7,rain:0,snow:0,fog:.05,storm:0,wind:.35},"light-rain":{cloud:.8,rain:.35,snow:0,fog:.15,storm:0,wind:.35},"heavy-rain":{cloud:.95,rain:1,snow:0,fog:.3,storm:0,wind:.6},storm:{cloud:1,rain:.9,snow:0,fog:.25,storm:1,wind:1},fog:{cloud:.45,rain:0,snow:0,fog:1,storm:0,wind:.05},snow:{cloud:.85,rain:0,snow:1,fog:.35,storm:0,wind:.25}},q=e=>Math.min(1,Math.max(0,e)),J=(e,t,n)=>e+(t-e)*n,Se=(e,t,n)=>{let r=q((n-e)/(t-e));return r*r*(3-2*r)};function Ce(e,t=1,n=0,r=K()){let i=xe[e],a=.35+.65*q(t);return r.cloud=i.cloud*(.75+.25*a),r.fog=i.fog*(e===`fog`?.6+.4*a:1),r.rain=i.rain*a,r.snow=i.snow*a,r.storm=i.storm*a,r.wind=Math.max(i.wind,q(n)),r}function we(e,t,n,r=20){let i=n/r,a=!1;for(let n of G){let r=t[n]-e[n];r!==0&&(e[n]=Math.abs(r)<=i?t[n]:e[n]+Math.sign(r)*i,a=!0)}return a}var Te=e=>G.every(t=>e[t]<.002),Ee=e=>q(e.cloud*.55+e.rain*.25+e.storm*.35+e.snow*.15+e.fog*.2),De=e=>q(e.cloud*.9+e.storm*.1+e.fog*.4),Oe={clear:[[`clear`,5],[`cloudy`,3],[`fog`,.5]],cloudy:[[`clear`,4],[`cloudy`,1.5],[`light-rain`,2],[`fog`,.5],[`snow`,1]],"light-rain":[[`cloudy`,3],[`light-rain`,1],[`heavy-rain`,1.2]],"heavy-rain":[[`light-rain`,3],[`storm`,1.3],[`cloudy`,.7]],storm:[[`heavy-rain`,2],[`light-rain`,2]],fog:[[`clear`,2],[`cloudy`,3]],snow:[[`cloudy`,3],[`snow`,1.5]]},ke={clear:[15,40],cloudy:[10,25],"light-rain":[6,15],"heavy-rain":[4,10],storm:[3,7],fog:[8,18],snow:[10,25]},Ae=e=>e===11||e===0||e===1;function je(e){let t=e>>>0;return()=>{t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function Me(e,t){let n=t*e.reduce((e,[,t])=>e+t,0);for(let[t,r]of e)if(n-=r,n<0)return t;return e[e.length-1][0]}function Ne(e,t,n,r,i=864e5){let a=je(e*1e4+(t+1)*100+n),o=[],s=a()<.7?`clear`:`cloudy`,c=r;for(;c<r+i;){let[e,n]=ke[s],r=e+a()*(n-e),i=s===`clear`||s===`cloudy`?1:.45+a()*.55;o.push({kind:s,intensity:i,from:c,until:c+r*6e4}),c+=r*6e4,s=Me(Oe[s].filter(([e])=>e!==`snow`||Ae(t)),a())}return o}function Pe(e){let t=new Date(e),n=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),r=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1).getTime(),i=Ne(t.getFullYear(),t.getMonth(),t.getDate(),n,r-n);return i.find(t=>e<t.until)??i[i.length-1]}var Fe={rain:`heavy-rain`,rainy:`heavy-rain`,heavy:`heavy-rain`,drizzle:`light-rain`,light:`light-rain`,showers:`light-rain`,cloud:`cloudy`,clouds:`cloudy`,overcast:`cloudy`,thunder:`storm`,thunderstorm:`storm`,lightning:`storm`,foggy:`fog`,mist:`fog`,snowy:`snow`,sun:`clear`,sunny:`clear`};function Ie(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase().replace(/_/g,`-`);return s.includes(t)?t:Fe[t]??null}var Le=e=>Ie(new URLSearchParams(e).get(`weather`)),Re=e=>((e>>16&255)*.299+(e>>8&255)*.587+(e&255)*.114)/255;function Y(e,t,n){let r=Re(e),i=(i,a)=>{let o=(e>>i&255)/255;return Math.round(q(J(o,r*a,t)*n)*255)};return i(16,.96)<<16|i(8,.99)<<8|i(0,1.05)}function ze(e,t,n){let r=r=>Math.round(J(e>>r&255,t>>r&255,n));return r(16)<<16|r(8)<<8|r(0)}function Be(e,t){let n=q(t.cloud*.8+t.rain*.15+t.storm*.2),r=1-.18*t.cloud-.12*t.rain-.25*t.storm;return e.zenith=Y(e.zenith,n*.85,r*(1-.1*t.cloud)),e.horizon=Y(e.horizon,n*.8,r),e.fog=Y(e.fog,Math.max(n,t.fog)*.85,r*(1+.04*t.fog)),e.horizon=ze(e.horizon,e.fog,t.fog*.85),e.zenith=ze(e.zenith,e.fog,t.fog*.55),e.sunColor=Y(e.sunColor,n*.6,1),e.sunIntensity*=Math.max(.05,1-.85*n-.15*t.fog),e.hemiSky=Y(e.hemiSky,n*.6,1-.12*n),e.hemiGround=Y(e.hemiGround,n*.4,1-.1*n),e.starsOpacity*=1-De(t),e.exposure*=1-.06*n,e.cityLights=Math.max(e.cityLights,.45*Ee(t)*(1-e.cityLights)),e}function Ve(e,t=[0,0]){let n=q(e.fog+e.rain*.35+e.snow*.4+e.storm*.2);return t[0]=J(40,6,n),t[1]=J(500,120,n),t}function He(e,t){return e.birds*=(1-Se(.03,.3,t.rain+t.storm))*(1-.8*t.snow)*(1-.6*t.fog),e.crickets*=1-Se(.05,.4,t.rain+t.snow+t.storm),e.wind*=1+1.6*t.wind*t.cloud,e.city*=1-.6*t.snow-.25*t.fog,e.carsPerMin*=1-.5*t.snow,e}function Ue(e,t,n){return t>.05?Math.min(1,e+n*t*.03):Math.max(0,e-n/240)}function We(e,t,n,r){return t>.05?Math.min(1,e+r*t*.012):Math.max(0,e-r*(1+n*4)/300)}function Ge(e,t){return e<.3?1/0:4+(6+16*q(t))/e}function Ke(e){if(e<0||e>.9)return 0;let t=(t,n,r)=>r*Math.max(0,1-Math.abs(e-t)/n);return q((e<.03?e/.03:Math.exp(-(e-.03)*14))+t(.18,.07,.75)+t(.42,.09,.45))}var qe=e=>1+3*q(e);function Je(){try{return Le(window.location.search)}catch{return null}}var X={mix:K(),target:K(),kind:`clear`,intensity:0,source:`cycle`,active:!1,version:0,clock:0,flash:0,flashAt:-10,nextFlash:1/0,boltSide:1,boltSeed:0,flashHold:null,wet:0,snow:0,url:Je(),probe:null,event:null,spell:null},Z=e(()=>({active:!1,kind:`clear`,source:`cycle`})),Ye=()=>Z();function Xe(e){X.event=e}var Q={kind:`clear`,intensity:0,wind:0,source:`cycle`};function $(e,t,n,r){return Q.kind=e,Q.intensity=t,Q.wind=n,Q.source=r,Q}function Ze(e){if(X.probe)return $(X.probe,1,0,`probe`);if(X.event)return $(X.event.kind,1,X.event.wind,`event`);if(X.url)return $(X.url,1,0,`url`);let t=c.getState(),n=t.settings.weather?.mode??`cycle`;if(n===`off`)return $(`clear`,0,0,`off`);if(n===`real`){let n=l(t.weather,e);if(n)return $(n.kind,n.intensity,Math.min(1,n.wind/60),`real`)}return(!X.spell||e>=X.spell.until||e<X.spell.from)&&(X.spell=Pe(e)),$(X.spell.kind,X.spell.intensity,0,`cycle`)}function Qe(){let e=Z.getState();(e.active!==X.active||e.kind!==X.kind||e.source!==X.source)&&Z.setState({active:X.active,kind:X.kind,source:X.source})}function $e(e,t=Date.now()){let n=Ze(t);X.kind=n.kind,X.intensity=n.intensity,X.source=n.source,Ce(n.kind,n.intensity,n.wind,X.target),X.clock+=e;let r=we(X.mix,X.target,e),i=X.mix;i.storm>=.3?(Number.isFinite(X.nextFlash)||(X.nextFlash=X.clock+Ge(i.storm,Math.random())*.5),X.clock>=X.nextFlash&&et()):X.nextFlash=1/0;let a=X.flashHold??Ke(X.clock-X.flashAt);a!==X.flash&&(X.flash=a,r=!0);let o=Ue(X.wet,i.rain,e),s=We(X.snow,i.snow,i.rain,e);(Math.abs(o-X.wet)>1e-5||Math.abs(s-X.snow)>1e-5)&&(r=!0),X.wet=o,X.snow=s,r&&X.version++,X.active=!Te(i)||X.wet>.002||X.snow>.002||a>0||!Te(X.target),Qe()}function et(e=null){X.flashHold=e,X.flashAt=X.clock,X.boltSide=Math.random()<.5?-1:1,X.boltSeed=Math.random(),X.nextFlash=X.clock+Ge(Math.max(.3,X.mix.storm),Math.random());let t=Math.random();_e(qe(t),1-.5*t,X.boltSide)}function tt(){return f((e,t)=>$e(Math.min(t,.1))),null}if(typeof window<`u`&&!Object.getOwnPropertyDescriptor(window,`__swarmWeather`)){let e=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Math.round(t*1e3)/1e3]));Object.defineProperty(window,"__swarmWeather",{value:{get state(){return X.kind},get source(){return X.source},get intensity(){return X.intensity},get mix(){return e(X.mix)},get target(){return e(X.target)},get active(){return X.active},get wet(){return Math.round(X.wet*1e3)/1e3},get snow(){return Math.round(X.snow*1e3)/1e3},get flash(){return X.flash},get nextFlashIn(){return Number.isFinite(X.nextFlash)?Math.max(0,X.nextFlash-X.clock):null},get real(){return c.getState().weather},set(e){if(e===null)return X.probe=null,X.url=null,!0;let t=Ie(e);return t?(X.probe=t,!0):!1},strike:e=>et(typeof e==`number`?Math.min(1,Math.max(0,e)):null),skip(){$e(0),Object.assign(X.mix,X.target),X.wet=+(X.mix.rain>.3),X.snow=+(X.mix.snow>.3),X.version++}},enumerable:!1,configurable:!1})}export{ae as C,ie as S,te as T,se as _,De as a,ne as b,je as c,ge as d,me as f,S as g,oe as h,X as i,He as l,M as m,Xe as n,Ee as o,he as p,Ye as r,Ve as s,tt as t,Be as u,ce as v,ee as w,re as x,T as y};
@@ -0,0 +1,93 @@
1
+ Copyright 2019 The Sora Project Authors (https://github.com/sora-xor/sora-font)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+
5
+ This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 32 34"><path fill="white" fill-rule="evenodd" d="M18 1a3 3 0 1 1 0 6l-1 3 10 5v14l-12 5-12-6V14l11-5 2-4a3 3 0 0 1 2-4ZM18 21v4l3-1v-4Zm5-3v4l2-1v-4Z"/></svg>
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="152" height="170" viewBox="0 0 152 170"><defs>
2
+ <linearGradient id="top" x1="20%" y1="0%" x2="70%" y2="100%"><stop stop-color="#ffffff"/><stop offset=".48" stop-color="#f4f5ef"/><stop offset="1" stop-color="#a7c5ce"/></linearGradient>
3
+ <linearGradient id="side" x1="0%" y1="15%" x2="100%" y2="85%"><stop stop-color="#f8eddd"/><stop offset=".45" stop-color="#deccb7"/><stop offset="1" stop-color="#a78d78"/></linearGradient>
4
+ <linearGradient id="face" x1="0%" y1="0%" x2="85%" y2="100%"><stop stop-color="#365362"/><stop offset=".4" stop-color="#102534"/><stop offset="1" stop-color="#060e18"/></linearGradient>
5
+ <linearGradient id="rim" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#a1eff6"/><stop offset=".45" stop-color="#38cce7"/><stop offset="1" stop-color="#087d9f"/></linearGradient>
6
+ <linearGradient id="reflection" x1="0%" y1="0%" x2="70%" y2="100%"><stop stop-color="#d2f4ff" stop-opacity=".28"/><stop offset="1" stop-color="#d2f4ff" stop-opacity="0"/></linearGradient>
7
+ <radialGradient id="orb" cx="30%" cy="25%" r="80%"><stop stop-color="#ffd58b"/><stop offset=".35" stop-color="#ff9b21"/><stop offset=".75" stop-color="#f77908"/><stop offset="1" stop-color="#a84606"/></radialGradient>
8
+ <filter id="glow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="2"/></filter>
9
+ <g id="wire" fill="none" stroke="#7b8e9d" stroke-width="2.5" stroke-linejoin="round"><path d="M18 62 76 35 134 62 134 128 76 156 18 128Z M18 62 76 91 134 62 M76 91V156"/></g>
10
+ <g id="shell" stroke-linejoin="round">
11
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="url(#side)"/>
12
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q133 61 131 65L82 89Q76 92 70 89L21 65Q19 62 24 59Z" fill="url(#top)"/>
13
+ <path d="M76 92Q79 92 84 89L132 66Q134 65 134 70V122Q134 128 128 131L82 153Q76 156 76 151Z" fill="url(#face)"/>
14
+ <path d="M25 67 69 89Q73 91 73 97V144" fill="none" stroke="#fff8ea" stroke-opacity=".4" stroke-width="2" stroke-linecap="round"/>
15
+ <path d="M82 96 127 74V91Q106 94 82 123Z" fill="url(#reflection)"/>
16
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="none" stroke="url(#rim)" stroke-width="3.5"/>
17
+ <path d="m23 64 47 24Q76 91 82 88L130 64M76 92V151" fill="none" stroke="#62d6e6" stroke-opacity=".85" stroke-width="2"/>
18
+ <path d="m27 59 44-21Q76 36 81 38l42 20" fill="none" stroke="#fff" stroke-opacity=".8" stroke-width="1.6" stroke-linecap="round"/>
19
+ <g transform="matrix(1 .49 0 1 44 105)">
20
+ <path d="M-14 0H14" stroke="#142332" stroke-width="3.5" stroke-linecap="round"/>
21
+ <circle r="7" fill="#142332"/>
22
+ <path d="M-4-3Q-1-6 3-3" fill="none" stroke="#55707b" stroke-width="1.5" stroke-linecap="round"/>
23
+ </g>
24
+ </g>
25
+ <g id="eyes" fill="#56dcff"><g filter="url(#glow)"><ellipse cx="94" cy="116" rx="6" ry="10" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="6" ry="10" transform="rotate(18 120 103)"/></g><g fill="#bdf6ff"><ellipse cx="94" cy="116" rx="4" ry="8" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="4" ry="8" transform="rotate(18 120 103)"/></g></g>
26
+ <g id="antenna"><ellipse cx="82" cy="55" rx="11" ry="4" fill="#173344" opacity=".16"/><ellipse cx="79" cy="53" rx="7" ry="4" fill="#132b3a"/><ellipse cx="78" cy="51" rx="5" ry="2.5" fill="#426978"/><path d="m79 50 13-32" stroke="#9d4507" stroke-width="6" stroke-linecap="round"/><path d="m79 49 12-31" stroke="#ffad37" stroke-width="3.5" stroke-linecap="round"/><path d="m78 47 10-25" stroke="#ffe0a0" stroke-width="1" stroke-linecap="round"/><circle cx="94" cy="14" r="10" fill="url(#orb)"/><ellipse cx="91" cy="10" rx="3" ry="2" fill="#fff4d7"/></g>
27
+ <path id="spark" d="m111 4 3 9 9 3-9 3-3 9-3-9-9-3 9-3Z" fill="#ffd16a"/>
28
+ <symbol id="robot" viewBox="0 0 152 170"><use href="#shell"/><use href="#eyes"/><use href="#antenna"/></symbol>
29
+ </defs><use href="#antenna"/></svg>
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="152" height="170" viewBox="0 0 152 170"><defs>
2
+ <linearGradient id="top" x1="20%" y1="0%" x2="70%" y2="100%"><stop stop-color="#ffffff"/><stop offset=".48" stop-color="#f4f5ef"/><stop offset="1" stop-color="#a7c5ce"/></linearGradient>
3
+ <linearGradient id="side" x1="0%" y1="15%" x2="100%" y2="85%"><stop stop-color="#f8eddd"/><stop offset=".45" stop-color="#deccb7"/><stop offset="1" stop-color="#a78d78"/></linearGradient>
4
+ <linearGradient id="face" x1="0%" y1="0%" x2="85%" y2="100%"><stop stop-color="#365362"/><stop offset=".4" stop-color="#102534"/><stop offset="1" stop-color="#060e18"/></linearGradient>
5
+ <linearGradient id="rim" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#a1eff6"/><stop offset=".45" stop-color="#38cce7"/><stop offset="1" stop-color="#087d9f"/></linearGradient>
6
+ <linearGradient id="reflection" x1="0%" y1="0%" x2="70%" y2="100%"><stop stop-color="#d2f4ff" stop-opacity=".28"/><stop offset="1" stop-color="#d2f4ff" stop-opacity="0"/></linearGradient>
7
+ <radialGradient id="orb" cx="30%" cy="25%" r="80%"><stop stop-color="#ffd58b"/><stop offset=".35" stop-color="#ff9b21"/><stop offset=".75" stop-color="#f77908"/><stop offset="1" stop-color="#a84606"/></radialGradient>
8
+ <filter id="glow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="2"/></filter>
9
+ <g id="wire" fill="none" stroke="#7b8e9d" stroke-width="2.5" stroke-linejoin="round"><path d="M18 62 76 35 134 62 134 128 76 156 18 128Z M18 62 76 91 134 62 M76 91V156"/></g>
10
+ <g id="shell" stroke-linejoin="round">
11
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="url(#side)"/>
12
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q133 61 131 65L82 89Q76 92 70 89L21 65Q19 62 24 59Z" fill="url(#top)"/>
13
+ <path d="M76 92Q79 92 84 89L132 66Q134 65 134 70V122Q134 128 128 131L82 153Q76 156 76 151Z" fill="url(#face)"/>
14
+ <path d="M25 67 69 89Q73 91 73 97V144" fill="none" stroke="#fff8ea" stroke-opacity=".4" stroke-width="2" stroke-linecap="round"/>
15
+ <path d="M82 96 127 74V91Q106 94 82 123Z" fill="url(#reflection)"/>
16
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="none" stroke="url(#rim)" stroke-width="3.5"/>
17
+ <path d="m23 64 47 24Q76 91 82 88L130 64M76 92V151" fill="none" stroke="#62d6e6" stroke-opacity=".85" stroke-width="2"/>
18
+ <path d="m27 59 44-21Q76 36 81 38l42 20" fill="none" stroke="#fff" stroke-opacity=".8" stroke-width="1.6" stroke-linecap="round"/>
19
+ <g transform="matrix(1 .49 0 1 44 105)">
20
+ <path d="M-14 0H14" stroke="#142332" stroke-width="3.5" stroke-linecap="round"/>
21
+ <circle r="7" fill="#142332"/>
22
+ <path d="M-4-3Q-1-6 3-3" fill="none" stroke="#55707b" stroke-width="1.5" stroke-linecap="round"/>
23
+ </g>
24
+ </g>
25
+ <g id="eyes" fill="#56dcff"><g filter="url(#glow)"><ellipse cx="94" cy="116" rx="6" ry="10" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="6" ry="10" transform="rotate(18 120 103)"/></g><g fill="#bdf6ff"><ellipse cx="94" cy="116" rx="4" ry="8" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="4" ry="8" transform="rotate(18 120 103)"/></g></g>
26
+ <g id="antenna"><ellipse cx="82" cy="55" rx="11" ry="4" fill="#173344" opacity=".16"/><ellipse cx="79" cy="53" rx="7" ry="4" fill="#132b3a"/><ellipse cx="78" cy="51" rx="5" ry="2.5" fill="#426978"/><path d="m79 50 13-32" stroke="#9d4507" stroke-width="6" stroke-linecap="round"/><path d="m79 49 12-31" stroke="#ffad37" stroke-width="3.5" stroke-linecap="round"/><path d="m78 47 10-25" stroke="#ffe0a0" stroke-width="1" stroke-linecap="round"/><circle cx="94" cy="14" r="10" fill="url(#orb)"/><ellipse cx="91" cy="10" rx="3" ry="2" fill="#fff4d7"/></g>
27
+ <path id="spark" d="m111 4 3 9 9 3-9 3-3 9-3-9-9-3 9-3Z" fill="#ffd16a"/>
28
+ <symbol id="robot" viewBox="0 0 152 170"><use href="#shell"/><use href="#eyes"/><use href="#antenna"/></symbol>
29
+ </defs><use href="#eyes"/></svg>
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="152" height="170" viewBox="0 0 152 170"><defs>
2
+ <linearGradient id="top" x1="20%" y1="0%" x2="70%" y2="100%"><stop stop-color="#ffffff"/><stop offset=".48" stop-color="#f4f5ef"/><stop offset="1" stop-color="#a7c5ce"/></linearGradient>
3
+ <linearGradient id="side" x1="0%" y1="15%" x2="100%" y2="85%"><stop stop-color="#f8eddd"/><stop offset=".45" stop-color="#deccb7"/><stop offset="1" stop-color="#a78d78"/></linearGradient>
4
+ <linearGradient id="face" x1="0%" y1="0%" x2="85%" y2="100%"><stop stop-color="#365362"/><stop offset=".4" stop-color="#102534"/><stop offset="1" stop-color="#060e18"/></linearGradient>
5
+ <linearGradient id="rim" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#a1eff6"/><stop offset=".45" stop-color="#38cce7"/><stop offset="1" stop-color="#087d9f"/></linearGradient>
6
+ <linearGradient id="reflection" x1="0%" y1="0%" x2="70%" y2="100%"><stop stop-color="#d2f4ff" stop-opacity=".28"/><stop offset="1" stop-color="#d2f4ff" stop-opacity="0"/></linearGradient>
7
+ <radialGradient id="orb" cx="30%" cy="25%" r="80%"><stop stop-color="#ffd58b"/><stop offset=".35" stop-color="#ff9b21"/><stop offset=".75" stop-color="#f77908"/><stop offset="1" stop-color="#a84606"/></radialGradient>
8
+ <filter id="glow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="2"/></filter>
9
+ <g id="wire" fill="none" stroke="#7b8e9d" stroke-width="2.5" stroke-linejoin="round"><path d="M18 62 76 35 134 62 134 128 76 156 18 128Z M18 62 76 91 134 62 M76 91V156"/></g>
10
+ <g id="shell" stroke-linejoin="round">
11
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="url(#side)"/>
12
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q133 61 131 65L82 89Q76 92 70 89L21 65Q19 62 24 59Z" fill="url(#top)"/>
13
+ <path d="M76 92Q79 92 84 89L132 66Q134 65 134 70V122Q134 128 128 131L82 153Q76 156 76 151Z" fill="url(#face)"/>
14
+ <path d="M25 67 69 89Q73 91 73 97V144" fill="none" stroke="#fff8ea" stroke-opacity=".4" stroke-width="2" stroke-linecap="round"/>
15
+ <path d="M82 96 127 74V91Q106 94 82 123Z" fill="url(#reflection)"/>
16
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="none" stroke="url(#rim)" stroke-width="3.5"/>
17
+ <path d="m23 64 47 24Q76 91 82 88L130 64M76 92V151" fill="none" stroke="#62d6e6" stroke-opacity=".85" stroke-width="2"/>
18
+ <path d="m27 59 44-21Q76 36 81 38l42 20" fill="none" stroke="#fff" stroke-opacity=".8" stroke-width="1.6" stroke-linecap="round"/>
19
+ <g transform="matrix(1 .49 0 1 44 105)">
20
+ <path d="M-14 0H14" stroke="#142332" stroke-width="3.5" stroke-linecap="round"/>
21
+ <circle r="7" fill="#142332"/>
22
+ <path d="M-4-3Q-1-6 3-3" fill="none" stroke="#55707b" stroke-width="1.5" stroke-linecap="round"/>
23
+ </g>
24
+ </g>
25
+ <g id="eyes" fill="#56dcff"><g filter="url(#glow)"><ellipse cx="94" cy="116" rx="6" ry="10" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="6" ry="10" transform="rotate(18 120 103)"/></g><g fill="#bdf6ff"><ellipse cx="94" cy="116" rx="4" ry="8" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="4" ry="8" transform="rotate(18 120 103)"/></g></g>
26
+ <g id="antenna"><ellipse cx="82" cy="55" rx="11" ry="4" fill="#173344" opacity=".16"/><ellipse cx="79" cy="53" rx="7" ry="4" fill="#132b3a"/><ellipse cx="78" cy="51" rx="5" ry="2.5" fill="#426978"/><path d="m79 50 13-32" stroke="#9d4507" stroke-width="6" stroke-linecap="round"/><path d="m79 49 12-31" stroke="#ffad37" stroke-width="3.5" stroke-linecap="round"/><path d="m78 47 10-25" stroke="#ffe0a0" stroke-width="1" stroke-linecap="round"/><circle cx="94" cy="14" r="10" fill="url(#orb)"/><ellipse cx="91" cy="10" rx="3" ry="2" fill="#fff4d7"/></g>
27
+ <path id="spark" d="m111 4 3 9 9 3-9 3-3 9-3-9-9-3 9-3Z" fill="#ffd16a"/>
28
+ <symbol id="robot" viewBox="0 0 152 170"><use href="#shell"/><use href="#eyes"/><use href="#antenna"/></symbol>
29
+ </defs><use href="#shell"/></svg>
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="152" height="170" viewBox="0 0 152 170"><defs>
2
+ <linearGradient id="top" x1="20%" y1="0%" x2="70%" y2="100%"><stop stop-color="#ffffff"/><stop offset=".48" stop-color="#f4f5ef"/><stop offset="1" stop-color="#a7c5ce"/></linearGradient>
3
+ <linearGradient id="side" x1="0%" y1="15%" x2="100%" y2="85%"><stop stop-color="#f8eddd"/><stop offset=".45" stop-color="#deccb7"/><stop offset="1" stop-color="#a78d78"/></linearGradient>
4
+ <linearGradient id="face" x1="0%" y1="0%" x2="85%" y2="100%"><stop stop-color="#365362"/><stop offset=".4" stop-color="#102534"/><stop offset="1" stop-color="#060e18"/></linearGradient>
5
+ <linearGradient id="rim" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#a1eff6"/><stop offset=".45" stop-color="#38cce7"/><stop offset="1" stop-color="#087d9f"/></linearGradient>
6
+ <linearGradient id="reflection" x1="0%" y1="0%" x2="70%" y2="100%"><stop stop-color="#d2f4ff" stop-opacity=".28"/><stop offset="1" stop-color="#d2f4ff" stop-opacity="0"/></linearGradient>
7
+ <radialGradient id="orb" cx="30%" cy="25%" r="80%"><stop stop-color="#ffd58b"/><stop offset=".35" stop-color="#ff9b21"/><stop offset=".75" stop-color="#f77908"/><stop offset="1" stop-color="#a84606"/></radialGradient>
8
+ <filter id="glow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="2"/></filter>
9
+ <g id="wire" fill="none" stroke="#7b8e9d" stroke-width="2.5" stroke-linejoin="round"><path d="M18 62 76 35 134 62 134 128 76 156 18 128Z M18 62 76 91 134 62 M76 91V156"/></g>
10
+ <g id="shell" stroke-linejoin="round">
11
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="url(#side)"/>
12
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q133 61 131 65L82 89Q76 92 70 89L21 65Q19 62 24 59Z" fill="url(#top)"/>
13
+ <path d="M76 92Q79 92 84 89L132 66Q134 65 134 70V122Q134 128 128 131L82 153Q76 156 76 151Z" fill="url(#face)"/>
14
+ <path d="M25 67 69 89Q73 91 73 97V144" fill="none" stroke="#fff8ea" stroke-opacity=".4" stroke-width="2" stroke-linecap="round"/>
15
+ <path d="M82 96 127 74V91Q106 94 82 123Z" fill="url(#reflection)"/>
16
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="none" stroke="url(#rim)" stroke-width="3.5"/>
17
+ <path d="m23 64 47 24Q76 91 82 88L130 64M76 92V151" fill="none" stroke="#62d6e6" stroke-opacity=".85" stroke-width="2"/>
18
+ <path d="m27 59 44-21Q76 36 81 38l42 20" fill="none" stroke="#fff" stroke-opacity=".8" stroke-width="1.6" stroke-linecap="round"/>
19
+ <g transform="matrix(1 .49 0 1 44 105)">
20
+ <path d="M-14 0H14" stroke="#142332" stroke-width="3.5" stroke-linecap="round"/>
21
+ <circle r="7" fill="#142332"/>
22
+ <path d="M-4-3Q-1-6 3-3" fill="none" stroke="#55707b" stroke-width="1.5" stroke-linecap="round"/>
23
+ </g>
24
+ </g>
25
+ <g id="eyes" fill="#56dcff"><g filter="url(#glow)"><ellipse cx="94" cy="116" rx="6" ry="10" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="6" ry="10" transform="rotate(18 120 103)"/></g><g fill="#bdf6ff"><ellipse cx="94" cy="116" rx="4" ry="8" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="4" ry="8" transform="rotate(18 120 103)"/></g></g>
26
+ <g id="antenna"><ellipse cx="82" cy="55" rx="11" ry="4" fill="#173344" opacity=".16"/><ellipse cx="79" cy="53" rx="7" ry="4" fill="#132b3a"/><ellipse cx="78" cy="51" rx="5" ry="2.5" fill="#426978"/><path d="m79 50 13-32" stroke="#9d4507" stroke-width="6" stroke-linecap="round"/><path d="m79 49 12-31" stroke="#ffad37" stroke-width="3.5" stroke-linecap="round"/><path d="m78 47 10-25" stroke="#ffe0a0" stroke-width="1" stroke-linecap="round"/><circle cx="94" cy="14" r="10" fill="url(#orb)"/><ellipse cx="91" cy="10" rx="3" ry="2" fill="#fff4d7"/></g>
27
+ <path id="spark" d="m111 4 3 9 9 3-9 3-3 9-3-9-9-3 9-3Z" fill="#ffd16a"/>
28
+ <symbol id="robot" viewBox="0 0 152 170"><use href="#shell"/><use href="#eyes"/><use href="#antenna"/></symbol>
29
+ </defs><use href="#spark"/></svg>
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="152" height="170" viewBox="0 0 152 170"><defs>
2
+ <linearGradient id="top" x1="20%" y1="0%" x2="70%" y2="100%"><stop stop-color="#ffffff"/><stop offset=".48" stop-color="#f4f5ef"/><stop offset="1" stop-color="#a7c5ce"/></linearGradient>
3
+ <linearGradient id="side" x1="0%" y1="15%" x2="100%" y2="85%"><stop stop-color="#f8eddd"/><stop offset=".45" stop-color="#deccb7"/><stop offset="1" stop-color="#a78d78"/></linearGradient>
4
+ <linearGradient id="face" x1="0%" y1="0%" x2="85%" y2="100%"><stop stop-color="#365362"/><stop offset=".4" stop-color="#102534"/><stop offset="1" stop-color="#060e18"/></linearGradient>
5
+ <linearGradient id="rim" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#a1eff6"/><stop offset=".45" stop-color="#38cce7"/><stop offset="1" stop-color="#087d9f"/></linearGradient>
6
+ <linearGradient id="reflection" x1="0%" y1="0%" x2="70%" y2="100%"><stop stop-color="#d2f4ff" stop-opacity=".28"/><stop offset="1" stop-color="#d2f4ff" stop-opacity="0"/></linearGradient>
7
+ <radialGradient id="orb" cx="30%" cy="25%" r="80%"><stop stop-color="#ffd58b"/><stop offset=".35" stop-color="#ff9b21"/><stop offset=".75" stop-color="#f77908"/><stop offset="1" stop-color="#a84606"/></radialGradient>
8
+ <filter id="glow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="2"/></filter>
9
+ <g id="wire" fill="none" stroke="#7b8e9d" stroke-width="2.5" stroke-linejoin="round"><path d="M18 62 76 35 134 62 134 128 76 156 18 128Z M18 62 76 91 134 62 M76 91V156"/></g>
10
+ <g id="shell" stroke-linejoin="round">
11
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="url(#side)"/>
12
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q133 61 131 65L82 89Q76 92 70 89L21 65Q19 62 24 59Z" fill="url(#top)"/>
13
+ <path d="M76 92Q79 92 84 89L132 66Q134 65 134 70V122Q134 128 128 131L82 153Q76 156 76 151Z" fill="url(#face)"/>
14
+ <path d="M25 67 69 89Q73 91 73 97V144" fill="none" stroke="#fff8ea" stroke-opacity=".4" stroke-width="2" stroke-linecap="round"/>
15
+ <path d="M82 96 127 74V91Q106 94 82 123Z" fill="url(#reflection)"/>
16
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="none" stroke="url(#rim)" stroke-width="3.5"/>
17
+ <path d="m23 64 47 24Q76 91 82 88L130 64M76 92V151" fill="none" stroke="#62d6e6" stroke-opacity=".85" stroke-width="2"/>
18
+ <path d="m27 59 44-21Q76 36 81 38l42 20" fill="none" stroke="#fff" stroke-opacity=".8" stroke-width="1.6" stroke-linecap="round"/>
19
+ <g transform="matrix(1 .49 0 1 44 105)">
20
+ <path d="M-14 0H14" stroke="#142332" stroke-width="3.5" stroke-linecap="round"/>
21
+ <circle r="7" fill="#142332"/>
22
+ <path d="M-4-3Q-1-6 3-3" fill="none" stroke="#55707b" stroke-width="1.5" stroke-linecap="round"/>
23
+ </g>
24
+ </g>
25
+ <g id="eyes" fill="#56dcff"><g filter="url(#glow)"><ellipse cx="94" cy="116" rx="6" ry="10" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="6" ry="10" transform="rotate(18 120 103)"/></g><g fill="#bdf6ff"><ellipse cx="94" cy="116" rx="4" ry="8" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="4" ry="8" transform="rotate(18 120 103)"/></g></g>
26
+ <g id="antenna"><ellipse cx="82" cy="55" rx="11" ry="4" fill="#173344" opacity=".16"/><ellipse cx="79" cy="53" rx="7" ry="4" fill="#132b3a"/><ellipse cx="78" cy="51" rx="5" ry="2.5" fill="#426978"/><path d="m79 50 13-32" stroke="#9d4507" stroke-width="6" stroke-linecap="round"/><path d="m79 49 12-31" stroke="#ffad37" stroke-width="3.5" stroke-linecap="round"/><path d="m78 47 10-25" stroke="#ffe0a0" stroke-width="1" stroke-linecap="round"/><circle cx="94" cy="14" r="10" fill="url(#orb)"/><ellipse cx="91" cy="10" rx="3" ry="2" fill="#fff4d7"/></g>
27
+ <path id="spark" d="m111 4 3 9 9 3-9 3-3 9-3-9-9-3 9-3Z" fill="#ffd16a"/>
28
+ <symbol id="robot" viewBox="0 0 152 170"><use href="#shell"/><use href="#eyes"/><use href="#antenna"/></symbol>
29
+ </defs><use href="#wire"/></svg>
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 34"><path d="M3 12 15 6 27 12V26L15 32 3 26Z" fill="#142637" stroke="#36c9e7" stroke-width="2" stroke-linejoin="round"/><path d="m3 12 12 6 12-6-12-6Z" fill="#faf8ee"/><path d="m3 12 12 6v14L3 26Z" fill="#d9c6b0"/><path d="m16 10 3-7" stroke="#ff951e" stroke-width="2"/><circle cx="19" cy="3" r="2.5" fill="#ff951e"/><path d="m19 23 0-2m5-1v-2" stroke="#a4f5ff" stroke-width="3" stroke-linecap="round"/></svg>
Binary file
Binary file
Binary file
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="152" height="170" viewBox="0 0 152 170"><defs>
2
+ <linearGradient id="top" x1="20%" y1="0%" x2="70%" y2="100%"><stop stop-color="#ffffff"/><stop offset=".48" stop-color="#f4f5ef"/><stop offset="1" stop-color="#a7c5ce"/></linearGradient>
3
+ <linearGradient id="side" x1="0%" y1="15%" x2="100%" y2="85%"><stop stop-color="#f8eddd"/><stop offset=".45" stop-color="#deccb7"/><stop offset="1" stop-color="#a78d78"/></linearGradient>
4
+ <linearGradient id="face" x1="0%" y1="0%" x2="85%" y2="100%"><stop stop-color="#365362"/><stop offset=".4" stop-color="#102534"/><stop offset="1" stop-color="#060e18"/></linearGradient>
5
+ <linearGradient id="rim" x1="0%" y1="0%" x2="100%" y2="100%"><stop stop-color="#a1eff6"/><stop offset=".45" stop-color="#38cce7"/><stop offset="1" stop-color="#087d9f"/></linearGradient>
6
+ <linearGradient id="reflection" x1="0%" y1="0%" x2="70%" y2="100%"><stop stop-color="#d2f4ff" stop-opacity=".28"/><stop offset="1" stop-color="#d2f4ff" stop-opacity="0"/></linearGradient>
7
+ <radialGradient id="orb" cx="30%" cy="25%" r="80%"><stop stop-color="#ffd58b"/><stop offset=".35" stop-color="#ff9b21"/><stop offset=".75" stop-color="#f77908"/><stop offset="1" stop-color="#a84606"/></radialGradient>
8
+ <filter id="glow" x="-100%" y="-100%" width="300%" height="300%"><feGaussianBlur stdDeviation="2"/></filter>
9
+ <g id="wire" fill="none" stroke="#7b8e9d" stroke-width="2.5" stroke-linejoin="round"><path d="M18 62 76 35 134 62 134 128 76 156 18 128Z M18 62 76 91 134 62 M76 91V156"/></g>
10
+ <g id="shell" stroke-linejoin="round">
11
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="url(#side)"/>
12
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q133 61 131 65L82 89Q76 92 70 89L21 65Q19 62 24 59Z" fill="url(#top)"/>
13
+ <path d="M76 92Q79 92 84 89L132 66Q134 65 134 70V122Q134 128 128 131L82 153Q76 156 76 151Z" fill="url(#face)"/>
14
+ <path d="M25 67 69 89Q73 91 73 97V144" fill="none" stroke="#fff8ea" stroke-opacity=".4" stroke-width="2" stroke-linecap="round"/>
15
+ <path d="M82 96 127 74V91Q106 94 82 123Z" fill="url(#reflection)"/>
16
+ <path d="M24 59 70 37Q76 34 82 37L128 59Q134 62 134 69V122Q134 128 128 131L82 153Q76 156 70 153L24 131Q18 128 18 122V69Q18 62 24 59Z" fill="none" stroke="url(#rim)" stroke-width="3.5"/>
17
+ <path d="m23 64 47 24Q76 91 82 88L130 64M76 92V151" fill="none" stroke="#62d6e6" stroke-opacity=".85" stroke-width="2"/>
18
+ <path d="m27 59 44-21Q76 36 81 38l42 20" fill="none" stroke="#fff" stroke-opacity=".8" stroke-width="1.6" stroke-linecap="round"/>
19
+ <g transform="matrix(1 .49 0 1 44 105)">
20
+ <path d="M-14 0H14" stroke="#142332" stroke-width="3.5" stroke-linecap="round"/>
21
+ <circle r="7" fill="#142332"/>
22
+ <path d="M-4-3Q-1-6 3-3" fill="none" stroke="#55707b" stroke-width="1.5" stroke-linecap="round"/>
23
+ </g>
24
+ </g>
25
+ <g id="eyes" fill="#56dcff"><g filter="url(#glow)"><ellipse cx="94" cy="116" rx="6" ry="10" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="6" ry="10" transform="rotate(18 120 103)"/></g><g fill="#bdf6ff"><ellipse cx="94" cy="116" rx="4" ry="8" transform="rotate(18 94 116)"/><ellipse cx="120" cy="103" rx="4" ry="8" transform="rotate(18 120 103)"/></g></g>
26
+ <g id="antenna"><ellipse cx="82" cy="55" rx="11" ry="4" fill="#173344" opacity=".16"/><ellipse cx="79" cy="53" rx="7" ry="4" fill="#132b3a"/><ellipse cx="78" cy="51" rx="5" ry="2.5" fill="#426978"/><path d="m79 50 13-32" stroke="#9d4507" stroke-width="6" stroke-linecap="round"/><path d="m79 49 12-31" stroke="#ffad37" stroke-width="3.5" stroke-linecap="round"/><path d="m78 47 10-25" stroke="#ffe0a0" stroke-width="1" stroke-linecap="round"/><circle cx="94" cy="14" r="10" fill="url(#orb)"/><ellipse cx="91" cy="10" rx="3" ry="2" fill="#fff4d7"/></g>
27
+ <path id="spark" d="m111 4 3 9 9 3-9 3-3 9-3-9-9-3 9-3Z" fill="#ffd16a"/>
28
+ <symbol id="robot" viewBox="0 0 152 170"><use href="#shell"/><use href="#eyes"/><use href="#antenna"/></symbol>
29
+ </defs><use href="#robot" width="152" height="170"/></svg>