BLENDER • MODIFIERS AND NON-DESTRUCTIVE MODELING

Solidify Modifier — Use Solidify modifier for thickness and shell-like forms

Transform flat surfaces into volumetric shells with parametric thickness control, preserving your original mesh topology.

Historical Context & Motivation

In the early days of 3D modeling, creating objects with realistic wall thickness—ceramic bowls, architectural facades, sheet-metal enclosures—required artists to manually duplicate geometry, scale it inward, and stitch edges together. This tedious, error-prone process meant that any design change forced modelers to repeat every step from scratch, effectively destroying iteration speed. The need for a non-destructive solution became urgent as production pipelines in games, film, and industrial visualization demanded rapid design cycles. The concept of modifier stacks—chains of parametric operations applied to a base mesh without altering its underlying topology—emerged as the dominant paradigm across professional 3D applications, and Blender's implementation of the Solidify modifier became a cornerstone of that workflow.

2002
Blender Goes Open Source
After the Not a Number Technologies bankruptcy, the Blender source code is released under the GPL. The open-source community begins building the modifier stack architecture that will eventually house tools like Solidify.
2009
Solidify Modifier Introduced
Blender 2.49 introduces the Solidify modifier, enabling artists to add parametric thickness to flat meshes. Architectural visualization and product design workflows adopt it immediately for shell-like forms.
2011
Even Thickness Algorithm
Blender 2.57 improves the Solidify modifier with the Even Thickness option, correcting distortion at sharp angles by compensating for vertex normal averaging. This produces cleaner results on complex geometry.
2020
Complex Mode Added
Blender 2.90 ships a second Solidify algorithm—Complex mode—that handles self-intersections, overlapping regions, and non-manifold geometry far more gracefully, expanding use cases into organic modeling.
2023
Geometry Nodes Integration
Recent Blender releases allow Solidify-like operations inside Geometry Nodes, opening procedural thickness control driven by attributes, fields, and custom logic—bridging the gap between traditional modifiers and node-based workflows.

The central question the Solidify modifier addresses is deceptively simple: how can a single flat surface be transformed into a volumetric shell while remaining fully editable? This question sits at the intersection of geometry processing, normal-vector mathematics, and artistic intent. Understanding the modifier's evolution helps you appreciate not only its controls but also the design philosophy behind Blender's entire non-destructive pipeline—a philosophy that prizes parametric flexibility over destructive, one-shot operations.

Core Principles & Definitions

Before diving into interface controls, it is essential to internalize a handful of foundational ideas that govern how the Solidify modifier operates. Every face in a mesh carries a surface normal—a unit vector pointing perpendicular to that face, indicating its outward direction. The Solidify modifier duplicates each vertex and displaces the copy along these normals (or their averaged counterparts at shared vertices), thereby generating an inner or outer shell. The distance of that displacement is what we call thickness, and controlling how it is distributed between the inner and outer surfaces is the modifier's primary creative lever.

1

Non-Destructive Thickness

Solidify adds geometry at render/export time without permanently modifying the base mesh. You can adjust thickness, offset, and crease values at any point in your project.
2

Offset Direction

The Offset parameter controls whether new geometry is extruded outward (+1), inward (−1), or symmetrically around the original surface (0). This determines the silhouette profile of the resulting shell.
3

Even Thickness

At acute angles, averaged vertex normals produce uneven wall thickness. The Even Thickness option rescales displacement per vertex to maintain a uniform cross-section—critical for hard-surface and architectural models.
4

Rim Fill & Edge Data

Open meshes expose interior edges after solidification. The Fill Rim option automatically generates connecting faces, while crease and bevel-weight propagation ensure proper subdivision behavior.
5

Simple vs. Complex Mode

Simple mode offsets along averaged normals—fast and predictable. Complex mode resolves self-intersections and handles overlapping geometry, making it better suited for organic or irregular surfaces.
KEY TAKEAWAY
Think of the Solidify modifier as a vacuum-forming machine in a sculpture studio. You press a thin plastic sheet (your flat mesh) over a mold, and the machine creates a shell of uniform thickness that follows every contour. If you reshape the mold (edit the base mesh), the shell updates automatically—no need to re-form the plastic by hand. That parametric relationship between mold and shell is the essence of non-destructive modeling.

