When we first joined the Lens Studio team, we were delighted to find out that the original Lens Production team — who created the world-renowned Dancing Hot Dog, Puking Rainbow, and Dog Snapchat Lenses — was still working at Snap AR. Five years later, the team continues to build some of our most viral in-house Lenses, including the Shook and Crying Lenses. As the team and projects grew both in size and scope, collaboration became more of a challenge. And while the Lens Studio team has always found ways to work around issues, we needed to ask ourselves a key question: “How do we make collaboration within Lens Studio effortless?”
We know that Lenses are often created by teams of developers, designers, and artists who have varying skills and levels of expertise to bring to a project, which is why project collaboration has become a vital need when working on augmented reality content.
Without support for Version Control, our developer community has adopted inconvenient workflows that involve zipping up projects and sending them through Google Drive or sharing code snippets through Slack. You name a solution — our creative developers have probably tried it.
That’s why we’re excited to share that Lens Studio now enables you to maintain the integrity of your project while collaborating simultaneously, resulting in more efficient teamwork. That means you spend less time on project logistics and more time on development.
Let’s take a deeper look at how we made this happen for the latest Lens Studio release. Across development engines, scene files are often written in binary, so they’re smaller and faster to read. Up until this release, Lens Studio project scene files (scene.scn) and cache (project.data) were stored in binary, which meant that any changes to an object, component, asset, or other element would update these files and cause an eventual merge conflict. To prevent this, we took everything that was stored in our scene file and split it into easy-to-navigate files. For example, all project-specific data is now stored as separate, readable JSONs in the Entities folder. This minimizes merge conflicts in general, as this will now happen only if two users edit precisely the same properties or hierarchy of the same object. New Lens Studio project files created with Lens Studio 4.40 and beyond will be stored in this new format.
This breakthrough update also ensures that forward compatibility is preserved, meaning you can overwrite or recreate existing projects in a new format. If you’re interested in getting started with Version Control, take a look at these docs as well as this video tutorial for more in-depth instructions.
This new solution is the first of many to begin enabling more sophisticated and collaborative Lens development, so stay tuned.
As always, we can’t wait to see what you build together!
By Snap team members Charmaine Lee, Product Manager, Lens Studio and Kirill Sploshnov, Software Engineer, Lens Studio