CINXE.COM
Editor | PlayCanvas
<!doctype html> <html lang="en"> <head> <title>Editor | PlayCanvas</title> <meta name="description" content="Explore the features of PlayCanvas, the open source, realtime collaborative game engine, built on HTML5, WebXR, WebGL and glTF."> <link rel="icon" type="image/png" href="//playcanvas.com/static-assets/images/icons/favicon.png"> <!-- Styles --> <link rel="stylesheet" href="/css/style.css"> <link rel="stylesheet" href="/css/animations.css"> <link rel="stylesheet" type="text/css" href="/css/contrib/slick.css"/> <!-- JS --> <script src="/js/contrib/jquery-3.5.1.min.js"></script> <script src="/js/contrib/velocity.js"></script> <script src="/js/contrib/velocity-ui.js"></script> <script src="/js/contrib/slick-carousel-1.8.1.js"></script> <script src="/js/bundle.js"></script> <!-- Metadata --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta property="og:title" content="PlayCanvas - The Web Graphics Creation Platform"> <meta property="og:description" content="Collaboratively build stunning HTML5 visualizations and games"> <meta property="og:image" content="https://playcanvas.com/assets/images/PlayCanvas-OG-Image.png"> <meta property="og:url" content="https://playcanvas.com"> <meta name="twitter:card" content="summary_large_image"> <meta property="og:site_name" content="PlayCanvas.com"> <meta name="twitter:image:alt" content="PlayCanvas.com"> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('set', 'developer_id.dNzMyY2', true); // OneTrust developer id gtag('consent', 'default', { 'analytics_storage': 'denied', 'ad_storage': 'denied', 'wait_for_update': 1000 }); // Google Analytics gtag('js', new Date()); gtag('config', "G-NDG04ENSGD", { 'send_page_view': false, 'anonymize_ip': true }); // for non-angular pages send page views now if (!document.querySelector("meta[name=fragment]")) { gtag('event', 'page_view'); } // onetrust callbacks if (!window._optanonCallbacks) { window._optanonCallbacks = []; } _optanonCallbacks.push(function () { // if consent given for cookies then // update gtag consent var analytics = (OnetrustActiveGroups.indexOf('C0002') != -1); var ads = (OnetrustActiveGroups.indexOf('C0004') != -1); if (analytics || ads) { gtag('consent', 'update', { 'analytics_storage': analytics ? 'granted' : 'denied', 'ad_storage': ads ? 'granted' : 'denied' }); } }); </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-NDG04ENSGD"></script> </head> <body id="product"> <div id="header"> <div class="links-wrapper"> <a href="/"> <div class="logo"> <img src="/assets/images/logo/PlayCanvas-Logo-White.svg" alt="PlayCanvas Logo"> </div> </a> <div class="nav-links"> <div class="nav-link products"> <span class="drop-link"> Products </span> <div class="dropdown products"> <a href="/products/editor"> <div class="nav-link secondary Editor"> Editor </div> </a> <a href="/products/engine"> <div class="nav-link secondary Engine"> Engine </div> </a> <a href="/products/supersplat"> <div class="nav-link secondary SuperSplat"> SuperSplat </div> </a> <a href="/products/viewer"> <div class="nav-link secondary Model Viewer"> Model Viewer </div> </a> </div> </div> <div class="nav-link industries"> <span class="drop-link"> Industries </span> <div class="dropdown industries"> <a href="/industries/games"> <div class="nav-link secondary Games"> Games </div> </a> <a href="/industries/ar"> <div class="nav-link secondary AR"> AR </div> </a> <a href="/industries/vr"> <div class="nav-link secondary VR"> VR </div> </a> <a href="/industries/configurators"> <div class="nav-link secondary Configurators"> Configurators </div> </a> <a href="/industries/creative"> <div class="nav-link secondary Playable Ads"> Playable Ads </div> </a> <a href="/industries/gambling"> <div class="nav-link secondary Gambling"> Gambling </div> </a> </div> </div> <div class="nav-link explore"> <a href="/explore"> Explore </a> <div class="dropdown explore"> </div> </div> <div class="nav-link learn"> <a href="https://developer.playcanvas.com"> Learn </a> <div class="dropdown learn"> </div> </div> <div class="nav-link pricing"> <a href="/pricing"> Pricing </a> <div class="dropdown pricing"> </div> </div> <div class="nav-link login"> <a href="https://login.playcanvas.com/"> <span class="button light"> Log in </span> </a> </div> <div class="nav-link signup"> <a href="https://login.playcanvas.com/signup"> <span class="button call-to-action"> Sign up </span> </a> </div> </div> <div class="hamburger" onClick="showHamburgerMenu()"> <svg width="27" height="23" viewBox="0 0 27 23" version="1.1" xmlns="http://www.w3.org/2000/svg"> <defs> <rect id="path-1" x="0" y="0" width="27" height="3"></rect> <filter x="-370.4%" y="-2666.7%" width="840.7%" height="6766.7%" filterUnits="objectBoundingBox" id="filter-2"> <feOffset dx="0" dy="20" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> <feGaussianBlur stdDeviation="30" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> <feColorMatrix values="0 0 0 0 0.0941176471 0 0 0 0 0.121568627 0 0 0 0 0.129411765 0 0 0 0.8 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix> </filter> <rect id="path-3" x="0" y="10" width="27" height="3"></rect> <filter x="-370.4%" y="-2666.7%" width="840.7%" height="6766.7%" filterUnits="objectBoundingBox" id="filter-4"> <feOffset dx="0" dy="20" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> <feGaussianBlur stdDeviation="30" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> <feColorMatrix values="0 0 0 0 0.0941176471 0 0 0 0 0.121568627 0 0 0 0 0.129411765 0 0 0 0.8 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix> </filter> <rect id="path-5" x="0" y="20" width="27" height="3"></rect> <filter x="-370.4%" y="-2666.7%" width="840.7%" height="6766.7%" filterUnits="objectBoundingBox" id="filter-6"> <feOffset dx="0" dy="20" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset> <feGaussianBlur stdDeviation="30" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur> <feColorMatrix values="0 0 0 0 0.0941176471 0 0 0 0 0.121568627 0 0 0 0 0.129411765 0 0 0 0.8 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix> </filter> </defs> <g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g> <g> <g id="Rectangle-9"> <use fill="black" fill-opacity="1" filter="url(#filter-2)" href="#path-1"></use> <use fill="#FFFFFF" fill-rule="evenodd" href="#path-1"></use> </g> <g id="Rectangle-9-Copy"> <use fill="black" fill-opacity="1" filter="url(#filter-4)" href="#path-3"></use> <use fill="#FFFFFF" fill-rule="evenodd" href="#path-3"></use> </g> <g id="Rectangle-9-Copy-2"> <use fill="black" fill-opacity="1" filter="url(#filter-6)" href="#path-5"></use> <use fill="#FFFFFF" fill-rule="evenodd" href="#path-5"></use> </g> </g> </g> </g> </svg> </div> </div> <div id="hamburger-menu"> <div class="links-wrapper"> <a href="/"> <div class="logo"> <img src="/assets/images/logo/PlayCanvas-Logo-White.svg" alt="PlayCanvas Logo"> </div> </a> <div class="close" onclick="hideHamburgerMenu()"> <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"> <path fill="#E05F2C" d="M54.8013319,9.19866815 C57.7373436,12.371455 60.0044315,15.9111902 61.6026637,19.81798 C63.2008959,23.7247698 64,27.7854025 64,32 C64,36.2145975 63.2008959,40.2752302 61.6026637,44.18202 C60.0044315,48.0888098 57.7373436,51.628545 54.8013319,54.8013319 C51.6759,57.8083761 48.1657612,60.0932219 44.2708102,61.6559378 C40.3758592,63.2186538 36.28563,64 32,64 C27.71437,64 23.6241408,63.2186538 19.7291898,61.6559378 C15.8342388,60.0932219 12.3241,57.8083761 9.19866815,54.8013319 C6.19162388,51.6759 3.90677807,48.1657612 2.34406215,44.2708102 C0.781346238,40.3758592 0,36.28563 0,32 C0,27.71437 0.781346238,23.6241408 2.34406215,19.7291898 C3.90677807,15.8342388 6.19162388,12.3241 9.19866815,9.19866815 C12.371455,6.26265643 15.9111902,3.99556848 19.81798,2.39733629 C23.7247698,0.799104107 27.7854025,0 32,0 C36.2145975,0 40.2752302,0.799104107 44.18202,2.39733629 C48.0888098,3.99556848 51.628545,6.26265643 54.8013319,9.19866815 Z M32,59.1698113 C36.9249229,59.1698113 41.4709374,57.9563569 45.6381798,55.5294118 C49.8054222,53.1024666 53.1024666,49.8054222 55.5294118,45.6381798 C57.9563569,41.4709374 59.1698113,36.9249229 59.1698113,32 C59.1698113,27.0750771 57.9563569,22.5290626 55.5294118,18.3618202 C53.1024666,14.1945778 49.8054222,10.8975334 45.6381798,8.47058824 C41.4709374,6.04364306 36.9249229,4.83018868 32,4.83018868 C27.0750771,4.83018868 22.5290626,6.04364306 18.3618202,8.47058824 C14.1945778,10.8975334 10.8975334,14.1945778 8.47058824,18.3618202 C6.04364306,22.5290626 4.83018868,27.0750771 4.83018868,32 C4.83018868,36.9249229 6.04364306,41.4709374 8.47058824,45.6381798 C10.8975334,49.8054222 14.1945778,53.1024666 18.3618202,55.5294118 C22.5290626,57.9563569 27.0750771,59.1698113 32,59.1698113 Z M43.4006659,38.7835738 L38.7835738,43.8978912 L32,37.0788013 L25.2164262,43.8978912 L20.1021088,38.7835738 L26.9211987,32 L20.1021088,25.2164262 L25.2164262,20.5993341 L32,27.1698113 L38.7835738,20.5993341 L43.4006659,25.2164262 L36.8657048,32 L43.4006659,38.7835738 Z"></path> </svg> </div> <div class="nav-links"> <div class="nav-link primary Products" > <span class="drop-link"> Products </span> </div> <div class="nav-link secondary Editor" > <a href="/products/editor"> Editor </a> </div> <div class="nav-link secondary Engine" > <a href="/products/engine"> Engine </a> </div> <div class="nav-link secondary SuperSplat" > <a href="/products/supersplat"> SuperSplat </a> </div> <div class="nav-link secondary Model Viewer" > <a href="/products/viewer"> Model Viewer </a> </div> <div class="nav-link primary Industries" > <span class="drop-link"> Industries </span> </div> <div class="nav-link secondary Games" > <a href="/industries/games"> Games </a> </div> <div class="nav-link secondary AR" > <a href="/industries/ar"> AR </a> </div> <div class="nav-link secondary VR" > <a href="/industries/vr"> VR </a> </div> <div class="nav-link secondary Configurators" > <a href="/industries/configurators"> Configurators </a> </div> <div class="nav-link secondary Playable Ads" > <a href="/industries/creative"> Playable Ads </a> </div> <div class="nav-link secondary Gambling" > <a href="/industries/gambling"> Gambling </a> </div> <div class="nav-link primary Explore" > <a href="/explore"> Explore </a> </div> <div class="nav-link primary Learn" > <a href="https://developer.playcanvas.com"> Learn </a> </div> <div class="nav-link primary Pricing" > <a href="/pricing"> Pricing </a> </div> <div class='login-buttons'> <a href="https://login.playcanvas.com/"> <div class="button light"> Log in </div> </a> <a href="https://login.playcanvas.com/signup"> <div class="button call-to-action"> Sign up </div> </a> </div> </div> </div> </div> </div> <!-- main --> <div class="main"> <!-- editor --> <div class="section editor"> <h1 class="title"> PlayCanvas Editor </h1> <h4 class="sub-text"> The PlayCanvas Editor is the most advanced WebGL authoring environment available. It's packed full of features to help speed up your development and stay ahead of the competition. </h4> <div class="features-hero"> <video src="https://playcanvas.com/static-assets/videos/features/PlayCanvas-Features-TheEditor-CBR4.mp4" poster="assets/images/features/features--hero-the_editor@2x.png" autoplay loop muted></video> <img src="https://playcanvas.com/static-assets/videos/features/PlayCanvas-Features-TheEditor-CBR4.gif" alt="Editor Features"> </div> <div class="feature-boxes"> <div class="pop-box stats expanded animatable"> <img class="feature-icon" src="/assets/images/icons/icon--feature-realtime_collaboration.svg" alt="Realtime collaboration"> <div class="description"> Realtime collaboration </div> <div class="long-description"> Create apps faster using Google Docs-style realtime collaboration </div> </div> <div class="pop-box stats expanded animatable"> <img class="feature-icon" src="/assets/images/icons/icon--feature-0s.svg" alt="Zero compile time"> <div class="description"> Zero compile time </div> <div class="long-description"> PlayCanvas is a JavaScript game engine so there is no 'compile' step meaning you can iterate incredibly quickly </div> </div> <div class="pop-box stats expanded animatable"> <img class="feature-icon" src="/assets/images/icons/icon--feature-device_test.svg" alt="On device development and testing"> <div class="description"> On device development and testing </div> <div class="long-description"> Test your applications directly on mobile and tablet hardware. Code and assets live update on your device for fast iteration times. </div> </div> <div class="pop-box stats expanded animatable"> <img class="feature-icon" src="/assets/images/icons/icon--feature-debugging.svg" alt="Easy debugging and profiling"> <div class="description"> Easy debugging and profiling </div> <div class="long-description"> Use your browser's developer tools to trivially debug and profile your applications </div> </div> </div> </div> <!-- more --> <div class="section more"> <h1 class="title"> Looking for more? </h1> <h4 class="sub-text"> The features above are just a few of our favorites. There are many, many more to choose from and many more in the pipeline. </h4> <div class="feature-filters"> <div class="grad"></div> <span>Filter:</span> <div class="filter-options"> <a href="#!" class="feature-filter-link" feature-label="all"/> <div class="feature-filter selected button"> All </div> </a> <a href="#!" class="feature-filter-link" feature-label="new"/> <div class="feature-filter button"> New </div> </a> <a href="#!" class="feature-filter-link" feature-label="graphics"/> <div class="feature-filter button"> Graphics </div> </a> <a href="#!" class="feature-filter-link" feature-label="engine"/> <div class="feature-filter button"> Engine </div> </a> <a href="#!" class="feature-filter-link" feature-label="editor"/> <div class="feature-filter button"> Editor </div> </a> <a href="#!" class="feature-filter-link" feature-label="pipeline"/> <div class="feature-filter button"> Pipeline </div> </a> <a href="#!" class="feature-filter-link" feature-label="performance"/> <div class="feature-filter button"> Performance </div> </a> <a href="#!" class="feature-filter-link" feature-label="ui"/> <div class="feature-filter button"> UI </div> </a> <a href="#!" class="feature-filter-link" feature-label="mobile"/> <div class="feature-filter button"> Mobile </div> </a> </div> </div> <div class="feature-boxes left-aligned"> <div class="pop-box stats expanded animatable" feature-labels="graphics,editor,pipeline,new"> <div class="new-tag"> New! </div> <div class="description"> glTF™ 2.0 Support </div> <div class="long-description"> Import and edit stunning glTF™ assets directly into the Editor </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,editor,pipeline,new,performance"> <div class="new-tag"> New! </div> <div class="description"> Draco Mesh Compression </div> <div class="long-description"> Up to 90% reduction in model file size for faster downloads </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance,new"> <div class="new-tag"> New! </div> <div class="description"> Clustered Lighting </div> <div class="long-description"> Render hundreds of dynamic lights in the scene with low performance cost </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,new"> <div class="new-tag"> New! </div> <div class="description"> Area Lights </div> <div class="long-description"> Simulate real world lighting panels with Area Lights </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics"> <div class="description"> WebGL 2 support </div> <div class="long-description"> The PlayCanvas Engine uses the most up to date version of the WebGL API and is able to drop back to WebGL 1 when required </div> </div> <div class="pop-box stats expanded animatable" feature-labels="pipeline,performance"> <div class="description"> Asynchronous asset streaming </div> <div class="long-description"> Enable applications to load faster by deferring loading of non-essential assets </div> </div> <div class="pop-box stats expanded animatable" feature-labels="vr,ar,graphics"> <div class="description"> WebXR support </div> <div class="long-description"> Support for the latest WebXR standards to create immersive AR, VR and mixed reality experiences </div> </div> <div class="pop-box stats expanded animatable" feature-labels="engine,audio"> <div class="description"> Powerful audio API </div> <div class="long-description"> Positional sound with easy API that allows you to hook up WebAudio filters </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor,engine"> <div class="description"> Entity-component system </div> <div class="long-description"> Build applications quickly with an easy to use application framework </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance"> <div class="description"> Physically based rendering </div> <div class="long-description"> Realistic rendering using the latest techniques in realtime 3D graphics </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,editor"> <div class="description"> Animation State Graph </div> <div class="long-description"> Easily create complex animation logic using the State Graph Editor with Layer support </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor"> <div class="description"> One-click publishing </div> <div class="long-description"> Publish PlayCanvas apps live to the web with a single click </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics"> <div class="description"> Shader chunk system </div> <div class="long-description"> Partial and full shader customization support: tweak parameters, override chunks of standard shader or write your own GLSL </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance"> <div class="description"> GPU skinning </div> <div class="long-description"> Hardware accelerated character animation </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance"> <div class="description"> GPU particle system </div> <div class="long-description"> Hardware accelerated particle effects system </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance,editor"> <div class="description"> Runtime lightmap generation </div> <div class="long-description"> Have dozens of high-resolution shadowed static lights, without having to download a lightmap over network </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance"> <div class="description"> Static lighting optimizations </div> <div class="long-description"> Use hundreds of static lights with specular on any platform </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics"> <div class="description"> Blend shape animation </div> <div class="long-description"> Support for blend shape animation on your models </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor"> <div class="description"> Templates </div> <div class="long-description"> Create reusable Entity hierarchies as Templates for faster editing workflows </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics"> <div class="description"> Soft shadows and light cookies </div> <div class="long-description"> Select from multiple shadow casting algorithms to suit your performance needs. Light cookies enable cool effects cheaply. </div> </div> <div class="pop-box stats expanded animatable" feature-labels="pipeline,editor"> <div class="description"> Asset importer and manager </div> <div class="long-description"> Import assets including 3D models and animations (FBX, OBJ, DAE, 3DS), textures including HDR textures, audio files and more </div> </div> <div class="pop-box stats expanded animatable" feature-labels="pipeline,graphics"> <div class="description"> Linear & HDR graphics pipeline </div> <div class="long-description"> Linear & HDR pipeline: gamma-correct, tonemapped rendering, support for HDR cubemaps and lightmaps </div> </div> <div class="pop-box stats expanded animatable" feature-labels="engine"> <div class="description"> Input device API </div> <div class="long-description"> Support any input device including keyboard, mouse, gamepads or touchscreens </div> </div> <div class="pop-box stats expanded animatable" feature-labels="ui"> <div class="description"> Signed distance field font render </div> <div class="long-description"> Convert TTF/OTF/etc fonts into font assets and render crisp text into PlayCanvas scenes </div> </div> <div class="pop-box stats expanded animatable" feature-labels="engine"> <div class="description"> Rigid body physics engine </div> <div class="long-description"> Enable applications to load faster by deferring loading of non-essential assets </div> </div> <div class="pop-box stats expanded animatable" feature-labels="ui,mobile"> <div class="description"> Response user interface tools </div> <div class="long-description"> Components that allow you to create your own responsive 2D or 3D UIs </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor,mobile"> <div class="description"> On-device development & testing </div> <div class="long-description"> Fast iteration time using real-time updating on mobile devices </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor"> <div class="description"> Powerful asset filtering </div> <div class="long-description"> Search and filter your large asset collection for quick development </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor"> <div class="description"> Realtime editing of scenes </div> <div class="long-description"> See changes from your team mates instantly with our Google-docs style collaboration features. </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,pipeline"> <div class="description"> Cubemap prefiltering </div> <div class="long-description"> Set up image-based lighting with the click of a button </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor,performance"> <div class="description"> In-app visual profiler </div> <div class="long-description"> Profiler overlay which displays graphs, timings and stats in realtime for your PlayCanvas application </div> </div> <div class="pop-box stats expanded animatable" feature-labels="graphics,performance,editor"> <div class="description"> One-click texture compression </div> <div class="long-description"> Compress all your project's textures to Basis with a single click </div> </div> <div class="pop-box stats expanded animatable" feature-labels="editor"> <div class="description"> Material editor </div> <div class="long-description"> Quickly and easily tweak materials visually in realtime </div> </div> <div class="pop-box stats expanded animatable" feature-labels="performance,mobile"> <div class="description"> Multi-platform support </div> <div class="long-description"> Run the Editor on any device: desktop, laptop, tablet or mobile </div> </div> </div> </div> </div> <!-- get started --> <div class="section get-started"> <h1 class="title"> Get started for free </h1> <h4 class="sub-text"> Free access to all PlayCanvas features, unlimited public projects and free hosting </h4> <div class="variable-order"> <div class="pop-box login"> <div class="inputs-wrapper"> <form id="signup-form" method="post" action="https://login.playcanvas.com/signup"> <div class="text-fields"> <div class="login-col"> <label class="name">Email <input type="email" name="email"> </label> </div> <div class="login-col"> <label class="name">Password <input type="password" name="password"> </label> </div> <div class="login-col"> <label class="name">Confirm Password <input type="password" name="confirm_password"> </label> </div> </div> <button id="submit" type="submit"> <span class="button call-to-action login-button"> Sign up </span> </button> </form> </div> </div> <div class="or-rule"> OR </div> <a href="https://login.playcanvas.com/signup"> <span class="button light signup google-button"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"> <g fill="none" fill-rule="evenodd"> <path fill="#EA4335" d="M9,3.48 C10.69,3.48 11.83,4.21 12.48,4.82 L15.02,2.34 C13.46,0.89 11.43,0 9,0 C5.48,0 2.44,2.02 0.96,4.96 L3.87,7.22 C4.6,5.05 6.62,3.48 9,3.48 L9,3.48 Z"></path> <path fill="#4285F4" d="M17.64,9.2 C17.64,8.46 17.58,7.92 17.45,7.36 L9,7.36 L9,10.7 L13.96,10.7 C13.86,11.53 13.32,12.78 12.12,13.62 L14.96,15.82 C16.66,14.25 17.64,11.94 17.64,9.2 L17.64,9.2 Z"></path> <path fill="#FBBC05" d="M3.88,10.78 C3.69,10.22 3.58,9.62 3.58,9 C3.58,8.38 3.69,7.78 3.87,7.22 L0.96,4.96 C0.35,6.18 0,7.55 0,9 C0,10.45 0.35,11.82 0.96,13.04 L3.88,10.78 L3.88,10.78 Z"></path> <path fill="#34A853" d="M9,18 C11.43,18 13.47,17.2 14.96,15.82 L12.12,13.62 C11.36,14.15 10.34,14.52 9,14.52 C6.62,14.52 4.6,12.95 3.88,10.78 L0.97,13.04 C2.45,15.98 5.48,18 9,18 L9,18 Z"></path> </g> </svg> Sign up with Google </span> <span class="button light signup github-button"> <?xml version="1.0" encoding="utf-8"?> <svg viewBox="122.44 27.141 17.24 16.954" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M 131.067 27.141 C 126.296 27.141 122.44 31.026 122.44 35.833 C 122.44 39.674 124.911 42.927 128.34 44.078 C 128.768 44.165 128.925 43.891 128.925 43.661 C 128.925 43.459 128.911 42.769 128.911 42.048 C 126.51 42.567 126.011 41.013 126.011 41.013 C 125.626 40.005 125.054 39.746 125.054 39.746 C 124.268 39.214 125.111 39.214 125.111 39.214 C 125.983 39.271 126.44 40.107 126.44 40.107 C 127.211 41.431 128.453 41.056 128.953 40.826 C 129.025 40.265 129.254 39.876 129.497 39.66 C 127.581 39.459 125.568 38.71 125.568 35.371 C 125.568 34.423 125.911 33.645 126.454 33.042 C 126.369 32.825 126.068 31.932 126.54 30.739 C 126.54 30.739 127.269 30.508 128.91 31.631 C 129.614 31.44 130.339 31.344 131.067 31.343 C 131.796 31.343 132.539 31.443 133.224 31.631 C 134.867 30.508 135.595 30.739 135.595 30.739 C 136.066 31.932 135.767 32.825 135.681 33.042 C 136.237 33.645 136.566 34.423 136.566 35.371 C 136.566 38.71 134.552 39.444 132.624 39.66 C 132.938 39.934 133.21 40.452 133.21 41.272 C 133.21 42.437 133.196 43.373 133.196 43.661 C 133.196 43.891 133.352 44.165 133.781 44.078 C 137.208 42.927 139.68 39.674 139.68 35.833 C 139.693 31.026 135.823 27.141 131.067 27.141 Z" style="fill: rgb(255, 255, 255);"/> </svg> Sign up with GitHub </span> </a> <div class="feature-checkboxes"> <div class="col3"> <span class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <g> <path d="M16,32 C13.8465064,32 11.7843467,31.5747237 9.81345927,30.7241583 C7.84257181,29.8735929 6.13932241,28.7300722 4.70365998,27.2935617 C3.26799754,25.8570513 2.12515183,24.1527958 1.27508855,22.1807442 C0.425025266,20.2086926 0,18.145315 0,15.9905493 C0,13.8357837 0.425025266,11.772406 1.27508855,9.8003544 C2.12515183,7.8283028 3.26799754,6.12719754 4.70365998,4.6969876 C6.13932241,3.26677765 7.84257181,2.12640709 9.81345927,1.2758417 C11.7843467,0.425276314 13.8465064,0 16,0 C18.1534936,0 20.2156533,0.425276314 22.1865407,1.2758417 C24.1574282,2.12640709 25.8606776,3.26677765 27.29634,4.6969876 C28.7320025,6.12719754 29.8748482,7.8283028 30.7249115,9.8003544 C31.5749747,11.772406 32,13.8357837 32,15.9905493 C32,18.145315 31.5749747,20.2086926 30.7249115,22.1807442 C29.8748482,24.1527958 28.7320025,25.8570513 27.29634,27.2935617 C25.8606776,28.7300722 24.1574282,29.8735929 22.1865407,30.7241583 C20.2156533,31.5747237 18.1534936,32 16,32 Z M16,4.25280567 C14.3880281,4.25280567 12.8484922,4.56467497 11.3813459,5.18842292 C9.91419967,5.81217087 8.65171721,6.65012272 7.59386068,7.7023036 C6.53600416,8.75448449 5.69539863,10.0019617 5.07201889,11.4447726 C4.44863915,12.8875835 4.13695396,14.4028273 4.13695396,15.9905493 C4.13695396,18.145315 4.66587429,20.133088 5.72373081,21.9539279 C6.78158734,23.7747679 8.22037658,25.214407 10.0401417,26.2728884 C11.8599068,27.3313697 13.8465064,27.8606025 16,27.8606025 C17.5867848,27.8606025 19.1011341,27.5487332 20.5430933,26.9249852 C21.9850525,26.3012373 23.2317932,25.4601352 24.283353,24.4016539 C25.3349128,23.3431725 26.17237,22.0799443 26.7957497,20.6119315 C27.4191294,19.1439186 27.7308146,17.6034733 27.7308146,15.9905493 C27.7308146,14.4028273 27.4191294,12.8875835 26.7957497,11.4447726 C26.17237,10.0019617 25.3349128,8.75448449 24.283353,7.7023036 C23.2317932,6.65012272 21.9850525,5.81217087 20.5430933,5.18842292 C19.1011341,4.56467497 17.5867848,4.25280567 16,4.25280567 Z M22.3282172,9.03484938 L25.2939787,12.0023627 L13.6765053,23.6077968 L6.46044864,16.3874778 L9.42621015,13.4199646 L13.6765053,17.6727702 L22.3282172,9.03484938 Z"></path> </g> </svg> </span> <span class="text"> Unlimited public projects </span> </div> <div class="col3"> <span class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <g> <path d="M16,32 C13.8465064,32 11.7843467,31.5747237 9.81345927,30.7241583 C7.84257181,29.8735929 6.13932241,28.7300722 4.70365998,27.2935617 C3.26799754,25.8570513 2.12515183,24.1527958 1.27508855,22.1807442 C0.425025266,20.2086926 0,18.145315 0,15.9905493 C0,13.8357837 0.425025266,11.772406 1.27508855,9.8003544 C2.12515183,7.8283028 3.26799754,6.12719754 4.70365998,4.6969876 C6.13932241,3.26677765 7.84257181,2.12640709 9.81345927,1.2758417 C11.7843467,0.425276314 13.8465064,0 16,0 C18.1534936,0 20.2156533,0.425276314 22.1865407,1.2758417 C24.1574282,2.12640709 25.8606776,3.26677765 27.29634,4.6969876 C28.7320025,6.12719754 29.8748482,7.8283028 30.7249115,9.8003544 C31.5749747,11.772406 32,13.8357837 32,15.9905493 C32,18.145315 31.5749747,20.2086926 30.7249115,22.1807442 C29.8748482,24.1527958 28.7320025,25.8570513 27.29634,27.2935617 C25.8606776,28.7300722 24.1574282,29.8735929 22.1865407,30.7241583 C20.2156533,31.5747237 18.1534936,32 16,32 Z M16,4.25280567 C14.3880281,4.25280567 12.8484922,4.56467497 11.3813459,5.18842292 C9.91419967,5.81217087 8.65171721,6.65012272 7.59386068,7.7023036 C6.53600416,8.75448449 5.69539863,10.0019617 5.07201889,11.4447726 C4.44863915,12.8875835 4.13695396,14.4028273 4.13695396,15.9905493 C4.13695396,18.145315 4.66587429,20.133088 5.72373081,21.9539279 C6.78158734,23.7747679 8.22037658,25.214407 10.0401417,26.2728884 C11.8599068,27.3313697 13.8465064,27.8606025 16,27.8606025 C17.5867848,27.8606025 19.1011341,27.5487332 20.5430933,26.9249852 C21.9850525,26.3012373 23.2317932,25.4601352 24.283353,24.4016539 C25.3349128,23.3431725 26.17237,22.0799443 26.7957497,20.6119315 C27.4191294,19.1439186 27.7308146,17.6034733 27.7308146,15.9905493 C27.7308146,14.4028273 27.4191294,12.8875835 26.7957497,11.4447726 C26.17237,10.0019617 25.3349128,8.75448449 24.283353,7.7023036 C23.2317932,6.65012272 21.9850525,5.81217087 20.5430933,5.18842292 C19.1011341,4.56467497 17.5867848,4.25280567 16,4.25280567 Z M22.3282172,9.03484938 L25.2939787,12.0023627 L13.6765053,23.6077968 L6.46044864,16.3874778 L9.42621015,13.4199646 L13.6765053,17.6727702 L22.3282172,9.03484938 Z"></path> </g> </svg> </span> <span class="text"> 1GB Storage </span> </div> <div class="col3"> <span class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <g> <path d="M16,32 C13.8465064,32 11.7843467,31.5747237 9.81345927,30.7241583 C7.84257181,29.8735929 6.13932241,28.7300722 4.70365998,27.2935617 C3.26799754,25.8570513 2.12515183,24.1527958 1.27508855,22.1807442 C0.425025266,20.2086926 0,18.145315 0,15.9905493 C0,13.8357837 0.425025266,11.772406 1.27508855,9.8003544 C2.12515183,7.8283028 3.26799754,6.12719754 4.70365998,4.6969876 C6.13932241,3.26677765 7.84257181,2.12640709 9.81345927,1.2758417 C11.7843467,0.425276314 13.8465064,0 16,0 C18.1534936,0 20.2156533,0.425276314 22.1865407,1.2758417 C24.1574282,2.12640709 25.8606776,3.26677765 27.29634,4.6969876 C28.7320025,6.12719754 29.8748482,7.8283028 30.7249115,9.8003544 C31.5749747,11.772406 32,13.8357837 32,15.9905493 C32,18.145315 31.5749747,20.2086926 30.7249115,22.1807442 C29.8748482,24.1527958 28.7320025,25.8570513 27.29634,27.2935617 C25.8606776,28.7300722 24.1574282,29.8735929 22.1865407,30.7241583 C20.2156533,31.5747237 18.1534936,32 16,32 Z M16,4.25280567 C14.3880281,4.25280567 12.8484922,4.56467497 11.3813459,5.18842292 C9.91419967,5.81217087 8.65171721,6.65012272 7.59386068,7.7023036 C6.53600416,8.75448449 5.69539863,10.0019617 5.07201889,11.4447726 C4.44863915,12.8875835 4.13695396,14.4028273 4.13695396,15.9905493 C4.13695396,18.145315 4.66587429,20.133088 5.72373081,21.9539279 C6.78158734,23.7747679 8.22037658,25.214407 10.0401417,26.2728884 C11.8599068,27.3313697 13.8465064,27.8606025 16,27.8606025 C17.5867848,27.8606025 19.1011341,27.5487332 20.5430933,26.9249852 C21.9850525,26.3012373 23.2317932,25.4601352 24.283353,24.4016539 C25.3349128,23.3431725 26.17237,22.0799443 26.7957497,20.6119315 C27.4191294,19.1439186 27.7308146,17.6034733 27.7308146,15.9905493 C27.7308146,14.4028273 27.4191294,12.8875835 26.7957497,11.4447726 C26.17237,10.0019617 25.3349128,8.75448449 24.283353,7.7023036 C23.2317932,6.65012272 21.9850525,5.81217087 20.5430933,5.18842292 C19.1011341,4.56467497 17.5867848,4.25280567 16,4.25280567 Z M22.3282172,9.03484938 L25.2939787,12.0023627 L13.6765053,23.6077968 L6.46044864,16.3874778 L9.42621015,13.4199646 L13.6765053,17.6727702 L22.3282172,9.03484938 Z"></path> </g> </svg> </span> <span class="text"> Free hosting on PlayCanvas </span> </div> </div> </div> </div> <div class="section"> <h1 class="title"> Contact Us </h1> <h4 class="sub-text"> Drop us a line at <a target="_blank" href="mailto:support@playcanvas.com">support@playcanvas.com</a> </h4> </div> <!-- footer --> <div id="footer"> <div class="links-wrapper"> <div class="nav-links"> <span class="nav-link"> <a href="https://developer.playcanvas.com">Learn</a> </span> <span class="nav-link"> <a href="https://blog.playcanvas.com/">Blog</a> </span> <span class="nav-link"> <a href="/contact">Contact</a> </span> <span class="nav-link"> <a href="/privacy">Privacy Policy</a> </span> <span class="nav-link"> <a href="/terms">Terms of Use</a> </span> <span class="nav-link"> <a href="/cookies">Cookies</a> </span> </div> </div> </div> <script async src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="f91a844d-1f3a-40ee-8434-e5049aee38da"></script> <script type="text/javascript"> if (!window._optanonCallbacks) { window._optanonCallbacks = []; } function OptanonWrapper() { for (var i = 0; i < _optanonCallbacks.length; i++) { _optanonCallbacks[i](); } } </script> </body> </html>