Visual Explanation — How Solidify Transforms Geometry

Left: the original flat mesh with vertex normals (cyan arrows labeled n̂). Right: after applying the Solidify modifier, an outer shell (purple solid line) and inner shell (pink dashed line) are created, connected by rim fill faces (gold). The thickness t is measured perpendicular to each face, and the Offset slider controls how that thickness distributes relative to the original surface.

The diagram above illustrates the modifier's fundamental operation. Each vertex in the original mesh is duplicated and displaced along the averaged surface normal by an amount governed by the Thickness parameter. The Offset value determines whether the new shell grows outward from the original surface (Offset = +1), inward (Offset = −1), or symmetrically on both sides (Offset = 0). Where the mesh has open boundaries—edges belonging to only one face—the modifier optionally generates rim faces that bridge the gap between the inner and outer shells, closing the volume. This three-part anatomy—outer shell, inner shell, rim—forms the complete solidified object. Understanding it visually makes all subsequent parameter adjustments intuitive: you are always controlling where those three layers sit relative to your original surface.

How It Works — The Geometry of Normal-Based Extrusion

Although the Solidify modifier is primarily an artist-facing tool, understanding the underlying geometry clarifies why certain parameter combinations produce unexpected results. The displacement of each vertex relies on the relationship between face normals, averaged vertex normals, and the scalar thickness value. Two key formulas govern Simple mode's behavior.

VERTEX DISPLACEMENT
v' = v + (Offset × ½ × t) × n̂_avg
Where v' is the displaced vertex position, v is the original position, t is the thickness parameter, and n̂_avg is the area-weighted average of the normals of all faces sharing this vertex. The Offset ranges from −1 (fully inward) to +1 (fully outward).
EVEN THICKNESS CORRECTION
t_corrected = t / cos(α)
Where α is the angle between the face normal and the averaged vertex normal. At sharp angles, cos(α) becomes small, so the corrected displacement grows larger to maintain uniform wall thickness. This is what the Even Thickness checkbox activates.

The Even Thickness correction is essentially a rescaling factor. Imagine two adjacent faces meeting at a 90° angle: the averaged vertex normal at their shared edge points at 45° to each face. Without correction, the displacement along this averaged normal is shorter than the desired wall thickness when measured perpendicular to either face—specifically, it is only cos(45°) ≈ 0.707 times the requested value. The Even Thickness option divides by this cosine, restoring the true perpendicular distance. However, at extremely acute angles this factor can blow up, which is why the Clamp parameter exists: it limits how far any vertex can be displaced, preventing self-intersecting geometry.

CLAMP LIMIT
d_max = Clamp × (shortest adjacent edge length)
The Clamp value (0 to 2, default 0 = disabled) caps the maximum displacement distance as a fraction of the shortest edge connected to each vertex. Setting Clamp to 1 prevents any vertex from moving farther than its shortest edge, which is a practical safeguard on detailed meshes.
Complex Mode Note
Complex mode uses a constraint-based solver rather than simple normal extrusion. It detects potential self-intersections and adjusts displacement vectors to avoid overlapping geometry. This comes at a higher computational cost, so reserve it for meshes with deeply concave regions or overlapping folds—organic sculpts, wrinkled fabric, or tightly curved architectural surfaces.

Detailed Parameter Breakdown

The Solidify modifier's Properties panel in Blender exposes a rich set of controls. The following diagram and table map each parameter to its geometric effect, helping you build a mental model of what each slider actually changes in the viewport.

The Solidify modifier panel (left) with annotated connections to a cross-section view (right). Dashed lines map each parameter to its geometric effect. The quick-reference box at the bottom summarizes the most commonly adjusted controls.
Solidify Modifier Key Parameters
ParameterRange / TypeEffect on Geometry
ThicknessFloat (m); default 0.01Perpendicular distance between inner and outer shells. Negative values invert the shell direction.
Offset−1 to +1; default −1Controls where thickness distributes. −1 = all inward, 0 = symmetric, +1 = all outward relative to original surface.
Even ThicknessBoolean; default offApplies cos(α) correction so wall thickness remains uniform at sharp angles. May increase compute time.
Clamp0 to 2; default 0Limits maximum displacement to a fraction of the shortest adjacent edge, preventing self-intersection on dense meshes.
Fill RimBoolean; default onGenerates faces along open boundary edges to fully close the shell. Disable for stylized cutaway effects.
Material OffsetInteger; default 0Assigns a different material slot to the inner shell and rim faces, enabling two-tone shading—e.g., painted exterior and raw interior.
Crease (Inner/Outer/Rim)0 to 1; default 0Sets subdivision crease weight on the respective edge loops. A value of 1 keeps edges sharp through Subdivision Surface.

