A high-performance, Burst-accelerated mesh decimation library for Unity and VRChat.
This repository is a customized edition of Ram.Type-0’s Meshia (under the MIT License), tailored for both Avatars and Worlds. It runs standalone without requiring NDMF, integrates directly with tools like VRCFury, and powers batch environment processing in tools like Synthos Scene Optimizer.
Works on Avatars Without NDMF & Better VRCFury Support
MeshiaVrcfuryBuildHook), allowing VRCFury-managed avatars to decimate meshes cleanly during upload without NDMF framework bloat or order-of-execution conflicts.Independent UV Barycentric Interpolation (UseBarycentricCoordinateInterpolationForUV)
Watertight Edge Preservation (PreserveBorderEdges = true)
PreserveBorderEdges defaulted to false, causing holes and seam splits on open meshes and modular building pieces.PreserveBorderEdges defaults to true to keep environmental, clothing, and avatar seam geometry watertight.Batch Scene & World Processing Support
MeshSimplifier.SimplifyBatch(), allowing world optimization pipelines to decimate entire scenes in seconds.com.anatawa12.custom-localization-for-editor-extension is NO LONGER required: Stripped unnecessary third-party localization packages.Add the Synthos package repository to VCC / ALCOM:
https://grimreaper35487.github.io/Synthos-VRC-Packages/index.json
Then add Meshia Mesh Simplification (Synthos Edition) to your project, or install Synthos Scene Optimizer (which will automatically pull this in as a dependency).
using Meshia.MeshSimplification;
using System.Collections.Generic;
using UnityEngine;
// 1. Configure options (PreserveBorderEdges is true by default)
var options = MeshSimplifierOptions.Default;
options.UseBarycentricCoordinateInterpolationForUV = true; // High-accuracy UV preservation
// 2. Set target reduction
var target = new MeshSimplificationTarget
{
Kind = MeshSimplificationTargetKind.RelativeVertexCount,
Value = 0.5f // Reduce by 50%
};
// 3. Batch Simplify (Burst accelerated)
var batch = new List<(Mesh Mesh, MeshSimplificationTarget Target, MeshSimplifierOptions Options)>
{
(myMesh, target, options)
};
MeshSimplifier.SimplifyBatch(batch);
com.synthos.meshia
Undefined
3.2.1
2022.3 or later
No dependencies
Undefined