Open-Source rocks!

Opportunities to learn and give back

VR WebXR

Tools and libraries like three.js, BabylonJS and PlayCanvas have made my journey exploring WebXR for prototyping interactions possible. In addition to being quite powerful, rivalling even native VR development options, these libraries are open-source! My recent explorations using them have renewed my appreciation for open-source software, as it is not just about the code out in the open, but also the strong community of contributors and collaborators that form around them. I try to consciously open-source most demos, examples and personal projects I work on as my way of giving back to this community. VR/AR APIs change rapidly, so most things I was able to learn while working in this domain was by reading others’ code. I hope through open-sourcing my code, I inspire people to try out WebXY and quicken its adoption even by a bit. This also encourages me to write better code and document my process clearly.

Then there is the occasional chance when one happens upon a bug/feature while working with open-source. Logging such instances on the project’s issue tracker/discussion board either as a new post or adding to existing discsusions in one of the first steps (after ascertaining this is indeed a bug/feature of course ;D). But if all the stars align and you have the knowledge and opportunity to contribute, then why not go ahead?

Such were my thoughts as I found a bug while working on a three.js demo about attaching objects to tracked hands inside AR/VR. A quick fix and one merged MR later, my demo worked perfectly! I learned quite a bit through the process, as each open-source community/project has its own intricacies when it comes to contributions. With this experience under my belt, I feel more ready to be part of the three.js community and WebXR codebases in general.

Going back quite a bit, my first experience with open-source contribution was with the wonderful library for conducting (VR) experiments in Unity, UXF. In this case, it wasn’t a bug but some features I wanted to see (discussed here and here) in the library. The maintainer gave me quick feedback which made my experience really smooth.

I hope I have many more opportunities to contribute to any open-source efforts!

Ayaskant Panigrahi

Hopelessly in love with clean code and unobtrusive design!

MSc at SIAT, Simon Fraser University