Case Study
Sep 28, 2023

Avastars: turning a PFP project into interoperable VRM avatars

Dive into the process of creating Avastars as interoperable 3D VRM avatars

Avastars is the first on-chain intentional digital identity NFTs built on the Ethereum blockchain in 2020.

Each token in this PFP collection is totally unique, and has its artwork and metadata stored on the chain. Additionally, their owners have the right to use them for commercial purposes and create Replicants with them, PFP's with their corresponding avatar resulting from mixing the traits of their Avastars.

Our goal as a 3D creative studio that designs experiences and characters for virtual worlds is to meticulously create VRMs that faithfully reproduce the intricate details and nuances of the original PFP.

In our support of translating our digital identities to as many virtual worlds as possible and making NFTs as useful as possible, we proudly accept this challenge.

Let's dive into the process of creating Avastars as interoperable 3D VRM avatars!


Why avatars in VRM format?

First of all, before delving deeper into development details, let's stop and understand how we are able to create digital identities with 3D avatars.

Why are we using VRM format?

VRM is a specialized 3D file format designed for humanoid avatars, gaining popularity in the VR community for its real-time rendering and cross-platform compatibility. It streamlines avatar creation and distribution for VR and AR apps, ensuring easy interoperability and customization without the need for format conversions.

Check this out if you want more info about it!

VRM OnCyber party

Traits definition

Before we start production, we must understand how the original characters are created. To do this, we will first go to OpenSea to identify which traits can be replicated in 3D and assess their complexity.

By doing this, we can estimate the project's timeline and break it down into smaller tasks. The more traits there are, the more complex a generation will be, as every trait will become a file for the 3D character assembler.

Avastars traits in OpenSea

When creating a body for a VRM collection, it's crucial to define the size of the avatar because making changes in the future can be disastrous and costly in terms of hours of work.

Generally, male characters are taller than female characters, but in Avastars, we found that there are also non-binary characters which share traits with both genders. Because of this, we had to make the male, female and non-binary bodies the same size to ensure optimal trait exchange in all cases.

Once the client agrees with the physical proportions of the bodies, we move on to creating clothing concepts. In the case of Avastars, many proposals were made, including futuristic, pirate vibes, 80s inspired clothes, etc. Ultimately, it was decided to choose four different styles for Primes, Founders, Exclusives and Replicants.

Since the original PFP do not depict the bodies of the Avastars, we need to imagine and create how Avastars would dress in a way that matches their vibe, lore and art style.

Female Prime concept

Female Prime 3D

Solving technical budgets

One crucial step in our process is the categorization of traits. However, this is only the beginning; we must also establish a steady and optimized pipeline that takes into account factors such as poly count for each piece of the avatar trait.

This step is critical, given the limitations of each metaverse platform, where the standard limit lies ast 15.000 triangles, 2 materials and 1024px textures.

We need to ensure that we keep working to never surpass those hard limits, as exceeding them would render the avatar unusable in some metaverse platforms or on low-end devices like mobile and VR headsets.

Materials distribution

Materials distribution maps textures

To accomplish this, we take into consideration various factors, including the physical size of the trait, its significance, and its complexity in terms of shape. Based on this criteria, we assign each trait a specific polygon budget.

In this case, the maximum polygon budget for clothes is set at 7.000 triangles.

Polygon budget

By carefully managing these aspects of trait categorization and polygon allocation, we can ensure that our avatars remain efficient and visually appealing, even within the limitations of the platform.

Once we have completed the poly count analysis, we focus on determining the number of materials required for the collection and how we will go about unwrapping the UVs. In this project, the distribution of the UVs is very important due to the number of different traits that have to be combined with each other.

A UV map is a flattened representation of the surface of a 3D model, which is used to efficiently apply textures. Just as with polygon distribution, we need to allocate space on the UV map based on their importance, complexity, and size.

Knowing the project characteristics, we assigned 1 material for the body and the clothes, and 1 for the head and its traits.

UV distribution

Entering 3D avatar production

When we enter the production stage, we usually encounter a significant challenge related to facial features.

Working on Avastars with traits like hair was relatively straightforward – we would examine the image and meticulously craft a 3D representation of the hair that closely matched the source material (while keeping an eye on the polygon budget), before applying it to the character model.

However, when we embarked on creating the initial facial traits, such as noses, ears, and mouths, we quickly realized that creating them as separate entities would lead to difficulties in seamlessly integrating them into the character's face.

This became quite a dilemma until we arrived at the solution: using blend shapes during the production of traits. By using blend shapes, we simplify the way we create facial features, as they are all created from a base head.

