Island Collective Virtual Reality, December 2023 (1 of 2)
It has been a multithreaded sort of a year, and the development of ICVR has seen a few twist and turns and a lot of updates, with our integrated VR framework seeing a first release at the start of August, and a second at the start of November.
What is ICVR?
For those unaware, ICVR is an open-source toolkit for building immersive canisters, built on Unity WebGL and WebXR. It is made of a few core modules:
- Controllers for movement and interaction
- Physics and interaction components
- WebRTC avatar and interaction sharing
- On-demand media using IndexedDB
Along the way, we made a few cansiters to show off what the framework is capable of:
The Island Collective __ deBunker ____ The Island Club ____ Island Bowling
The second release allowed for a much-simplified setup within Unity editor. In short, I discovered that you can make settings presets and load them into the editor. Even better, you can import dependencies with the click of a button. This means that, in a few simple actions, you are ready to create your first VR canister.
This release also saw Unity functions added around authentication (using II) and token transactions within the Unity scene - there will be more information on these in part 2. A quick spoiler though, that also requires no coding.
Need help getting started?
Check out this set of tutorials, given by my collaborator, Magic. In these videos, heβll walk you through using his pre-made scenes, sculpting basic terrain, taking assets from the Unity Asset Store and has some tips on optimisation in Blender, when exporting for an ICVR scene. The final video is a long-form guide, looking at various aspects of optimisation and performance considerations:
Also in the repository, alongside some unitypackages, you will find documentation for all of the important C# classes, many of which contain usage notes and additional information. If you have any questions, suggestions or accusations, drop a comment below, or get in touch via Discord or X.
This takes you as far as the creation of a WebAssembly module, ready for deployment onto the Internet Computer. In part 2, Iβll be looking at the canister template that makes that happen. For those wanting to get a head start, you can find it here.
Acknowledgements
I cannot close this without giving a nod to DFINITY, who supported the creation of this framework with their grant program. Their hospitality is also spot on.