Worked Example — Creating a Ceramic Bowl

Let us walk through a practical scenario: modeling a ceramic bowl with uniform wall thickness and a different material on the interior glaze versus the exterior clay body. This exercise demonstrates how the Solidify modifier integrates into a realistic production workflow.

Ceramic Bowl with Solidify Modifier
1
Step 1 — Model the ProfileAdd a circle with 32 vertices (Shift+A → Mesh → Circle). Switch to Edit Mode, select all vertices, and extrude them downward along the Z-axis (E, Z, −0.15) to create a shallow cylinder. Scale the bottom edge loop inward (S, Shift+Z, 0.3) to form the bowl's concave profile. Delete the top face to leave the bowl open.
Result: an open, single-sided bowl mesh with 32-segment resolution.
2
Step 2 — Add the Solidify ModifierIn Object Mode, open the Properties panel → Modifiers tab → Add Modifier → Generate → Solidify. Set Mode to Simple. Enter a Thickness of 0.005 m (5 mm) and set Offset to −1 so the shell grows inward, preserving the outer silhouette.
Result: the bowl now has visible wall thickness. The outer surface matches the original profile; the inner surface is offset 5 mm inward.
3
Step 3 — Enable Even ThicknessCheck the Even Thickness box. Observe how the bottom of the bowl, where faces meet at a sharper angle, now maintains the same 5 mm wall width instead of thinning out. This applies the cos(α) correction discussed earlier.
Result: uniform 5 mm wall thickness across the entire bowl, including the curved base.
4
Step 4 — Assign Dual MaterialsCreate two material slots on the object: slot 0 = 'Exterior Clay' (a warm terracotta shader) and slot 1 = 'Interior Glaze' (a glossy white shader). In the Solidify modifier, set Material Offset to 1. The modifier will assign the inner shell and rim faces to material slot 1 (Interior Glaze), while the outer shell retains slot 0 (Exterior Clay).
Result: a two-tone ceramic bowl—terracotta outside, white glaze inside—controlled entirely through modifier settings.
5
Step 5 — Refine with Subdivision SurfaceAdd a Subdivision Surface modifier below the Solidify modifier in the stack (order matters: Solidify first, then Subdivision). Set Subdivision levels to 2. To keep the rim lip crisp, return to the Solidify modifier and set Rim Crease to 1.0. This tells the Subdivision Surface modifier to treat the rim edge loop as infinitely sharp.
Final result: a smooth, subdivision-ready ceramic bowl with uniform wall thickness, dual materials, and a crisp rim—all fully editable through the modifier stack.

Solidify vs. Alternative Approaches

The Solidify modifier is not the only way to add thickness to geometry in Blender. Understanding when to reach for Solidify versus other techniques—manual extrusion, Geometry Nodes, or the Skin modifier—is part of developing efficient modeling instincts. The comparison below highlights trade-offs in flexibility, speed, and artistic control.

Thickness Methods Compared
MethodStrengthsLimitations
Solidify ModifierNon-destructive, parametric thickness, dual material support, Even Thickness correction, stacks with other modifiers.Limited control over per-face thickness (requires vertex groups). Simple mode can self-intersect on tight concavities.
Manual Extrude (E → Normals)Full per-face control, no modifier overhead, straightforward on simple meshes.Destructive—edits baked into mesh. Tedious to maintain uniform thickness. No parametric updating.
Geometry Nodes (Mesh to Volume → Volume to Mesh)Procedural and attribute-driven. Can vary thickness by position, color, or any field. Handles complex topology.Steeper learning curve, heavier computation, voxel-based methods may lose sharp edges without careful tuning.
Skin ModifierGenerates radial thickness from edge-only wireframes. Excellent for organic branching structures like trees or veins.Not suitable for surface-based shells. Designed for wire-to-mesh conversion, not face extrusion.
WHEN TO USE SOLIDIFY
Reach for the Solidify modifier whenever your design calls for a hollow shell with consistent wall thickness—think lampshades, helmets, packaging mockups, or architectural cladding panels. If you need spatially varying thickness driven by painted weight maps or procedural logic, consider pairing Solidify's vertex group input with weight painting, or graduate to a Geometry Nodes setup for full parametric freedom.

