Enter VR


Your challenge: build a WebXR game for the js13kGames competition using A-Frame, Babylon.js, Three.js, or PlayCanvas with all the assets within 13 kilobytes in a zip package.

Virtual Reality is the next frontier for games! A-Frame, Babylon.js, Three.js, and PlayCanvas are powerful open source web frameworks for building virtual reality experiences. WebXR makes it possible for web developers to get involved. Five years ago we’ve introduced a whole new category with the A-Frame framework, four years ago added Babylon.js as the second option, three years ago we've added Three.js to the mix, and last year tossed in PlayCanvas, so you have plenty of options to chose from.

Inspire us with a virtual reality game experience built in WebXR with any of the four frameworks. For this category, you’ll have the same file size limit set to 13 kilobytes plus A-Frame, Babylon.js, Three.js, or PlayCanvas for free. We can’t wait to see what you create!


Marc Neuhoff

Marc Neuhoff

Co-founder of BestFit and Construct Arcade. UI/UX enthusiast and always eager to empathize with the user's role as best as possible. Marc is always trying to support developers to make great WebXR games and give them a place to reach the world at constructarcade.com. He loves the complexity of Path of Exile and how it makes him really get into it to maximizing stats.

@MCHoff1 | constructarcade.com

Fernando Serrano Garcia

Fernando Serrano Garcia

Software Engineer at Apple, previously worked at the Mozilla Mixed Reality team. Web, computer graphics and game development enthusiast.

@fernandojsg | fernandojsg.com

Josh Marinacci

Josh Marinacci

For over 25 years Josh Marinacci has worked as developer advocate, designer, engineer and author. He has worked at such storied companies as Palm, Nokia, Sun, and Mozilla; and currently manager at industrial 3D printer company Markforged. Josh believes in the power of technology thoughtfully applied, and the need for better human computer interfaces. He lives in sunny Eugene Oregon with his son building crazy robots.

@joshmarinacci | joshondesign.com

Joao Ruschel

Joao Ruschel

Developing games first as a hobby back in Delphi 2005, Joao Ruschel is now a software engineer at the PlayCanvas team. Previously at SAP HANA-Vora, and then Amazon's Alexa, Joao has also developed and released a couple of Mobile games - such as STAP, a Google Top 10 Europe Indie Games Showcase 2019.

@dejohn_paul | medium.com/@joao.ruschel


Valve Index VR Kit

Valve Index

One Valve Index VR Kit device.

Construct Arcade

Construct Arcade promo

Publish your game on Construct Arcade to reach large community of players.


10 × PlayCanvas account

Ten 6-month PlayCanvas Personal accounts offering a cloud-hosted, collaborative platform for building games.


Rules of the competition for WebXR category are exactly the same as Desktop, with one extra - you can include A-Frame / Babylon.js / Three.js / PlayCanvas library from a remote server. Place either of this HTML in your <head> tag:

<script src="https://js13kgames.com/webxr-src/2022/aframe.js"></script>
<script src="https://js13kgames.com/webxr-src/2022/babylon.js"></script>
<script src="https://js13kgames.com/webxr-src/2022/three.js"></script>
<script src="https://js13kgames.com/webxr-src/2022/playcanvas.js"></script>

You can download it and test locally, but remember to reference it correctly in your submission and don't include in the zip package. This JavaScript file alone is the only external resource you can use (default fonts, controls, etc that are automatically downloaded
by A-Frame/Babylon.js/Three.js/PlayCanvas itself are ok though).


Size limit and the libraries

All the official rules for the Desktop category apply except #3. The A-Frame, Babylon.js, Three.js, or PlayCanvas library is an extra JavaScript file in this category alone to be referenced as an external resource, and it's the only external resource that can be used in your entry (A-Frame's, Babylon.js', Three.js', and PlayCanvas' default fonts, controls, or any other resources that are downloaded in the background by the library itself are allowed though).


The libraries available for you to use are up-to-date given the start of the competition, August 13th. Those are: A-Frame version 1.3.0, Babylon.js version 5.22.1, Three.js version r144, and PlayCanvas version 1.56.0.

A-Frame components

You can freely use A-Frame components if you fit them inside the package. Remember that some of them may try to download extra resources, which is not allowed, so you have to modify them for your use in the competition.

WebXR versus other categories

Given the specificity of this category, and that entries using the library for "free" have technological advantage over other entries, the WebXR category is treated as an entirely separate one. You can submit your game to any (or all) of the three classic categories (Desktop and/or Mobile and/or Server) OR to the WebXR category alone. You can, however, submit your entry to both WebXR and Web Monetization categories, though it might be difficult to judge those two aspects at once.

Submitting your entry

The standard submit form is used to send an entry to the competition. Remember to select the WebXR category as the one from the available options. The A-Frame, Babylon.js, Three.js, or PlayCanvas libraries cannot be included in the zipped package, only linked to - the zip without it should be 13 kilobytes or less.

Dedicated judges

The judges in this category are here to focus on your entries. Every judge will try to vote for every entry submitted to the WebXR category, and provide constructive feedback - what was great and what could be improved.

Valve Index VR Kit

This device is sponsored by Construct Arcade. Given the specificity of shipping hardware worldwide, and issues it may cause given various customs services around the world, this prize is not guaranteed. We will do our best to ship you the prize, but you might have to pay extra taxes or other costs of importing such device to your country.


If You have any questions about this category feel free to contact us via e-mail: contact@js13kgames.com.
Other options include visiting our profiles on Twitter or Facebook, or joining our Slack channel.