Mesh Deformation Full Collection
Official General Documentation
v 20.0.0
Latest package teaser
It is recommended to open the documentation online to stay up-to-date & for the gifs to work properly.
General documentation of the MD-Package
Written by Matej Vanco, 2014-2025 ©
Updated in October, 2025.
Video documentation
Roadmap
Official roadmap of the package and all of my assets
Curious what the future holds? Click the Trello icon!
Content
Basics
Introduction�Summary�Preferences
Core Tools
Mesh Pro Editor�Mesh Editor Runtime Axis Gizmo�Mesh Editor Runtime Pull, Push, Grab�Mesh Editor Runtime VR�Mesh Collider Refresher
Modifiers
Bend, Twist, Noise�FFD�Mesh Effector�Mesh Damage (CPU)�Mesh Damage GPU�Morpher�Interactive Surface�Mesh Fit�Mesh Slime�Sculpting Lite�Mesh Cut�Sound React�Splines
Introduction
In this documentation, you will become familiar with all essential components, modifiers, and overall use of the package.
Summary
The MD Package is divided into 6 categories:
Each category has its own folder with all the required components. If you want to use the modifiers only, simply drag and drop the modifier onto any object with a MeshFilter component. To generate procedural geometry, access it via Hierarchy/Create. More details about each category are provided in the following slides.
Official APi documentation of the MD Package can be found here.
Preferences
The MD Package includes a global preference scriptable object designed to streamline certain tasks and features within the package. You can access the Preferences window by navigating to Window/MD_Package/Preferences.
Below is an image describing the actual preferences scriptable object.
Core Tools��Core package tools�Namespace: MDPackage
Mesh Pro Editor�Mesh Editor Runtime Axis Gizmo�Mesh Editor Runtime Pull, Push, Grab�Mesh Editor Runtime VR�Mesh Collider Refresher
Mesh Pro Editor
Click to enable/disable selection
Vertices Modification
Collider
Modification
Identity
Modification
Mesh
Modification
Mesh Pro Editor is a tool that enables editing of mesh vertices and serves as a bridge between the Vertex Editor and Mesh Modifiers. The component is organized into four sections: Vertex Modification, Collider Modification, Identity Modification and Mesh Modification.
At the top of the component, the Mesh Information panel displays key details about the current mesh.
To use the Mesh Pro Editor, the target object must include a Mesh Filter component. Within Vertex Modification, you can edit high-poly meshes directly in the Unity Editor using the built-in, GPU-accelerated vertex editor.
If you want to edit meshes at runtime, you can enable Vertices As GameObject Points to generate vertices as individual GameObjects in the scene. Each GameObject corresponds to a single vertex, allowing for realtime manipulation. This method is best suited for low- to medium-poly meshes. (See the GIF on the right for reference.) The Mesh Pro Editor also provides tools to subdivide, smooth, and apply various mesh modifiers included in the package.
You can edit mesh at runtime by generating gameObject points on the vertices ^
Mesh Editor Runtime - Axis Gizmo
Mesh Editor Runtime - Axis Gizmo allows you to manipulate the Mesh Pro Editor’s generated vertex points as GameObjects at runtime. The runtime editor includes the familiar arrow-axis gizmo and supports vertex selection directly in play mode. You can create a rectangular selection to choose multiple points and then move them using the axis arrows.
The axis gizmo is fully customizable. It uses a component called MDRuntimeAxisController, which manages the gizmo’s behavior and requires one or more axis elements. You can add as many axis elements as needed. When a user drags an axis element, the selected points move along the element’s local forward direction. (See the example below.)
This component is ideal if you need a lightweight, runtime vertex editor for making adjustments to low- or medium-poly meshes directly in your scene.
You can add as many axis elements that will move selected points in its local forward direction.
Mesh Editor Runtime - Pull, Push, Grab
Mesh Editor Runtime - Pull, Push, Grab allows you to manipulate the Mesh Pro Editor’s generated vertex points as GameObjects at runtime. The runtime editor includes three simple manipulators that let you pull, push, or grab selected vertex points directly in the scene.
By default, the system uses raycasts from the cursor or touch input in screen space, which means that the target points must have colliders generated for interaction.
This component is ideal if you want a lightweight runtime vertex editor for making quick adjustments to low- or medium-poly meshes during gameplay or testing.
Mesh Editor Runtime - VR
Mesh Editor Runtime - VR enables you to manipulate the Mesh Pro Editor’s generated vertex points as GameObjects at runtime within a virtual reality using controllers. This runtime editor is specifically designed for VR controllers, allowing users to grab and move vertices within a defined radius directly in world space.
To set it up, simply attach the component to one of your VR controllers, configure the input actions (drag and drop), and assign the target Mesh Pro Editor that contains the generated vertex points as GameObjects.
This component is ideal if you want a simple, interactive vertex editor in VR for making quick adjustments to low- or medium-poly meshes in real time.
Mesh Collider Refresher
Mesh Collider Refresher allows you to update and refresh mesh colliders dynamically at runtime. It provides several update modes, enabling you to refresh the mesh collider once, every frame, or at custom intervals. You can also manually trigger updates or activate them through specific event actions.
You can also customize the collider’s position offset to fine-tune its alignment with the mesh. A simple example is provided below to demonstrate its setup.
MCR can be used to shift the target mesh collider below its original mesh creating an interesting effect for various modifiers, for instance, for interactive surface.
Modifiers��Library of package’s modifiers�Namespace: MDPackage.Modifiers
MDM_Bend / Twist/ Noise
MDM (MeshDeformationModifier) Angular/Bend, Twist, and Noise are fundamental modifiers within the package. Each serves a unique purpose in deforming meshes:
- Angular Bend bends the mesh vertically based on specific angle.��- Bend bends the mesh along three axes.��- Twist twists the mesh along three axes.��- Noise populates the mesh with a 'noisy' surface that can be modified in two modes: vertical and general deformation. General noise affects the entire mesh in a 3D space, while vertical noise affects the mesh in a 2D space making it planar (eg. for water surfaces). All basic modifiers work both in the editor and at runtime, with parameters modifiable during runtime as well.
Each modifier can only be added to an object once. Using multiple modifiers simultaneously on the same object is prohibited due to vertices synchronization.
MDM_FFD
MDM (MeshDeformationModifier) FFD, or Free-Form Deformation, controls mesh deformation using weight nodes registered in a lattice. By moving nodes within the lattice, the mesh smoothly deforms, allowing for quick edits on meshes.
The FFD modifier offers various lattice resolutions in cubic shapes: 2x2x2, 3x3x3, and 4x4x4. A custom number of lattice points is available, although it's not recommended due to performance considerations.
It is possible to use regular gameObjects as lattice nodes that will affect meshes the same way as virtual editor nodes.
You can use regular gameObjects as FFD weight nodes at runtime.
MDM_MeshEffector
MDM (MeshDeformationModifier) Mesh Effector deforms a mesh using registered weight nodes and density. There are four types of effectors: One-Pointed, Two-Pointed, Three-Pointed, and Four-Pointed. These effectors create spherical radius around assigned nodes, which then influence the target mesh.
Unlike the FFD, the Mesh Effector does not create a lattice. Instead, it generates radiuses that deform the overall mesh based on parameters such as Weight value, Weight multiplier, Weight density, and Weight effector for each effector type. This modifier is excellent for quick deformations without additional effort.
It is possible to use regular gameObjects as weight nodes that will affect meshes the same way as virtual editor nodes.
You can use regular gameObjects as weight nodes at runtime.
MDM_MeshDamage
MDM (MeshDeformationModifier) Mesh Damage allows you to deform any mesh surface using external sources such as rigidbody collision impacts or raycasting. This simple yet highly effective modifier enhances mesh interactivity with the environment.
This is the CPU-based version of mesh damage, meaning it does not include any GPU-accelerated features and works a differently from the Mesh Damage GPU version. The CPU version is recommended for meshes with fewer than 100k vertices. For high-density meshes, use the Mesh Damage GPU version instead.
MDM_MeshDamageGPU
MDM (MeshDeformationModifier) Mesh Damage GPU allows you to deform any mesh surface using external sources such as raycasting. This simple yet highly effective modifier enhances mesh interactivity with the environment.
This is the GPU-based version of mesh damage, designed for high-density meshes with more than 100k vertices. It requires a specific setup process before use. The system operates using Vertex Blocks, which must be generated before modifying the mesh. You can create vertex blocks either in the Editor or via code. Increasing the number of vertex blocks generally improves performance, but also increases memory usage.
Vertex Blocks work similarly to an octree-based system, enabling efficient searches for the nearest vertices at the damage impact location. This approach significantly boosts performance by avoiding full-mesh lookups on dense meshes.
See the example below.
MDM_Morpher
MDM (MeshDeformationModifier) Mesh Morpher enables you to blend between different mesh shapes with the same vertex count. You can choose an unlimited number of shapes and register their initial vertex states.
Before using the Morpher, make sure to assign the target blend shapes (mesh references) and click Register Target Meshes.
All mesh references must have the same vertex count.
The Morpher is commonly used for facial expressions, character mimics, statue transformations, and other mesh-based deformations.
MDM_InteractiveSurface
MDM (MeshDeformationModifier) Interactive Surface allows you to interact with any meshes and simulate ‘surface deformation’.
To use the Interactive Surface modifier, you’ll need a dense mesh and an associated mesh collider. The modifier provides a wide range of parameters that control how interactions behave. You can interact with the surface using either raycasting or rigidbodies, depending on what you are expecting.
Use this feature to create dynamic tracks, snow trails, footprints, surface deformations, droplets, and more. The mesh can also be regenerated over time, with customizable speed and interpolation settings to control how quickly it restores its shape.
MDM_MeshFit
MDM (MeshDeformationModifier) Mesh Fit enables you to fit a mesh to any surface with a collider by using either generated or specified points.
This modifier simplifies the creation of universal decals and dynamic meshes through raycasting. Notably, it does not rely on a projector component.
Just like Unity’s Projectors, you can create decals using regular planar meshes.
MDM_MeshSlime
MDM (MeshDeformationModifier) Mesh Slime enables you to create "slime-like" surfaces with additional input. It performs a similar function to the Interactive Surface but offers more settings and delves deeper into the process.
Refer to the official API documentation for guidance on how to handle input for this component, paying particular attention to the 'Input_Hookups' properties.
MDM_SculptingLite
MDM (MeshDeformationModifier) Sculpting Lite offers a unique approach to mesh deformation via sculpting method, allowing for more artistic manipulation. The system introduces a mesh manipulation through radial brushes with various customizable features. Users can adjust brush type, appearance, radius, and intensity to suit their needs. An internal APi is available for users to modify their own methods.
The system is particularly useful for advanced terrain editing (excluding built-in Unity terrain), offering various brush types such as smooth (HCFilter, Laplacian Filter), noise filters, stylization, and more. Sculpting Lite is compatible with Mobile and VR platforms and is fully optimized for complex meshes thanks to multithreading.
Please note that development of Sculpting Lite has ended. For a more comprehensive sculpting solution, I recommend exploring my other plugin, Sculpting Pro, which is fully focused on advanced mesh sculpting in Unity Engine.
Sculpting in Meta Quest VR
MDM_MeshCut
MDM (MeshDeformationModifier) Mesh Cut is a simple modifier designed for one-directional mesh cutting that outputs two separate ‘cut’ mesh chunks. Users have the option to manually process cut operations via script or utilize the automatic solution provided by MeshCut_Cutter, which handles the task automatically without the need for coding.
Assign the modifier to your target mesh and define parameters of what should happen after the cut. Create a Mesh Cutter object by clicking on the button. This will automatically create a cutter plane gizmo that allows you to intersect your target mesh and cut the mesh into two separate pieces.
This simple modifier allows you to simulate mesh separation at runtime by dividing mesh into two pieces.
Mesh cut in VR
MDM_SoundReact
MDM (MeshDeformationModifier) Sound React allows you to convert audio clip data into a single floating value. This value can be utilized for various purposes, including musical audio visualizations.
Access the output variable in the SoundReact script and apply the value to unleash your creativity in any scenario!
Splines
The Mesh Deformation package provides a comprehensive, spline-based editor built on quadratic Bezier curves. This modular system allows you to create and edit splines easily, either in the Editor or at runtime. By default, the full spline editor is designed for use within the Unity Editor.
The spline system includes several sub-scripts:
Each component can be found in�Create/3D Object/MD Package/Spline-Based
The spline editor features with node-based manipulation allowing you to move and rotate spline points. See the further description at the right side.
Geometry��Library of package’s geometry�Namespace: MDPackage.Geometry
MDG_ProceduralExtendedPlane
Procedural Extended Plane is a procedural plane with extended features designed to generate procedural planes with custom vertex counts and sharp normals. Unlike traditional planes, the generated plane lacks smoothing, resulting in sharp-looking final results (this is optional). Additionally, it includes a curvature feature, enabling you to bend the plane for added versatility.
MDG_HexagonGrid
Hexagon Grid enables you to generate a procedural hexagon grid with full customization options. Each hexagon segment's height can be randomized using the random height feature. Additionally, you can flip hexagon faces, make them planar, or adjust the overall size of the grid to suit your needs.
Procedural Primitives
The Mesh Deformation package includes various procedural primitives that can be easily created via
Hierarchy/Create 3D/MD Package.
Users can generate procedural plane, octahedron, triangle, pyramid, spatial and planar hexagon, cone, tube, and more.�Additionally, these primitives are accessible through code via MD_FullPackage/MD_Core/Geometry.
MDG_SplinePathEditor
Spline Path Editor is a comprehensive tool for creating and editing procedural paths using the spline-based editor. With user-friendly spline system, you can easily create simple, quad-based paths, edit tracks, and apply additional modifiers for extra features.
You can create a path editor in �Create/3D Object/MD Package/Spline-Based/Path Editor
Whether you prefer to create custom paths with modular nodes or generate paths along existing nodes, Path Editor provides the flexibility you need for your projects.
MDG_SplineTunnelEditor
Spline Tunnel Editor is a comprehensive tool for creating and editing procedural tunnels/ pipes using the spline-based editor. With user-friendly spline system, you can easily create simple, radial tubes, toboggans, pipes, and apply additional modifiers for extra features.
You can create a tunnel editor in �Create/3D Object/MD Package/Spline-Based/Tunnel Editor
Whether you prefer to create custom tunnels with modular nodes or generate tunnels along existing nodes, Tunnel Editor provides the flexibility you need for your projects.
Procedural toboggan using the Spline Shape Presets modifier.
Mesh Painting
Mesh Painting offers a comprehensive mesh painting solution directly in Unity editor or at runtime, allowing users to paint meshes in three built-in shapes: Quad, Triangular Prism, and Cube. Designed with simplicity in mind, this component features with advanced settings for planar drawing or spatial drawing. It is compatible with all platforms, including VR and mobile, making it accessible for designers seeking versatile mesh painting capabilities.
To start mesh painting in Unity Editor, simply go to the�Window/MD Package/Mesh Painting Editor�A simple mesh painting editor panel will be display and you can use left mouse button to paint mesh on scene colliders.
To setup mesh painting at runtime, select your main camera and add a MDG_MeshPaintingRuntime. Similar to in-editor painting, you have an access to a bunch of parameters to customize your painting system and select one of the painting mode, whether it is in screen space painting or world-space raycasting. Please read the APi documentation of how the input can be handled.
This great tool allows you to enrich your environment with ease by making cables or any kind of lines directly in the scene!
VR Setup
The MD Package offers full support for all major VR platforms. However, if you wish to interact with and send input to certain modifiers or mesh tools provided by the package without using the example input wrapper that the package provides, you'll need to set up your own input system.
Unity provides various methods for handling input, whether it's the Legacy Unity Input System, Unity Input System v2, or others. As mentioned in previous slides, some modifiers/tools contain "Input Hookup" properties that can be used to pass input events. You'll need to handle this integration yourself. For more information, please refer to the APi documentation.
To learn how this integration can be achieved, please explore the example content under MD_Examples_Scripts/InputWrappers.
Vertex Tool Window
The Vertex Tool Window is an additional tool included in the MD Package, accessible via 'Window/MD_Package/VertexTool' or within the 'Mesh Pro Editor/Vertices Modification' tool.�It serves as an expansion for manipulating meshes, vertex point, and elements, offering a dedicated APi for internal use known as MD_VertexToolModifier. See Vertex Tool Window in practice.
In order to use the Vertex Tool, It’s required to have at least one MeshProEditor selected.
Attach 2 or more meshes (meshes will be combined and will share the same material)
Clone selected mesh (parameters below top-down: Instance count, Position offset and Rotation offset)
Weld selected points (points will be “grouped” together)
Relax selected points (points’ positions will be normalized and their offset will be multiplied)
Group selected gameObjects to the assigned object below
Group enabled points (only activated points will be grouped to the assigned object below)
FAQ
• Is the MD Package compatible with Mac or Linux?
Yes, it's compatible with all operating systems.
• Can I use the MD Package in my mobile game/application?
Yes, you can, but the performance may vary, depending on your setup.
• Is it possible to export my mesh to OBJ format?
No, it is not possible with MD Package. Use a different external plugin.
But you can save your mesh to Assets and create a prefab in the Unity editor.
• Do I need any programming skills to use the MD Package?
No, you don't need any programming skills. But if you would
like to make complex operations or custom modifiers, you can use the internal APi.
• Am I able to edit a Skinned Mesh object?
By default, no, there is no tool that would allow you directly modify skinned meshes out of the box. However, there’s a workaround: Skinned Mesh Renderers control meshes with bones. However, in the MD Package, Skinned Mesh Renderer objects need to be converted into Mesh Filters. Resulting in having two copies: the original Skinned Mesh object and the editable Mesh Filter. Changes made to the Mesh Filter are then applied to the original Skinned Mesh object. While this approach may not be the most user-friendly or practical solution, it can work for simple edits and minor deformations. In summary, the MD Package does not officially support a user-friendly editor for skinned meshes.
• Do I need latest Unity version to use the MD Package?
No, you don't. But it's much safer and recommended to use�the latest Unity LTS Version. If you are going to use the older Unity version, the code conversion and compilation will be required and you may get some warning/error messages.
• Does the MD Package work with WebGL?
Yes, but the multithreading feature is not supported.
• Does the MD Package work with Unity HDRP or URP?
Yes, it does, as the package does not primarily work with shaders.
• Does the MD Package support editing of Unity terrains at runtime?
No, MD package doesn’t work with Unity terrains at all. Meshes only
• Are there any project sources of free demos that use the MD Package?
No, for license purposes, there are no project sources of free demos that use the MD Package, you can only try & test them for free via links provided here.
Extras��Try it out by yourself & downloadable content
Commercial Products�Downloadable Content�Playable Official Demos�Thank you
Commercial Products
Some published projects utilize the MD Package tools and its features. Explore these projects below.�Just click the images.
Downloadable Content
You can download the official example content of the MD Package. Currently available for Windows OS only.�Just click the images.
Terrain Sculpting PC [Win]
Modifiers in VR [Win, Unity-XR]
Mesh Editor in VR [Win, Unity-XR]
Terrain Sculpting in VR [Win, Unity-XR]
MD Package official examples [Win]
Playable Official Demos
The MD Package offers short demo games built entirely from the package's tools and modifiers.�Explore these games for free below!
Just click the GIF images.
MR CUTTER
Thank you!
Thank you for your attention! If you have any questions, suggestions or issues, do not hesitate and reach out to me on my official Discord server. (just click the image)
If you don’t like Discord, �write me a direct message�on my email address.