Connection to Advanced Non-Destructive Workflows

Mastering the Solidify modifier is a stepping stone toward more sophisticated non-destructive techniques. Its principles—normal-based displacement, parametric stacking, edge data propagation—resurface in advanced contexts. The table below maps Solidify's core ideas to their advanced counterparts, illustrating how the same conceptual toolkit scales up.

From Solidify to Advanced Workflows
Solidify ConceptAdvanced ExtensionUse Case
Thickness parameterGeometry Nodes: Extrude Mesh node with field-driven offsetProcedurally varying wall thickness across a surface based on curvature or painted attributes.
Even Thickness (cos α correction)Custom normal data in shading pipelinesTransferring corrected normals to game engines for accurate real-time shading on low-poly shells.
Material OffsetShader-based face-set detection (Geometry node → Backfacing)Assigning materials dynamically in the shader graph without modifier dependency.
Modifier stack orderingDependency graphs and evaluation order in production rigsUnderstanding Blender's depsgraph ensures correct deformation order in character rigs with corrective modifiers.
Vertex Group thickness controlAttribute-driven Geometry Nodes with weight proximityDriving thickness from proximity to other objects, enabling adaptive shell forms for generative design.

As you progress into Geometry Nodes, simulation systems, and production-grade asset pipelines, you will find that the mental model built around the Solidify modifier—thinking in terms of normal-based displacement, parametric stacking, and non-destructive iteration—transfers directly. The modifier is not merely a convenience; it is a conceptual gateway to the broader philosophy of procedural, editable 3D content creation that defines modern digital production.

Practice Problems

PROBLEM 1CONCEPTUAL
Explain why an open mesh (a mesh with boundary edges) requires the Fill Rim option to appear as a closed, watertight object after the Solidify modifier is applied. What would happen visually if Fill Rim were disabled?
PROBLEM 2BASIC CALCULATION
You have a flat plane in Blender with a Solidify modifier set to Thickness = 0.02 m and Offset = 0. What is the distance from the original plane's position to the outer surface, and what is the distance to the inner surface?
PROBLEM 3INTERMEDIATE
You are modeling an architectural wall panel where two faces meet at a 120° dihedral angle. With Even Thickness disabled and Thickness set to 0.03 m, what is the actual perpendicular wall thickness at the shared edge? Then calculate the corrected displacement needed with Even Thickness enabled.
PROBLEM 4APPLIED
You are tasked with creating a low-poly lantern model for a game asset. The lantern has a semi-transparent glass shade (open at the top), a metal frame, and the glass must have visible wall thickness for convincing refractive rendering. Describe a modifier-stack workflow using Solidify, including Offset, Material Offset, and how you would handle the open top edge.
PROBLEM 5CRITICAL THINKING
A colleague argues that the Solidify modifier is obsolete now that Geometry Nodes can replicate and extend its functionality. Construct a nuanced argument evaluating this claim, considering performance, accessibility, procedural flexibility, and production pipeline integration.

Lesson Summary

The Solidify modifier transforms flat, single-sided meshes into volumetric shells by duplicating geometry along surface normals. The Thickness parameter sets the wall width, while Offset (ranging from −1 to +1) determines whether the shell grows inward, outward, or symmetrically. The Even Thickness option applies a cos(α) correction to maintain uniform wall width at sharp angles, and Fill Rim closes open boundary edges to produce watertight geometry.

Key workflow patterns include using Material Offset for dual-material shells (exterior versus interior surfaces), setting Crease values to control edge sharpness through Subdivision Surface modifiers, and choosing between Simple mode (fast, normal-based) and Complex mode (self-intersection-aware) based on mesh topology. The Solidify modifier embodies Blender's non-destructive philosophy: all changes remain parametric, stackable, and fully reversible—freeing you to iterate on design without ever losing your original mesh.

Varsity Tutors • Blender • Solidify Modifier — Use Solidify modifier for thickness and shell-like forms