CINXE.COM
Mozilla AI
<!doctype html><!-- Last Published: Fri Nov 22 2024 17:03:57 GMT+0000 (Coordinated Universal Time) --> <html data-wf-domain="www.mozilla.ai" data-wf-page="65cbabe46b74c2eb7ed2e951" data-wf-site="64b82ee93428b050ac9c222b" lang="en"> <head> <base href="https://www.mozilla.ai/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=homepage"> <meta charset="utf-8"> <title>Mozilla AI</title> <meta content="Democratizing open-source AI to solve real user problems" name="description"> <meta content="width=device-width, initial-scale=1" name="viewport"> <meta content="n8UW9s7zop-cPLWr4awG9Lkuk_DfTLWxufcNLrPVCF4" name="google-site-verification"> <link href="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/css/mzai.webflow.7496221d0.min.css" rel="stylesheet" type="text/css"> <link href="https://fonts.googleapis.com" rel="preconnect"> <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"> <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script> <script type="text/javascript">WebFont.load({ google: { families: ["Zilla Slab:300,300italic,regular,italic,500,500italic,600,600italic,700,700italic","Inter:300,regular,500,600,700,300italic,italic,500italic,600italic,700italic"] }});</script> <script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script> <link href="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b839eb488ee426e16962d3_moz-fav.ico" rel="shortcut icon" type="image/x-icon"> <link href="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b839f0ed2e16ad340f6fd8_moz-fav-webclip.png" rel="apple-touch-icon"> <meta name="theme-color" content="#2B1141" media="(prefers-color-scheme: light)"> <meta name="theme-color" content="#150820" media="(prefers-color-scheme: dark)"><!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://mozillaai.matomo.cloud/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src='//cdn.matomo.cloud/mozillaai.matomo.cloud/matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!-- End Matomo Code --> <meta http-equiv="X-Translated-By" content="Google"> <meta http-equiv="X-Translated-To" content="cs"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.omlEigW4xY8.O/am=DgY/d=1/rs=AN8SPfpjsL9kUWY0h-sp7Ilu7hZWGwEmeg/m=corsproxy" data-sourceurl="https://www.mozilla.ai/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=homepage"></script> <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.omlEigW4xY8.O/am=DgY/d=1/exm=corsproxy/ed=1/rs=AN8SPfpjsL9kUWY0h-sp7Ilu7hZWGwEmeg/m=phishing_protection" data-phishing-protection-enabled="false" data-forms-warning-enabled="true" data-source-url="https://www.mozilla.ai/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=homepage"></script> <meta name="robots" content="none"> </head> <body> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.omlEigW4xY8.O/am=DgY/d=1/exm=corsproxy,phishing_protection/ed=1/rs=AN8SPfpjsL9kUWY0h-sp7Ilu7hZWGwEmeg/m=navigationui" data-environment="prod" data-proxy-url="https://www-mozilla-ai.translate.goog" data-proxy-full-url="https://www-mozilla-ai.translate.goog/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=homepage&_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" data-source-url="https://www.mozilla.ai/?utm_source=www.mozilla.org&utm_medium=referral&utm_campaign=homepage" data-source-language="pl" data-target-language="cs" data-display-language="en-GB" data-detected-source-language="" data-is-source-untranslated="false" data-source-untranslated-url="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.ai/?utm_source%3Dwww.mozilla.org%26utm_medium%3Dreferral%26utm_campaign%3Dhomepage&anno=2" data-client="tr"></script> <div class="nav-container"> <div class="nav-block"> <a href="https://www-mozilla-ai.translate.goog/?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" aria-current="page" class="logo-link-block w-inline-block w--current"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b94ce6b7208774e012993c_logo-mzai-light.svg" loading="lazy" alt="the mozilla ai logo" class="logo-mzai"></a><a data-w-id="da34ff9d-4a5c-3017-0abb-81f1b8ae04f2" href="https://www-mozilla-ai.translate.goog/?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB#" class="mobile-menu-button w-inline-block"> <div class="button-block"> <div data-w-id="1b6d7d8e-1108-1a69-d6c6-b3c1c4d9a2d4" class="nav-link-text"> Menu </div> <div data-w-id="cbd18216-09ef-3da7-32f0-17639d2ef07f" class="nav-link-text close"> Close<br> </div> </div> <div class="button-bg nav"></div></a> <div class="nav-pagelinks-container"> <a href="https://www-mozilla-ai.translate.goog/lumigator?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" class="nav-link-container w-inline-block"> <div class="button-block"> <div class="nav-link-text"> Lumigator </div> </div> <div class="button-bg nav"></div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=http://blog.mozilla.ai" target="_blank" class="nav-link-container w-inline-block"> <div class="button-block"> <div class="nav-link-text"> Blog </div> </div> <div class="button-bg nav"></div></a><a href="https://www-mozilla-ai.translate.goog/careers?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" class="nav-link-container w-inline-block"> <div class="button-block"> <div class="nav-link-text"> Careers </div> </div> <div class="button-bg nav"></div></a> </div> </div> </div> <div class="page-container home"> <section data-w-id="1f19926c-b2f6-5043-b595-37c0b47c4ea7" class="section home-intro-frosty"> <div class="content-container home-intro"> <div class="content-block home-intro"> <h1 class="text-intro-heading">Democratizing open-source AI to solve real user problems</h1> <p class="body-large _50-percent light">Our mission is to build, commercialize, and open source components and tools that make it easy for developers and users to deploy AI in a trustworthy way to solve real-world use cases.</p><a href="https://www-mozilla-ai.translate.goog/?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB#studio-home" data-w-id="c4d0d493-39c5-59eb-d48f-e2c96f8b6a4c" style="color:rgb(241,240,237);border-color:rgb(241,240,237)" class="button-container-down light w-inline-block"> <div class="button-block"> <div data-w-id="ac676c25-e49b-5118-5773-9dac87ae20e0" style="color:rgb(241,240,237)"> Learn about mozilla.ai </div> </div> <div class="button-block arrow"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431b5c90db90db6bb80c_icon-arrow-down-light.svg" loading="lazy" style="-webkit-transform:translate3d(null, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(null, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(null, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(null, 0%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" alt="an arrow pointing down" class="icon-arrow-off"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431b1def94297ae1210c_icon-arrow-down-dark.svg" loading="lazy" style="display:none;opacity:0;-webkit-transform:translate3d(null, -100%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(null, -100%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(null, -100%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(null, -100%, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" alt="an arrow pointing down" class="icon-arrow-on"> </div> <div class="button-bg yellow"></div></a> </div> </div> </section> <section id="studio-home" class="section"> <div class="content-container"> <div class="grid-2-column"> <div class="image-block _50vh"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/6562060f3c18ede96c2d62df_Abstract%20energy%20artwork.png" loading="lazy" sizes="(max-width: 479px) 93vw, (max-width: 767px) 96vw, (max-width: 1919px) 45vw, 809px" srcset="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/6562060f3c18ede96c2d62df_Abstract%2520energy%2520artwork-p-500.png 500w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/6562060f3c18ede96c2d62df_Abstract%2520energy%2520artwork-p-800.png 800w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/6562060f3c18ede96c2d62df_Abstract%2520energy%2520artwork.png 1024w" alt="Abstract energy bands flowing from top to bottom with depth of field, with hues of purples, blues, and accents of magenta and white in a dark scene" class="image-absolute"> </div> <div id="w-node-cb54085a-2d86-90d2-99b9-a9fbcae6e63e-7ed2e951" class="content-block"> <div class="label-container"> <div> Studio </div> </div> <h2 class="h2-alter no-bottom-pad">mozilla.ai is an alternative to the status quo.</h2> <p>Our guiding notion of AI is <strong>communal</strong>: an intelligence that looks not to <em>replace</em> human intelligence but rather <em>augment</em> it cooperatively. We believe that there is no contradiction between building useful technology and promoting social good.</p> </div> </div> </div> </section> <section class="section _100vh-imgbg-alter"> <div class="content-container full-height alrign-bottom-right"> <div class="content-block offset-card-container"> <div class="label-container"> <div> Building with others </div> </div> <h3 class="no-bottom-pad">Of the many potential futures for AI, we want to realize one that is grounded in communities, openness, and trustworthiness.</h3> <p>We believe technology should be designed for communities first and foremost – and that these should be able to trust and shape their own experiences with technology. Technological systems should strive for standards of trust and reliability, similar to those found in long-standing engineering disciplines.</p> </div> </div><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash.webp" loading="lazy" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash-p-500.webp 500w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash-p-800.webp 800w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash-p-1080.webp 1080w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash-p-1600.webp 1600w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash-p-2000.webp 2000w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bd82f84f4a45e83281c322_claudio-schwarz-k39RGHmLoV8-unsplash.webp 2400w" alt="an sketchy illustration of two hands touching like the painting The Creation of Adam by Michelangelo" class="image-absolute"> </section> <section class="section"> <div class="content-container"> <div class="grid-2-column"> <div class="content-block"> <div class="label-container"> <div> Perspectives </div> </div> <h3 class="no-bottom-pad">We design for human and machine collaboration</h3> <div class="p-wrapper"> <p>We fundamentally believe in human agency: ours is a paradigm for augmenting human intelligence rather than replacing it artificially.</p> </div><a data-w-id="00190c0d-ea5a-0f5a-7f97-5edca0de842f" href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://blog.mozilla.ai/" target="_blank" class="button-container w-inline-block"> <div class="button-block"> <div> More Perspectives </div> </div> <div class="button-block arrow"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431b97c120b90d902480_icon-arrow-forward-dark.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-off"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431bc89c8dae6002ea69_icon-arrow-forward-light.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-on"> </div> <div class="button-bg"></div></a> </div> <div class="content-block"> <a data-w-id="00190c0d-ea5a-0f5a-7f97-5edca0de842f" href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://blog.mozilla.ai/%23/portal/signup" target="_blank" class="button-container w-inline-block"> <div class="button-block"> <div> Sign up for updates </div> </div> <div class="button-block arrow"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431b97c120b90d902480_icon-arrow-forward-dark.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-off"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431bc89c8dae6002ea69_icon-arrow-forward-light.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-on"> </div> <div class="button-bg"></div></a> </div> </div> </div> </section> <section class="section bg-concord-80"> <div class="content-container"> <div class="w-layout-grid grid-2-column grid-career-slice"> <div id="w-node-_3165fb6c-9728-bfa0-b6e1-1f0a167cfe2e-167cfe2b" class="image-block _50vh"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash.webp" loading="lazy" sizes="(max-width: 479px) 93vw, (max-width: 767px) 96vw, (max-width: 991px) 45vw, (max-width: 1919px) 60vw, 1078.6666259765625px" srcset="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-500.webp 500w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-800.webp 800w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-1080.webp 1080w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-1600.webp 1600w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-2000.webp 2000w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-2600.webp 2600w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash-p-3200.webp 3200w,https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64c51fdfe3ffa0d06791630c_kaleidico-3V8xo5Gbusk-unsplash.webp 5402w" alt="" class="image-absolute"> </div> <div id="w-node-_3165fb6c-9728-bfa0-b6e1-1f0a167cfe30-167cfe2b" class="flex-vertical"> <div id="w-node-_3165fb6c-9728-bfa0-b6e1-1f0a167cfe31-167cfe2b" class="content-block"> <div class="label-container light"> <div> Careers </div> </div> <h3>Work with us</h3> <p>If you're passionate about the potential of artificial intelligence, committed to building for good and believe in open-source, we’d love to hear from you.</p> </div><a data-w-id="541d9ba9-a76b-bc53-a00f-0845e9f700e5" href="https://www-mozilla-ai.translate.goog/careers?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" class="button-container yellow w-inline-block"> <div class="button-block"> <div> See open roles </div> </div> <div class="button-block arrow"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431b97c120b90d902480_icon-arrow-forward-dark.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-off"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431bc89c8dae6002ea69_icon-arrow-forward-light.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-on"> </div> <div class="button-bg"></div></a> </div> </div> </div> </section> </div> <div id="animation-container" data-w-id="00dab74e-5cb6-b646-c93c-ee56be080d22" class="animation-container"> <div class="animation-embed w-embed w-script"> <!-- shader for bird's position --> <script id="fragmentShaderPosition" type="x-shader/x-fragment"> uniform float time; uniform float delta; void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; vec4 tmpPos = texture2D( texturePosition, uv ); vec3 position = tmpPos.xyz; vec3 velocity = texture2D( textureVelocity, uv ).xyz; float phase = tmpPos.w; gl_FragColor = vec4( position + velocity * delta * 7.5 , phase ); } </script><!-- shader for bird's velocity --> <script id="fragmentShaderVelocity" type="x-shader/x-fragment"> uniform float time; uniform float testing; uniform float delta; // about 0.016 uniform float separationDistance; // 20 uniform float alignmentDistance; // 40 uniform float cohesionDistance; // uniform float freedomFactor; uniform vec3 predator; uniform float boxWidth; const float width = resolution.x; const float height = resolution.y; const float PI = 3.141592653589793; const float PI_2 = PI * 2.0; // const float VISION = PI * 0.55; float zoneRadius = 40.0; float zoneRadiusSquared = 1600.0; float separationThresh = 0.45; float alignmentThresh = 0.65; const float UPPER_BOUNDS = BOUNDS; const float LOWER_BOUNDS = -UPPER_BOUNDS; const float SPEED_LIMIT = 9.0; float rand( vec2 co ){ return fract( sin( dot( co.xy, vec2(12.9898,78.233) ) ) * 43758.5453 ); } void main() { zoneRadius = separationDistance + alignmentDistance + cohesionDistance; separationThresh = separationDistance / zoneRadius; alignmentThresh = ( separationDistance + alignmentDistance ) / zoneRadius; zoneRadiusSquared = zoneRadius * zoneRadius; vec2 uv = gl_FragCoord.xy / resolution.xy; vec3 birdPosition, birdVelocity; vec3 selfPosition = texture2D( texturePosition, uv ).xyz; vec3 selfVelocity = texture2D( textureVelocity, uv ).xyz; float dist; vec3 dir; // direction float distSquared; float separationSquared = separationDistance * separationDistance; float cohesionSquared = cohesionDistance * cohesionDistance; float f; float percent; vec3 velocity = selfVelocity; float limit = SPEED_LIMIT; dir = predator * UPPER_BOUNDS - selfPosition; dir.z = 0.; // dir.z *= 0.6; dist = length( dir ); distSquared = dist * dist; float preyRadius = 150.0; float preyRadiusSq = preyRadius * preyRadius; // move birds away from predator if ( dist < preyRadius ) { f = ( distSquared / preyRadiusSq - 1.0 ) * delta * 100.; velocity += normalize( dir ) * f; limit += 5.0; } // if (testing == 0.0) {} // if ( rand( uv + time ) < freedomFactor ) {} // Attract flocks to the center vec3 central = vec3( 0., 0., 0. ); dir = selfPosition - central; dist = length( dir ); dir.y *= 2.5; velocity -= normalize( dir ) * delta * 3.; /* disable flocking behaviour for ( float y = 0.0; y < height; y++ ) { for ( float x = 0.0; x < width; x++ ) { vec2 ref = vec2( x + 0.5, y + 0.5 ) / resolution.xy; birdPosition = texture2D( texturePosition, ref ).xyz; dir = birdPosition - selfPosition; dist = length( dir ); if ( dist < 0.0001 ) continue; distSquared = dist * dist; if ( distSquared > zoneRadiusSquared ) continue; percent = distSquared / zoneRadiusSquared; if ( percent < separationThresh ) { // low // Separation - Move apart for comfort f = ( separationThresh / percent - 1.0 ) * delta; velocity -= normalize( dir ) * f; } else if ( percent < alignmentThresh ) { // high // Alignment - fly the same direction float threshDelta = alignmentThresh - separationThresh; float adjustedPercent = ( percent - separationThresh ) / threshDelta; birdVelocity = texture2D( textureVelocity, ref ).xyz; f = ( 0.5 - cos( adjustedPercent * PI_2 ) * 0.5 + 0.5 ) * delta; velocity += normalize( birdVelocity ) * f; } else { // Attraction / Cohesion - move closer float threshDelta = 1.0 - alignmentThresh; float adjustedPercent; if( threshDelta == 0. ) adjustedPercent = 1.; else adjustedPercent = ( percent - alignmentThresh ) / threshDelta; f = ( 0.5 - ( cos( adjustedPercent * PI_2 ) * -0.5 + 0.5 ) ) * delta; velocity += normalize( dir ) * f; } } } */ // this make tends to fly around than down or up // if (velocity.y > 0.) velocity.y *= (1. - 0.2 * delta); // Speed Limits if ( length( velocity ) > limit ) { velocity = normalize( velocity ) * limit; } // if particle is going to leave cube bounds this tick bounce particle off bound float bound = boxWidth * 0.5; vec3 nextPosition = selfPosition + velocity * delta * 7.5; bool isInCube = all(lessThan(selfPosition, vec3(bound))) && all(greaterThan(selfPosition, vec3(-bound))); float buffer = 0.5; if(isInCube) { vec3 inBounds = step(- bound + buffer, nextPosition) - step(bound - buffer, nextPosition); velocity = (inBounds * 2. - 1.) * velocity; } else { velocity = -selfPosition; } gl_FragColor = vec4( velocity, 1.0 ); } </script> <script type="x-shader/x-vertex" id="birdVS"> attribute vec2 reference; attribute vec3 color; attribute float size; uniform sampler2D texturePosition; uniform sampler2D textureVelocity; flat varying vec4 vColor; varying float z; uniform float time; void main() { vec4 tmpPos = texture2D( texturePosition, reference ); vec3 pos = tmpPos.xyz; vec4 tmpVelocity = texture2D( textureVelocity, reference ); vec3 velocity = normalize(tmpVelocity.xyz); float enabled = tmpVelocity.w; vec3 newPosition = mat3( modelMatrix ) * position; velocity.z *= -1.; float xz = length( velocity.xz ); float xyz = 1.; float x = sqrt( 1. - velocity.y * velocity.y ); float cosry = velocity.x / xz; float sinry = velocity.z / xz; float cosrz = x / xyz; float sinrz = velocity.y / xyz; mat3 maty = mat3( cosry, 0, -sinry, 0 , 1, 0 , sinry, 0, cosry ); mat3 matz = mat3( cosrz , sinrz, 0, -sinrz, cosrz, 0, 0 , 0 , 1 ); newPosition = maty * matz * newPosition; newPosition += pos; vColor = vec4( color, 1.0 ); gl_Position = enabled != 0. ? projectionMatrix * viewMatrix * vec4( newPosition, 1.0 ) : vec4(2.0, 2.0, 2.0, 1.0); } </script><!-- bird geometry shader --> <script type="x-shader/x-fragment" id="birdFS"> flat varying vec4 vColor; varying float z; uniform vec3 color; void main() { // Fake colors for now // float z2 = 0.2 + ( 1000. - z ) / 1000. * vColor.x; gl_FragColor = vec4( vColor.xyz , 1. ); } </script> <script type="importmap"> { "imports": { "three": "https://cdn.jsdelivr.net/npm/three@0.159.0/build/three.module.js", "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.159.0/examples/jsm/", "detect-gpu": "https://cdn.jsdelivr.net/npm/detect-gpu@5.0.37/+esm" } } </script> <script type="module" src="https://cdn.jsdelivr.net/gh/mj3cheun/mozilla-ai-viz@main/main.js"></script> </div> </div> <section class="footer-container"> <div class="content-container"> <div class="content-block"> <div class="nav-block"> <a href="https://www-mozilla-ai.translate.goog/?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" aria-current="page" class="logo-link-block w-inline-block w--current"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b94ce6b7208774e012993c_logo-mzai-light.svg" loading="lazy" alt="the mozilla ai logo" class="logo-mzai"></a> </div> </div> <div class="content-block"> <div class="w-layout-grid grid-4-column is-footer"> <div class="content-block"> <h5>More from Mozilla</h5><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.org/about/manifesto/" target="_blank" class="footer-link-block w-inline-block"> <div> Mozilla Manifesto </div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.org/" target="_blank" class="footer-link-block w-inline-block"> <div> Mozilla Corporation </div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://foundation.mozilla.org/" target="_blank" class="footer-link-block w-inline-block"> <div> Mozilla Foundation </div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://mozilla.vc/" target="_blank" class="footer-link-block w-inline-block"> <div> Mozilla Ventures </div></a> </div> <div class="content-block"> <h5>Resources</h5><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.org/privacy/websites/" target="_blank" class="footer-link-block w-inline-block"> <div> Website Privacy Notice </div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.org/privacy/websites/%23user-choices" target="_blank" class="footer-link-block w-inline-block"> <div> Cookies </div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.org/about/legal/terms/mozilla/" target="_blank" class="footer-link-block w-inline-block"> <div> Legal </div></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.mozilla.org/about/governance/policies/participation/" target="_blank" class="footer-link-block w-inline-block"> <div> Participation Guidelines </div></a> </div> <div id="w-node-_916dfc16-53c2-df04-66de-e65b1e2696a1-1e269673" class="byebye-block"></div> <div class="content-block"> <h5>Follow mozilla.ai</h5> <div class="flex-horizontal gap-column-1rem"> <a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.linkedin.com/company/mozilla-ai/" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bae70888ba8b0a7284470f_logo-linkedin-white.svg" loading="lazy" alt="the LinkedIn logo in a rounded square" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=http://x.com/mozillaAI" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bae708c016b9a2a8a621fc_logo-twitter-white.svg" loading="lazy" alt="the Twitter bird logo" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://github.com/mozilla-ai" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/65d8d0e3528571f052df87a5_github.svg" loading="lazy" alt="" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://bsky.app/profile/mozilla.ai" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/65d8d0e3e306f5cbdf1ba48a_bluesky.svg" loading="lazy" alt="" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://mastodon.social/@MozillaAI" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/65d8d0e3bc70a04ce6fdf2bf_mastodon.svg" loading="lazy" alt="" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://discord.gg/4gf3zXrQUc" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/65d8d0e389cfee7788b1335c_discord.svg" loading="lazy" alt="" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.threads.net/@mozilla.ai" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/65d8d0e36f52a0f4bbdd3198_threads.svg" loading="lazy" alt="" class="footer-social-image"></a><a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://www.instagram.com/mozilla.ai/" target="_blank" class="footer-social-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64bae7086bed48fd9b2722e4_logo-instagram-white.svg" loading="lazy" alt="the Instagram camera logo" class="footer-social-image"></a> </div> </div> </div> </div> <div class="footer-divider"></div> <div class="footer-bottom-block"> <div class="content-block _50-percent"> <p class="body-small">Visit mozilla.ai’s not-for-profit parent, the <a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://foundation.mozilla.org/" target="_blank" class="footer-link">Mozilla Foundation</a>. Portions of this content are ©1998–2023 by individual mozilla.org contributors. Most content available under a <a href="https://translate.google.com/website?sl=pl&tl=cs&hl=en-GB&u=https://foundation.mozilla.org/about/website-licensing/" target="_blank" class="footer-link">Creative Commons license.</a></p> </div><a data-w-id="98693bde-ad1c-86e6-7f27-9ee3aace9702" href="https://www-mozilla-ai.translate.goog/contact?_x_tr_sl=pl&_x_tr_tl=cs&_x_tr_hl=en-GB" class="button-container light w-inline-block"> <div class="button-block"> <div> Contact us </div> </div> <div class="button-block arrow"> <img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431bc89c8dae6002ea69_icon-arrow-forward-light.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-off"><img src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/64b8431bc89c8dae6002ea69_icon-arrow-forward-light.svg" loading="lazy" alt="an arrow pointing right" class="icon-arrow-on"> </div> <div class="button-bg"></div></a> </div> </div> </section> <script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=64b82ee93428b050ac9c222b" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://cdn.prod.website-files.com/64b82ee93428b050ac9c222b/js/webflow.8e4c5da62.js" type="text/javascript"></script> <script> Webflow.push(function() { $('.mobile-menu-button').click(function(e) { e.preventDefault(); $('body').css('overflow', 'hidden'); }); $('.mobile-menu-button').click(function(e) { e.preventDefault(); $('body').css('overflow', 'auto'); }); }); </script> <script>function gtElInit() {var lib = new google.translate.TranslateService();lib.translatePage('pl', 'cs', function () {});}</script> <script src="https://translate.google.com/translate_a/element.js?cb=gtElInit&hl=en-GB&client=wt" type="text/javascript"></script> </body> </html>