⚠ Work in progress: This page references tools and APIs that are works in progress. Some of them might not work or exist yet. We’re working on getting everything in place. Please let us know if you run into trouble or if you have feedback.
An Alloverse app is a server-side app that you run on your own server, similarly to how you would host a web app on your own server. The difference is, when a user goes to your app on the web, it loads into that user’s web browser on their computer; but when a user goes to your alloapp in an Alloverse Place, the app loads into the Place for all users in that Place to use, and your code gets collaboration and VR super-powers for free.
This tutorial will take you through creating an Alloverse app using the Lua programming language, since that is the language we’ve developed the most support for so far.
You can build apps on Mac, Linux or Windows; but for the latter, you’ll need a Unix shell, e g mingw, msys2 or WSL.
In contrast to a web framework like Rails or Django, Alloverse doesn’t install any software onto your system; instead, a project is completely self-contained within its project folder, and contains everything it needs to run.
Creating your project
First, create a project folder, and initialize an alloapp environment into it, and make sure it works:
$ mkdir allo-todo $ cd allo-todo $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/alloverse/alloapp-assist/master/setup.bash)" $ ./allo/assist help
(This is also a good time to
git init and
git commit -a, so the next commit only contains your own changes.)
The curl’d script will have created this project structure for you:
luacontains the Lua source code for your app
lua/main.luacontains your app! It barely does anything yet. But you can add more code to this file to keep going, and add more files into
luato modularize your code.
allocontains the Alloverse app framework. You should not edit anything in here, as an upgrade of the framework will overwrite your changes.
allo/assistis a script that helps you with tasks such as starting a server, installing dependencies, etc…
allo/libscontains compiled C dependencies as dynamic libraries and executables. These are
.gitignored to save space; if you check out your code on another computer, you can
assist bootstrapto install them again.
allo/boot.luasets up the runtime environment for your app.
Trying your app out
That’s it! You should now be able to start your project and see it appear in an Alloplace. If you don’t have one already, you can get or rent a Place at places.alloverse.com, boot one on your own, or just use our playground
$ ./allo/assist run alloplace://nevyn.places.alloverse.com
If it all checks out, you should be able to jump into that place on your VR headset and press the button it has created:
[TODO: Image of app inside nevyn’s place]
Making it pop
Let’s open up
main.lua and have a look at the code, and start extending it to make a to-do list app.
Deploying your app