Brute-Forcing a 190,000 Polygon VeryPoor VRChat Avatar Down to 70,000 Polygons

Dec 22, 2024Nov 6, 2025 Updated📖 29 min read | 17,141 charsDiaryVRChat

Sometimes your VRChat avatar ends up with a "Very Poor" performance rank. Very Poor avatars may be hidden in certain worlds or cause performance issues for other users, so optimization is generally recommended where possible.

In this post, I used the Unity tools "Mantis LOD Editor" and "MeshDeleterWithTexture" to reduce my avatar's polygon count, successfully improving the performance rank from "Very Poor" to "Poor." Here's a record of the process and methods used.

Optimization Results: Before and After

Before: 188,784 polygons / Performance Rank: Very Poor

Avatar before optimization (Very Poor rank)

After: 69,995 polygons / Performance Rank: Poor

Avatar after optimization (Poor rank)

As shown, the polygon count was reduced by 63% while keeping visual impact to a minimum.

[Before you read: a note on expectations]

This article documents the process of forcibly reducing a ~190,000 polygon high-end model to under 70,000. Honestly, after going through the process, I questioned whether this level of reduction was really necessary.

In practice, keeping a separate lightweight avatar for performance-critical situations is more realistic. That said, this guide is useful as a reference for understanding polygon reduction techniques, or for more modest optimizations (e.g., 100K to 70K polygons). Read it as a learning experience!

Here are the specific methods I used to effectively reduce polygon count. These techniques are also valuable for avatar customization and original model creation:

  • Removing hidden parts: Deleting body mesh that's invisible under clothing (e.g., elbows)
  • Mantis LOD Editor reduction: Reducing polygon counts on individual parts (clothes, hair, accessories) to the limit before visual quality breaks down
  • MeshDeleterWithTexture partial deletion: Removing unnecessary clothing decorations or hidden mesh by specifying texture regions
  • (Advanced) Part separation with MeshDeleter: Splitting combined parts (e.g., inner + outer clothing as one object) to optimize them individually

This article walks through each step in order.

Required Tools and Setup

Here are the main tools used for this VRChat avatar optimization (polygon reduction):

  • Mantis LOD Editor - Professional Edition (Unity Asset Store / Paid: ~$55)

    • A well-established Unity asset with high-quality polygon reduction (decimation) capabilities. Efficiently reduces polygon counts on individual avatar parts. After purchase, import it via Unity's PackageManager > My Assets.
  • Non-Destructive Polygon Reduction: NDMF Integration for Mantis LOD Editor (Booth: by Hitsubu / Free *Requires Mantis LOD Editor)

    • A tool that lets you use Mantis LOD Editor within the "NDMF" framework, widely used for VRChat avatar modification, in a safer and simpler (non-destructive) way. Download from Booth and import the unitypackage. This is what you'll actually apply to your avatar.
  • MeshDeleterWithTexture beta (Booth: by Gatosyocora / Free)

    • An incredibly useful Unity editor extension that lets you delete mesh regions by painting on a texture image. Ideal for removing fine clothing decorations or hidden mesh that Mantis can't easily handle. Download from Booth and import the unitypackage.
  • anatawa12's VRC Avatar Tools (formerly: gists pack) (Install via VCC)

    • A toolkit that includes detailed avatar performance statistics. The "Actual Performance" tab is essential for monitoring current polygon counts and performance rank in real-time during optimization. Easily added via VCC (VRChat Creator Companion) under "Manage Project."

[Important] How to check with the Actual Performance tab:

After installing anatawa12's VRC Avatar Tools, a new "Avatars" tab appears in the VRChat SDK Control Panel with an "Actual Performance" section. After applying Mantis or MeshDeleter optimizations, enter Play Mode in Unity to update these stats and confirm your current polygon count and performance rank. The goal is to get the "Polygons" value below 70,000 (the Poor rank threshold).

Adding anatawa12's VRC Avatar Tools via VCC
Checking polygon count and rank in the Actual Performance tab

(In this example: 188,784 polygons = Very Poor. Target: under 70,000!)

Useful Terminology

Here are some terms that will help you understand the optimization process:

  • Non-Destructive An editing approach that doesn't modify the original data directly. The NDMF version of Mantis and MeshDeleter both operate non-destructively, preserving the original mesh data. This means that if you make a mistake or don't like the results, you can simply remove the tool's component or revert the settings to easily restore the original state. This is a huge advantage that makes it safe for beginners to experiment.

  • NDMF (Non-Destructive Modular Framework) A framework for VRChat avatar modification. It manages various avatar settings and modifications as "components" that are automatically applied at build time. It pairs well with non-destructive workflows, and many useful tools support NDMF. The "NDMF Integration for Mantis LOD Editor" used in this guide is one of them.

Polygon Reduction with Mantis

VRChat SDK Validation screen identifying parts with too many polygons

