3D Asset Store Propsplanet upgrades from Unity to PlayCanvas | PlayCanvas Blog
-
+
diff --git a/404.html b/404.html
index 39e23ec33..8632916e4 100644
--- a/404.html
+++ b/404.html
@@ -5,7 +5,7 @@
Page Not Found | PlayCanvas Blog
-
+
diff --git a/a-graph-rendering-library-for-the-web-pcui-graph/index.html b/a-graph-rendering-library-for-the-web-pcui-graph/index.html
index 03037adab..0822ded1b 100644
--- a/a-graph-rendering-library-for-the-web-pcui-graph/index.html
+++ b/a-graph-rendering-library-for-the-web-pcui-graph/index.html
@@ -5,7 +5,7 @@
A Graph Rendering Library for the Web: PCUI Graph | PlayCanvas Blog
-
+
diff --git a/a-multiplayer-3rd-person-shooter-in-html5/index.html b/a-multiplayer-3rd-person-shooter-in-html5/index.html
index ee4441d56..3c896099b 100644
--- a/a-multiplayer-3rd-person-shooter-in-html5/index.html
+++ b/a-multiplayer-3rd-person-shooter-in-html5/index.html
@@ -5,7 +5,7 @@
Making a multiplayer 3rd-person shooter in HTML5 | PlayCanvas Blog
-
+
diff --git a/a-new-ui-for-the-playcanvas-editor/index.html b/a-new-ui-for-the-playcanvas-editor/index.html
index c06a7a474..f5e0c165b 100644
--- a/a-new-ui-for-the-playcanvas-editor/index.html
+++ b/a-new-ui-for-the-playcanvas-editor/index.html
@@ -5,7 +5,7 @@
A New UI for the PlayCanvas Editor | PlayCanvas Blog
-
+
diff --git a/a-wild-designer-appears/index.html b/a-wild-designer-appears/index.html
index 80f3b8dcd..7ded39956 100644
--- a/a-wild-designer-appears/index.html
+++ b/a-wild-designer-appears/index.html
@@ -5,7 +5,7 @@
A wild designer appears! | PlayCanvas Blog
-
+
diff --git a/a-wild-programmer-appears/index.html b/a-wild-programmer-appears/index.html
index 8215233af..04f334166 100644
--- a/a-wild-programmer-appears/index.html
+++ b/a-wild-programmer-appears/index.html
@@ -5,7 +5,7 @@
A wild programmer appears! | PlayCanvas Blog
-
+
diff --git a/anim-layer-masks-and-blending/index.html b/anim-layer-masks-and-blending/index.html
index 8b14532fe..762b02dc8 100644
--- a/anim-layer-masks-and-blending/index.html
+++ b/anim-layer-masks-and-blending/index.html
@@ -5,7 +5,7 @@
Anim Layer Masks and Blending | PlayCanvas Blog
-
+
diff --git a/announcing-playcanvas-answers/index.html b/announcing-playcanvas-answers/index.html
index 50ab47065..6890a9610 100644
--- a/announcing-playcanvas-answers/index.html
+++ b/announcing-playcanvas-answers/index.html
@@ -5,7 +5,7 @@
PlayCanvas Community Part 1 - Announcing PlayCanvas Answers | PlayCanvas Blog
-
+
diff --git a/announcing-the-new-playcanvas-asset-store/index.html b/announcing-the-new-playcanvas-asset-store/index.html
index 1dce57486..74570a2bb 100644
--- a/announcing-the-new-playcanvas-asset-store/index.html
+++ b/announcing-the-new-playcanvas-asset-store/index.html
@@ -5,7 +5,7 @@
Announcing the New PlayCanvas Asset Store | PlayCanvas Blog
-
+
diff --git a/apple-embraces-webgl/index.html b/apple-embraces-webgl/index.html
index 17f51895c..fb240c244 100644
--- a/apple-embraces-webgl/index.html
+++ b/apple-embraces-webgl/index.html
@@ -5,7 +5,7 @@
Apple Embraces WebGL | PlayCanvas Blog
-
+
diff --git a/archive/index.html b/archive/index.html
index 9cd8529dc..c4d1164a9 100644
--- a/archive/index.html
+++ b/archive/index.html
@@ -5,7 +5,7 @@
Archive | PlayCanvas Blog
-
+
diff --git a/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html b/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html
index 3a1a09813..baa08df8c 100644
--- a/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html
+++ b/arm-and-playcanvas-open-source-seemore-webgl-demo/index.html
@@ -5,7 +5,7 @@
Arm and PlayCanvas Open Source Seemore WebGL Demo | PlayCanvas Blog
-
+
diff --git a/assets/js/2e801cce.0b949a70.js b/assets/js/2e801cce.0b949a70.js
new file mode 100644
index 000000000..6ac4b475f
--- /dev/null
+++ b/assets/js/2e801cce.0b949a70.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_playcanvas_blog=self.webpackChunk_playcanvas_blog||[]).push([[67636],{61422:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"build-webgpu-apps-today-with-playcanvas","metadata":{"permalink":"/build-webgpu-apps-today-with-playcanvas","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-04-18-build-webgpu-apps-today-with-playcanvas.md","source":"@site/blog/2024-04-18-build-webgpu-apps-today-with-playcanvas.md","title":"Build WebGPU Apps Today with PlayCanvas","description":"It\'s here! \ud83e\udd73 Today, we\'re excited to announce that WebGPU support has officially arrived in the PlayCanvas Editor.","date":"2024-04-18T00:00:00.000Z","tags":[{"label":"webgpu","permalink":"/tags/webgpu"},{"label":"graphics","permalink":"/tags/graphics"},{"label":"editor","permalink":"/tags/editor"}],"readingTime":2.09,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"build-webgpu-apps-today-with-playcanvas","title":"Build WebGPU Apps Today with PlayCanvas","tags":["webgpu","graphics","editor"]},"unlisted":false,"nextItem":{"title":"Using Visual Studio Code with PlayCanvas","permalink":"/using-visual-studio-code-with-playcanvas"}},"content":"It\'s here! \ud83e\udd73 Today, we\'re excited to announce that WebGPU support has officially arrived in the PlayCanvas Editor.\\n\\n\\n\\n## WebGPU on the Rise\\n\\nSince its inception back in 2010, PlayCanvas has been layered on top of WebGL. In 2017, we were proud to launch support for [WebGL 2.0](https://blog.playcanvas.com/mozilla-launches-webgl-2-with-playcanvas/) in partnership with our friends at Mozilla. April 2023 marked the beginning of a new era for web graphics when Google enabled WebGPU by default in Chrome 113. Since then, WebGPU adoption has exploded and today, [Web3D Survey](https://web3dsurvey.com/webgpu) reports that **62.19% of end users can now run WebGPU**. With [Firefox and Safari due to launch their WebGPU support](https://caniuse.com/webgpu) in the not-too-distant future, expect this number to rise dramatically in 2024.\\n\\n## Why WebGPU Matters\\n\\nIf you enable WebGPU for your PlayCanvas project, you may not notice much difference to begin with. In fact, we have put a great deal of effort into ensuring your WebGL projects look identical under WebGPU. But over time, there is are a great deal of opportunities to achieve performance improvements due to WebGPU\'s reduced driver overhead.\\n\\nAnother key feature unique to WebGPU is support for Compute Shaders which allow for general computation on the GPU. Support for Compute Shaders landed in [Engine v1.70.0](https://github.com/playcanvas/engine/releases/tag/v1.70.0). Here you can see Computer Shaders in action simulating 1 million particles on the GPU:\\n\\n
\\n \\n
\\n\\n[Click here](https://playcanvas.github.io/#/compute/particles) to run it for yourself in a WebGPU-enabled browser (i.e. Chrome or Edge).\\n\\nIn short, WebGPU represents the future for PlayCanvas and you can expect some incredible advances in performance and functionality over the coming months.\\n\\n## Getting Started with WebGPU\\n\\nWebGPU support in PlayCanvas is still considered \'Beta\'. There are still some unimplemented features (for example, the run-time lightmapper is still not supported). Therefore, you have to currently \'opt in\' to WebGPU support. To do this, open your Project\'s Settings in the Inspector and expand the `RENDERING` section. Then update `Graphics Devices` to include `WebGPU (beta)`.\\n\\n\\n\\nOnce we are satisfied WebGPU support has matured enough, it will become the default.\\n\\n## Your Feedback is Important\\n\\nSince WebGPU support is new, we rely on the community for feedback. What works and what doesn\'t? Please [submit an issue](https://github.com/playcanvas/editor/issues) if you discover any problems or kick off a new thread on the [forum](https://forum.playcanvas.com/) if you want to discuss WebGPU support in more detail. We want to hear what your opinions! \ud83d\udc42"},{"id":"using-visual-studio-code-with-playcanvas","metadata":{"permalink":"/using-visual-studio-code-with-playcanvas","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-04-15-using-visual-studio-code-with-playcanvas.md","source":"@site/blog/2024-04-15-using-visual-studio-code-with-playcanvas.md","title":"Using Visual Studio Code with PlayCanvas","description":"Visual Studio Code is massively popular. In the Stack Overflow 2023 Developer Survey, Visual Studio Code was ranked the most popular developer environment tool among 86,544 respondents, with 73.71% reporting that they use it.","date":"2024-04-15T00:00:00.000Z","tags":[{"label":"javascript","permalink":"/tags/javascript"},{"label":"open-source","permalink":"/tags/open-source"},{"label":"scripting","permalink":"/tags/scripting"},{"label":"workflow","permalink":"/tags/workflow"}],"readingTime":1.31,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"using-visual-studio-code-with-playcanvas","title":"Using Visual Studio Code with PlayCanvas","tags":["javascript","open-source","scripting","workflow"]},"unlisted":false,"prevItem":{"title":"Build WebGPU Apps Today with PlayCanvas","permalink":"/build-webgpu-apps-today-with-playcanvas"},"nextItem":{"title":"Massive Upgrade for the PlayCanvas Developer Site","permalink":"/massive-upgrade-for-the-playcanvas-developer-site"}},"content":"[Visual Studio Code](https://code.visualstudio.com/) is massively popular. In the Stack Overflow 2023 Developer Survey, Visual Studio Code was ranked the most popular developer environment tool among 86,544 respondents, with **73.71%** reporting that they use it.\\n\\nAny PlayCanvas developer building directly on top of the Engine will very likely opt to use VS Code. But if you use the PlayCanvas Editor, you will normally rely on the built-in, browser-based Code Editor. Today, we\'re excited to give you another option by launching an open-source **Visual Studio Code Extension for PlayCanvas**.\\n\\n\\n\\n## Benefits\\n\\nThe PlayCanvas Code Editor is actually built on the [Monaco Editor](https://github.com/microsoft/monaco-editor), the beating heart of VS Code. So why use VS Code instead of the PlayCanvas Code Editor?\\n\\n* [GitHub Copilot](https://github.com/features/copilot) - leverage AI to help you write PlayCanvas code faster.\\n* Powerful IntelliSense tools (code completion, parameter info, quick info, and member lists).\\n* Leverage a huge library of other extensions to accelerate your development.\\n\\n## We \u2764\ufe0f Open Source\\n\\nAs you might expect, we have open sourced the VS Code extension under a liberal MIT license!\\n\\n* [VS Code Extension on GitHub](https://github.com/playcanvas/vscode-extension)\\n\\nSo if you find a bug or have a suggestion, please do [log an issue](https://github.com/playcanvas/vscode-extension/issues). And for the more adventurous, consider making a code contribution!\\n\\nWe want you to feel empowered to make these tools your own. Let\'s make them awesome together! \ud83d\ude4c\\n\\n## Get Started Now\\n\\nIf this all sounds great to you, why not give it a try? Head over to the User Manual for instructions on how to get started:\\n\\n[READ THE DOCS](https://developer.playcanvas.com/user-manual/scripting/vscode-extension/)"},{"id":"massive-upgrade-for-the-playcanvas-developer-site","metadata":{"permalink":"/massive-upgrade-for-the-playcanvas-developer-site","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2024-02-08-massive-upgrade-for-playcanvas-developer-site.md","source":"@site/blog/2024-02-08-massive-upgrade-for-playcanvas-developer-site.md","title":"Massive Upgrade for the PlayCanvas Developer Site","description":"Today, we are excited to announce the brand new PlayCanvas Developer Site and API Reference Manual!","date":"2024-02-08T00:00:00.000Z","tags":[{"label":"documentation","permalink":"/tags/documentation"},{"label":"tutorial","permalink":"/tags/tutorial"},{"label":"open-source","permalink":"/tags/open-source"}],"readingTime":3.42,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"massive-upgrade-for-the-playcanvas-developer-site","title":"Massive Upgrade for the PlayCanvas Developer Site","tags":["documentation","tutorial","open-source"]},"unlisted":false,"prevItem":{"title":"Using Visual Studio Code with PlayCanvas","permalink":"/using-visual-studio-code-with-playcanvas"},"nextItem":{"title":"Compressing Gaussian Splats","permalink":"/compressing-gaussian-splats"}},"content":"Today, we are excited to announce the brand new [PlayCanvas Developer Site](https://developer.playcanvas.com/) and [API Reference Manual](https://api.playcanvas.com/)!\\n\\n## Developer Site\\n\\nLet\'s start by taking a look at the new Developer Site, home of the PlayCanvas User Manual and Tutorials.\\n\\n\\n\\n### Migrating from Metalsmith to Docusaurus\\n\\nSince PlayCanvas was born in 2011, the basic look of the Developer Site has changed little. The content was written in Markdown and converted to a static HTML site using a tool called [Metalsmith](https://metalsmith.io/). Customizing the site to our needs meant we had to write many Metalsmith plugins (for localization, navigation and more) and a lot of HTML and CSS to style the pages as we wanted.\\n\\n13 years later, the world of static site generators has moved on with lots of exciting new options! We evaluated [Docusaurus](https://docusaurus.io/) and decided to migrate over to it.\\n\\n### What\'s New\\n\\nSo what made Docusaurus so compelling? First up, the migration was going to be straightforward because, like Metalsmith, Docusaurus consumes Markdown and outputs a static site. And much of the customization we did for Metalsmith is supplied \'out-of-the-box\' with Docusaurus. So that\'s all great. But the new site comes with lots of cool new features we known you\'re going to love:\\n\\n#### \ud83d\udd0d Powerful Search\\n\\nThe site now integrates [Algolia](https://www.algolia.com/) for advanced searching of the documentation.\\n\\n\\n\\nThis is a quantum leap over what came before. Try it (by pressing `CTRL + K`) - you\'ll be amazed. \ud83e\udd2f\\n\\n#### \ud83c\udf12 Light and Dark Modes\\n\\nEasily switch between light and dark themes (by clicking on the sun/moon icon top-right).\\n\\n\\n\\n#### \ud83c\udf0f Language Selection\\n\\nSwitch language from the nav-bar. At the moment, we\'re shipping with Japanese translations.\\n\\n\\n\\n#### \ud83d\udc69\u200d\ud83d\udcbb Edit on GitHub\\n\\nAs you might expect, [the Developer Site is Open Source (MIT)](https://github.com/playcanvas/developer.playcanvas.com). Every page now has a handy link to the content on GitHub. Spot a mistake? Now can you fix it yourself and improve the docs for the community!\\n\\n#### \ud83e\udded Easier Navigation\\n\\nAt the top of each page, you\'ll find \'Sidebar Breadcrumbs\' which allow you to click back up the page hierarchy.\\n\\n\\n\\nTo the right of each page, you\'ll find a table of contents which can be a big help, especially for long pages.\\n\\n\\n\\nAnd at the bottom of each page, you\'ll find \'Previous\' and \'Next\' links that allow you to read through the User Manual sequentially.\\n\\n\\n\\n## API Reference\\n\\nWe are not just launching a new Developer Site today. We are also launching our brand new, upgraded [API Reference Manual](https://api.playcanvas.com/)!\\n\\n\\n\\n### Migrating from JSDoc to TypeDoc\\n\\nSince the start, we have relied on [JSDoc](https://jsdoc.app/) to generate our API reference manual. But since then, we have seen the introduction of [TypeDoc](https://typedoc.org/) which offers some major advantages over JSDoc.\\n\\n#### \ud83c\udfa8 High Quality Default Theme\\n\\nWhile it\'s not perfect, the default TypeDoc theme is gorgeous and a big improvement over our custom JSDoc theme. It provides:\\n\\n* Light and dark modes (like the main developer site)\\n* Links to the source code on GitHub\\n* Grouping of API into related categories\\n* Powerful search (press `/` to activate it)\\n* ...and much more!\\n\\nIt\'s a great foundation for us to begin with and we can customize the default theme to our requirements as needed.\\n\\n#### \ud83d\udd17 Easy Combining of APIs\\n\\nDid you know that PlayCanvas develops frameworks and libraries other than the PlayCanvas Engine? There\'s [PCUI](https://github.com/playcanvas/pcui), a front-end framework for web-based tools. There\'s the [PlayCanvas Editor API](https://github.com/playcanvas/editor-api) for automating the interface. And more! The new API reference collects all of the PlayCanvas APIs into a single manual.\\n\\n\\n\\n## Open Source FTW\\n\\nEverything we are announcing today is 100% open source.\\n\\n* [Developer Site on GitHub](https://github.com/playcanvas/developer.playcanvas.com)\\n* [API Reference Site on GitHub](https://github.com/playcanvas/api-reference)\\n\\nWe want to empower to community to get involved and make PlayCanvas better for everybody. It\'s never been easier to submit your first pull request on GitHub. So why wait - get started today! \u2764\ufe0f"},{"id":"compressing-gaussian-splats","metadata":{"permalink":"/compressing-gaussian-splats","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-12-05-compressing-gaussian-splats.md","source":"@site/blog/2023-12-05-compressing-gaussian-splats.md","title":"Compressing Gaussian Splats","description":"Introduction","date":"2023-12-05T00:00:00.000Z","tags":[{"label":"gaussian-splats","permalink":"/tags/gaussian-splats"},{"label":"compression","permalink":"/tags/compression"},{"label":"supersplat","permalink":"/tags/supersplat"}],"readingTime":3.61,"hasTruncateMarker":false,"authors":[{"name":"Donovan Hutchence","title":"Staff Software Engineer","url":"https://twitter.com/slimbuck7","imageURL":"https://pbs.twimg.com/profile_images/1727369755231727616/ukKVbC9b_400x400.png","key":"donovan"}],"frontMatter":{"authors":"donovan","slug":"compressing-gaussian-splats","title":"Compressing Gaussian Splats","tags":["gaussian-splats","compression","supersplat"]},"unlisted":false,"prevItem":{"title":"Massive Upgrade for the PlayCanvas Developer Site","permalink":"/massive-upgrade-for-the-playcanvas-developer-site"},"nextItem":{"title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","permalink":"/avif-webp-land-in-editor"}},"content":"### Introduction\\n\\n[**3D Gaussian Splatting**](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/) is a new method for digitizing and rendering real world objects. With gaussian splatting, you can digitize a scene from a few photos using services like [Luma Labs](https://lumalabs.ai/) or [Polycam](https://poly.cam/). These services take the set of photos and generate a 3d Gaussian Splat scene in [PLY format]().\\n\\nFor example, this is a Gaussian Splat scene rendered in PlayCanvas.\\n
\\n \\n
\\n\\n### What is a Splat?\\n\\nGaussian Splat Scenes are not made up of polygons and textures. Instead, they are made up of many (up to millions) of individual, unconnected blobs called _splats_. A splat is just a particle in space with size, orientation, color and opacity.\\n\\nBelow you can see a single brown splat selected. The splat bounding box shows its orientation and size:\\n\\n\\n\\nThe gaussian part of the name comes from the shape of splat itself: the splat opacity has a gaussian falloff from its center to its edge.\\n\\n### Engine Support\\n\\nThe PlayCanvas team has been adding support to the engine for loading and rendering Gaussian Splat PLY files:\\n\\n[](https://playcanvas.github.io/#/loaders/splat-many)\\n\\nSince the resulting files are often messy and require cleaning, we released [SuperSplat](https://playcanvas.com/super-splat), a tool for cleaning and processing gaussian splat PLY files:\\n\\n[](https://playcanvas.com/super-splat?load=https://code.playcanvas.com/viewer/guitar-cleaned.ply)\\n\\n### PLY Format\\n\\nHowever, the default gaussian splat PLY format as exported by training tools is large.\\n\\nThis is because the uncompressed format stores a large amount of data _per splat_:\\n\\n| Name | Data Format | Bytes |\\n| --------------------------- | ----------- | ----- |\\n| Position | 3 x float | 12 |\\n| Orientation | 4 x float | 16 |\\n| Scale | 3 x float | 12 |\\n| Spherical harmonics / color | 48 x float | 192 |\\n| Total | | 232 |\\n\\nFor example, the original `guitar.ply` scene file takes **132.8 MB** (**32 MB** excluding spherical harmonic data).\\n\\n### Compressed PLY Format\\n\\nSo we introduced a _compressed PLY_ format for use in runtime applications. The compressed PLY file format ignores the unused spherical harmonic data and stores the rest of the elements in quantized integers.\\n\\nThe format can be summarized as follows:\\n\\n- Split the scene into chunks of 256 splats\\n- For each chunk, store the min and max (x, y, z) for position and scale in floating point\\n- For each splat in the chunk, store a normalized and quantized value for position and scale (relative to chunk extents) and orientation and color\\n\\nThis data layout results in the following data _per chunk_:\\n\\n| Name | Data Format | Bytes |\\n| -------------- | ----------- | ----- |\\n| Position bound | 6 x float | 24 |\\n| Scale bound | 6 x float | 24 |\\n| Total | | 48 |\\n\\nAnd the following data _per splat_:\\n\\n| Name | Data Format | Bytes |\\n| ----------- | ---------------------- | ----- |\\n| Position | uint32 (11, 10, 11) | 4 |\\n| Orientation | uint32 (2, 10, 10, 10) | 4 |\\n| Scale | uint32 (11, 10, 11) | 4 |\\n| Color | uint32 (8, 8, 8, 8) | 4 |\\n| Total | | 16 |\\n\\nAs a result, the compressed version of `guitar.ply` takes only **8.7 MB**.\\n\\n### Do It Yourself\\n\\nThe easiest way to generate a compressed PLY file yourself is using the [SuperSplat tool](https://playcanvas.com/super-splat). Load the PLY file into SuperSplat and export it again using the \'Compressed Ply File\' option:\\n\\n[](https://playcanvas.com/super-splat)\\n\\nIf you are interested in the file format specifics, see [this code](https://github.com/playcanvas/engine/blob/a86bd8be0cfd4e39e9ba5e5466acb6875ab9906e/extras/splat/splat-data.js#L257) which demonstrates how to decompress the file data.\\n\\nSee [this editor project](https://playcanvas.com/project/1165904/overview/gaussiansplatdemo) for an example of loading and rendering a compressed gaussian splat PLY file. Or you can [run it here](https://playcanv.as/p/69cnpevQ/).\\n\\n### Summary and Future\\n\\nWe have introduced a new compressed PLY format for gaussian splatting which is roughly 4x smaller than uncompressed data and can be used in realtime applications.\\n\\nIn future we hope to:\\n\\n- store splats hierarchically for optimized rendering and culling\\n- implement realtime splat LOD\\n- test skinning and animation of gaussian splats\\n- further compress gaussian splat data\\n- optimize WebGPU rendering\\n\\n### References\\n\\nThe compressed format is largely based on the fine work of Aras Pranckevi\u010dius and his [blog posts](https://aras-p.info/)."},{"id":"avif-webp-land-in-editor","metadata":{"permalink":"/avif-webp-land-in-editor","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-10-11-avif-webp-lands-in-editor.md","source":"@site/blog/2023-10-11-avif-webp-lands-in-editor.md","title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","description":"AVIF + WebP Support","date":"2023-10-11T00:00:00.000Z","tags":[{"label":"editor","permalink":"/tags/editor"},{"label":"textures","permalink":"/tags/textures"},{"label":"workflow","permalink":"/tags/workflow"},{"label":"compression","permalink":"/tags/compression"}],"readingTime":2.2,"hasTruncateMarker":false,"authors":[{"name":"Mark Lundin","title":"Software Engineer","url":"https://twitter.com/mark_lundin","imageURL":"https://pbs.twimg.com/profile_images/1281491980707598336/wW0BoD7T_400x400.jpg","key":"mark"}],"frontMatter":{"authors":"mark","slug":"avif-webp-land-in-editor","title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","tags":["editor","textures","workflow","compression"]},"unlisted":false,"prevItem":{"title":"Compressing Gaussian Splats","permalink":"/compressing-gaussian-splats"},"nextItem":{"title":"glTF Viewer 4.0 Adds WebGPU Support","permalink":"/gltf-viewer-adds-webgpu-support"}},"content":"\\n\\n**Today we\'re excited to announce that PlayCanvas now supports WebP and AVIF images natively in the editor. Two new, efficient image formats built for the web.**\\n\\nThis is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.\\n\\nJPGs and PNGs have served us well. They\'re reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let\'s dive in.\\n\\n_Take a look at the following images:_\\n\\n\\n\\nThey look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you\'re working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.\\n\\nWhat does this mean for you? Well, that\'s simple: it\'s all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. \ud83d\ude4c\\n\\n#### AVIF all the things?\\n\\nOk, so browser support for AVIF is good, but not great according to [caniuse](https://caniuse.com/?search=avif), so always [check support](https://dev.to/nucliweb/detect-avif-image-support-to-use-in-your-css-4pen) and use the right format for your users. Different formats are better suited for different content. It\'s not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.\\n\\n#### Getting Started\\n\\nEasy! Just start uploading your AVIF and WebP files into the Asset Panel, and for those of you wanting to convert your existing assets, you can now right-click on your asset in the Asset Panel and quickly convert your asset into a PNG, JPG, WebP or an AVIF.\\n\\n\\n\\nSo there you have it! This is not just a feature release; it\'s our way of saying we\'re listening and we care. We\'re excited to hear your thoughts on these new features. Give them a try and share your experiences with us.\\n\\nTill then, keep creating, keep innovating!"},{"id":"gltf-viewer-adds-webgpu-support","metadata":{"permalink":"/gltf-viewer-adds-webgpu-support","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-10-10-gltf-viewer-adds-webgpu-support.md","source":"@site/blog/2023-10-10-gltf-viewer-adds-webgpu-support.md","title":"glTF Viewer 4.0 Adds WebGPU Support","description":"We\'re thrilled to announce the launch of the open source glTF Viewer 4.0, an update that supercharges your 3D model viewing experience with powerful features and support for the latest web technologies!","date":"2023-10-10T00:00:00.000Z","tags":[{"label":"ar","permalink":"/tags/ar"},{"label":"gltf","permalink":"/tags/gltf"},{"label":"viewer","permalink":"/tags/viewer"},{"label":"webgpu","permalink":"/tags/webgpu"},{"label":"webxr","permalink":"/tags/webxr"}],"readingTime":3.64,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"gltf-viewer-adds-webgpu-support","title":"glTF Viewer 4.0 Adds WebGPU Support","tags":["ar","gltf","viewer","webgpu","webxr"]},"unlisted":false,"prevItem":{"title":"Boost Your Efficiency: Editor gets Support for AVIF and WebP","permalink":"/avif-webp-land-in-editor"},"nextItem":{"title":"PlayCanvas Adds Sketchfab Integration","permalink":"/playcanvas-adds-sketchfab-itegration"}},"content":"We\'re thrilled to announce the launch of the [open source](https://github.com/playcanvas/model-viewer) **glTF Viewer 4.0**, an update that supercharges your 3D model viewing experience with powerful features and support for the latest web technologies!\\n\\n[](/img/gltf-viewer-4.png)\\n\\n_[\\"Cyber Samurai\\"](https://skfb.ly/ooZKG) by KhoaMinh is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)._\\n\\n[**TRY IT NOW**](https://playcanvas.com/viewer?load=https://s3.eu-west-1.amazonaws.com/static.playcanvas.com/models/IridescentDishWithOlives.glb&default&skybox.value=Abandoned%20Tank%20Farm&skybox.background=Projective%20Dome&debug.grid=false&shadowCatcher.enabled=true&default)\\n\\nThis new release is chock-full with enhancements aimed at providing more realistic, insightful, and versatile viewing options for your glTF files. Let\'s dive into the headline features of glTF Viewer 4.0.\\n\\n#### New WebGPU Renderer\\n\\n\\n\\nTopping the list of today\'s updates is support for WebGPU! WebGPU heralds a new era in graphics and compute capabilities, offering enhanced performance and efficiency. Users can now select WebGPU as their default renderer, and don\'t worry if your platform doesn\'t support it yet - the viewer gracefully falls back to WebGL 2, and subsequently WebGL 1, depending on API availability. Note that WebGPU support is considered beta for the moment and you\'ll need to proactively enable it and refresh the viewer to check it out:\\n\\n[](/img/gltf-viewer-webgpu-toggle.gif)\\n\\nAlso make sure you\'re running the viewer in a browser that supports WebGPU. At time of writing, this means Google Chrome!\\n\\n#### Enhanced WebXR AR Mode\\n\\n
\\n \\n
\\n\\nTake your 3D models into the real world with our revamped WebXR Augmented Reality (AR) mode! Available currently on Android devices, this enhanced AR mode lets you view any model in your actual environment, complete with intuitive new controls that allow you to accurately position and rotate objects in the real world. Let\'s hope Apple decides to roll out WebXR support on iOS soon! \ud83d\ude4f\\n\\n#### Frame Selected Node\\n\\n
\\n \\n
\\n\\nNavigating large scenes can be a pain - Viewer 4.0 addresses this by allowing you to select a node in the scene via the hierarchy panel on the left. You can then press \'F\' on the keyboard to frame that node and recenter the orbit camera on that node\'s position.\\n\\n#### Better Immersion with Projective Sky Dome\\n\\n
\\n \\n
\\n\\n_[\\"130\\"](https://skfb.ly/6R9Ow) by mononofu is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)._\\n\\nExperience realistic photographic skies with our new projective sky dome! While previous versions allowed for skyboxex with an infinite projection, 4.0 introduces a dome-shaped skybox projection that incorporates a flat ground plane. This warps the skybox texture to have a more believable appearance, delivering a more authentic and immersive perspective, melding your 3D models with strikingly realistic backdrops.\\n\\n#### Debug and Inspect with Render Mode\\n\\n[](/img/gltf-viewer-render-mode.gif)\\n\\nEnsuring that developers can seamlessly troubleshoot and inspect glTF files, the new render mode allows you to select and display individual inputs/outputs of the render pipeline, including albedo, emissive, normals, gloss, AO, and more. This new level of insight is invaluable for debugging, making it even easier to work with your glTF data.\\n\\n#### Enhanced Realism with VSM Shadows\\n\\nThe addition of Variance Shadow Mapping (VSM) casts your 3D scenes in a new light, literally! Shadows aren\'t merely aesthetic; they provide context and depth, especially in AR mode, assisting to ground your object naturally within its real-world environment. Explore scenes with a newfound depth and realism that draws viewers into the experience, both in standard and AR viewing modes. Find the new shadow controls in the Light Settings panel:\\n\\n[](/img/gltf-viewer-light-settings.png)\\n\\n### Join Our Open Source Community\\n\\nWe\'re not just excited to share these innovations with you; we\'re eager to hear your thoughts and welcome your contributions! If there\'s a feature you\'re longing for, please don\'t hesitate to [submit your requests](https://github.com/playcanvas/model-viewer/issues).\\n\\nBetter yet, become an active contributor to our codebase! Our open-source community thrives on collaboration and fresh perspectives. So, dive right in, [explore the code](https://github.com/playcanvas/model-viewer), and let\'s shape the future of 3D model viewing together! Your expertise and insights could help shape the next release.\\n\\n[**GO TO GITHUB NOW**](https://github.com/playcanvas/model-viewer)\\n\\n### Conclusion\\n\\nWith glTF Viewer 4.0, we\'re redefining the standards of 3D model viewing. From WebGPU-powered rendering to WebXR-powered AR, this update is designed to inspire, assist, and elevate your work with glTF data.\\n\\nSo stay creative, friends, and we\'ll see you on the [forums](https://forum.playcanvas.com/)! \ud83d\udc4b"},{"id":"playcanvas-adds-sketchfab-itegration","metadata":{"permalink":"/playcanvas-adds-sketchfab-itegration","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-06-26-playcanvas-adds-sketchfab-itegration.md","source":"@site/blog/2023-06-26-playcanvas-adds-sketchfab-itegration.md","title":"PlayCanvas Adds Sketchfab Integration","description":"Today, we\'re excited to announce the integration of Sketchfab into the PlayCanvas Editor!","date":"2023-06-26T00:00:00.000Z","tags":[{"label":"asset-store","permalink":"/tags/asset-store"},{"label":"editor","permalink":"/tags/editor"},{"label":"sketchfab","permalink":"/tags/sketchfab"},{"label":"workflow","permalink":"/tags/workflow"}],"readingTime":2.15,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"playcanvas-adds-sketchfab-itegration","title":"PlayCanvas Adds Sketchfab Integration","tags":["asset-store","editor","sketchfab","workflow"]},"unlisted":false,"prevItem":{"title":"glTF Viewer 4.0 Adds WebGPU Support","permalink":"/gltf-viewer-adds-webgpu-support"},"nextItem":{"title":"Moving from WordPress to Jekyll - A Case Study","permalink":"/moving-from-wordpress-to-jekyll-a-case-study"}},"content":"Today, we\'re excited to announce the integration of Sketchfab into the PlayCanvas Editor!\\n\\n
\\n \\n
\\n\\n_[\\"Spartan Armour\\"](https://skfb.ly/6QVvM) by McCarthy3D is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)._\\n\\nWith today\'s launch you\'ll have instant access to Sketchfab\'s enormous library of high quality 3D content right inside the Editor.\\n\\n### What Is Sketchfab?\\n\\n[Sketchfab](https://sketchfab.com/) is a platform that allows users to publish, share and discover 3D content on the web. You can think of it as a sort of \\"YouTube for 3D models\\". The platform hosts millions of 3D models in various formats, including glTF, OBJ, STL, and more.\\n\\nUsers can upload their 3D models to Sketchfab and embed them in other websites much like one would embed a YouTube video. This has made it popular for showcasing 3D models for a wide range of uses including game assets, 3D scans, architectural models, and educational content.\\n\\n### Accessing Sketchfab from the Asset Store\\n\\nEarlier this month, we [announced](https://blog.playcanvas.com/announcing-the-new-playcanvas-asset-store/) the brand new PlayCanvas Asset Store. The Asset Store is an in-Editor panel of useful assets that you can use in your projects. With a few clicks, you can browse, discover and import various types of content. So it is the obvious place to incorporate the vast Sketchfab content library.\\n\\nTo access the Sketchfab library, simply hit the Asset Store button on the Asset Panel header and select the SKETCHFAB filter on the left.\\n\\n[](/img/asset-store-sketchfab-open.gif)\\n\\n### Authorizing PlayCanvas to Access Sketchfab\\n\\nIf you want to import models from Sketchfab into PlayCanvas, you first need to create a Sketchfab account. Then, the first time you try to import a Sketchfab model in the Asset Store, you will be asked to authorize PlayCanvas to access your Sketchfab account.\\n\\n[](/img/asset-store-sketchfab-authorize.gif)\\n\\nIt\'s so quick and easy!\\n\\n### New License and Author Info for Assets\\n\\nSketchfab assets are all tagged with a license and an author. When you import Sketchfab content into your PlayCanvas projects, it\'s important that we preserve this information. Now, when you click on any imported asset, you\'ll see we\'ve added links to license and author information in the Inspector panel.\\n\\n[](/img/asset-store-sketchfab-license.gif)\\n\\nThis ensures that the author\'s licensing wishes are respected and that they recieve credit for their work.\\n\\n### Go Forth and Create\\n\\nWith today\'s release, it\'s never been easier to create interactive 3D experiences for the web. We hope you love the new Sketchfab integration. But, as always, we _love_ to hear your opinions so head over to the [forum](https://forum.playcanvas.com/t/playcanvas-integrates-sketchfab/31885) and join the conversation. Happy creating! \ud83d\udea7\ud83d\udc77"},{"id":"moving-from-wordpress-to-jekyll-a-case-study","metadata":{"permalink":"/moving-from-wordpress-to-jekyll-a-case-study","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-06-07-moving-from-wordpress-to-jekyll-a-case-study.md","source":"@site/blog/2023-06-07-moving-from-wordpress-to-jekyll-a-case-study.md","title":"Moving from WordPress to Jekyll - A Case Study","description":"Welcome to the new PlayCanvas blog! \ud83d\ude0e","date":"2023-06-07T00:00:00.000Z","tags":[{"label":"jekyll","permalink":"/tags/jekyll"},{"label":"wordpress","permalink":"/tags/wordpress"},{"label":"github","permalink":"/tags/github"}],"readingTime":6.73,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"moving-from-wordpress-to-jekyll-a-case-study","title":"Moving from WordPress to Jekyll - A Case Study","tags":["jekyll","wordpress","github"]},"unlisted":false,"prevItem":{"title":"PlayCanvas Adds Sketchfab Integration","permalink":"/playcanvas-adds-sketchfab-itegration"},"nextItem":{"title":"Announcing the New PlayCanvas Asset Store","permalink":"/announcing-the-new-playcanvas-asset-store"}},"content":"Welcome to the new PlayCanvas blog! \ud83d\ude0e\\n\\n\\n\\nWe have made the decision to move from WordPress to [Jekyll](https://jekyllrb.com/) and although it\'s early days, so far, we are very pleased with the results. Therefore, we thought it might be useful to explain the reasons why we did this and describe the process we followed.\\n\\n### Some History\\n\\nWe originally started our blog back in February 2012 with a very [low-key post](https://blog.playcanvas.com/hello-world/). We installed our own instance of WordPress and that functioned fine for a few years. However, in 2015, we decided that we didn\'t want to deal with managing a WordPress instance ourselves and so we signed up for [WPEngine](https://wpengine.com/), a WordPress hosting service. And there we stayed until today.\\n\\n### A Better Way?\\n\\nOver the years, some frustrations over WordPress did start to materialize. Customizing styling was tricky, bulk editing posts was not an option, managing media through the media library was quite inconvenient, and so on. On top of that, our blog was continuing to grow in popularity and WPEngine costs were rising. A team member suggested Jekyll as an alternative so we ran some tests to see what would be involved in a migration.\\n\\n### Migrating from WordPress to Jekyll\\n\\nFirst up, I should say that you should make use of ChatGPT when you attempt something like this. It made it a smooth and pleasant experience for me. But so you can see how straightforward it was, here are the key steps:\\n\\n1. **Export Your WordPress Content.** On your WordPress Dashboard, navigate to Tools > Export and select \'All Content\'. Click \'Download Export File\'. You should receive an XML file that contains all of your site\u2019s content.\\n2. **Convert WordPress Export to Jekyll Format.** To convert your WordPress export file to a Jekyll-friendly format, you can use a tool called `exitwp`. Here are the steps:\\n\\n - Clone or download `exitwp` from its [GitHub repository](https://github.com/thomasf/exitwp).\\n - Put your WordPress XML file in the `wordpress-xml` directory in the `exitwp` directory.\\n - Run `exitwp` (requires Python and some libraries, see the repo\'s `README` for details).\\n - This will generate a `_posts` directory containing all your blog posts converted into markdown format that Jekyll understands.\\n\\n3. **Setting Up Jekyll.**\\n\\n - Install Ruby and Jekyll. For installation guide refer to [Jekyll\'s official site](https://jekyllrb.com/docs/installation/).\\n - Create a new Jekyll site by typing `jekyll new my-awesome-site` in the command line.\\n - Replace the `_posts` directory in your new Jekyll site with the `_posts` directory that `exitwp` generated.\\n - You can run your site locally to see how it looks by using the command `bundle exec jekyll serve`.\\n - Then, open your browser to http://localhost:4000.\\n\\nOnce I had our blog post content successfully exported to a basic Jekyll site, I checked everything in to a new [GitHub repository](https://github.com/playcanvas/blog). From this point, I wanted any change I made to the content to be tracked via Git version control - I mean, why wouldn\'t you?\\n\\nThe initial migration to Markdown worked OK but it wasn\'t perfect. There was a lot of superfluous whitespace in the generated Markdown and syntax was broken in places. So I took the opportunity to do a wholesale spring clean of the Markdown content.\\n\\n#### Prettier\\n\\n[Prettier](https://prettier.io/) is a great code formatter but you may not know that it also has built-in support for Markdown formatting. I installed Prettier via NPM and ran it over all Markdown files:\\n\\n```shell\\nprettier --write _posts\\n```\\n\\nAll formatting was now beautifully consistent.\\n\\n#### Linkinator\\n\\n[Linkinator](https://github.com/JustinBeckwith/linkinator) is a tool for reporting broken hyperlinks in both Markdown and HTML. I scanned the locally generated Jekyll site with it using the following command:\\n\\n```shell\\nlinkinator . --server-root _site --recurse --verbosity error\\n```\\n\\nI fixed well over 100 dead links. The older the post, the more dead links there tended to be (as you might expect). While I was always able to use Linkinator on the published WordPress site, it was never convenient to skip from post to post and edit hyperlinks in the WordPress UI (we have over 220 posts). So I never made the time for it. Now I was able to quickly search and replace links in Visual Studio Code and it was a breeze.\\n\\nAside from giving your readers a better experience, here\'s what ChatGPT has to say about dead links:\\n\\n> While Google\'s algorithms are complex and multifaceted, it is generally understood that having too many broken or dead links on your site can negatively affect your website\'s SEO ranking, albeit indirectly.\\n\\nSo this step was definitely worth doing!\\n\\n#### Media Library\\n\\nEvery WordPress blog has a Media Library that contains all of the images and videos referenced by your posts. The PlayCanvas Media Library had over 1GB of content. However, I noticed that a large amount of content was not actually referenced by any post. I wanted to ensure that I exported only the _used_ media (since I didn\'t want to bloat the GitHub repository).\\n\\n- **Step 1:** Install WordPress plugin [Media Cleaner](https://wordpress.org/plugins/media-cleaner/) and use it to delete unused media files.\\n- **Step 2:** Install WordPress plugin [Export Media Library](https://wordpress.org/plugins/export-media-library/) to download all remaining media files in a ZIP.\\n\\nThis process cut the Media Library from 1GB to about 550MB. I simply extracted the ZIP contents to `assets/media` (relative to the root folder of my Jekyll site) and then did a search and replace of all media embed links to use the new file location. Easy!\\n\\n### Hosting on GitHub Pages\\n\\nI now had a fully exported and functional Jekyll blog. But where to host it? One option was to throw the static site onto a file server and put it behind a CDN. But wait, the file-set of the Jekyll blog now sits in GitHub, so why not use [GitHub Pages](https://pages.github.com/) to host the site? There are some great benefits:\\n\\n- Deployment is a breeze to set up.\\n- It\'s a managed platform so you just don\'t need to worry about maintenance and security as you would with your own infra.\\n- And, oh yeah, **it\'s free!**\\n\\n### The Pros and Cons\\n\\nSo now that we\'re migrated over, let\'s quickly summarize the key benefits:\\n\\n- **Free:** Costs for our blog are now a pleasing $0.\\n- **Secure:** We have eliminated a potential attack vector. No more password reset confirmation emails!\\n- **Powerful Tooling:** There\'s a vast array of free and open source tools to lint and format Markdown.\\n- **Easy Editing:** Choose any editor you like such as the awesome Visual Studio Code.\\n- **Versioned:** All content is now under version control providing revision history, diffing and so on.\\n- **Collaborative:** We can take contributions to the blog via GitHub\'s pull request mechanism.\\n- **Customizable:** We have fine-grain control over the HTML and styling of posts using Jekyll themes.\\n- **Platform Agnostic:** Markdown makes it trivial to migrate to any other platform in the future.\\n\\nOK, but what about the cons? \ud83e\udd14 I have to tell you - I genuinely can\'t think of any! Sure, we don\'t have comments enabled now but as I understand it, Disqus has a [Jekyll integration](https://help.disqus.com/en/articles/1935528-jekyll-installation-instructions) that we can turn on at some point. Seriously, feel free to ping me on [Twitter](https://twitter.com/willeastcott/) if you think I\'m missing something here. But I wish we had taken this step years ago.\\n\\n### Open Source and Open to Contributions\\n\\nAs mentioned, the blog is now on [GitHub](https://github.com/playcanvas/blog). Take a moment to go check out the repository and hit that Star button if you like what we\'ve done here. \u2b50 We\'ve taken the step to open source the blog\'s content under an [Attribution-NonCommercial 4.0 International](https://github.com/playcanvas/blog/blob/main/LICENSE.md) license. This is part of our continuing drive to open source most of what we do.\\n\\nUltimately, we want **you** to get involved and help us make the blog better and better over time. Consider submitting issues and pull requests yourself.\\n\\n- Submit spelling and grammar fixes.\\n- Submit design tweaks and improvements.\\n- Submit your own posts showcasing your PlayCanvas projects.\\n\\nIt\'s your blog! \ud83d\ude0a\\n\\nThat\'s all from me. Looking forward to many-a-future blogs posts on this new platform. \ud83d\udc4b"},{"id":"announcing-the-new-playcanvas-asset-store","metadata":{"permalink":"/announcing-the-new-playcanvas-asset-store","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-04-26-announcing-the-new-playcanvas-asset-store.md","source":"@site/blog/2023-04-26-announcing-the-new-playcanvas-asset-store.md","title":"Announcing the New PlayCanvas Asset Store","description":"The PlayCanvas Asset Store is the first place that users tend to go to find content for their projects. This is especially true for new users who want to get started as quickly as possible. Up until now, the Store has not been particularly easy to use and the content has not changed in quite a long time. In short, a complete overhaul and refresh has been long overdue. So today, we are incredibly excited to announce a major upgrade for the PlayCanvas Asset Store!","date":"2023-04-26T00:00:00.000Z","tags":[{"label":"asset-store","permalink":"/tags/asset-store"},{"label":"editor","permalink":"/tags/editor"},{"label":"news","permalink":"/tags/news"},{"label":"workflow","permalink":"/tags/workflow"}],"readingTime":3.425,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"announcing-the-new-playcanvas-asset-store","title":"Announcing the New PlayCanvas Asset Store","tags":["asset-store","editor","news","workflow"]},"unlisted":false,"prevItem":{"title":"Moving from WordPress to Jekyll - A Case Study","permalink":"/moving-from-wordpress-to-jekyll-a-case-study"},"nextItem":{"title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","permalink":"/initial-webgpu-support-lands-in-playcanvas-engine-1-62"}},"content":"The PlayCanvas Asset Store is the first place that users tend to go to find content for their projects. This is especially true for new users who want to get started as quickly as possible. Up until now, the Store has not been particularly easy to use and the content has not changed in quite a long time. In short, a complete overhaul and refresh has been long overdue. So today, we are incredibly excited to announce a major upgrade for the PlayCanvas Asset Store!\\n\\nFirst up, check out a little example of building a city scene using content taken from the Asset Store. A skybox, a pack of 3D city block meshes and a camera control script are imported and the city is built via drag and drop. And _not one single line of code is needed_!\\n\\n
\\n \\n
\\n\\nNow, let\'s examine some of the key highlights that make the new Asset Store so special.\\n\\n### Built Right In To The Editor\\n\\nIt should be possible to grab assets quickly, right from within the Editor itself. Why should you have to open a new tab and go hunting around the web? So to keep things as convenient as possible, the ASSET STORE button (in the Editor\'s Assets Panel) now opens a nicely designed, responsive Asset Store panel.\\n\\n[](/img/asset-store-open.gif)\\n\\nOne really cool benefit of selecting assets from within the Editor is that the currently selected Asset folder is known. This means you have compete control over where your imported assets will be saved.\\n\\n### Preview Store Assets Before Import\\n\\nSometimes, an asset thumbnail just isn\'t sufficient to tell if a particular asset is what you want.\\n\\n[](/img/asset-store-viewer.gif)\\n\\nOur new Store allows you to select a Store Item and preview it in an appropriate viewer (glTF Viewer for 3D models, Texture Viewer for textures and cubemaps).\\n\\n### Find What You Want Quickly\\n\\nAs the number of store items continues to grow, it\'s going to be incredibly important for you to be able to narrow down your assets searches. As a result, the new Store comes with powerful searching, sorting and filtering capabilities.\\n\\n[](/img/asset-store-search.gif)\\n\\nYou can filter by asset type, search asset names and descriptions and then order search results on a host of criteria.\\n\\n### Fresh New Content\\n\\nRecently, the Asset Store content was, let\'s just say, beginning to show its age. We are now in a world of HDR skyboxes, PBR materials and high polygon meshes. So it made sense to erase old store items and refresh the Store with better, more modern content. We have selected a broad variety of Creative Commons assets from fantastic content sources such as [kenney.nl](https://kenney.nl/), [HDRi Haven](https://hdri-haven.com/), [Sketchfab](https://sketchfab.com/) and Khronos\' [glTF Sample Models](https://github.com/KhronosGroup/glTF-Sample-Models).\\n\\n[](/img/asset-store-content.gif)\\n\\nIf you would have any suggestions for content you would like to be added to the Store, please do let us know!\\n\\n### The Future\\n\\nThere\'s still so much we want to do with the new Asset Store! But here are some things we have in mind:\\n\\n1. **More Content.** The important thing to say about today\'s update is that it delivers the core infrastructure on which we can iterate. It is now exceptionally easy for us to populate the store with more content. So, in the near term, you can expect to see the range of content expand quite rapidly.\\n\\n2. **Third Party Stores.** Now that we have a solid foundation in place for the Store, we have the ability to host third party stores within the same UI and maximize your choice.\\n\\n3. **More Asset Types.** Today\'s launch offers models, fonts, textures, skyboxes and scripts. Next, we want to add audio assets and template assets (AKA prefabs). Template assets in particular are very exciting because you would be able to import fully interactive, visual entities into your projects (such as a drivable vehicle or a controllable character).\\n\\nWhat would _you_ like to see us add to the Asset Store next? Let us know on the [forum](https://forum.playcanvas.com/).\\n\\nHappy creating, friends!"},{"id":"initial-webgpu-support-lands-in-playcanvas-engine-1-62","metadata":{"permalink":"/initial-webgpu-support-lands-in-playcanvas-engine-1-62","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-03-31-initial-webgpu-support-lands-in-playcanvas-engine-1-62.md","source":"@site/blog/2023-03-31-initial-webgpu-support-lands-in-playcanvas-engine-1-62.md","title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","description":"WebGPU is a cutting-edge technology that promises to revolutionize the way 3D graphics are handled on the web. As the successor to WebGL, WebGPU provides faster and more efficient rendering capabilities for complex 3D graphics and simulations.","date":"2023-03-31T00:00:00.000Z","tags":[{"label":"webgpu","permalink":"/tags/webgpu"}],"readingTime":3.095,"hasTruncateMarker":false,"authors":[{"name":"Martin Valigursky","title":"Software Engineer","url":"https://twitter.com/ValigurskyM","imageURL":"https://pbs.twimg.com/profile_images/1262848991982690305/gUUoHdk1_400x400.jpg","key":"martin"}],"frontMatter":{"authors":"martin","slug":"initial-webgpu-support-lands-in-playcanvas-engine-1-62","title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","tags":["webgpu"]},"unlisted":false,"prevItem":{"title":"Announcing the New PlayCanvas Asset Store","permalink":"/announcing-the-new-playcanvas-asset-store"},"nextItem":{"title":"WebXR AR Made Easy with PlayCanvas","permalink":"/webxr-ar-made-easy-with-playcanvas"}},"content":"WebGPU is a cutting-edge technology that promises to revolutionize the way 3D graphics are handled on the web. As the successor to WebGL, WebGPU provides faster and more efficient rendering capabilities for complex 3D graphics and simulations.\\n\\nPlayCanvas has been at the forefront of this new technology and has been working on adding WebGPU support to its platform.\\n\\nWith WebGPU, we can expect to see more immersive and interactive 3D experiences on the web in the future.\\n\\n[](/img/webgpu-area-lights-demo.jpg) \\n[_PlayCanvas WebGPU Clustered Area Lights Demo_](https://playcanvas.com/demos/arealights/)\\n\\n## Refactoring of WebGL engine\\n\\nBefore adding support for WebGPU, it\'s important to discuss the significant amount of refactoring work that was required on our existing WebGL engine. Implementing deeper architectural changes while preserving backwards compatibility required a significant amount of meticulous care.\\n\\n- To enable support for WebGPU, we needed to establish a clear separation of graphics technology that could be shared between WebGL and WebGPU. This involved a significant refactoring effort to extract WebGL-specific code into a separate set of classes.\\n- PlayCanvas utilizes a collection of shader chunks to produce GLSL shaders that implement advanced material properties and lighting modes, as well as custom shader chunks defined by users. However, since WebGPU employs the WGSL language, we used glslang and tint WASM modules to dynamically convert these shaders on-the-fly with injecting support for uniform buffers and other modifications.\\n- The PlayCanvas engine lacked explicit render passes, making the rendering process more rigid and harder to extend. This was solved by implementing a FrameGraph that allowed us to describe the rendering process as a set of render passes, their dependencies, and associated targets, which created a more flexible and performant rendering architecture.\\n- Unlike WebGL, which sets render state and shaders using a custom API, WebGPU specifies all those through render pipelines. To support both rendering APIs with optimal performance, we needed to refactor the render states into standalone objects that are efficient to compare and set up.\\n- To support the WebGPU platform, we need to undergo a significant refactoring to organize uniforms into uniform buffers.\\n- To facilitate the asynchronous creation of WebGPU device, we have introduced a new async API to create a graphics device, which is the primary breaking change required to adopt WebGPU.\\n\\n## What is left to do\\n\\n- Our primary objective is to align the WebGPU implementation with that of WebGL, and while we have made significant progress towards this goal, there are still some features that are missing. Furthermore, several smaller details require cleanup and rectification.\\n- We need to incorporate it into the Editor environment for both launched and published applications. Currently, only WebGL is available in this environment.\\n- Our primary objective is to achieve full parity with WebGL, but initially, we are focusing on basic implementations of some concepts to deliver a working implementation, which will need to be extended to meet our performance objectives.\\n- WebGPU provides developers with access to Compute Shaders, which enables more efficient parallel processing of data on the GPU. This feature can significantly improve the performance of complex algorithms and simulations, which may have been impractical to run on the CPU. With access to Compute Shaders, we can bring new visual features to the next level, such as advanced particle systems, post-processing and global illumination techniques.\\n\\n## Engine examples\\n\\nAs an early pre-release of WebGPU, we have updated several engine examples to use it, which can be accessed on [https://playcanvas.github.io](https://playcanvas.github.io/). To use WebGPU, the Chrome Canary browser is required, with the \'chrome://flags/#enable-unsafe-webgpu\' flag enabled.\\n\\n[](/img/playcanvas-examples-browser-webgpu.jpg)\\n\\n[PlayCanvas Examples Browser](https://playcanvas.github.io/)\\n\\nLet us know what you think in the [forums](https://forum.playcanvas.com/t/engine-release-v1-62/30360)!\\n\\n### Attributions\\n\\n[Oldsmobile Cutlass Supreme Sedan \'71](https://sketchfab.com/3d-models/oldsmobile-cutlass-supreme-sedan-71-78f76d386a4341b0b71745bdc50fd5ab) by Barbo is licensed under [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/)"},{"id":"webxr-ar-made-easy-with-playcanvas","metadata":{"permalink":"/webxr-ar-made-easy-with-playcanvas","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-03-16-webxr-ar-made-easy-with-playcanvas.md","source":"@site/blog/2023-03-16-webxr-ar-made-easy-with-playcanvas.md","title":"WebXR AR Made Easy with PlayCanvas","description":"We are excited to announce the launch of our WebXR AR Starter Kit, available in the New Project dialog today!","date":"2023-03-16T00:00:00.000Z","tags":[{"label":"ar","permalink":"/tags/ar"},{"label":"webxr","permalink":"/tags/webxr"}],"readingTime":0.8,"hasTruncateMarker":false,"authors":[{"name":"Steven Yau","title":"Partner Relations Manager","url":"https://twitter.com/yaustar","imageURL":"https://pbs.twimg.com/profile_images/1675831859756908545/E60-0cNq_400x400.jpg","key":"steven"}],"frontMatter":{"authors":"steven","slug":"webxr-ar-made-easy-with-playcanvas","title":"WebXR AR Made Easy with PlayCanvas","tags":["ar","webxr"]},"unlisted":false,"prevItem":{"title":"Initial WebGPU support lands in PlayCanvas Engine 1.62!","permalink":"/initial-webgpu-support-lands-in-playcanvas-engine-1-62"},"nextItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"}},"content":"We are excited to announce the launch of our WebXR AR Starter Kit, available in the New Project dialog today!\\n\\n[](/img/webar-xr-starterkit-project-dialog.jpg)\\n\\n[WebXR](https://immersiveweb.dev/) is a technology that powers immersive and interactive AR and VR experiences to be accessed through supported web browsers. This allows us to build memorable, engaging content and share them with just a URL. No installs needed!\\n\\nThe starter kit comes with all you need to kickstart your AR experience for WebXR including:\\n\\n- Real world light estimation\\n- AR shadow renderer\\n- AR object resizing and positioning controls\\n- Physics raycasting\\n- And more!\\n\\nLook how quickly you can create AR experiences below!\\n\\n
\\n \\n
\\n\\n[Pacman Arcade + animation](https://sketchfab.com/3d-models/pacman-arcade-animation-0b43f85af5384ea4bac5d6e2d3cbd008) by Daniel Br\xfcck is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)\\n\\n[Try it on your device](https://playcanv.as/p/inoDeWOQ/)\\n\\nGive the Starter Kit a try today at [playcanvas.com](https://playcanvas.com) where you can use it for free!"},{"id":"draco-mesh-compression-arrives-in-the-playcanvas-editor","metadata":{"permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-28-draco-mesh-compression-arrives-in-the-playcanvas-editor.md","source":"@site/blog/2023-02-28-draco-mesh-compression-arrives-in-the-playcanvas-editor.md","title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","description":"We are thrilled to announce the immediate availability of Draco Mesh Compression in the PlayCanvas Editor! Our latest feature allows developers to compress meshes using Google\'s Draco technology, reducing file sizes and enhancing the end-user experience.","date":"2023-02-28T00:00:00.000Z","tags":[{"label":"compression","permalink":"/tags/compression"},{"label":"editor","permalink":"/tags/editor"},{"label":"gltf","permalink":"/tags/gltf"},{"label":"performance","permalink":"/tags/performance"}],"readingTime":1.64,"hasTruncateMarker":false,"authors":[{"name":"Will Eastcott","title":"CEO","url":"https://twitter.com/willeastcott","imageURL":"https://pbs.twimg.com/profile_images/2635146631/edcd8b6dc4a34625770095941519ca8a_400x400.png","key":"will"}],"frontMatter":{"authors":"will","slug":"draco-mesh-compression-arrives-in-the-playcanvas-editor","title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","tags":["compression","editor","gltf","performance"]},"unlisted":false,"prevItem":{"title":"WebXR AR Made Easy with PlayCanvas","permalink":"/webxr-ar-made-easy-with-playcanvas"},"nextItem":{"title":"How to make your HTML5 Games Awesome!","permalink":"/how-to-make-your-html5-games-awesome"}},"content":"We are thrilled to announce the immediate availability of Draco Mesh Compression in the PlayCanvas Editor! Our latest feature allows developers to compress meshes using Google\'s Draco technology, reducing file sizes and enhancing the end-user experience.\\n\\nAt its core, [Draco Mesh Compression](https://google.github.io/draco/) reduces the amount of data needed to represent 3D graphics without compromising visual quality. The technology achieves this by applying a lossy compression algorithm to the mesh data. With less data to transfer, the result is faster load times and lower bandwidth costs for your applications.\\n\\nThe open source [PlayCanvas Engine](https://github.com/playcanvas/engine) has been able to load Draco-compressed glTF 2.0 files for quite some time now. But now you can generate these Draco-compressed glTF files in the Editor at import time. Check out how easy it is to use:\\n\\n
\\n \\n
\\n\\n_[\\"1972 Datsun 240k GT\\"](https://skfb.ly/6VtZu) by Karol Miklas is licensed under [Creative Commons Attribution-ShareAlike](https://creativecommons.org/licenses/by-sa/4.0/)._\\n\\nIn the example above, a **49.9MB** GLB file is crunched down to only **3.67MB**. That\'s a **92.6% reduction is file size**! And for the majority of scenes, you should notice _no difference in terms of visual quality_. The only cost is decompression time when the compressed GLB is downloaded by an end user, but this should be significantly less than what is saved in terms of download time.\\n\\nTo enable the feature, open your Project Settings in the Inspector, expand the Asset Tasks panel and edit the Mesh Compression setting. Then, simply Re-Import any existing FBX or GLB and compression will be applied. Any FBX or GLB subsequently imported will also respect your mesh compression setting. Read more on the [Developer Site](https://developer.playcanvas.com/user-manual/assets/import-pipeline/#mesh-compression).\\n\\nWe believe that mesh compression is going to take many types of applications to the next level, particularly e-commerce applications like product configurators, which need to load detailed meshes as fast as possible.\\n\\nGet started with PlayCanvas today and make your WebGL dreams a reality!"},{"id":"how-to-make-your-html5-games-awesome","metadata":{"permalink":"/how-to-make-your-html5-games-awesome","editUrl":"https://github.com/playcanvas/blog/tree/main/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","source":"@site/blog/2023-02-07-how-to-make-your-html5-games-awesome.md","title":"How to make your HTML5 Games Awesome!","description":"How To Make Your HTML5 Games Awesome","date":"2023-02-07T00:00:00.000Z","tags":[{"label":"gamedev","permalink":"/tags/gamedev"},{"label":"html5","permalink":"/tags/html-5"},{"label":"webgl","permalink":"/tags/webgl"}],"readingTime":11.625,"hasTruncateMarker":false,"authors":[{"name":"Paulo Oliveira","title":"Associate Partner Support Engineer","url":"https://www.linkedin.com/in/paulo-oliveira-ninitoph/","key":"paulo"}],"frontMatter":{"authors":"paulo","slug":"how-to-make-your-html5-games-awesome","title":"How to make your HTML5 Games Awesome!","tags":["gamedev","html5","webgl"]},"unlisted":false,"prevItem":{"title":"Draco Mesh Compression Arrives in the PlayCanvas Editor","permalink":"/draco-mesh-compression-arrives-in-the-playcanvas-editor"},"nextItem":{"title":"PlayCanvas now supports Microsoft volumetric video playback","permalink":"/playcanvas-now-supports-microsoft-volumetric-video-playback"}},"content":"import ReactPlayer from \'react-player\'\\n\\n\\n\\nThe quality of a video game is often determined by how polished it is. It\'s the attention to detail and the finishing touches that can make a good game great. In this article, we\'ll take a look at the importance of polish in game development and how it can significantly enhance the overall experience.\\n\\nWe\'ll use [Space Rocks!](https://playcanvas.com/project/1029772/overview/space-rocks), a simple Asteroids game created with the PlayCanvas game engine to showcase how even the smallest details can make a big impact.\\n\\n> [Game juice](https://www.youtube.com/watch?v=Fy0aCDmgnxg) is a design term to refer to the small visual and audio effects that are added to a game to make it feel more satisfying to play. This can include things like screen shakes, particle effects, and sound effects that are triggered when the player takes certain actions. Game juice is all about enhancing the overall feel of a game and making it more immersive and enjoyable.\\n\\nParticularly, we\'ll explore how game polish can be achieved through **game juice**.\\n\\n\\n\\n[Play it here!](https://playcanvas.com/project/1014332/overview/space-rocks)\\n\\n## How it started\\n\\n\\n\\nThis was our starting point before we added game juice. While the game is fully functional and plays well, it lacks the visual and audio effects that would make it truly engaging. As a result, it feels a bit dull and uninteresting.\\n\\nHowever, with the right attention to detail and some careful implementation of game juice, we can transform this basic Asteroids game into something much more exciting and satisfying to play.\\n\\n## What can we improve?\\n\\nTo think about what should have game juice, I always try to narrow down the most common interaction or core mechanic of the game. In our case, that would probably be:\\n\\n- Shooting\\n- Destroying asteroids\\n- Colliding with asteroids\\n\\nWith those three key pieces in mind, let\'s start thinking about how we can improve them.\\n\\n## For shooting\\n\\nIt\'s not very interesting right now:\\n\\n\\n\\nIf we want to change that, there\'s a few key things we can do. We can increase the fire rate through a script that allows us to easily control by decreasing the fire cooldown.\\n\\n```javascript\\nGun.attributes.add(\'cooldown\', {\\n type: \'number\',\\n default: 0.25,\\n title: \'Cooldown\',\\n description: \'How long the gun has to wait between firing each bullet\'\\n});\\n\\nGun.prototype.update = function (dt) {\\n this._cooldownTimer -= dt;\\n\\n if (this.app.mouse.isPressed(pc.MOUSEBUTTON_LEFT) && this.canFire()) {\\n this.fireBullet();\\n }\\n};\\n```\\n\\nIn fact, while we\'re at it, let\'s make shooting a bit more unpredictable. Let\'s add some spread to our shots!\\n\\n```javascript\\nGun.attributes.add(\'spread\', {\\n type: \'number\',\\n default: 10,\\n title: \'Bullet Spread\',\\n description: \'Up to how many degrees each bullet should vary in Y rotation.\'\\n});\\n\\nGun.prototype.applySpreadOn = function (bullet) {\\n var rotation = this.entity.getEulerAngles();\\n rotation.y += getRandomDeviation(this.spread);\\n bullet.setEulerAngles(rotation);\\n};\\n```\\n\\nA simple but impactful change! Here\'s how it looks with values I put in for some fun:\\n\\n\\n\\nI highly encourage you to play with these values to see what\'s fun for you!\\n\\nIt\'s getting better, but still not there. Let\'s think about more visual aspects now. What more can we do to make it more visually appealing?\\n\\nPlayCanvas has a nice feature that allows you to have tons of lights in your scene with very little performance impact! It\'s called \u2728 Clustered Lighting \u2728.\\n\\n
-
+
diff --git a/avif-webp-land-in-editor/index.html b/avif-webp-land-in-editor/index.html
index ed4f1751a..e3b580559 100644
--- a/avif-webp-land-in-editor/index.html
+++ b/avif-webp-land-in-editor/index.html
@@ -5,7 +5,7 @@
Boost Your Efficiency: Editor gets Support for AVIF and WebP | PlayCanvas Blog
-
+
@@ -14,8 +14,8 @@
This is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.
JPGs and PNGs have served us well. They're reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let's dive in.
Take a look at the following images:
-
-
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 276Kb, almost half the size of its JPG counterpart at 508Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
+
+
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
What does this mean for you? Well, that's simple: it's all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. 🙌
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/basis-texture-compression-arrives-in-playcanvas/index.html b/basis-texture-compression-arrives-in-playcanvas/index.html
index b16b0f17e..43893adc4 100644
--- a/basis-texture-compression-arrives-in-playcanvas/index.html
+++ b/basis-texture-compression-arrives-in-playcanvas/index.html
@@ -5,7 +5,7 @@
Basis Texture Compression arrives in PlayCanvas | PlayCanvas Blog
-
+
diff --git a/better-asset-management/index.html b/better-asset-management/index.html
index 74ff604e3..7b29728fd 100644
--- a/better-asset-management/index.html
+++ b/better-asset-management/index.html
@@ -5,7 +5,7 @@
Better Asset Management | PlayCanvas Blog
-
+
diff --git a/build-a-game-for-a-loved-one-this-month/index.html b/build-a-game-for-a-loved-one-this-month/index.html
index c2ca8aded..06c3aac96 100644
--- a/build-a-game-for-a-loved-one-this-month/index.html
+++ b/build-a-game-for-a-loved-one-this-month/index.html
@@ -5,7 +5,7 @@
Build a game for a loved one this month. | PlayCanvas Blog
-
+
diff --git a/build-facebook-playable-ads-with-playcanvas/index.html b/build-facebook-playable-ads-with-playcanvas/index.html
index 5e87b5736..d13293da6 100644
--- a/build-facebook-playable-ads-with-playcanvas/index.html
+++ b/build-facebook-playable-ads-with-playcanvas/index.html
@@ -5,7 +5,7 @@
Build Facebook Playable Ads with PlayCanvas! | PlayCanvas Blog
-
+
diff --git a/build-webgpu-apps-today-with-playcanvas/index.html b/build-webgpu-apps-today-with-playcanvas/index.html
index 94276a0d2..106fae3d9 100644
--- a/build-webgpu-apps-today-with-playcanvas/index.html
+++ b/build-webgpu-apps-today-with-playcanvas/index.html
@@ -5,7 +5,7 @@
Build WebGPU Apps Today with PlayCanvas | PlayCanvas Blog
-
+
diff --git a/changes-for-18th-november/index.html b/changes-for-18th-november/index.html
index 33d227eab..e706a8ba2 100644
--- a/changes-for-18th-november/index.html
+++ b/changes-for-18th-november/index.html
@@ -5,7 +5,7 @@
Changes for 18th November | PlayCanvas Blog
-
+
diff --git a/changes-for-25th-november/index.html b/changes-for-25th-november/index.html
index 5c759df7f..5deeb29ca 100644
--- a/changes-for-25th-november/index.html
+++ b/changes-for-25th-november/index.html
@@ -5,7 +5,7 @@
Changes for 25th November | PlayCanvas Blog
-
+
diff --git a/changes-to-our-editor-and-engine-releases/index.html b/changes-to-our-editor-and-engine-releases/index.html
index 1eb707403..a6d78d011 100644
--- a/changes-to-our-editor-and-engine-releases/index.html
+++ b/changes-to-our-editor-and-engine-releases/index.html
@@ -5,7 +5,7 @@
Changes to our Editor and Engine Releases | PlayCanvas Blog
-
+
diff --git a/clustered-lighting-open-beta-have-hundreds-of-dynamic-lights-in-your-scene/index.html b/clustered-lighting-open-beta-have-hundreds-of-dynamic-lights-in-your-scene/index.html
index 49cfe4dd7..e87c4bf1a 100644
--- a/clustered-lighting-open-beta-have-hundreds-of-dynamic-lights-in-your-scene/index.html
+++ b/clustered-lighting-open-beta-have-hundreds-of-dynamic-lights-in-your-scene/index.html
@@ -5,7 +5,7 @@
Clustered Lighting Open Beta - Have hundreds of dynamic lights in your scene! | PlayCanvas Blog
-
+
diff --git a/compressing-gaussian-splats/index.html b/compressing-gaussian-splats/index.html
index 38d974459..de0ff87b2 100644
--- a/compressing-gaussian-splats/index.html
+++ b/compressing-gaussian-splats/index.html
@@ -5,7 +5,7 @@
Compressing Gaussian Splats | PlayCanvas Blog
-
+
diff --git a/copy-and-paste-assets-between-projects/index.html b/copy-and-paste-assets-between-projects/index.html
index 949fa52b1..acbe10407 100644
--- a/copy-and-paste-assets-between-projects/index.html
+++ b/copy-and-paste-assets-between-projects/index.html
@@ -5,7 +5,7 @@
Copy and Paste Assets between Projects | PlayCanvas Blog
-
+
diff --git a/developer-playcanvas-com-is-open-source/index.html b/developer-playcanvas-com-is-open-source/index.html
index 0b486daf0..5ef25fb57 100644
--- a/developer-playcanvas-com-is-open-source/index.html
+++ b/developer-playcanvas-com-is-open-source/index.html
@@ -5,7 +5,7 @@
developer.playcanvas.com is open source | PlayCanvas Blog
-
+
diff --git a/developer-spotlight-rustam-zinurov/index.html b/developer-spotlight-rustam-zinurov/index.html
index f5e777f3b..ea1db1f92 100644
--- a/developer-spotlight-rustam-zinurov/index.html
+++ b/developer-spotlight-rustam-zinurov/index.html
@@ -5,7 +5,7 @@
Developer Spotlight: Rustam Zinurov | PlayCanvas Blog
-
+
diff --git a/development-update-major-improvements-ahoy/index.html b/development-update-major-improvements-ahoy/index.html
index 528f04052..984be6165 100644
--- a/development-update-major-improvements-ahoy/index.html
+++ b/development-update-major-improvements-ahoy/index.html
@@ -5,7 +5,7 @@
Development Update: Major Improvements Ahoy! | PlayCanvas Blog
-
+
diff --git a/development-update-tags-new-script-attributes/index.html b/development-update-tags-new-script-attributes/index.html
index 60f3ce878..aabc4e908 100644
--- a/development-update-tags-new-script-attributes/index.html
+++ b/development-update-tags-new-script-attributes/index.html
@@ -5,7 +5,7 @@
Development Update: Tags, New Script Attributes | PlayCanvas Blog
-
+
diff --git a/disney-selects-playcanvas-for-hour-of-code/index.html b/disney-selects-playcanvas-for-hour-of-code/index.html
index 3052e3342..6093b62a6 100644
--- a/disney-selects-playcanvas-for-hour-of-code/index.html
+++ b/disney-selects-playcanvas-for-hour-of-code/index.html
@@ -5,7 +5,7 @@
Disney Selects PlayCanvas for Hour of Code | PlayCanvas Blog
-
+
diff --git a/dooh-and-playcanvas-debut-giant-space-invaders-at-cannes-lions/index.html b/dooh-and-playcanvas-debut-giant-space-invaders-at-cannes-lions/index.html
index 3e9e46c1d..7024d9fd5 100644
--- a/dooh-and-playcanvas-debut-giant-space-invaders-at-cannes-lions/index.html
+++ b/dooh-and-playcanvas-debut-giant-space-invaders-at-cannes-lions/index.html
@@ -5,7 +5,7 @@
DOOH and PlayCanvas debut Giant Space Invaders at Cannes Lions | PlayCanvas Blog
-
+
diff --git a/draco-mesh-compression-arrives-in-the-playcanvas-editor/index.html b/draco-mesh-compression-arrives-in-the-playcanvas-editor/index.html
index 4db8db1b7..237493894 100644
--- a/draco-mesh-compression-arrives-in-the-playcanvas-editor/index.html
+++ b/draco-mesh-compression-arrives-in-the-playcanvas-editor/index.html
@@ -5,7 +5,7 @@
Draco Mesh Compression Arrives in the PlayCanvas Editor | PlayCanvas Blog
-
+
diff --git a/dungeon-fury-3d-browser-gaming-arrives-on-mobile/index.html b/dungeon-fury-3d-browser-gaming-arrives-on-mobile/index.html
index 2bd59345b..9c5d6da98 100644
--- a/dungeon-fury-3d-browser-gaming-arrives-on-mobile/index.html
+++ b/dungeon-fury-3d-browser-gaming-arrives-on-mobile/index.html
@@ -5,7 +5,7 @@
Dungeon Fury: 3D Browser Gaming Arrives on Mobile | PlayCanvas Blog
-
+
diff --git a/easy-cardboard-vr-in-webgl/index.html b/easy-cardboard-vr-in-webgl/index.html
index bfd4f57f8..0295f8d4a 100644
--- a/easy-cardboard-vr-in-webgl/index.html
+++ b/easy-cardboard-vr-in-webgl/index.html
@@ -5,7 +5,7 @@
Easy Cardboard VR in WebGL | PlayCanvas Blog
-
+
diff --git a/editor-api-beta-release/index.html b/editor-api-beta-release/index.html
index 556405ea7..a9543bd8f 100644
--- a/editor-api-beta-release/index.html
+++ b/editor-api-beta-release/index.html
@@ -5,7 +5,7 @@
Editor API Beta Release | PlayCanvas Blog
-
+
diff --git a/engine-update-streamlining-components-and-scripts/index.html b/engine-update-streamlining-components-and-scripts/index.html
index a16741c8f..49b0aaf30 100644
--- a/engine-update-streamlining-components-and-scripts/index.html
+++ b/engine-update-streamlining-components-and-scripts/index.html
@@ -5,7 +5,7 @@
Engine Update: Streamlining Components and Scripts | PlayCanvas Blog
-
+
diff --git a/enhanced-asset-api/index.html b/enhanced-asset-api/index.html
index fbd2caeb1..e3058c12f 100644
--- a/enhanced-asset-api/index.html
+++ b/enhanced-asset-api/index.html
@@ -5,7 +5,7 @@
Enhanced Asset API | PlayCanvas Blog
-
+
diff --git a/enti-brings-you-videogame-day-in-mallorca/index.html b/enti-brings-you-videogame-day-in-mallorca/index.html
index 2b447554f..738117153 100644
--- a/enti-brings-you-videogame-day-in-mallorca/index.html
+++ b/enti-brings-you-videogame-day-in-mallorca/index.html
@@ -5,7 +5,7 @@
ENTI Brings you VideoGame Day in Mallorca | PlayCanvas Blog
-
+
diff --git a/faster-load-times-with-gltfs-glb-format/index.html b/faster-load-times-with-gltfs-glb-format/index.html
index 5119e2529..9a828a131 100644
--- a/faster-load-times-with-gltfs-glb-format/index.html
+++ b/faster-load-times-with-gltfs-glb-format/index.html
@@ -5,7 +5,7 @@
Faster Load Times with glTF's GLB Format! | PlayCanvas Blog
-
+
diff --git a/feature-update-import-pipeline-improvements/index.html b/feature-update-import-pipeline-improvements/index.html
index eea839c00..42a752eed 100644
--- a/feature-update-import-pipeline-improvements/index.html
+++ b/feature-update-import-pipeline-improvements/index.html
@@ -5,7 +5,7 @@
Feature Update: Import Pipeline Improvements | PlayCanvas Blog
-
+
diff --git a/feature-update-real-time-asset-support/index.html b/feature-update-real-time-asset-support/index.html
index 7a8beeeca..a69b9ab6c 100644
--- a/feature-update-real-time-asset-support/index.html
+++ b/feature-update-real-time-asset-support/index.html
@@ -5,7 +5,7 @@
Feature update: Real-time asset support | PlayCanvas Blog
-
+
diff --git a/featured-games-featured-projects-and-activity-stream/index.html b/featured-games-featured-projects-and-activity-stream/index.html
index dc4b7ff72..8565ea051 100644
--- a/featured-games-featured-projects-and-activity-stream/index.html
+++ b/featured-games-featured-projects-and-activity-stream/index.html
@@ -5,7 +5,7 @@
Featured games, featured projects and activity stream | PlayCanvas Blog
-
+
diff --git a/find-your-dream-job-the-tech-factor/index.html b/find-your-dream-job-the-tech-factor/index.html
index 78190dd28..db9405aaa 100644
--- a/find-your-dream-job-the-tech-factor/index.html
+++ b/find-your-dream-job-the-tech-factor/index.html
@@ -5,7 +5,7 @@
Find Your Dream Job @ The Tech Factor | PlayCanvas Blog
-
+
diff --git a/friday-assets-mega-update/index.html b/friday-assets-mega-update/index.html
index 67f337dca..6d4e6cdcf 100644
--- a/friday-assets-mega-update/index.html
+++ b/friday-assets-mega-update/index.html
@@ -5,7 +5,7 @@
Friday Assets Mega-update | PlayCanvas Blog
-
+
diff --git a/game-development-trends-talk/index.html b/game-development-trends-talk/index.html
index b2d4eff8c..7139882d2 100644
--- a/game-development-trends-talk/index.html
+++ b/game-development-trends-talk/index.html
@@ -5,7 +5,7 @@
Game Development Trends Talk | PlayCanvas Blog
-
+
diff --git a/getting-started-with-webvr/index.html b/getting-started-with-webvr/index.html
index e5f7e56ec..14525a3a6 100644
--- a/getting-started-with-webvr/index.html
+++ b/getting-started-with-webvr/index.html
@@ -5,7 +5,7 @@
Getting started with WebVR | PlayCanvas Blog
-
+
diff --git a/gltf-import-arrives-in-the-playcanvas-editor/index.html b/gltf-import-arrives-in-the-playcanvas-editor/index.html
index 88c91ec97..390748ecd 100644
--- a/gltf-import-arrives-in-the-playcanvas-editor/index.html
+++ b/gltf-import-arrives-in-the-playcanvas-editor/index.html
@@ -5,7 +5,7 @@
glTF 2.0 Import Arrives in the PlayCanvas Editor | PlayCanvas Blog
-
+
diff --git a/gltf-viewer-adds-webgpu-support/index.html b/gltf-viewer-adds-webgpu-support/index.html
index 43ec3281b..ca99582f9 100644
--- a/gltf-viewer-adds-webgpu-support/index.html
+++ b/gltf-viewer-adds-webgpu-support/index.html
@@ -5,7 +5,7 @@
glTF Viewer 4.0 Adds WebGPU Support | PlayCanvas Blog
-
+
diff --git a/gltf-viewer-arrives-on-mobile-with-ar-support/index.html b/gltf-viewer-arrives-on-mobile-with-ar-support/index.html
index 4ea110ed6..4c5d935dc 100644
--- a/gltf-viewer-arrives-on-mobile-with-ar-support/index.html
+++ b/gltf-viewer-arrives-on-mobile-with-ar-support/index.html
@@ -5,7 +5,7 @@
glTF Viewer Arrives on Mobile with AR Support | PlayCanvas Blog
-
+
diff --git a/goo-create-to-migrate-userbase-to-playcanvas/index.html b/goo-create-to-migrate-userbase-to-playcanvas/index.html
index cd259c4f8..ca4ef115b 100644
--- a/goo-create-to-migrate-userbase-to-playcanvas/index.html
+++ b/goo-create-to-migrate-userbase-to-playcanvas/index.html
@@ -5,7 +5,7 @@
Goo Create to Migrate Userbase to PlayCanvas | PlayCanvas Blog
-
+
diff --git a/great-british-summer-game-jam/index.html b/great-british-summer-game-jam/index.html
index 0869ff3e4..692db40f6 100644
--- a/great-british-summer-game-jam/index.html
+++ b/great-british-summer-game-jam/index.html
@@ -5,7 +5,7 @@
Great British Summer Game Jam | PlayCanvas Blog
-
+
diff --git a/hello-world/index.html b/hello-world/index.html
index efe4530a7..8fe090ba9 100644
--- a/hello-world/index.html
+++ b/hello-world/index.html
@@ -5,7 +5,7 @@
Hello World | PlayCanvas Blog
-
+
diff --git a/how-to-make-a-video-game-in-48-hours/index.html b/how-to-make-a-video-game-in-48-hours/index.html
index 555361ca6..796ce7f89 100644
--- a/how-to-make-a-video-game-in-48-hours/index.html
+++ b/how-to-make-a-video-game-in-48-hours/index.html
@@ -5,7 +5,7 @@
How to Make a Video Game in 48 Hours | PlayCanvas Blog
-
+
diff --git a/how-to-make-your-html5-games-awesome/index.html b/how-to-make-your-html5-games-awesome/index.html
index 59dba2ce5..1df2e9db0 100644
--- a/how-to-make-your-html5-games-awesome/index.html
+++ b/how-to-make-your-html5-games-awesome/index.html
@@ -5,7 +5,7 @@
How to make your HTML5 Games Awesome! | PlayCanvas Blog
-
+
diff --git a/html5-apis-for-game-developers/index.html b/html5-apis-for-game-developers/index.html
index f1cfc6e11..69f960602 100644
--- a/html5-apis-for-game-developers/index.html
+++ b/html5-apis-for-game-developers/index.html
@@ -5,7 +5,7 @@
HTML5 APIs for game developers | PlayCanvas Blog
-
+
diff --git a/html5-game-development-community-meet-up/index.html b/html5-game-development-community-meet-up/index.html
index f8346ab70..3734d8380 100644
--- a/html5-game-development-community-meet-up/index.html
+++ b/html5-game-development-community-meet-up/index.html
@@ -5,7 +5,7 @@
HTML5 Game Development Community Meet Up | PlayCanvas Blog
-
+
diff --git a/humble-game-making-bundle/index.html b/humble-game-making-bundle/index.html
index 1501aca1e..0131e55e8 100644
--- a/humble-game-making-bundle/index.html
+++ b/humble-game-making-bundle/index.html
@@ -5,7 +5,7 @@
Humble Game Making Bundle | PlayCanvas Blog
-
+
diff --git a/idealondon-welcomes-playcanvas/index.html b/idealondon-welcomes-playcanvas/index.html
index 76a3999af..42e545dcd 100644
--- a/idealondon-welcomes-playcanvas/index.html
+++ b/idealondon-welcomes-playcanvas/index.html
@@ -5,7 +5,7 @@
IDEALondon Welcomes PlayCanvas | PlayCanvas Blog
-
+
diff --git a/implementing-cloth-simulation-in-webgl/index.html b/implementing-cloth-simulation-in-webgl/index.html
index d2653d6d6..15ec33dd6 100644
--- a/implementing-cloth-simulation-in-webgl/index.html
+++ b/implementing-cloth-simulation-in-webgl/index.html
@@ -5,7 +5,7 @@
Implementing Cloth Simulation in WebGL | PlayCanvas Blog
-
+
diff --git a/import-full-model-hierarchy-into-playcanvas/index.html b/import-full-model-hierarchy-into-playcanvas/index.html
index 18fe1de8c..e45a726b2 100644
--- a/import-full-model-hierarchy-into-playcanvas/index.html
+++ b/import-full-model-hierarchy-into-playcanvas/index.html
@@ -5,7 +5,7 @@
Import Full Model Hierarchy into PlayCanvas | PlayCanvas Blog
-
+
diff --git a/important-information-about-safari-15/index.html b/important-information-about-safari-15/index.html
index 196b146b8..858296ac1 100644
--- a/important-information-about-safari-15/index.html
+++ b/important-information-about-safari-15/index.html
@@ -5,7 +5,7 @@
Important Information about macOS Safari 15 | PlayCanvas Blog
-
+
diff --git a/importing-in-the-cloud-the-new-asset-pipeline/index.html b/importing-in-the-cloud-the-new-asset-pipeline/index.html
index 6e84b85a7..ceb39765e 100644
--- a/importing-in-the-cloud-the-new-asset-pipeline/index.html
+++ b/importing-in-the-cloud-the-new-asset-pipeline/index.html
@@ -5,7 +5,7 @@
Importing in the Cloud: New Asset Pipeline | PlayCanvas Blog
-
+
diff --git a/improvements-and-changes-to-shader-chunks-playcanvas-bytes/index.html b/improvements-and-changes-to-shader-chunks-playcanvas-bytes/index.html
index 770f943ba..df0750b3e 100644
--- a/improvements-and-changes-to-shader-chunks-playcanvas-bytes/index.html
+++ b/improvements-and-changes-to-shader-chunks-playcanvas-bytes/index.html
@@ -5,7 +5,7 @@
Improvements and changes to Shader Chunks - PlayCanvas Bytes | PlayCanvas Blog
-
+
diff --git a/index.html b/index.html
index a947db9be..7edcfd454 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
PlayCanvas Blog | PlayCanvas Blog
-
+
@@ -148,8 +148,8 @@
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/initial-webgpu-support-lands-in-playcanvas-engine-1-62/index.html b/initial-webgpu-support-lands-in-playcanvas-engine-1-62/index.html
index 2eb36cac4..822174cf5 100644
--- a/initial-webgpu-support-lands-in-playcanvas-engine-1-62/index.html
+++ b/initial-webgpu-support-lands-in-playcanvas-engine-1-62/index.html
@@ -5,7 +5,7 @@
Initial WebGPU support lands in PlayCanvas Engine 1.62! | PlayCanvas Blog
-
+
diff --git a/instant-games-and-playcanvas/index.html b/instant-games-and-playcanvas/index.html
index 3fb7523c8..05ab1a944 100644
--- a/instant-games-and-playcanvas/index.html
+++ b/instant-games-and-playcanvas/index.html
@@ -5,7 +5,7 @@
Instant Games and PlayCanvas | PlayCanvas Blog
-
+
diff --git a/intel-gives-html5-some-love-at-the-buzz-workshop/index.html b/intel-gives-html5-some-love-at-the-buzz-workshop/index.html
index efc9596c5..659b74da7 100644
--- a/intel-gives-html5-some-love-at-the-buzz-workshop/index.html
+++ b/intel-gives-html5-some-love-at-the-buzz-workshop/index.html
@@ -5,7 +5,7 @@
Intel gives HTML5 some love at the Buzz Workshop | PlayCanvas Blog
-
+
diff --git a/introducing-element-screen-components/index.html b/introducing-element-screen-components/index.html
index 463acc054..9396ea3b3 100644
--- a/introducing-element-screen-components/index.html
+++ b/introducing-element-screen-components/index.html
@@ -5,7 +5,7 @@
Introducing Element & Screen Components | PlayCanvas Blog
-
+
diff --git a/introducing-json-script-attributes/index.html b/introducing-json-script-attributes/index.html
index 64458a380..c6f7f633a 100644
--- a/introducing-json-script-attributes/index.html
+++ b/introducing-json-script-attributes/index.html
@@ -5,7 +5,7 @@
Introducing JSON Script Attributes | PlayCanvas Blog
-
+
diff --git a/introducing-pcui-an-open-source-ui-framework-for-the-web/index.html b/introducing-pcui-an-open-source-ui-framework-for-the-web/index.html
index ec1486026..7f196d955 100644
--- a/introducing-pcui-an-open-source-ui-framework-for-the-web/index.html
+++ b/introducing-pcui-an-open-source-ui-framework-for-the-web/index.html
@@ -5,7 +5,7 @@
Introducing PCUI - An Open Source UI Framework for the Web | PlayCanvas Blog
-
+
diff --git a/introducing-the-anim-state-graph/index.html b/introducing-the-anim-state-graph/index.html
index e2dc9a8cd..d3621be52 100644
--- a/introducing-the-anim-state-graph/index.html
+++ b/introducing-the-anim-state-graph/index.html
@@ -5,7 +5,7 @@
Introducing the Anim State Graph | PlayCanvas Blog
-
+
diff --git a/introducing-the-new-code-editor/index.html b/introducing-the-new-code-editor/index.html
index 21b30f0d8..62ce8e807 100644
--- a/introducing-the-new-code-editor/index.html
+++ b/introducing-the-new-code-editor/index.html
@@ -5,7 +5,7 @@
Introducing the new Code Editor | PlayCanvas Blog
-
+
diff --git a/introducing-the-playcanvas-localization-system/index.html b/introducing-the-playcanvas-localization-system/index.html
index 2bb4122e2..147c72f1d 100644
--- a/introducing-the-playcanvas-localization-system/index.html
+++ b/introducing-the-playcanvas-localization-system/index.html
@@ -5,7 +5,7 @@
Introducing the PlayCanvas Localization System | PlayCanvas Blog
-
+
diff --git a/introduction-to-ammo-js/index.html b/introduction-to-ammo-js/index.html
index 684d06a09..f2fd861a4 100644
--- a/introduction-to-ammo-js/index.html
+++ b/introduction-to-ammo-js/index.html
@@ -5,7 +5,7 @@
Introduction to ammo.js | PlayCanvas Blog
-
+
diff --git a/introduction-to-playcanvas/index.html b/introduction-to-playcanvas/index.html
index c984fd8fc..0859ef281 100644
--- a/introduction-to-playcanvas/index.html
+++ b/introduction-to-playcanvas/index.html
@@ -5,7 +5,7 @@
Introduction to PlayCanvas | PlayCanvas Blog
-
+
diff --git a/ios-8-launched-with-webgl/index.html b/ios-8-launched-with-webgl/index.html
index c3f9f1bd6..8eb47a9d1 100644
--- a/ios-8-launched-with-webgl/index.html
+++ b/ios-8-launched-with-webgl/index.html
@@ -5,7 +5,7 @@
iOS 8 launched with WebGL | PlayCanvas Blog
-
+
diff --git a/ios-webgl-support/index.html b/ios-webgl-support/index.html
index 7466b5e35..0c704f17a 100644
--- a/ios-webgl-support/index.html
+++ b/ios-webgl-support/index.html
@@ -5,7 +5,7 @@
iOS WebGL Support | PlayCanvas Blog
-
+
diff --git a/leap-motion-playcanvas-physics-playground/index.html b/leap-motion-playcanvas-physics-playground/index.html
index 3f75e8797..5ca4d0b3d 100644
--- a/leap-motion-playcanvas-physics-playground/index.html
+++ b/leap-motion-playcanvas-physics-playground/index.html
@@ -5,7 +5,7 @@
Leap Motion + PlayCanvas = Physics Playground | PlayCanvas Blog
-
+
diff --git a/learn-the-playcanvas-api-with-the-engine-examples-browser/index.html b/learn-the-playcanvas-api-with-the-engine-examples-browser/index.html
index ed7357e4e..ade9fe0bc 100644
--- a/learn-the-playcanvas-api-with-the-engine-examples-browser/index.html
+++ b/learn-the-playcanvas-api-with-the-engine-examples-browser/index.html
@@ -5,7 +5,7 @@
Learn the PlayCanvas API with the Engine Examples Browser | PlayCanvas Blog
-
+
diff --git a/light-and-collision-component-api/index.html b/light-and-collision-component-api/index.html
index 5be973645..3604b7231 100644
--- a/light-and-collision-component-api/index.html
+++ b/light-and-collision-component-api/index.html
@@ -5,7 +5,7 @@
Light and Collision Component API | PlayCanvas Blog
-
+
diff --git a/london-html5-game-developers/index.html b/london-html5-game-developers/index.html
index 132a50098..f87072cc7 100644
--- a/london-html5-game-developers/index.html
+++ b/london-html5-game-developers/index.html
@@ -5,7 +5,7 @@
London HTML5 Game Developers | PlayCanvas Blog
-
+
diff --git a/ludum-dare-28-playcanvas-round-up/index.html b/ludum-dare-28-playcanvas-round-up/index.html
index 702674c41..3a0c982fd 100644
--- a/ludum-dare-28-playcanvas-round-up/index.html
+++ b/ludum-dare-28-playcanvas-round-up/index.html
@@ -5,7 +5,7 @@
Ludum Dare 28: PlayCanvas Round-Up | PlayCanvas Blog
-
+
diff --git a/maintenance-saturday-june-10-9am-utc/index.html b/maintenance-saturday-june-10-9am-utc/index.html
index 6affb2cc6..dc4024c30 100644
--- a/maintenance-saturday-june-10-9am-utc/index.html
+++ b/maintenance-saturday-june-10-9am-utc/index.html
@@ -5,7 +5,7 @@
Maintenance Saturday June 10, 9am UTC | PlayCanvas Blog
-
+
diff --git a/making-an-html5-game-lunar-lander/index.html b/making-an-html5-game-lunar-lander/index.html
index bf0dc85b8..7ce558b51 100644
--- a/making-an-html5-game-lunar-lander/index.html
+++ b/making-an-html5-game-lunar-lander/index.html
@@ -5,7 +5,7 @@
Making an HTML5 Game: Lunar Lander | PlayCanvas Blog
-
+
diff --git a/making-an-html5-game-pong/index.html b/making-an-html5-game-pong/index.html
index 537f1b27c..119d5d792 100644
--- a/making-an-html5-game-pong/index.html
+++ b/making-an-html5-game-pong/index.html
@@ -5,7 +5,7 @@
Making an HTML5 Game: Pong | PlayCanvas Blog
-
+
diff --git a/massive-upgrade-for-the-playcanvas-developer-site/index.html b/massive-upgrade-for-the-playcanvas-developer-site/index.html
index d0b1b14be..39388ab4a 100644
--- a/massive-upgrade-for-the-playcanvas-developer-site/index.html
+++ b/massive-upgrade-for-the-playcanvas-developer-site/index.html
@@ -5,7 +5,7 @@
Massive Upgrade for the PlayCanvas Developer Site | PlayCanvas Blog
-
+
diff --git a/master-archer-lands-on-facebook-instant-games/index.html b/master-archer-lands-on-facebook-instant-games/index.html
index a014743e1..347d4643c 100644
--- a/master-archer-lands-on-facebook-instant-games/index.html
+++ b/master-archer-lands-on-facebook-instant-games/index.html
@@ -5,7 +5,7 @@
Master Archer lands on Facebook Instant Games | PlayCanvas Blog
-
+
diff --git a/meet-the-playcanvas-team-dave-evans/index.html b/meet-the-playcanvas-team-dave-evans/index.html
index b7add000d..35a7659eb 100644
--- a/meet-the-playcanvas-team-dave-evans/index.html
+++ b/meet-the-playcanvas-team-dave-evans/index.html
@@ -5,7 +5,7 @@
Meet the PlayCanvas team: Dave Evans | PlayCanvas Blog
-
+
diff --git a/meet-the-playcanvas-team-kevin-rooney/index.html b/meet-the-playcanvas-team-kevin-rooney/index.html
index 5a34cf14d..1f97b17c5 100644
--- a/meet-the-playcanvas-team-kevin-rooney/index.html
+++ b/meet-the-playcanvas-team-kevin-rooney/index.html
@@ -5,7 +5,7 @@
Meet the PlayCanvas team: Kevin Rooney | PlayCanvas Blog
-
+
diff --git a/meet-the-playcanvas-team-maksims-mihejevs/index.html b/meet-the-playcanvas-team-maksims-mihejevs/index.html
index 57d1eb6e7..d0136b03b 100644
--- a/meet-the-playcanvas-team-maksims-mihejevs/index.html
+++ b/meet-the-playcanvas-team-maksims-mihejevs/index.html
@@ -5,7 +5,7 @@
Meet the PlayCanvas team: Maksims Mihejevs | PlayCanvas Blog
-
+
diff --git a/meet-the-playcanvas-team-vaios-kalpias-illias/index.html b/meet-the-playcanvas-team-vaios-kalpias-illias/index.html
index 2d74e8499..2b9572208 100644
--- a/meet-the-playcanvas-team-vaios-kalpias-illias/index.html
+++ b/meet-the-playcanvas-team-vaios-kalpias-illias/index.html
@@ -5,7 +5,7 @@
Meet the PlayCanvas team: Vaios Kalpias-Illias | PlayCanvas Blog
-
+
diff --git a/meet-the-playcanvas-team-will-eastcott/index.html b/meet-the-playcanvas-team-will-eastcott/index.html
index b14b60fb6..f433a7057 100644
--- a/meet-the-playcanvas-team-will-eastcott/index.html
+++ b/meet-the-playcanvas-team-will-eastcott/index.html
@@ -5,7 +5,7 @@
Meet the PlayCanvas team: Will Eastcott | PlayCanvas Blog
-
+
diff --git a/miniclip-launches-their-first-playcanvas-game/index.html b/miniclip-launches-their-first-playcanvas-game/index.html
index b43f60053..29cfa7da3 100644
--- a/miniclip-launches-their-first-playcanvas-game/index.html
+++ b/miniclip-launches-their-first-playcanvas-game/index.html
@@ -5,7 +5,7 @@
Miniclip Launches Their First PlayCanvas Game | PlayCanvas Blog
-
+
diff --git a/mobile-brand-experiences-in-webgl/index.html b/mobile-brand-experiences-in-webgl/index.html
index 237f5cca7..e98001cae 100644
--- a/mobile-brand-experiences-in-webgl/index.html
+++ b/mobile-brand-experiences-in-webgl/index.html
@@ -5,7 +5,7 @@
Mobile Brand Experiences in WebGL | PlayCanvas Blog
-
+
diff --git a/moving-from-wordpress-to-jekyll-a-case-study/index.html b/moving-from-wordpress-to-jekyll-a-case-study/index.html
index c04513850..7522b60c6 100644
--- a/moving-from-wordpress-to-jekyll-a-case-study/index.html
+++ b/moving-from-wordpress-to-jekyll-a-case-study/index.html
@@ -5,7 +5,7 @@
Moving from WordPress to Jekyll - A Case Study | PlayCanvas Blog
-
+
diff --git a/moving-playcanv-as-to-https/index.html b/moving-playcanv-as-to-https/index.html
index 38d9799b4..10bcf3280 100644
--- a/moving-playcanv-as-to-https/index.html
+++ b/moving-playcanv-as-to-https/index.html
@@ -5,7 +5,7 @@
Moving playcanv.as to HTTPS | PlayCanvas Blog
-
+
diff --git a/moving-to-playcanvas-com/index.html b/moving-to-playcanvas-com/index.html
index 35316cf2f..dce9558ab 100644
--- a/moving-to-playcanvas-com/index.html
+++ b/moving-to-playcanvas-com/index.html
@@ -5,7 +5,7 @@
Moving to playcanvas.com | PlayCanvas Blog
-
+
diff --git a/mozilla-launches-webgl-2-with-playcanvas/index.html b/mozilla-launches-webgl-2-with-playcanvas/index.html
index 8260932c7..05000e808 100644
--- a/mozilla-launches-webgl-2-with-playcanvas/index.html
+++ b/mozilla-launches-webgl-2-with-playcanvas/index.html
@@ -5,7 +5,7 @@
Mozilla Launches WebGL 2 with PlayCanvas | PlayCanvas Blog
-
+
diff --git a/new-and-improved-sound-component/index.html b/new-and-improved-sound-component/index.html
index 93a6e70f9..b39b6ac47 100644
--- a/new-and-improved-sound-component/index.html
+++ b/new-and-improved-sound-component/index.html
@@ -5,7 +5,7 @@
New and Improved Sound Component | PlayCanvas Blog
-
+
diff --git a/new-custom-and-built-in-post-effects/index.html b/new-custom-and-built-in-post-effects/index.html
index 8ffcf5766..ee5e6ffed 100644
--- a/new-custom-and-built-in-post-effects/index.html
+++ b/new-custom-and-built-in-post-effects/index.html
@@ -5,7 +5,7 @@
New Custom and Built-in Post Effects | PlayCanvas Blog
-
+
diff --git a/new-feature-2d-sprites-and-9-slicing/index.html b/new-feature-2d-sprites-and-9-slicing/index.html
index d079a5e78..e713fc011 100644
--- a/new-feature-2d-sprites-and-9-slicing/index.html
+++ b/new-feature-2d-sprites-and-9-slicing/index.html
@@ -5,7 +5,7 @@
New Feature: 2D Sprites and 9-slicing | PlayCanvas Blog
-
+
diff --git a/new-feature-github-and-private-repository-support/index.html b/new-feature-github-and-private-repository-support/index.html
index 0b7d5547e..be4c98327 100644
--- a/new-feature-github-and-private-repository-support/index.html
+++ b/new-feature-github-and-private-repository-support/index.html
@@ -5,7 +5,7 @@
New Feature: GitHub and private repository support | PlayCanvas Blog
-
+
diff --git a/new-look-designer/index.html b/new-look-designer/index.html
index 42a1eabb8..e83f4cc39 100644
--- a/new-look-designer/index.html
+++ b/new-look-designer/index.html
@@ -5,7 +5,7 @@
New Look Designer | PlayCanvas Blog
-
+
diff --git a/new-math-api-a-transition-guide/index.html b/new-math-api-a-transition-guide/index.html
index a30f6944a..90fa69438 100644
--- a/new-math-api-a-transition-guide/index.html
+++ b/new-math-api-a-transition-guide/index.html
@@ -5,7 +5,7 @@
New Math API: A Transition Guide | PlayCanvas Blog
-
+
diff --git a/new-maths-api/index.html b/new-maths-api/index.html
index 49e735710..cf24778cd 100644
--- a/new-maths-api/index.html
+++ b/new-maths-api/index.html
@@ -5,7 +5,7 @@
Incoming Breaking Changes - New Maths API | PlayCanvas Blog
-
+
diff --git a/new-plans/index.html b/new-plans/index.html
index e590f573e..fa39da9c8 100644
--- a/new-plans/index.html
+++ b/new-plans/index.html
@@ -5,7 +5,7 @@
New Plans | PlayCanvas Blog
-
+
diff --git a/new-publishing-features/index.html b/new-publishing-features/index.html
index 67dbf4b8c..9b4a11785 100644
--- a/new-publishing-features/index.html
+++ b/new-publishing-features/index.html
@@ -5,7 +5,7 @@
New Publishing Features | PlayCanvas Blog
-
+
diff --git a/new-tutorials-multiplayer-with-nodejs-and-webgl-facebook-sdk/index.html b/new-tutorials-multiplayer-with-nodejs-and-webgl-facebook-sdk/index.html
index 4deaafa80..c3742158b 100644
--- a/new-tutorials-multiplayer-with-nodejs-and-webgl-facebook-sdk/index.html
+++ b/new-tutorials-multiplayer-with-nodejs-and-webgl-facebook-sdk/index.html
@@ -5,7 +5,7 @@
New Tutorials: Multiplayer with Node.js and WebGL & Facebook SDK | PlayCanvas Blog
-
+
diff --git a/nottingham-gamecity-and-mozfest/index.html b/nottingham-gamecity-and-mozfest/index.html
index f93a17b66..70c6ab59c 100644
--- a/nottingham-gamecity-and-mozfest/index.html
+++ b/nottingham-gamecity-and-mozfest/index.html
@@ -5,7 +5,7 @@
Nottingham GameCity and MozFest | PlayCanvas Blog
-
+
diff --git a/ongamestart-game-jam/index.html b/ongamestart-game-jam/index.html
index 76c8e3115..f3e8db1d9 100644
--- a/ongamestart-game-jam/index.html
+++ b/ongamestart-game-jam/index.html
@@ -5,7 +5,7 @@
onGameStart Game Jam | PlayCanvas Blog
-
+
diff --git a/organizations-new-plans/index.html b/organizations-new-plans/index.html
index f4a22480e..2dd610885 100644
--- a/organizations-new-plans/index.html
+++ b/organizations-new-plans/index.html
@@ -5,7 +5,7 @@
Organizations & new plans | PlayCanvas Blog
-
+
diff --git a/our-2022-developer-showreel-is-live/index.html b/our-2022-developer-showreel-is-live/index.html
index 8d19d6b5d..872b18f3c 100644
--- a/our-2022-developer-showreel-is-live/index.html
+++ b/our-2022-developer-showreel-is-live/index.html
@@ -5,7 +5,7 @@
Our 2022 developer showreel is live! | PlayCanvas Blog
-
+
diff --git a/page/10/index.html b/page/10/index.html
index 34390b92c..594afedda 100644
--- a/page/10/index.html
+++ b/page/10/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/11/index.html b/page/11/index.html
index a931516e6..fcbd91e1c 100644
--- a/page/11/index.html
+++ b/page/11/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/12/index.html b/page/12/index.html
index aac7018f8..c8d97fd75 100644
--- a/page/12/index.html
+++ b/page/12/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/13/index.html b/page/13/index.html
index 54ad2740e..76d71f04f 100644
--- a/page/13/index.html
+++ b/page/13/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/14/index.html b/page/14/index.html
index b093ce3f3..dcb8c9fc4 100644
--- a/page/14/index.html
+++ b/page/14/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/15/index.html b/page/15/index.html
index 5f6c36a2a..e6479ad44 100644
--- a/page/15/index.html
+++ b/page/15/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/16/index.html b/page/16/index.html
index 50147f393..b6855e5f5 100644
--- a/page/16/index.html
+++ b/page/16/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/17/index.html b/page/17/index.html
index 461aa76c1..844ba1d72 100644
--- a/page/17/index.html
+++ b/page/17/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/18/index.html b/page/18/index.html
index eff29c428..e01f48831 100644
--- a/page/18/index.html
+++ b/page/18/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/19/index.html b/page/19/index.html
index 8e777245a..5ccd8b967 100644
--- a/page/19/index.html
+++ b/page/19/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/2/index.html b/page/2/index.html
index cbf8cbfc9..5d3eef8a9 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/20/index.html b/page/20/index.html
index 25722c398..4090616ef 100644
--- a/page/20/index.html
+++ b/page/20/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/21/index.html b/page/21/index.html
index 69466559f..06937cd13 100644
--- a/page/21/index.html
+++ b/page/21/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/22/index.html b/page/22/index.html
index d8d9e7b1d..41b3459c9 100644
--- a/page/22/index.html
+++ b/page/22/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/23/index.html b/page/23/index.html
index cb747c037..a792cf5df 100644
--- a/page/23/index.html
+++ b/page/23/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/24/index.html b/page/24/index.html
index 08fd0d57c..a4f8c24fa 100644
--- a/page/24/index.html
+++ b/page/24/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/3/index.html b/page/3/index.html
index 9562f05d5..16d4f42d5 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/4/index.html b/page/4/index.html
index ed1dd5829..7fa8ab3af 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/5/index.html b/page/5/index.html
index 79bc066be..81464bc9f 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/6/index.html b/page/6/index.html
index bfaa3efcc..40ee82b3b 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/7/index.html b/page/7/index.html
index ef6b777f4..6edd7dd13 100644
--- a/page/7/index.html
+++ b/page/7/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/8/index.html b/page/8/index.html
index 3bc234f35..7a6a19c15 100644
--- a/page/8/index.html
+++ b/page/8/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/page/9/index.html b/page/9/index.html
index ef6e99d08..66f2c46e6 100644
--- a/page/9/index.html
+++ b/page/9/index.html
@@ -5,7 +5,7 @@
Blog | PlayCanvas Blog
-
+
diff --git a/pcui-1-1-0-adds-tree-control-and-array-control/index.html b/pcui-1-1-0-adds-tree-control-and-array-control/index.html
index 8c378c96c..f017deebf 100644
--- a/pcui-1-1-0-adds-tree-control-and-array-control/index.html
+++ b/pcui-1-1-0-adds-tree-control-and-array-control/index.html
@@ -5,7 +5,7 @@
PCUI 1.1.0 Adds Tree Control and Array Control | PlayCanvas Blog
-
+
diff --git a/pcui-framework-migrated-to-typescript/index.html b/pcui-framework-migrated-to-typescript/index.html
index 8a1a0def9..f3a6f4c17 100644
--- a/pcui-framework-migrated-to-typescript/index.html
+++ b/pcui-framework-migrated-to-typescript/index.html
@@ -5,7 +5,7 @@
PCUI Framework Migrated to TypeScript | PlayCanvas Blog
-
+
diff --git a/performance-matters-introducing-the-playcanvas-profiler/index.html b/performance-matters-introducing-the-playcanvas-profiler/index.html
index bf88f76ba..860208f3c 100644
--- a/performance-matters-introducing-the-playcanvas-profiler/index.html
+++ b/performance-matters-introducing-the-playcanvas-profiler/index.html
@@ -5,7 +5,7 @@
Performance Matters: Introducing the PlayCanvas Profiler | PlayCanvas Blog
-
+
diff --git a/physically-based-rendering-comes-to-webgl/index.html b/physically-based-rendering-comes-to-webgl/index.html
index 16b730264..c38143828 100644
--- a/physically-based-rendering-comes-to-webgl/index.html
+++ b/physically-based-rendering-comes-to-webgl/index.html
@@ -5,7 +5,7 @@
Physically Based Rendering comes to WebGL | PlayCanvas Blog
-
+
diff --git a/plan-updates-more-storage-more-features-same-price/index.html b/plan-updates-more-storage-more-features-same-price/index.html
index a6bd7abfc..b546ae284 100644
--- a/plan-updates-more-storage-more-features-same-price/index.html
+++ b/plan-updates-more-storage-more-features-same-price/index.html
@@ -5,7 +5,7 @@
Plan Updates: More Storage, More Features, Same Price | PlayCanvas Blog
-
+
diff --git a/platform-game-starter-kit/index.html b/platform-game-starter-kit/index.html
index ac4af4578..dbb69a55c 100644
--- a/platform-game-starter-kit/index.html
+++ b/platform-game-starter-kit/index.html
@@ -5,7 +5,7 @@
Platform Game Starter Kit | PlayCanvas Blog
-
+
diff --git a/playcanvas-adds-sketchfab-itegration/index.html b/playcanvas-adds-sketchfab-itegration/index.html
index 5b81731bb..f683f5519 100644
--- a/playcanvas-adds-sketchfab-itegration/index.html
+++ b/playcanvas-adds-sketchfab-itegration/index.html
@@ -5,7 +5,7 @@
PlayCanvas Adds Sketchfab Integration | PlayCanvas Blog
-
+
diff --git a/playcanvas-brings-webgl-tools-that-work-to-gdc-2016/index.html b/playcanvas-brings-webgl-tools-that-work-to-gdc-2016/index.html
index 49a7b9d7d..c78e32583 100644
--- a/playcanvas-brings-webgl-tools-that-work-to-gdc-2016/index.html
+++ b/playcanvas-brings-webgl-tools-that-work-to-gdc-2016/index.html
@@ -5,7 +5,7 @@
PlayCanvas brings WebGL Tools that Work to GDC 2016 | PlayCanvas Blog
-
+
diff --git a/playcanvas-community-part-2-announcing-playcanvas-discussion/index.html b/playcanvas-community-part-2-announcing-playcanvas-discussion/index.html
index 9ce86f7a8..2e65b9757 100644
--- a/playcanvas-community-part-2-announcing-playcanvas-discussion/index.html
+++ b/playcanvas-community-part-2-announcing-playcanvas-discussion/index.html
@@ -5,7 +5,7 @@
PlayCanvas Community Part 2 - Announcing PlayCanvas Discussion | PlayCanvas Blog
-
+
diff --git a/playcanvas-december-mega-update/index.html b/playcanvas-december-mega-update/index.html
index 2e61dd990..dc3995e2c 100644
--- a/playcanvas-december-mega-update/index.html
+++ b/playcanvas-december-mega-update/index.html
@@ -5,7 +5,7 @@
PlayCanvas December Mega Update | PlayCanvas Blog
-
+
diff --git a/playcanvas-editor-improvements-for-march/index.html b/playcanvas-editor-improvements-for-march/index.html
index ce475cd11..1edcaa7be 100644
--- a/playcanvas-editor-improvements-for-march/index.html
+++ b/playcanvas-editor-improvements-for-march/index.html
@@ -5,7 +5,7 @@
PlayCanvas Editor Improvements for March | PlayCanvas Blog
-
+
diff --git a/playcanvas-engine-reaches-1-0-0/index.html b/playcanvas-engine-reaches-1-0-0/index.html
index 110953532..c7b0e119a 100644
--- a/playcanvas-engine-reaches-1-0-0/index.html
+++ b/playcanvas-engine-reaches-1-0-0/index.html
@@ -5,7 +5,7 @@
PlayCanvas Engine reaches 1.0.0! | PlayCanvas Blog
-
+
diff --git a/playcanvas-feature-update-november-2015/index.html b/playcanvas-feature-update-november-2015/index.html
index 63338908b..2bfc54602 100644
--- a/playcanvas-feature-update-november-2015/index.html
+++ b/playcanvas-feature-update-november-2015/index.html
@@ -5,7 +5,7 @@
PlayCanvas Feature Update - November 2015 | PlayCanvas Blog
-
+
diff --git a/playcanvas-feature-update/index.html b/playcanvas-feature-update/index.html
index 75f82e284..9e3875d21 100644
--- a/playcanvas-feature-update/index.html
+++ b/playcanvas-feature-update/index.html
@@ -5,7 +5,7 @@
PlayCanvas Feature Update | PlayCanvas Blog
-
+
diff --git a/playcanvas-features-in-the-top-10-html5-games-of-2012/index.html b/playcanvas-features-in-the-top-10-html5-games-of-2012/index.html
index 573995815..a132435d3 100644
--- a/playcanvas-features-in-the-top-10-html5-games-of-2012/index.html
+++ b/playcanvas-features-in-the-top-10-html5-games-of-2012/index.html
@@ -5,7 +5,7 @@
PlayCanvas features in 'The top 10 HTML5 games of 2012' | PlayCanvas Blog
-
+
diff --git a/playcanvas-game-jam/index.html b/playcanvas-game-jam/index.html
index 93e489e7c..3401084d5 100644
--- a/playcanvas-game-jam/index.html
+++ b/playcanvas-game-jam/index.html
@@ -5,7 +5,7 @@
PlayCanvas Game Jam | PlayCanvas Blog
-
+
diff --git a/playcanvas-goes-open-source/index.html b/playcanvas-goes-open-source/index.html
index 3ccb35e14..6c46741f9 100644
--- a/playcanvas-goes-open-source/index.html
+++ b/playcanvas-goes-open-source/index.html
@@ -5,7 +5,7 @@
PlayCanvas goes open source | PlayCanvas Blog
-
+
diff --git a/playcanvas-google-io/index.html b/playcanvas-google-io/index.html
index f88b04bb7..52932bd86 100644
--- a/playcanvas-google-io/index.html
+++ b/playcanvas-google-io/index.html
@@ -5,7 +5,7 @@
PlayCanvas @ Google I/O | PlayCanvas Blog
-
+
diff --git a/playcanvas-in-2014-a-year-in-review/index.html b/playcanvas-in-2014-a-year-in-review/index.html
index a5f2a952d..0fcc3d09f 100644
--- a/playcanvas-in-2014-a-year-in-review/index.html
+++ b/playcanvas-in-2014-a-year-in-review/index.html
@@ -5,7 +5,7 @@
PlayCanvas in 2014: A Year In Review | PlayCanvas Blog
-
+
diff --git a/playcanvas-in-2015-webgl-goes-mainstream/index.html b/playcanvas-in-2015-webgl-goes-mainstream/index.html
index 2ae1821c5..532e34ff7 100644
--- a/playcanvas-in-2015-webgl-goes-mainstream/index.html
+++ b/playcanvas-in-2015-webgl-goes-mainstream/index.html
@@ -5,7 +5,7 @@
PlayCanvas in 2015 - WebGL Goes Mainstream | PlayCanvas Blog
-
+
diff --git a/playcanvas-in-2016-webgl-everywhere/index.html b/playcanvas-in-2016-webgl-everywhere/index.html
index db25bb898..115390e16 100644
--- a/playcanvas-in-2016-webgl-everywhere/index.html
+++ b/playcanvas-in-2016-webgl-everywhere/index.html
@@ -5,7 +5,7 @@
PlayCanvas in 2016 - WebGL Everywhere | PlayCanvas Blog
-
+
diff --git a/playcanvas-in-ludum-dare-31/index.html b/playcanvas-in-ludum-dare-31/index.html
index 2140cd8a9..d5ea7e9bd 100644
--- a/playcanvas-in-ludum-dare-31/index.html
+++ b/playcanvas-in-ludum-dare-31/index.html
@@ -5,7 +5,7 @@
PLAYCANVAS in LUDUM DARE 31 | PlayCanvas Blog
-
+
diff --git a/playcanvas-in-the-spotlight-at-3d-web-fest/index.html b/playcanvas-in-the-spotlight-at-3d-web-fest/index.html
index 496b9f5a1..8c798ca71 100644
--- a/playcanvas-in-the-spotlight-at-3d-web-fest/index.html
+++ b/playcanvas-in-the-spotlight-at-3d-web-fest/index.html
@@ -5,7 +5,7 @@
PlayCanvas in the Spotlight at 3D Web Fest | PlayCanvas Blog
-
+
diff --git a/playcanvas-interviewed-live-on-bbc-news/index.html b/playcanvas-interviewed-live-on-bbc-news/index.html
index b80fa2aca..f905cf884 100644
--- a/playcanvas-interviewed-live-on-bbc-news/index.html
+++ b/playcanvas-interviewed-live-on-bbc-news/index.html
@@ -5,7 +5,7 @@
PlayCanvas Interviewed Live on BBC News | PlayCanvas Blog
-
+
diff --git a/playcanvas-joins-autodesk-for-nordic-game/index.html b/playcanvas-joins-autodesk-for-nordic-game/index.html
index 7d5e32906..51f3542ee 100644
--- a/playcanvas-joins-autodesk-for-nordic-game/index.html
+++ b/playcanvas-joins-autodesk-for-nordic-game/index.html
@@ -5,7 +5,7 @@
PlayCanvas Joins Autodesk for Nordic Game | PlayCanvas Blog
-
+
diff --git a/playcanvas-launches-gltf-2-0-viewer-tool/index.html b/playcanvas-launches-gltf-2-0-viewer-tool/index.html
index 007ae6892..a0be13654 100644
--- a/playcanvas-launches-gltf-2-0-viewer-tool/index.html
+++ b/playcanvas-launches-gltf-2-0-viewer-tool/index.html
@@ -5,7 +5,7 @@
PlayCanvas launches glTF 2.0 Viewer Tool | PlayCanvas Blog
-
+
diff --git a/playcanvas-maintenance-1102014/index.html b/playcanvas-maintenance-1102014/index.html
index b551f6c13..4f15e10d9 100644
--- a/playcanvas-maintenance-1102014/index.html
+++ b/playcanvas-maintenance-1102014/index.html
@@ -5,7 +5,7 @@
PlayCanvas Maintenance 1/10/2014 | PlayCanvas Blog
-
+
diff --git a/playcanvas-now-supports-microsoft-volumetric-video-playback/index.html b/playcanvas-now-supports-microsoft-volumetric-video-playback/index.html
index b9bde1e27..9f277befe 100644
--- a/playcanvas-now-supports-microsoft-volumetric-video-playback/index.html
+++ b/playcanvas-now-supports-microsoft-volumetric-video-playback/index.html
@@ -5,7 +5,7 @@
PlayCanvas now supports Microsoft volumetric video playback | PlayCanvas Blog
-
+
diff --git a/playcanvas-pioneers-3d-rich-media-ad-format-for-facebook-and-twitter/index.html b/playcanvas-pioneers-3d-rich-media-ad-format-for-facebook-and-twitter/index.html
index f6239f733..8106a4dd7 100644
--- a/playcanvas-pioneers-3d-rich-media-ad-format-for-facebook-and-twitter/index.html
+++ b/playcanvas-pioneers-3d-rich-media-ad-format-for-facebook-and-twitter/index.html
@@ -5,7 +5,7 @@
PlayCanvas pioneers 3D rich media ad format for Facebook and Twitter | PlayCanvas Blog
-
+
diff --git a/playcanvas-referrals-just-a-little-thank-you/index.html b/playcanvas-referrals-just-a-little-thank-you/index.html
index df0c46043..6ae7c6502 100644
--- a/playcanvas-referrals-just-a-little-thank-you/index.html
+++ b/playcanvas-referrals-just-a-little-thank-you/index.html
@@ -5,7 +5,7 @@
PlayCanvas Referrals: Just a little Thank You | PlayCanvas Blog
-
+
diff --git a/playcanvas-referrals-program/index.html b/playcanvas-referrals-program/index.html
index a99e2853c..ccaccfdc1 100644
--- a/playcanvas-referrals-program/index.html
+++ b/playcanvas-referrals-program/index.html
@@ -5,7 +5,7 @@
PlayCanvas Referrals Program | PlayCanvas Blog
-
+
diff --git a/playcanvas-releases-gltf-viewer-2-0/index.html b/playcanvas-releases-gltf-viewer-2-0/index.html
index c8f54e56d..99b87dcd6 100644
--- a/playcanvas-releases-gltf-viewer-2-0/index.html
+++ b/playcanvas-releases-gltf-viewer-2-0/index.html
@@ -5,7 +5,7 @@
PlayCanvas Releases glTF Viewer 2.0 | PlayCanvas Blog
-
+
diff --git a/playcanvas-rest-api/index.html b/playcanvas-rest-api/index.html
index bd871fd2b..160dadaba 100644
--- a/playcanvas-rest-api/index.html
+++ b/playcanvas-rest-api/index.html
@@ -5,7 +5,7 @@
PlayCanvas REST API | PlayCanvas Blog
-
+
diff --git a/playcanvas-review-of-2021/index.html b/playcanvas-review-of-2021/index.html
index 7bf0697c6..1c838bfbe 100644
--- a/playcanvas-review-of-2021/index.html
+++ b/playcanvas-review-of-2021/index.html
@@ -5,7 +5,7 @@
PlayCanvas Review of 2021 | PlayCanvas Blog
-
+
diff --git a/playcanvas-review-of-2022/index.html b/playcanvas-review-of-2022/index.html
index bdcc30fc2..2719a6133 100644
--- a/playcanvas-review-of-2022/index.html
+++ b/playcanvas-review-of-2022/index.html
@@ -5,7 +5,7 @@
PlayCanvas Review of 2022 | PlayCanvas Blog
-
+
diff --git a/playcanvas-scripts-2-0/index.html b/playcanvas-scripts-2-0/index.html
index 37873cc1d..12df054fb 100644
--- a/playcanvas-scripts-2-0/index.html
+++ b/playcanvas-scripts-2-0/index.html
@@ -5,7 +5,7 @@
PlayCanvas Scripts 2.0 | PlayCanvas Blog
-
+
diff --git a/playcanvas-showcase-2021/index.html b/playcanvas-showcase-2021/index.html
index fc8385057..482e48176 100644
--- a/playcanvas-showcase-2021/index.html
+++ b/playcanvas-showcase-2021/index.html
@@ -5,7 +5,7 @@
PlayCanvas Showcase 2021 | PlayCanvas Blog
-
+
diff --git a/playcanvas-sxsw/index.html b/playcanvas-sxsw/index.html
index 679e37a4e..32d8f837d 100644
--- a/playcanvas-sxsw/index.html
+++ b/playcanvas-sxsw/index.html
@@ -5,7 +5,7 @@
PlayCanvas @ SXSW | PlayCanvas Blog
-
+
diff --git a/playcanvas-teams-with-tizen/index.html b/playcanvas-teams-with-tizen/index.html
index 5911d5525..c0ce7cafd 100644
--- a/playcanvas-teams-with-tizen/index.html
+++ b/playcanvas-teams-with-tizen/index.html
@@ -5,7 +5,7 @@
PlayCanvas Teams with Tizen | PlayCanvas Blog
-
+
diff --git a/playcanvas-to-support-flash-devs-as-adobe-kills-its-player/index.html b/playcanvas-to-support-flash-devs-as-adobe-kills-its-player/index.html
index b1fc3aaba..28cbfb88d 100644
--- a/playcanvas-to-support-flash-devs-as-adobe-kills-its-player/index.html
+++ b/playcanvas-to-support-flash-devs-as-adobe-kills-its-player/index.html
@@ -5,7 +5,7 @@
PlayCanvas to Support Flash Devs as Adobe Kills its Player | PlayCanvas Blog
-
+
diff --git a/playcanvas-unleashed-at-techstars-demo-day/index.html b/playcanvas-unleashed-at-techstars-demo-day/index.html
index 4aae6b328..a0901b9f8 100644
--- a/playcanvas-unleashed-at-techstars-demo-day/index.html
+++ b/playcanvas-unleashed-at-techstars-demo-day/index.html
@@ -5,7 +5,7 @@
PlayCanvas Unleashed at Techstars Demo Day | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-040714/index.html b/playcanvas-update-040714/index.html
index b7d0624a3..343a8e539 100644
--- a/playcanvas-update-040714/index.html
+++ b/playcanvas-update-040714/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 04/07/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-040814/index.html b/playcanvas-update-040814/index.html
index de470e051..61f014f78 100644
--- a/playcanvas-update-040814/index.html
+++ b/playcanvas-update-040814/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 04/08/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-080814/index.html b/playcanvas-update-080814/index.html
index c1d237c65..9126e6520 100644
--- a/playcanvas-update-080814/index.html
+++ b/playcanvas-update-080814/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 08/08/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-110714/index.html b/playcanvas-update-110714/index.html
index e95e07bc8..49db78f77 100644
--- a/playcanvas-update-110714/index.html
+++ b/playcanvas-update-110714/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 11/07/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-150814/index.html b/playcanvas-update-150814/index.html
index 30aa9dff0..06092aa6c 100644
--- a/playcanvas-update-150814/index.html
+++ b/playcanvas-update-150814/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 15/08/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-18714/index.html b/playcanvas-update-18714/index.html
index a8ea32d60..c1c60bdd1 100644
--- a/playcanvas-update-18714/index.html
+++ b/playcanvas-update-18714/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 18/7/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-200614/index.html b/playcanvas-update-200614/index.html
index 1066ccff0..c31491d3a 100644
--- a/playcanvas-update-200614/index.html
+++ b/playcanvas-update-200614/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 20/06/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-211114/index.html b/playcanvas-update-211114/index.html
index 98daffdc9..7552aa565 100644
--- a/playcanvas-update-211114/index.html
+++ b/playcanvas-update-211114/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 21/11/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-2192014/index.html b/playcanvas-update-2192014/index.html
index eaa6a861c..7e2d1a401 100644
--- a/playcanvas-update-2192014/index.html
+++ b/playcanvas-update-2192014/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 21/9/2014 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-25714/index.html b/playcanvas-update-25714/index.html
index ff71cbeae..f5f8e9920 100644
--- a/playcanvas-update-25714/index.html
+++ b/playcanvas-update-25714/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 25/7/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-27-06-14/index.html b/playcanvas-update-27-06-14/index.html
index 455b54766..a322ed9e4 100644
--- a/playcanvas-update-27-06-14/index.html
+++ b/playcanvas-update-27-06-14/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 27/06/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update-51214/index.html b/playcanvas-update-51214/index.html
index 6c071a9d1..7ff0fb051 100644
--- a/playcanvas-update-51214/index.html
+++ b/playcanvas-update-51214/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 5/12/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-update/index.html b/playcanvas-update/index.html
index b52c6aa67..c690f5c1c 100644
--- a/playcanvas-update/index.html
+++ b/playcanvas-update/index.html
@@ -5,7 +5,7 @@
PlayCanvas Update 13/06/14 | PlayCanvas Blog
-
+
diff --git a/playcanvas-versus-unity-webgl/index.html b/playcanvas-versus-unity-webgl/index.html
index 11e1bc2ec..6815a22c7 100644
--- a/playcanvas-versus-unity-webgl/index.html
+++ b/playcanvas-versus-unity-webgl/index.html
@@ -5,7 +5,7 @@
PlayCanvas versus Unity WebGL | PlayCanvas Blog
-
+
diff --git a/playcanvas-versus-unreal-webgl/index.html b/playcanvas-versus-unreal-webgl/index.html
index 18706b102..c59b73396 100644
--- a/playcanvas-versus-unreal-webgl/index.html
+++ b/playcanvas-versus-unreal-webgl/index.html
@@ -5,7 +5,7 @@
PlayCanvas versus Unreal WebGL | PlayCanvas Blog
-
+
diff --git a/playcanvas-voted-number-1-webgl-engine-by-develop-magazine/index.html b/playcanvas-voted-number-1-webgl-engine-by-develop-magazine/index.html
index 548476c00..afe124aa4 100644
--- a/playcanvas-voted-number-1-webgl-engine-by-develop-magazine/index.html
+++ b/playcanvas-voted-number-1-webgl-engine-by-develop-magazine/index.html
@@ -5,7 +5,7 @@
PlayCanvas Voted the Leading WebGL Engine | PlayCanvas Blog
-
+
diff --git a/playhack-april-rolling-balls-and-platforms/index.html b/playhack-april-rolling-balls-and-platforms/index.html
index c686b7f02..deda5f7b0 100644
--- a/playhack-april-rolling-balls-and-platforms/index.html
+++ b/playhack-april-rolling-balls-and-platforms/index.html
@@ -5,7 +5,7 @@
PLAYHACK April: Rolling balls and platforms | PlayCanvas Blog
-
+
diff --git a/playhack-december-collecting-presents/index.html b/playhack-december-collecting-presents/index.html
index bc7e1a9b1..d9860548a 100644
--- a/playhack-december-collecting-presents/index.html
+++ b/playhack-december-collecting-presents/index.html
@@ -5,7 +5,7 @@
PLAYHACK December - Collecting Presents | PlayCanvas Blog
-
+
diff --git a/playhack-december-creating-presents/index.html b/playhack-december-creating-presents/index.html
index 1802adab7..1e6212919 100644
--- a/playhack-december-creating-presents/index.html
+++ b/playhack-december-creating-presents/index.html
@@ -5,7 +5,7 @@
PLAYHACK December - Creating Presents | PlayCanvas Blog
-
+
diff --git a/playhack-december-jolly-santa/index.html b/playhack-december-jolly-santa/index.html
index b12676484..0d581d447 100644
--- a/playhack-december-jolly-santa/index.html
+++ b/playhack-december-jolly-santa/index.html
@@ -5,7 +5,7 @@
PLAYHACK December: Jolly Santa | PlayCanvas Blog
-
+
diff --git a/playhack-december-player-character/index.html b/playhack-december-player-character/index.html
index 3f009ac2d..e68738166 100644
--- a/playhack-december-player-character/index.html
+++ b/playhack-december-player-character/index.html
@@ -5,7 +5,7 @@
PLAYHACK December - Player Character | PlayCanvas Blog
-
+
diff --git a/playhack-july-15-join-the-indie-game-maker-contest/index.html b/playhack-july-15-join-the-indie-game-maker-contest/index.html
index 6050fd5df..0463c97bc 100644
--- a/playhack-july-15-join-the-indie-game-maker-contest/index.html
+++ b/playhack-july-15-join-the-indie-game-maker-contest/index.html
@@ -5,7 +5,7 @@
PLAYHACK: July '15 - Join the Indie Game Maker Contest | PlayCanvas Blog
-
+
diff --git a/playhack-make-a-game-get-featured/index.html b/playhack-make-a-game-get-featured/index.html
index 812c32d09..29ba7cb28 100644
--- a/playhack-make-a-game-get-featured/index.html
+++ b/playhack-make-a-game-get-featured/index.html
@@ -5,7 +5,7 @@
PLAYHACK - Make a game, get featured | PlayCanvas Blog
-
+
diff --git a/playhack-march-win-a-chromebook-2/index.html b/playhack-march-win-a-chromebook-2/index.html
index 7377388b0..c6ec340ba 100644
--- a/playhack-march-win-a-chromebook-2/index.html
+++ b/playhack-march-win-a-chromebook-2/index.html
@@ -5,7 +5,7 @@
PLAYHACK March - Win a Chromebook 2 | PlayCanvas Blog
-
+
diff --git a/playhack-may-spaceships-and-win-a-google-cardboard/index.html b/playhack-may-spaceships-and-win-a-google-cardboard/index.html
index aa2d8417a..c425ae7ed 100644
--- a/playhack-may-spaceships-and-win-a-google-cardboard/index.html
+++ b/playhack-may-spaceships-and-win-a-google-cardboard/index.html
@@ -5,7 +5,7 @@
PLAYHACK May: Spaceships and win a Google Cardboard | PlayCanvas Blog
-
+
diff --git a/playhack-may-winner/index.html b/playhack-may-winner/index.html
index cf172c001..df66159ea 100644
--- a/playhack-may-winner/index.html
+++ b/playhack-may-winner/index.html
@@ -5,7 +5,7 @@
PLAYHACK May Winner | PlayCanvas Blog
-
+
diff --git a/playhack-november-adding-tank-controls/index.html b/playhack-november-adding-tank-controls/index.html
index 5ce3bdd53..18370a814 100644
--- a/playhack-november-adding-tank-controls/index.html
+++ b/playhack-november-adding-tank-controls/index.html
@@ -5,7 +5,7 @@
PLAYHACK November - Adding Tank Controls | PlayCanvas Blog
-
+
diff --git a/playhack-november-camera-types/index.html b/playhack-november-camera-types/index.html
index 64c35014b..3dce3ad7a 100644
--- a/playhack-november-camera-types/index.html
+++ b/playhack-november-camera-types/index.html
@@ -5,7 +5,7 @@
PLAYHACK November - Camera types | PlayCanvas Blog
-
+
diff --git a/playhack-november-turrets-and-shooting-bullets/index.html b/playhack-november-turrets-and-shooting-bullets/index.html
index 03169ca42..00e03f890 100644
--- a/playhack-november-turrets-and-shooting-bullets/index.html
+++ b/playhack-november-turrets-and-shooting-bullets/index.html
@@ -5,7 +5,7 @@
PLAYHACK November - Turrets and shooting bullets | PlayCanvas Blog
-
+
diff --git a/playhack-we-challenge-you-to-a-jewel/index.html b/playhack-we-challenge-you-to-a-jewel/index.html
index 10cd1cdd0..03e2f085f 100644
--- a/playhack-we-challenge-you-to-a-jewel/index.html
+++ b/playhack-we-challenge-you-to-a-jewel/index.html
@@ -5,7 +5,7 @@
PLAYHACK - We challenge you to a jewel! | PlayCanvas Blog
-
+
diff --git a/playhack-we-have-a-winner/index.html b/playhack-we-have-a-winner/index.html
index d696e2a05..cd070dc73 100644
--- a/playhack-we-have-a-winner/index.html
+++ b/playhack-we-have-a-winner/index.html
@@ -5,7 +5,7 @@
PLAYHACK: We have a winner! | PlayCanvas Blog
-
+
diff --git a/playhack-with-arm-chromebook-winner/index.html b/playhack-with-arm-chromebook-winner/index.html
index 77cf36288..6088ee061 100644
--- a/playhack-with-arm-chromebook-winner/index.html
+++ b/playhack-with-arm-chromebook-winner/index.html
@@ -5,7 +5,7 @@
PLAYHACK with ARM: Chromebook Winner | PlayCanvas Blog
-
+
diff --git a/playhack-with-playjam-2/index.html b/playhack-with-playjam-2/index.html
index 2bef605ed..64c4f5058 100644
--- a/playhack-with-playjam-2/index.html
+++ b/playhack-with-playjam-2/index.html
@@ -5,7 +5,7 @@
PLAYHACK with PlayJam | PlayCanvas Blog
-
+
diff --git a/playhack-with-playjam-starts-on-monday/index.html b/playhack-with-playjam-starts-on-monday/index.html
index 6e0ba7a86..4e814ff5e 100644
--- a/playhack-with-playjam-starts-on-monday/index.html
+++ b/playhack-with-playjam-starts-on-monday/index.html
@@ -5,7 +5,7 @@
PLAYHACK with PlayJam starts on Monday | PlayCanvas Blog
-
+
diff --git a/playhack-with-playjam-starts-today/index.html b/playhack-with-playjam-starts-today/index.html
index 29977102c..22f510e8c 100644
--- a/playhack-with-playjam-starts-today/index.html
+++ b/playhack-with-playjam-starts-today/index.html
@@ -5,7 +5,7 @@
PLAYHACK with PlayJam starts today | PlayCanvas Blog
-
+
diff --git a/playhack-with-playjam-winners/index.html b/playhack-with-playjam-winners/index.html
index c0a8249da..925142162 100644
--- a/playhack-with-playjam-winners/index.html
+++ b/playhack-with-playjam-winners/index.html
@@ -5,7 +5,7 @@
PLAYHACK with PlayJam: Winners | PlayCanvas Blog
-
+
diff --git a/playhack-with-playjam/index.html b/playhack-with-playjam/index.html
index bcd48d121..7184b5e70 100644
--- a/playhack-with-playjam/index.html
+++ b/playhack-with-playjam/index.html
@@ -5,7 +5,7 @@
PLAYHACK with Playjam | PlayCanvas Blog
-
+
diff --git a/porting-a-large-es5-javascript-library-to-es6-modules-and-rollup/index.html b/porting-a-large-es5-javascript-library-to-es6-modules-and-rollup/index.html
index e8465a89a..44175dc15 100644
--- a/porting-a-large-es5-javascript-library-to-es6-modules-and-rollup/index.html
+++ b/porting-a-large-es5-javascript-library-to-es6-modules-and-rollup/index.html
@@ -5,7 +5,7 @@
Porting a Large ES5 JavaScript Library to ES6 Modules and Rollup | PlayCanvas Blog
-
+
diff --git a/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora/index.html b/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora/index.html
index 70fb3c6f3..a5b9b78f0 100644
--- a/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora/index.html
+++ b/porting-from-unity-to-playcanvas-developer-spotlight-with-christina-kaliora/index.html
@@ -5,7 +5,7 @@
Porting from Unity to PlayCanvas - Developer Spotlight with Christina Kaliora | PlayCanvas Blog
-
+
diff --git a/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas/index.html b/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas/index.html
index 29ba75961..7753d9a24 100644
--- a/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas/index.html
+++ b/porting-unreal-scenes-to-browser-with-playcanvas-developer-spotlight-with-leonidas-maliokas/index.html
@@ -5,7 +5,7 @@
Porting Unreal Scenes to the Browser with PlayCanvas - Developer Spotlight with Leonidas Maliokas | PlayCanvas Blog
-
+
diff --git a/primitives-are-dead-long-live-the-model/index.html b/primitives-are-dead-long-live-the-model/index.html
index 18a24c0c2..8cfcd92cb 100644
--- a/primitives-are-dead-long-live-the-model/index.html
+++ b/primitives-are-dead-long-live-the-model/index.html
@@ -5,7 +5,7 @@
Primitives are Dead! Long Live the Model! | PlayCanvas Blog
-
+
diff --git a/publishing-html5-games-on-the-chrome-web-store/index.html b/publishing-html5-games-on-the-chrome-web-store/index.html
index a703116ed..1ad193b72 100644
--- a/publishing-html5-games-on-the-chrome-web-store/index.html
+++ b/publishing-html5-games-on-the-chrome-web-store/index.html
@@ -5,7 +5,7 @@
Publishing HTML5 Games on the Chrome Web Store | PlayCanvas Blog
-
+
diff --git a/realtime-chat-lands-in-the-playcanvas-editor/index.html b/realtime-chat-lands-in-the-playcanvas-editor/index.html
index feb71c916..0cf782788 100644
--- a/realtime-chat-lands-in-the-playcanvas-editor/index.html
+++ b/realtime-chat-lands-in-the-playcanvas-editor/index.html
@@ -5,7 +5,7 @@
Realtime Chat Lands in the PlayCanvas Editor | PlayCanvas Blog
-
+
diff --git a/refinements-aplenty-for-our-webgl-editor/index.html b/refinements-aplenty-for-our-webgl-editor/index.html
index bd934c2bc..0d14cf427 100644
--- a/refinements-aplenty-for-our-webgl-editor/index.html
+++ b/refinements-aplenty-for-our-webgl-editor/index.html
@@ -5,7 +5,7 @@
Refinements aplenty for our WebGL Editor | PlayCanvas Blog
-
+
diff --git a/rss.xml b/rss.xml
index 395fbb633..be11dcf82 100644
--- a/rss.xml
+++ b/rss.xml
@@ -198,8 +198,8 @@
This is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.
JPGs and PNGs have served us well. They're reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let's dive in.
Take a look at the following images:
-
-
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 276Kb, almost half the size of its JPG counterpart at 508Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
+
+
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
What does this mean for you? Well, that's simple: it's all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. 🙌
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/runtime-lightmap-generation-for-webgl/index.html b/runtime-lightmap-generation-for-webgl/index.html
index ddc020acb..5d42e6027 100644
--- a/runtime-lightmap-generation-for-webgl/index.html
+++ b/runtime-lightmap-generation-for-webgl/index.html
@@ -5,7 +5,7 @@
Runtime Lightmap Generation for WebGL | PlayCanvas Blog
-
+
diff --git a/scene-launching-supercharged/index.html b/scene-launching-supercharged/index.html
index 6cb1e7f4a..158455e3a 100644
--- a/scene-launching-supercharged/index.html
+++ b/scene-launching-supercharged/index.html
@@ -5,7 +5,7 @@
Scene Launching Supercharged! | PlayCanvas Blog
-
+
diff --git a/see-your-friends/index.html b/see-your-friends/index.html
index 23f913e72..68fbe99d2 100644
--- a/see-your-friends/index.html
+++ b/see-your-friends/index.html
@@ -5,7 +5,7 @@
See Your Friends! | PlayCanvas Blog
-
+
diff --git a/seemore-physically-based-rendering-in-webgl/index.html b/seemore-physically-based-rendering-in-webgl/index.html
index 6cf9c7ca9..3d5d0e6eb 100644
--- a/seemore-physically-based-rendering-in-webgl/index.html
+++ b/seemore-physically-based-rendering-in-webgl/index.html
@@ -5,7 +5,7 @@
Seemore: Physically Based Rendering in WebGL | PlayCanvas Blog
-
+
diff --git a/snappy-new-update/index.html b/snappy-new-update/index.html
index 1d8a3704e..def527d06 100644
--- a/snappy-new-update/index.html
+++ b/snappy-new-update/index.html
@@ -5,7 +5,7 @@
Snappy New Update | PlayCanvas Blog
-
+
diff --git a/starter-kits/index.html b/starter-kits/index.html
index 4156b9007..d9e693e77 100644
--- a/starter-kits/index.html
+++ b/starter-kits/index.html
@@ -5,7 +5,7 @@
Starter Kits | PlayCanvas Blog
-
+
diff --git a/supercharge-your-workflow-with-template-assets/index.html b/supercharge-your-workflow-with-template-assets/index.html
index c7d93aca6..bb1376307 100644
--- a/supercharge-your-workflow-with-template-assets/index.html
+++ b/supercharge-your-workflow-with-template-assets/index.html
@@ -5,7 +5,7 @@
Supercharge your workflow with Template Assets! | PlayCanvas Blog
-
+
diff --git a/swooop-ladycade/index.html b/swooop-ladycade/index.html
index 0bd0431c6..e1f884c2c 100644
--- a/swooop-ladycade/index.html
+++ b/swooop-ladycade/index.html
@@ -5,7 +5,7 @@
SWOOOP @ LadyCADE | PlayCanvas Blog
-
+
diff --git a/swooop/index.html b/swooop/index.html
index ddce3abb6..1377aa66a 100644
--- a/swooop/index.html
+++ b/swooop/index.html
@@ -5,7 +5,7 @@
SWOOOP | PlayCanvas Blog
-
+
diff --git a/tags/ads/index.html b/tags/ads/index.html
index 27c6b4739..5ac49c486 100644
--- a/tags/ads/index.html
+++ b/tags/ads/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "ads" | PlayCanvas Blog
-
+
diff --git a/tags/animation/index.html b/tags/animation/index.html
index 4b137e410..7314bc9e5 100644
--- a/tags/animation/index.html
+++ b/tags/animation/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "animation" | PlayCanvas Blog
-
+
diff --git a/tags/apple/index.html b/tags/apple/index.html
index 89ce81388..425c73134 100644
--- a/tags/apple/index.html
+++ b/tags/apple/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "apple" | PlayCanvas Blog
-
+
diff --git a/tags/ar/index.html b/tags/ar/index.html
index 1d3a29308..51cff35da 100644
--- a/tags/ar/index.html
+++ b/tags/ar/index.html
@@ -5,7 +5,7 @@
6 posts tagged with "ar" | PlayCanvas Blog
-
+
diff --git a/tags/asset-store/index.html b/tags/asset-store/index.html
index 91185692f..f3cc82a7b 100644
--- a/tags/asset-store/index.html
+++ b/tags/asset-store/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "asset-store" | PlayCanvas Blog
-
+
diff --git a/tags/compression/index.html b/tags/compression/index.html
index d668a6279..57ca46f22 100644
--- a/tags/compression/index.html
+++ b/tags/compression/index.html
@@ -5,7 +5,7 @@
5 posts tagged with "compression" | PlayCanvas Blog
-
+
@@ -62,8 +62,8 @@
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/tags/demo/index.html b/tags/demo/index.html
index 9d24ee9c7..e5bcd9b20 100644
--- a/tags/demo/index.html
+++ b/tags/demo/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "demo" | PlayCanvas Blog
-
+
diff --git a/tags/documentation/index.html b/tags/documentation/index.html
index 52b611c47..d39195def 100644
--- a/tags/documentation/index.html
+++ b/tags/documentation/index.html
@@ -5,7 +5,7 @@
One post tagged with "documentation" | PlayCanvas Blog
-
+
diff --git a/tags/editor/index.html b/tags/editor/index.html
index 2c2cd8f87..6627c4525 100644
--- a/tags/editor/index.html
+++ b/tags/editor/index.html
@@ -5,7 +5,7 @@
50 posts tagged with "editor" | PlayCanvas Blog
-
+
@@ -29,8 +29,8 @@
Y
This is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.
JPGs and PNGs have served us well. They're reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let's dive in.
Take a look at the following images:
-
-
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 276Kb, almost half the size of its JPG counterpart at 508Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
+
+
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
What does this mean for you? Well, that's simple: it's all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. 🙌
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/tags/editor/page/2/index.html b/tags/editor/page/2/index.html
index bc9dad7b4..4037e458b 100644
--- a/tags/editor/page/2/index.html
+++ b/tags/editor/page/2/index.html
@@ -5,7 +5,7 @@
50 posts tagged with "editor" | PlayCanvas Blog
-
+
diff --git a/tags/editor/page/3/index.html b/tags/editor/page/3/index.html
index 6b55818d8..7384deebc 100644
--- a/tags/editor/page/3/index.html
+++ b/tags/editor/page/3/index.html
@@ -5,7 +5,7 @@
50 posts tagged with "editor" | PlayCanvas Blog
-
+
diff --git a/tags/editor/page/4/index.html b/tags/editor/page/4/index.html
index 8057da80d..d13f09ff7 100644
--- a/tags/editor/page/4/index.html
+++ b/tags/editor/page/4/index.html
@@ -5,7 +5,7 @@
50 posts tagged with "editor" | PlayCanvas Blog
-
+
diff --git a/tags/editor/page/5/index.html b/tags/editor/page/5/index.html
index 59ae22057..2318fa395 100644
--- a/tags/editor/page/5/index.html
+++ b/tags/editor/page/5/index.html
@@ -5,7 +5,7 @@
50 posts tagged with "editor" | PlayCanvas Blog
-
+
diff --git a/tags/engine/index.html b/tags/engine/index.html
index cc71e15b5..2feddc3fe 100644
--- a/tags/engine/index.html
+++ b/tags/engine/index.html
@@ -5,7 +5,7 @@
11 posts tagged with "engine" | PlayCanvas Blog
-
+
diff --git a/tags/engine/page/2/index.html b/tags/engine/page/2/index.html
index 0c5b3ac42..fa1d8279e 100644
--- a/tags/engine/page/2/index.html
+++ b/tags/engine/page/2/index.html
@@ -5,7 +5,7 @@
11 posts tagged with "engine" | PlayCanvas Blog
-
+
diff --git a/tags/event/index.html b/tags/event/index.html
index 7e64ada32..1950bc2f8 100644
--- a/tags/event/index.html
+++ b/tags/event/index.html
@@ -5,7 +5,7 @@
16 posts tagged with "event" | PlayCanvas Blog
-
+
diff --git a/tags/event/page/2/index.html b/tags/event/page/2/index.html
index f7bbd6039..6c5127e93 100644
--- a/tags/event/page/2/index.html
+++ b/tags/event/page/2/index.html
@@ -5,7 +5,7 @@
16 posts tagged with "event" | PlayCanvas Blog
-
+
diff --git a/tags/examples/index.html b/tags/examples/index.html
index 4fb6f636b..18a1b892e 100644
--- a/tags/examples/index.html
+++ b/tags/examples/index.html
@@ -5,7 +5,7 @@
One post tagged with "examples" | PlayCanvas Blog
-
+
diff --git a/tags/facebook/index.html b/tags/facebook/index.html
index 575752717..693d1cc82 100644
--- a/tags/facebook/index.html
+++ b/tags/facebook/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "facebook" | PlayCanvas Blog
-
+
diff --git a/tags/flash/index.html b/tags/flash/index.html
index 3478da01d..f6b802eb5 100644
--- a/tags/flash/index.html
+++ b/tags/flash/index.html
@@ -5,7 +5,7 @@
One post tagged with "flash" | PlayCanvas Blog
-
+
diff --git a/tags/game/index.html b/tags/game/index.html
index 90d3da03a..9d20213ce 100644
--- a/tags/game/index.html
+++ b/tags/game/index.html
@@ -5,7 +5,7 @@
7 posts tagged with "game" | PlayCanvas Blog
-
+
diff --git a/tags/gamedev/index.html b/tags/gamedev/index.html
index c35fbbb99..489ea50c3 100644
--- a/tags/gamedev/index.html
+++ b/tags/gamedev/index.html
@@ -5,7 +5,7 @@
One post tagged with "gamedev" | PlayCanvas Blog
-
+
diff --git a/tags/gaussian-splats/index.html b/tags/gaussian-splats/index.html
index 507fc084d..9db98c909 100644
--- a/tags/gaussian-splats/index.html
+++ b/tags/gaussian-splats/index.html
@@ -5,7 +5,7 @@
One post tagged with "gaussian-splats" | PlayCanvas Blog
-
+
diff --git a/tags/gdc/index.html b/tags/gdc/index.html
index fff4a17d0..2c36a46cc 100644
--- a/tags/gdc/index.html
+++ b/tags/gdc/index.html
@@ -5,7 +5,7 @@
One post tagged with "gdc" | PlayCanvas Blog
-
+
diff --git a/tags/github/index.html b/tags/github/index.html
index 20dcf1fa8..642fe81a1 100644
--- a/tags/github/index.html
+++ b/tags/github/index.html
@@ -5,7 +5,7 @@
One post tagged with "github" | PlayCanvas Blog
-
+
diff --git a/tags/gltf/index.html b/tags/gltf/index.html
index 76e89080b..71a5982e8 100644
--- a/tags/gltf/index.html
+++ b/tags/gltf/index.html
@@ -5,7 +5,7 @@
7 posts tagged with "gltf" | PlayCanvas Blog
-
+
diff --git a/tags/graphics/index.html b/tags/graphics/index.html
index 303808632..3e731ed22 100644
--- a/tags/graphics/index.html
+++ b/tags/graphics/index.html
@@ -5,7 +5,7 @@
7 posts tagged with "graphics" | PlayCanvas Blog
-
+
diff --git a/tags/html-5/index.html b/tags/html-5/index.html
index dc086850c..2550ea8d4 100644
--- a/tags/html-5/index.html
+++ b/tags/html-5/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "html5" | PlayCanvas Blog
-
+
diff --git a/tags/index.html b/tags/index.html
index d09e7e34f..85832a906 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -5,7 +5,7 @@
Tags | PlayCanvas Blog
-
+
diff --git a/tags/instant-games/index.html b/tags/instant-games/index.html
index 40dad524f..f3473a0c7 100644
--- a/tags/instant-games/index.html
+++ b/tags/instant-games/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "instant-games" | PlayCanvas Blog
-
+
diff --git a/tags/javascript/index.html b/tags/javascript/index.html
index 9122cb882..a5e8956fa 100644
--- a/tags/javascript/index.html
+++ b/tags/javascript/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "javascript" | PlayCanvas Blog
-
+
diff --git a/tags/jekyll/index.html b/tags/jekyll/index.html
index bc5a378fe..e4d1765b1 100644
--- a/tags/jekyll/index.html
+++ b/tags/jekyll/index.html
@@ -5,7 +5,7 @@
One post tagged with "jekyll" | PlayCanvas Blog
-
+
diff --git a/tags/localization/index.html b/tags/localization/index.html
index bae413468..4d81f96aa 100644
--- a/tags/localization/index.html
+++ b/tags/localization/index.html
@@ -5,7 +5,7 @@
One post tagged with "localization" | PlayCanvas Blog
-
+
diff --git a/tags/ludum-dare/index.html b/tags/ludum-dare/index.html
index c8dfa450c..754608735 100644
--- a/tags/ludum-dare/index.html
+++ b/tags/ludum-dare/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "ludum-dare" | PlayCanvas Blog
-
+
diff --git a/tags/maintenance/index.html b/tags/maintenance/index.html
index a55352415..b65e0e6cc 100644
--- a/tags/maintenance/index.html
+++ b/tags/maintenance/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "maintenance" | PlayCanvas Blog
-
+
diff --git a/tags/mobile/index.html b/tags/mobile/index.html
index 6dab54ade..e0d335dea 100644
--- a/tags/mobile/index.html
+++ b/tags/mobile/index.html
@@ -5,7 +5,7 @@
One post tagged with "mobile" | PlayCanvas Blog
-
+
diff --git a/tags/networking/index.html b/tags/networking/index.html
index d0ddc6eff..9f07ed55c 100644
--- a/tags/networking/index.html
+++ b/tags/networking/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "networking" | PlayCanvas Blog
-
+
diff --git a/tags/news/index.html b/tags/news/index.html
index 40ce73d6d..d1323a10a 100644
--- a/tags/news/index.html
+++ b/tags/news/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "news" | PlayCanvas Blog
-
+
diff --git a/tags/oculus/index.html b/tags/oculus/index.html
index 002d9c201..0170417e0 100644
--- a/tags/oculus/index.html
+++ b/tags/oculus/index.html
@@ -5,7 +5,7 @@
One post tagged with "oculus" | PlayCanvas Blog
-
+
diff --git a/tags/open-source/index.html b/tags/open-source/index.html
index dcc74eba1..0893a65fd 100644
--- a/tags/open-source/index.html
+++ b/tags/open-source/index.html
@@ -5,7 +5,7 @@
5 posts tagged with "open-source" | PlayCanvas Blog
-
+
diff --git a/tags/partnership/index.html b/tags/partnership/index.html
index d031c325a..8e99b888b 100644
--- a/tags/partnership/index.html
+++ b/tags/partnership/index.html
@@ -5,7 +5,7 @@
5 posts tagged with "partnership" | PlayCanvas Blog
-
+
diff --git a/tags/pcui/index.html b/tags/pcui/index.html
index 0b2f9f5c6..c4b8936d3 100644
--- a/tags/pcui/index.html
+++ b/tags/pcui/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "pcui" | PlayCanvas Blog
-
+
diff --git a/tags/performance/index.html b/tags/performance/index.html
index f12806be7..d9124fcb3 100644
--- a/tags/performance/index.html
+++ b/tags/performance/index.html
@@ -5,7 +5,7 @@
8 posts tagged with "performance" | PlayCanvas Blog
-
+
diff --git a/tags/physics/index.html b/tags/physics/index.html
index 914426b8c..3aed8e26a 100644
--- a/tags/physics/index.html
+++ b/tags/physics/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "physics" | PlayCanvas Blog
-
+
diff --git a/tags/plans/index.html b/tags/plans/index.html
index 755ce704a..4eb5fa5e3 100644
--- a/tags/plans/index.html
+++ b/tags/plans/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "plans" | PlayCanvas Blog
-
+
diff --git a/tags/publishing/index.html b/tags/publishing/index.html
index c6c06041a..abf292d6d 100644
--- a/tags/publishing/index.html
+++ b/tags/publishing/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "publishing" | PlayCanvas Blog
-
+
diff --git a/tags/rest-api/index.html b/tags/rest-api/index.html
index c9b77a3c0..ba303d702 100644
--- a/tags/rest-api/index.html
+++ b/tags/rest-api/index.html
@@ -5,7 +5,7 @@
One post tagged with "rest-api" | PlayCanvas Blog
-
+
diff --git a/tags/scripting/index.html b/tags/scripting/index.html
index dfbfc1e08..91cf5d37b 100644
--- a/tags/scripting/index.html
+++ b/tags/scripting/index.html
@@ -5,7 +5,7 @@
6 posts tagged with "scripting" | PlayCanvas Blog
-
+
diff --git a/tags/seemore/index.html b/tags/seemore/index.html
index 72c9f78a6..3fef12e66 100644
--- a/tags/seemore/index.html
+++ b/tags/seemore/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "seemore" | PlayCanvas Blog
-
+
diff --git a/tags/showcase/index.html b/tags/showcase/index.html
index fd9874c68..187612c4b 100644
--- a/tags/showcase/index.html
+++ b/tags/showcase/index.html
@@ -5,7 +5,7 @@
One post tagged with "showcase" | PlayCanvas Blog
-
+
diff --git a/tags/sketchfab/index.html b/tags/sketchfab/index.html
index 345225b2a..2b9824cc3 100644
--- a/tags/sketchfab/index.html
+++ b/tags/sketchfab/index.html
@@ -5,7 +5,7 @@
One post tagged with "sketchfab" | PlayCanvas Blog
-
+
diff --git a/tags/sound/index.html b/tags/sound/index.html
index f3dc0b7e1..aa7738901 100644
--- a/tags/sound/index.html
+++ b/tags/sound/index.html
@@ -5,7 +5,7 @@
One post tagged with "sound" | PlayCanvas Blog
-
+
diff --git a/tags/spotlight/index.html b/tags/spotlight/index.html
index cf381eef4..075e2b958 100644
--- a/tags/spotlight/index.html
+++ b/tags/spotlight/index.html
@@ -5,7 +5,7 @@
5 posts tagged with "spotlight" | PlayCanvas Blog
-
+
diff --git a/tags/supersplat/index.html b/tags/supersplat/index.html
index c4529d5b2..19e8090f4 100644
--- a/tags/supersplat/index.html
+++ b/tags/supersplat/index.html
@@ -5,7 +5,7 @@
One post tagged with "supersplat" | PlayCanvas Blog
-
+
diff --git a/tags/swooop/index.html b/tags/swooop/index.html
index a218b5c99..42f286f01 100644
--- a/tags/swooop/index.html
+++ b/tags/swooop/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "swooop" | PlayCanvas Blog
-
+
diff --git a/tags/tanx/index.html b/tags/tanx/index.html
index 86abb663f..9be294d50 100644
--- a/tags/tanx/index.html
+++ b/tags/tanx/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "tanx" | PlayCanvas Blog
-
+
diff --git a/tags/team/index.html b/tags/team/index.html
index 44dfc5e02..e4522468b 100644
--- a/tags/team/index.html
+++ b/tags/team/index.html
@@ -5,7 +5,7 @@
7 posts tagged with "team" | PlayCanvas Blog
-
+
diff --git a/tags/templates/index.html b/tags/templates/index.html
index c55e712de..bbf06ea73 100644
--- a/tags/templates/index.html
+++ b/tags/templates/index.html
@@ -5,7 +5,7 @@
One post tagged with "templates" | PlayCanvas Blog
-
+
diff --git a/tags/textures/index.html b/tags/textures/index.html
index 91ef33a8a..953e629f3 100644
--- a/tags/textures/index.html
+++ b/tags/textures/index.html
@@ -5,7 +5,7 @@
One post tagged with "textures" | PlayCanvas Blog
-
+
@@ -14,8 +14,8 @@
This is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.
JPGs and PNGs have served us well. They're reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let's dive in.
Take a look at the following images:
-
-
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 276Kb, almost half the size of its JPG counterpart at 508Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
+
+
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
What does this mean for you? Well, that's simple: it's all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. 🙌
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/tags/tutorial/index.html b/tags/tutorial/index.html
index a8563a234..3cca4d6d7 100644
--- a/tags/tutorial/index.html
+++ b/tags/tutorial/index.html
@@ -5,7 +5,7 @@
6 posts tagged with "tutorial" | PlayCanvas Blog
-
+
diff --git a/tags/typescript/index.html b/tags/typescript/index.html
index 6b94249d8..828501c21 100644
--- a/tags/typescript/index.html
+++ b/tags/typescript/index.html
@@ -5,7 +5,7 @@
One post tagged with "typescript" | PlayCanvas Blog
-
+
diff --git a/tags/ui/index.html b/tags/ui/index.html
index 0c2fcfe37..a9576f6b9 100644
--- a/tags/ui/index.html
+++ b/tags/ui/index.html
@@ -5,7 +5,7 @@
One post tagged with "ui" | PlayCanvas Blog
-
+
diff --git a/tags/unity/index.html b/tags/unity/index.html
index 1b7f6b291..9443eeaa4 100644
--- a/tags/unity/index.html
+++ b/tags/unity/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "unity" | PlayCanvas Blog
-
+
diff --git a/tags/unreal/index.html b/tags/unreal/index.html
index 1075b2042..5cf919c5a 100644
--- a/tags/unreal/index.html
+++ b/tags/unreal/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "unreal" | PlayCanvas Blog
-
+
diff --git a/tags/version-control/index.html b/tags/version-control/index.html
index feeff6bc3..9d7592bd4 100644
--- a/tags/version-control/index.html
+++ b/tags/version-control/index.html
@@ -5,7 +5,7 @@
One post tagged with "version-control" | PlayCanvas Blog
-
+
diff --git a/tags/viewer/index.html b/tags/viewer/index.html
index 15d55639a..46b019a2c 100644
--- a/tags/viewer/index.html
+++ b/tags/viewer/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "viewer" | PlayCanvas Blog
-
+
diff --git a/tags/vr/index.html b/tags/vr/index.html
index 10d22790e..3f6d0840c 100644
--- a/tags/vr/index.html
+++ b/tags/vr/index.html
@@ -5,7 +5,7 @@
6 posts tagged with "vr" | PlayCanvas Blog
-
+
diff --git a/tags/webgl/index.html b/tags/webgl/index.html
index 82736b32e..aaa3b73bb 100644
--- a/tags/webgl/index.html
+++ b/tags/webgl/index.html
@@ -5,7 +5,7 @@
9 posts tagged with "webgl" | PlayCanvas Blog
-
+
diff --git a/tags/webgpu/index.html b/tags/webgpu/index.html
index 65355e2e5..b56c073e7 100644
--- a/tags/webgpu/index.html
+++ b/tags/webgpu/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "webgpu" | PlayCanvas Blog
-
+
diff --git a/tags/webvr/index.html b/tags/webvr/index.html
index 4655e740f..b998bf828 100644
--- a/tags/webvr/index.html
+++ b/tags/webvr/index.html
@@ -5,7 +5,7 @@
3 posts tagged with "webvr" | PlayCanvas Blog
-
+
diff --git a/tags/webxr/index.html b/tags/webxr/index.html
index e68ff63d4..912d09015 100644
--- a/tags/webxr/index.html
+++ b/tags/webxr/index.html
@@ -5,7 +5,7 @@
5 posts tagged with "webxr" | PlayCanvas Blog
-
+
diff --git a/tags/wordpress/index.html b/tags/wordpress/index.html
index 9a99c5edb..0aa6be262 100644
--- a/tags/wordpress/index.html
+++ b/tags/wordpress/index.html
@@ -5,7 +5,7 @@
One post tagged with "wordpress" | PlayCanvas Blog
-
+
diff --git a/tags/workflow/index.html b/tags/workflow/index.html
index 137c88405..e3ffb1db0 100644
--- a/tags/workflow/index.html
+++ b/tags/workflow/index.html
@@ -5,7 +5,7 @@
9 posts tagged with "workflow" | PlayCanvas Blog
-
+
@@ -33,8 +33,8 @@
Get Started
This is not just an exciting update for us but a game-changer for anyone looking to optimize their projects for faster load times and better quality.
JPGs and PNGs have served us well. They're reliable and you can use them everywhere. AVIF and WebP are the new kids on the block. They offer better compression with a wider range of features like alpha channels, HDR and wide color gamut. But how do these formats work in practice and are they really that good? Let's dive in.
Take a look at the following images:
-
-
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 276Kb, almost half the size of its JPG counterpart at 508Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
+
+
They look strikingly similar, but the file size tells a different story. The AVIF image on the left has a file size of just 18Kb, and the JPG counterpart over 4 times larger at 74Kb! This level of compression is not just impressive on its own. When you're working on a project with multiple textures, switching to AVIF and WebP formats could considerably reduce your overall load time.
What does this mean for you? Well, that's simple: it's all about efficiency and speed without sacrificing quality. Textures are one of the biggest assets in a 3D project and AVIF and WebP significantly reduce image sizes compared to traditional JPEGs and PNGs and that means faster load times and happier users. 🙌
Ok, so browser support for AVIF is good, but not great according to caniuse, so always check support and use the right format for your users. Different formats are better suited for different content. It's not a one-size-fits-all solution, so we encourage you to explore various options and choose the one best for you.
diff --git a/tanx-lives-popular-webgl-online-game-returns/index.html b/tanx-lives-popular-webgl-online-game-returns/index.html
index 01d320290..e1effaf67 100644
--- a/tanx-lives-popular-webgl-online-game-returns/index.html
+++ b/tanx-lives-popular-webgl-online-game-returns/index.html
@@ -5,7 +5,7 @@
TANX lives! Popular WebGL online game returns | PlayCanvas Blog
-
+
diff --git a/tanx-takes-webgl-gaming-to-a-new-level/index.html b/tanx-takes-webgl-gaming-to-a-new-level/index.html
index a6ee480f6..3d3172093 100644
--- a/tanx-takes-webgl-gaming-to-a-new-level/index.html
+++ b/tanx-takes-webgl-gaming-to-a-new-level/index.html
@@ -5,7 +5,7 @@
TANX Takes WebGL Gaming to a New Level | PlayCanvas Blog
-
+
diff --git a/the-devlog-playcanvas-community-feature/index.html b/the-devlog-playcanvas-community-feature/index.html
index bc347b40e..2b23568a4 100644
--- a/the-devlog-playcanvas-community-feature/index.html
+++ b/the-devlog-playcanvas-community-feature/index.html
@@ -5,7 +5,7 @@
The DevLog - PlayCanvas Community Feature | PlayCanvas Blog
-
+
diff --git a/the-making-of-seemore-webgl/index.html b/the-making-of-seemore-webgl/index.html
index b300fa027..70a6300ef 100644
--- a/the-making-of-seemore-webgl/index.html
+++ b/the-making-of-seemore-webgl/index.html
@@ -5,7 +5,7 @@
The Making of Seemore WebGL | PlayCanvas Blog
-
+
diff --git a/transitioning-to-the-new-render-component-and-fill-mode-api/index.html b/transitioning-to-the-new-render-component-and-fill-mode-api/index.html
index 7f744cab4..6ff9a47a7 100644
--- a/transitioning-to-the-new-render-component-and-fill-mode-api/index.html
+++ b/transitioning-to-the-new-render-component-and-fill-mode-api/index.html
@@ -5,7 +5,7 @@
Transitioning to the New Render Component and Fill Mode API | PlayCanvas Blog
-
+
diff --git a/tutorial-series-a-complete-playcanvas-game/index.html b/tutorial-series-a-complete-playcanvas-game/index.html
index 04319abfb..a40e7f255 100644
--- a/tutorial-series-a-complete-playcanvas-game/index.html
+++ b/tutorial-series-a-complete-playcanvas-game/index.html
@@ -5,7 +5,7 @@
Tutorial Series: A complete PlayCanvas game | PlayCanvas Blog
-
+
diff --git a/tutorials-section-expanded/index.html b/tutorials-section-expanded/index.html
index e72810c84..9b39ee316 100644
--- a/tutorials-section-expanded/index.html
+++ b/tutorials-section-expanded/index.html
@@ -5,7 +5,7 @@
Tutorials section expanded! | PlayCanvas Blog
-
+
diff --git a/upcoming-code-editor-upgrade-to-monaco/index.html b/upcoming-code-editor-upgrade-to-monaco/index.html
index f95280a5e..8bb90f85b 100644
--- a/upcoming-code-editor-upgrade-to-monaco/index.html
+++ b/upcoming-code-editor-upgrade-to-monaco/index.html
@@ -5,7 +5,7 @@
Upcoming Code Editor Upgrade to Monaco! | PlayCanvas Blog
-
+
diff --git a/upcoming-ui-changes-to-dashboard-and-editor-playcanvas-bytes/index.html b/upcoming-ui-changes-to-dashboard-and-editor-playcanvas-bytes/index.html
index 82b652650..1840887c4 100644
--- a/upcoming-ui-changes-to-dashboard-and-editor-playcanvas-bytes/index.html
+++ b/upcoming-ui-changes-to-dashboard-and-editor-playcanvas-bytes/index.html
@@ -5,7 +5,7 @@
Upcoming UI changes to Dashboard and Editor - PlayCanvas Bytes | PlayCanvas Blog
-
+
diff --git a/using-visual-studio-code-with-playcanvas/index.html b/using-visual-studio-code-with-playcanvas/index.html
index 33ab0512c..63c830314 100644
--- a/using-visual-studio-code-with-playcanvas/index.html
+++ b/using-visual-studio-code-with-playcanvas/index.html
@@ -5,7 +5,7 @@
Using Visual Studio Code with PlayCanvas | PlayCanvas Blog
-
+
diff --git a/variance-shadow-maps-for-webgl-and-more/index.html b/variance-shadow-maps-for-webgl-and-more/index.html
index d29bc134a..91743cfea 100644
--- a/variance-shadow-maps-for-webgl-and-more/index.html
+++ b/variance-shadow-maps-for-webgl-and-more/index.html
@@ -5,7 +5,7 @@
Variance Shadow Maps for WebGL and More! | PlayCanvas Blog
-
+
diff --git a/version-control-in-playcanvas/index.html b/version-control-in-playcanvas/index.html
index fc2792fe8..35d1fd834 100644
--- a/version-control-in-playcanvas/index.html
+++ b/version-control-in-playcanvas/index.html
@@ -5,7 +5,7 @@
Version Control in PlayCanvas | PlayCanvas Blog
-
+
diff --git a/virtual-reality-and-the-future-of-web-based-gaming/index.html b/virtual-reality-and-the-future-of-web-based-gaming/index.html
index 9362a68d8..e3d3c8ecc 100644
--- a/virtual-reality-and-the-future-of-web-based-gaming/index.html
+++ b/virtual-reality-and-the-future-of-web-based-gaming/index.html
@@ -5,7 +5,7 @@
Virtual Reality and the future of Web Based Gaming | PlayCanvas Blog
-
+
diff --git a/watching-and-starring/index.html b/watching-and-starring/index.html
index 973d03076..0292f107e 100644
--- a/watching-and-starring/index.html
+++ b/watching-and-starring/index.html
@@ -5,7 +5,7 @@
Watching and Starring | PlayCanvas Blog
-
+
diff --git a/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777/index.html b/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777/index.html
index 5cee1a826..186996f0f 100644
--- a/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777/index.html
+++ b/webar-experiences-and-playcanvas-developer-spotlight-with-frantz-from-visionaries777/index.html
@@ -5,7 +5,7 @@
Building WebAR Experiences - Developer Spotlight with Visionaries777 | PlayCanvas Blog
-
+
diff --git a/webar-experiences-developer-spotlight-with-animech/index.html b/webar-experiences-developer-spotlight-with-animech/index.html
index 205f5964a..aa1180797 100644
--- a/webar-experiences-developer-spotlight-with-animech/index.html
+++ b/webar-experiences-developer-spotlight-with-animech/index.html
@@ -5,7 +5,7 @@
Web AR Experiences - Developer Spotlight with Animech | PlayCanvas Blog
-
+
diff --git a/webgl-case-study-rebuilding-the-star-lord-pbr-demo/index.html b/webgl-case-study-rebuilding-the-star-lord-pbr-demo/index.html
index 60f252604..9f6d8fcc9 100644
--- a/webgl-case-study-rebuilding-the-star-lord-pbr-demo/index.html
+++ b/webgl-case-study-rebuilding-the-star-lord-pbr-demo/index.html
@@ -5,7 +5,7 @@
WebGL Case Study: Rebuilding the Star-Lord PBR Demo | PlayCanvas Blog
-
+
diff --git a/webgl-on-iphone-in-less-than-a-minute/index.html b/webgl-on-iphone-in-less-than-a-minute/index.html
index 3ac194955..23c234146 100644
--- a/webgl-on-iphone-in-less-than-a-minute/index.html
+++ b/webgl-on-iphone-in-less-than-a-minute/index.html
@@ -5,7 +5,7 @@
WebGL on iPhone in less than a minute | PlayCanvas Blog
-
+
diff --git a/webgl-texture-compression-made-easy/index.html b/webgl-texture-compression-made-easy/index.html
index 77f54dc8a..f519cc2dd 100644
--- a/webgl-texture-compression-made-easy/index.html
+++ b/webgl-texture-compression-made-easy/index.html
@@ -5,7 +5,7 @@
WebGL Texture Compression Made Easy | PlayCanvas Blog
-
+
diff --git a/webvr-lab-launch/index.html b/webvr-lab-launch/index.html
index b383260c8..3e398ad8d 100644
--- a/webvr-lab-launch/index.html
+++ b/webvr-lab-launch/index.html
@@ -5,7 +5,7 @@
WebVR Lab launches with Chrome 56 for Daydream | PlayCanvas Blog
-
+
diff --git a/webvr-support-in-playcanvas/index.html b/webvr-support-in-playcanvas/index.html
index b83fd8332..3f1345630 100644
--- a/webvr-support-in-playcanvas/index.html
+++ b/webvr-support-in-playcanvas/index.html
@@ -5,7 +5,7 @@
WebVR support in PlayCanvas | PlayCanvas Blog
-
+
diff --git a/webxr-ar-made-easy-with-playcanvas/index.html b/webxr-ar-made-easy-with-playcanvas/index.html
index e4fbe9733..9c4ca1240 100644
--- a/webxr-ar-made-easy-with-playcanvas/index.html
+++ b/webxr-ar-made-easy-with-playcanvas/index.html
@@ -5,7 +5,7 @@
WebXR AR Made Easy with PlayCanvas | PlayCanvas Blog
-
+
diff --git a/welcome-ludum-darers/index.html b/welcome-ludum-darers/index.html
index 9d68d1425..e8b2cc9f1 100644
--- a/welcome-ludum-darers/index.html
+++ b/welcome-ludum-darers/index.html
@@ -5,7 +5,7 @@
Welcome Ludum Darers | PlayCanvas Blog
-
+
diff --git a/whats-new-hdr-cubemaps-multi-selection-and-more/index.html b/whats-new-hdr-cubemaps-multi-selection-and-more/index.html
index e2ad934c4..d096e6c10 100644
--- a/whats-new-hdr-cubemaps-multi-selection-and-more/index.html
+++ b/whats-new-hdr-cubemaps-multi-selection-and-more/index.html
@@ -5,7 +5,7 @@
What's New: HDR Cubemaps, Multi-selection and more | PlayCanvas Blog
-
+
diff --git a/whats-new-html-assets-new-gizmos-viewport-improvements/index.html b/whats-new-html-assets-new-gizmos-viewport-improvements/index.html
index 0ef744450..eb84681e1 100644
--- a/whats-new-html-assets-new-gizmos-viewport-improvements/index.html
+++ b/whats-new-html-assets-new-gizmos-viewport-improvements/index.html
@@ -5,7 +5,7 @@
What's new? HTML Assets, New Gizmos, Viewport improvements | PlayCanvas Blog
-
+
diff --git a/whats-new-multi-selection-gizmos-and-faster-lighting/index.html b/whats-new-multi-selection-gizmos-and-faster-lighting/index.html
index bc7ace722..ac8fa1d73 100644
--- a/whats-new-multi-selection-gizmos-and-faster-lighting/index.html
+++ b/whats-new-multi-selection-gizmos-and-faster-lighting/index.html
@@ -5,7 +5,7 @@
What's New: Multi-selection, Gizmos and Faster Lighting | PlayCanvas Blog
-
+
diff --git a/who-ludum-dares-wins/index.html b/who-ludum-dares-wins/index.html
index d9e42ff32..08fc07eb3 100644
--- a/who-ludum-dares-wins/index.html
+++ b/who-ludum-dares-wins/index.html
@@ -5,7 +5,7 @@
Who Ludum Dares Wins! | PlayCanvas Blog
-
+
diff --git a/will-html5-change-the-way-games-are-made/index.html b/will-html5-change-the-way-games-are-made/index.html
index 14000f018..aa09dbfe7 100644
--- a/will-html5-change-the-way-games-are-made/index.html
+++ b/will-html5-change-the-way-games-are-made/index.html
@@ -5,7 +5,7 @@
Will HTML5 change the way games are made? | PlayCanvas Blog
-
+