Ears blend shapes

A blend shape is a technique used in 3D animation and digital modeling to create changes in the shape of a three-dimensional model. It's also known as morph targets or shape keys.

Facial expresion thanks to blend shapes

As mentioned before, the facial features such as the nose are made with blend shapes - or by deforming the 3D mesh to shape it differently.

For this, we need a base nose from which we will start to create all the others by sculpting and moving vertices. Then, we will paint the points and lines in Substance painter. Lastly, we will repeat this process for the ears, eye sockets, mouths and jaws.

Texturing, how the 3D absorbs the 2D style

Alongside with this innovative blend shapes workflow, we encountered another challenge when dealing with noses, mouths, and ears, as they are integral parts of a facial structure and cannot have separate textures.

Therefore, we embarked on a creative journey within Blender to develop a comprehensive material that seamlessly blends various elements: points, lines, normal maps, facial paints, makeup, and colors.

Face texture overview
Face texture creation

For elements like piercings, hair, glasses, and other mesh based traits, we adopted a different approach. We designed them separately, each with its unique material. Eventually, these distinct elements are skillfully combined and merged with the facial components during the baking process.

Think of it as a bunch of Photoshop layers on top of each other that are put together into a single image.

Face textures application

Another pipeline; getting into the hair and eyes

Both the eyes and hair come in a variety of colors, and individually texturing and exporting them in Substance Painter with all their respective colors is not a practical choice.

This approach would require a significant amount of production time and storage space for numerous images that would need renaming. Instead, we've opted for a black and white texturing approach. From there on, in Blender, we've developed a node system to introduce color during the assembly phase.

Hair color


We create a structure of bones and controls within a geometry to animate the body. The purpose is for the avatar to be able to move: walk, run, jump, etc. VRM is a humanoid standard, so there is a clear vision of where we need to get in terms of movements and motion possibilities.

Due to technical limitations, it's essential to maintain an optimal bone count: ideally, one bone per joint. However, there are instances, particularly when dealing with clothing or other flexible elements, where we can employ dynamic bones. These dynamic bones respond live to external forces such as gravity or movement, enhancing the realism and fluidity of character movement. This spring bone will be enabled on any platform that allows it, and if not, these dynamic parts will remain still.

As male and female bodies have anatomical differences, we had to create two different rigs. One belongs to female clothes, and the other to male clothes.

Avastars skeleton

Dynamic bones test

Assembling the Avastars

Once we have the Blender file containing all the traits and the rigged bodies, the next step is to automate the avatar creation process. This enables us to replicate it and produce the 26,000 avatars that are part of the collection.

Additionally, we have to bake all the textures that form the facial features into a single texture map within the same material, as if it were a puzzle.

That's why it is very important when creating the UV's of each trait to place them in their right spot following the UV template previously created.

Otherwise, when assembling the character, it may result in texture errors and overlaps.

Face baking process

To accomplish this, we provide instructions to our programming team on how to generate an Avastar, and they subsequently, translate these instructions into functional code.

How the assembling works

To create an avatar, there are two consecutive processes. Firstly, the creation of textures, as mentioned earlier, involves merging all the character's textures into a single map.

Next, the character is assembled using all its components, so we require a Blender file in which all the traits, bodies, and skeletons are hidden. These elements will be activated when they are needed to generate the avatar.

Assembling Avastars

Wrapping up

Our mission to convert over 26,000 PFP into 3D VRM avatars for the Avastars project has been a complex journey.

We've tackled various challenges, from defining traits and managing polygon budgets to creating blend shapes for facial features. Overall, we achieved to create a well-defined collection of 3D avatars that have complex textures and still maintain a file size of 10MB per file, making them perfect for metaverse and mobile platforms.

Our team's technical expertise and creative solutions have ensured that these avatars exceed metaverse and virtual worlds expectations. We've also woven a compelling narrative inspired by the Avastars Collective pioneers, adding depth to the characters.

The Avastars project is not just about creating 3D digital identities; it's about building a bridge between the digital and physical worlds, allowing users to immerse themselves in a metaverse filled with characters born from their own online personas.

We are excited about the possibilities that lie ahead and look forward to seeing how these avatars become an integral part of the metaverse experience for users around the world!

Substance Painter
Adrián Mateos
3D Character Artist

I’m a 3D lover, I enjoy bringing characters to life

Transforming Icons: Bored Ape Yacht Club 3D Avatar Collection
Stylized characters 101
Case Study
Creating a payload mode in UEFN - Banana Fever