Start by identifying which parts of your avatar are the biggest polygon offenders.

  1. Open the VRChat SDK Control Panel in Unity and select the "Builder" tab.

  2. With your avatar selected, attempt to build -- performance warnings (Validation Results) will appear. Click the "Select" button next to the "Polygons" warning message to highlight the meshes (clothing parts, etc.) with the highest polygon counts in the Hierarchy window.

  3. Add the "NDMF Mantis LOD Editor" component to the highlighted objects (clothing parts, etc.). In the Inspector window, click "Add Component" and search for "Mantis."

  4. Adjust the "Quality" slider on the added component. Lowering this value reduces the polygon count, but going too far will cause the mesh shape to degrade.

NDMF Mantis LOD Editor component Quality slider

[Tip] Use Shaded Wireframe view

When adjusting the Quality slider, switch Unity's Scene view to "Shaded Wireframe" mode. This makes it easier to visually assess how much the polygons are being reduced and whether the mesh is degrading. Toggle between "Shaded" and "Shaded Wireframe" views to find the sweet spot that preserves visual quality.

Checking polygons in Shaded Wireframe view

The basic workflow is: identify high-polygon parts, add the component, and adjust Quality -- repeating this for each major part.

[Important] Delete Unused Parts Completely

When customizing avatars, it's tempting to keep old outfits or hairstyles "just in case" by simply hiding them in the Hierarchy. However, hidden meshes may still count toward the polygon total!

In my case, I had the original Manuka avatar's apron parts hidden but still present. Completely deleting them from the Hierarchy saved approximately 16,000 polygons.

Don't hesitate to delete parts you're not using. If you need them later, you can always reimport from the original avatar or outfit unitypackage.

Deleting unnecessary parts from the Hierarchy

(Reference: How to escape VeryPoor with just Unity | Kohada)

[Caution] Be Very Careful with Face and Body Polygon Reduction!

The detailed mesh structure around the face

While Mantis is effective for polygon reduction, it's generally best to leave the "face" and "body" meshes untouched.

The face area in particular is composed of extremely fine polygons to support rich facial expressions. The mouth area needs various polygon configurations for lip sync shapes, and the eye area needs them for blinking and emotion expressions.

Carelessly reducing these areas with Mantis has a high risk of causing the mouth to break during speech or facial expressions to collapse entirely. Similarly, reducing body joint areas can result in unnatural appearances during poses.

Focus polygon reduction on clothing, hair, and accessories, keeping the face and body as close to their original state as possible.

[Decision] Sometimes Design Compromises Are Necessary

Tail part before and after reduction

When you simply can't reach your target polygon count (70,000 for Poor rank), you may need to make the tough call of sacrificing part of the design.

For my avatar, I reduced the tail part's polygon count with Mantis to some degree, but it still wasn't enough to hit the target. Ultimately, I decided to remove the tail part entirely. It was disappointing, but sometimes these trade-offs are necessary for performance rank improvement.

Cases Where Mantis Alone Isn't Enough

Mantis LOD Editor is an excellent tool, but during the optimization process, several situations arose where Mantis alone wasn't sufficient or efficient:

  • Reduction limits on combined parts: When a single object contains multiple elements (e.g., inner and outer clothing fused together), reducing with Mantis causes the lower-polygon section (e.g., the inner layer) to degrade first, preventing adequate reduction of the higher-polygon section (e.g., the outer coat). Ideally, you'd separate the parts and reduce each individually.
  • Remaining hidden mesh: Body mesh hidden under clothing (e.g., the stomach area) still counts toward polygon totals even when hidden. You want to delete just those concealed areas.
  • Removing specific decorations: You want to remove just certain clothing details (pockets, belts, frills, etc.) to save polygons, but Mantis only offers global reduction.

This is where "MeshDeleterWithTexture beta" becomes invaluable.

Body mesh before optimization (showing areas hidden by clothing)

