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.

A three-dimensional axis with a modeled cube and movement controls.
Inside this lesson 10 sections 5 questions 8 figures

SECTION 1

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.

SECTION 2

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.

SECTION 3

Visual Explanation — How Solidify Transforms Geometry

Solidify Modifier: Offset & ThicknessORIGINAL MESH (flat)n̂n̂n̂Surface normals (n̂) shown in cyanSolidifySOLIDIFIED MESH (shell)t = thickness― Outer shell- - Inner shell― Rim fillOffset: −1 = inward | 0 = centered | +1 = outwardOffset = −1Offset = 0Offset = +1
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.

SECTION 4

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^avgv' = 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

tcorrected=t/cos(α)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

dmax=Clamp×(shortestadjacentedgelength)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.

SECTION 5

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.

Solidify Modifier — Parameter MapModifier PanelMode: Simple ▾Thickness: 0.05Offset: -1☑ Even ThicknessClamp: 0.00Normals☑ Flip Normals☐ High QualityMaterialsOffset: 0Edge DataInner Crease: 0.0Outer Crease: 0.0Rim Crease: 0.0☑ Fill RimCross-Section ViewtOuter surfaceInner surfaceRim fillThickness (t)Controls wall widthShifts shell in/outCorrects angle distortionCloses open edgesQuick ReferenceThickness → wall width | Offset → growth directionEven Thickness → angle correction | Fill Rim → seals open edgesCrease → subdivision sharpness | Material Offset → assign separate material
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.
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.

Solidify Modifier Key Parameters

SECTION 6

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. 1

    Step 1 — Model the Profile

    Add 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. 2

    Step 2 — Add the Solidify Modifier

    In 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. 3

    Step 3 — Enable Even Thickness

    Check 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. 4

    Step 4 — Assign Dual Materials

    Create 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. 5

    Step 5 — Refine with Subdivision Surface

    Add 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.

SECTION 7

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.

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.

Thickness Methods Compared

✦

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.

SECTION 8

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.

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.

From Solidify to Advanced Workflows

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.

SECTION 9

Practice Problems

Question 1: CONCEPTUAL

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?
Show answer
An open mesh has edges shared by only one face. The Solidify modifier creates two surfaces (inner and outer) by duplicating and offsetting geometry, but these two surfaces remain separate sheets at the boundary. Without Fill Rim, the viewer can see through the gap between the inner and outer shells at every boundary edge, revealing the hollow interior and breaking the illusion of a solid object. With Fill Rim enabled, connecting faces are generated along those boundary edges, sealing the shell into a visually (and topologically) closed volume—essential for 3D printing, physics simulations, or any context that requires manifold geometry.

Question 2: BASIC 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?
Show answer
When Offset = 0, the thickness is distributed symmetrically around the original surface. Each side receives half the total thickness. Therefore, the outer surface sits at 0.02 / 2 = 0.01 m above the original plane, and the inner surface sits at 0.01 m below it. If you changed the Offset to −1, all 0.02 m of thickness would grow inward (the outer surface coincides with the original plane); at Offset = +1, all thickness grows outward. The formula is: outer displacement = (1 + Offset) × ½ × Thickness, inner displacement = (1 − Offset) × ½ × Thickness.

Question 3: INTERMEDIATE

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.
Show answer
At a 120° dihedral angle, the angle α between each face normal and the averaged vertex normal at the shared edge is 30° (since the averaged normal bisects the dihedral angle: α = (180° − 120°) / 2 = 30°). Without correction, the displacement is 0.03 m along the averaged normal, but the perpendicular distance to either face is 0.03 × cos(30°) = 0.03 × 0.866 ≈ 0.026 m—about 13% thinner than requested. With Even Thickness enabled, the corrected displacement becomes t / cos(α) = 0.03 / cos(30°) = 0.03 / 0.866 ≈ 0.0346 m, which restores the true perpendicular wall thickness to the desired 0.03 m on both faces.

Question 4: APPLIED

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.
Show answer
Start by modeling the glass shade as an open-top cylinder with a slight taper. Apply the Solidify modifier with a small Thickness value (e.g., 0.002 m) and Offset = −1 so the outer silhouette matches your original design. Enable Even Thickness to prevent thinning on the tapered sections. Set Fill Rim to On so the rim at the top appears as a solid glass lip rather than a paper-thin edge. Assign two material slots: slot 0 for the outer glass surface (a Glass BSDF) and slot 1 for the inner surface (same material, but you could add slight absorption). Set Material Offset to 1. Place the Solidify modifier before a Subdivision Surface modifier in the stack, and set Rim Crease to 0.8–1.0 to keep the lip sharp after subdivision. The metal frame can be a separate object or modeled via edge-loop selection with a separate Solidify or Skin modifier.

Question 5: CRITICAL 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.
Show answer
While Geometry Nodes can indeed replicate Solidify's behavior—using Extrude Mesh, Mesh to Volume/Volume to Mesh, or custom offset logic—the modifier retains significant advantages. First, accessibility: Solidify requires no node-graph knowledge and can be set up in seconds, making it ideal for rapid prototyping and for artists who are not technical directors. Second, performance: Solidify's C++ implementation is highly optimized for its specific task, whereas a Geometry Nodes equivalent introduces graph-evaluation overhead and may require multiple nodes to match features like Even Thickness, Clamp, and Crease propagation. Third, pipeline integration: many production studios have templated workflows where modifier stacks are standardized across assets; a single modifier slot is easier to audit, script, and version-control than a node tree. However, Geometry Nodes excels when thickness must vary spatially based on attributes, when the shell behavior needs to respond to animated fields, or when the solidification logic must be shared procedurally across hundreds of instances. The most effective approach treats Solidify as the default for straightforward shell generation and Geometry Nodes as the upgrade path for parametric complexity—obsolescence is premature.

SUMMARY

Lesson Summary

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