Decomposed 100+ self-contained Lens Studio templates into a modular asset library, so creators across every skill level could compose new work instead of inheriting old patterns.

Context

Lens Studio's creators span the full skill range — and they all enter the platform through templates: complete, self-contained AR experiences you open, study, and learn the platform from.

  • No-code creator
  • Brand / marketer
  • 3D designer
  • Expert developer

The problem

Templates are great for learning. They're broken for building.

Hair Color legacy templateHair Color
Portrait Relighting legacy templatePortrait Relighting

Each template is an all-in-one, opaque bundle.

Want hair color from one + relighting from the other? Each template hides its own complex camera and render-layer settings. No reusable pieces. Mix-and-match was impossible.

The moment a creator graduated from learning to making their own project — pulling the physics from one template into a Lens that used voice UI from another — the complex, interlinked setup of each template became the wall. Creators without an engineering background — which is most creators — hit this wall first and hardest.

Why decomposed assets, not better templates?

The instinct was to simply migrate the templates. Existing LS4 creators would find what they knew, in the same shape. Comfort.

Templatesseed similar workComponentscompose new work
Each template is a finished destinationEach asset is a building block
Variations on the same Lens, over and overEncourages new effects and lens variations
Comfort, but locked-in outcomesHigher learning curve, unlocked outcomes

I argued for the harder path: break the template-first mental model. Templates step back from the building surface; modular assets step forward.

Templates teach a platform. Components build on it.

The brave part wasn't the architecture — it was telling LS4 creators to leave years of muscle memory behind. To soften that shift, the new asset architecture borrowed the two design cues creators already used to recognize and scan templates: the screenshot-icon and the technical name.

Marker templateMarker template
Marker Image assetMarker Image asset
Same screenshot icon. Same recognizable name.

For new creators — people without LS4 history — the mix-and-match-able building blocks are simply the starting point. They never have to unlearn anything.

The migration

I led the cross-team Lens Studio 4→5 platform migration across graphics, AR engineering, and feature teams. We decomposed 100+ legacy templates into reusable components and assets — building blocks that snap together cleanly across every kind of creator.

100+ modular Lens Studio assets — the end state of the migration
100+ templates → 100+ assets

Outcome

A platform-wide content architecture shift shipped to the Lens Studio creator ecosystem. The 100+ asset Asset Library grew out of this work, including primitives like Behavior Script (trigger/response without code) and Tween Manager (animation without code) — adopted as core building blocks used by the majority of Lens Studio creators.

3D Hand Tracking legacy template
3D Hand Tracking
Default 3D Hands
Default 3D Hands
Frog 3D Hands
Frog 3D Hands
Skeleton 3D Hands
Skeleton 3D Hands

One tracking capability, three themed variants. Creators picked the art direction without forking the underlying template.

Marker legacy template
Marker
Marker Image
Marker Image
Marker Cube
Marker Cube

Marker exposed as two composable variants — Image and Cube — instead of two separate template forks.

3D Body legacy template
3D Body
Two Spacesuits
Two Spacesuits
Stick Figure
Stick Figure
Dancing Mark
Dancing Mark
Abstract Gear
Abstract Gear

3D Body decomposed into four ready-to-use variants. Each one a starting point creators could remix.

Sample legacy template 1 of 6 (uses duplicated logic)Sample legacy template 2 of 6 (uses duplicated logic)Sample legacy template 3 of 6 (uses duplicated logic)Sample legacy template 4 of 6 (uses duplicated logic)Sample legacy template 5 of 6 (uses duplicated logic)Sample legacy template 6 of 6 (uses duplicated logic)
100+ Legacy Templates
Behavior (Custom Component)
Behavior
TweenManager (Custom Component / Package)
TweenManager

Behavior Script and Tween logic lived duplicated inside every legacy template — every fix had to be re-applied across 100+ places.