(For example, we want to delete this stomach mesh that's hidden under clothing.)

Clothing hidden, showing remaining stomach mesh

Partial Deletion with MeshDeleter

"MeshDeleterWithTexture beta" is a revolutionary tool that deletes mesh regions corresponding to areas you paint on a texture image (technically, it generates a new mesh with those areas removed).

The workflow is highly intuitive:

  1. Download the unitypackage from Gatosyocora's Booth page and import it into your project.

  2. A "GotoTools" item appears in Unity's menu bar. Select "MeshDeleter with Texture" to open the tool window.

MeshDeleter with Texture menu
  1. Drag and drop the object whose mesh you want to delete (e.g., the body mesh object) from the Hierarchy window into the "Renderer" field at the top of the window.

  2. The texture image assigned to the object appears in the window.

  3. Select "PEN" or another draw type from the right side, then paint the areas you want to delete (e.g., the stomach area hidden by clothing) in black on the texture. The painted areas are reflected in real-time on the model in the Scene view, letting you preview what will be removed.

Painting the stomach area black on the texture in MeshDeleter
  1. After confirming the deletion area, click the "DeleteMesh" button. A new mesh with the specified areas removed is generated and automatically applied to the object.
After MeshDeleter execution -- stomach mesh has been removed

[Note] MeshDeleter is also non-destructive!

This tool is also non-destructive -- the original mesh data remains in your project. If you made a mistake or want to revert, simply change the Mesh reference in the object's Mesh Renderer (or Skinned Mesh Renderer) component back to the original file.

Inspector showing the newly generated mesh applied

Using this method to remove the stomach mesh hidden under clothing saved approximately 1,000 polygons. You can then apply Mantis LOD Editor to the remaining areas for even more efficient polygon reduction.

Advanced: Separating Clothing Parts

The target techware outfit (inner and outer layers are a single mesh)

MeshDeleter's "delete mesh by painting on a texture" functionality can also be used to separate fused clothing parts.

The techware outfit I was working with (~60,000 polygons) had the coat (outer layer) and upper-body inner layer built as a single object (mesh). With Mantis, trying to reduce this combined mesh would degrade the lower-polygon inner layer first, preventing sufficient reduction of the higher-polygon coat section.

So I used MeshDeleter to create separate "inner-only" and "outer-only" meshes.

[Part Separation Steps]

  1. Duplicate the original techware object in the Hierarchy (Ctrl+D or Cmd+D) and rename each copy descriptively (e.g., "Inner" and "Outer").

  2. Select the "Inner" object and open the MeshDeleter window.

  3. On the texture, paint all areas corresponding to the outer coat in black and execute "DeleteMesh." This produces a mesh containing only the inner layer.

Painting the coat areas on the Inner object
The completed inner-only mesh
  1. Similarly, select the "Outer" object, and in the MeshDeleter window paint all areas corresponding to the inner layer in black, then execute "DeleteMesh." This produces a mesh containing only the outer coat.
Painting the inner areas on the Outer object

This separates what was originally a single piece of clothing into two distinct meshes: "Inner" and "Outer." The fact that you can separate parts entirely within Unity without needing external modeling software like Blender is incredibly convenient.

After separation, you can apply NDMF Mantis LOD Editor individually to each part (inner, outer) for much more effective polygon reduction.

Optimization Results and Key Takeaways

Using the methods described above, the avatar that started at 180,000 polygons with a VeryPoor rank was successfully reduced to 69,995 polygons with a Poor rank.

Final polygon count (69,995) showing Poor rank

To reach the target of under 70,000 polygons, I also made design adjustments like removing clothing decorations and reducing coat polygons. The process of reducing polygon count while preserving visual quality requires trial and error, but it was an excellent learning experience.

Avatar appearance after optimization (visual degradation is minimal)

Both "Mantis LOD Editor (NDMF version)" and "MeshDeleterWithTexture beta" are non-destructive tools, making them relatively safe for beginners to try. The reassurance that "you can always revert" is a significant psychological benefit when undertaking optimization work.

By combining Mantis's powerful polygon reduction capabilities with MeshDeleter's flexible partial editing and creative applications, even VeryPoor-ranked avatars have a strong chance of being effectively optimized.

If you're struggling with polygon counts on your VRChat avatar, I encourage you to try the tools and methods introduced in this article. (Note that performance rank is also affected by factors like material count, so consider those as well if aiming for comprehensive optimization.)

References

The following articles and videos were invaluable references during this avatar optimization (polygon reduction) work. Thank you for the excellent information!


Addendum: Considerations for High-End Models

While this article covers improving a Very Poor avatar to Poor rank, it's worth noting that the same approach isn't always the best option for every case. Optimizing so-called "high-end models" with very high initial polygon counts requires particular caution.

These models are appealing precisely because of their intricate decorations, complex outfits, and numerous gimmicks -- but this comes with enormous polygon counts (commonly exceeding 100,000 by a large margin). Applying polygon reduction tools like Mantis LOD Editor to these models can strip away visual detail even at modest reduction levels, significantly diminishing the model's original appeal.

For avatars that are only slightly above the Poor rank threshold (e.g., 70K-100K polygons) or models with inherently simpler designs, the methods in this article work well. However, for high-end models that exceed twice the threshold -- 150K, 200K+ polygons -- trying to forcibly reduce them to Poor rank while maintaining visual quality is often impractical and not recommended.

So what should you do instead? Rather than extreme optimization of a single model, consider a usage-based approach:

  • Regular use: Keep your main avatar at its original quality without optimization
  • Performance-critical situations: For large gatherings or worlds where performance matters, prepare a separate lightweight version (Quest-compatible versions may already be available) or use an entirely different lightweight avatar

Personal Experience and Reflection

To be honest, after using the Manuka modification I optimized to Poor rank (69,995 polygons) for a while, my perspective changed somewhat. While the polygon reduction was technically successful, I found myself thinking "Was it really worth removing those clothing details for this?" about some of the design compromises I'd made.

Also, given that my VRChat play style doesn't frequently involve performance-critical worlds, the honest truth is that "keeping this particular model at Very Poor probably wouldn't have caused any real problems."

Avatar optimization is an important aspect of enjoying VRChat comfortably, but it's not always a necessity. I believe it's important to carefully consider your play style, the communities you participate in, and how much visual change you're willing to accept before deciding whether and how far to optimize.

Share this article