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.
“A lot of our projects in Lens Studio are worked on by multiple people with different skill sets, and that back and forth gets really exhausting. The dream scenario is to be able to develop a project across three or more people at the same time.”
—Gauri Kumar, Snap Lens Ambassador and AR/VR Developer at Tactical
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.
“Our Lens Production team was one of the first teams to start using Lens Studio with version control, since LS piloted this internally. It took a while to get the whole team onboarded to this new workflow but this has been immensely helpful in dividing and conquering different parts of projects. Merging changes with this new project format has made big projects a lot more manageable. This is a big step towards allowing developers to take on more complex projects at scale.”
—Eugene Shevchuk, Lens Design
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