Contact deformation for Blender

Flesh thatgives.

Where a body presses into itself, or something presses into it, Fleshy dents the flesh and rolls it out around the edge. Skin first, and anything soft after it. Each frame follows from its pose: scrub anywhere, render frames in any order.

Early-bird price $15 on Patreon for the first two weeks, then $20

Windows/Blender 4.5 to 5.2/No rig setup/No painting

Fig. 01Self-contact
Bulge 1.00 · Bulge Width 15 · Dent 15%
Frame 001
clip slot · media/hero.mp4
0

Bones to set up

Any rig, any character. No segmenting, no per-character authoring.

0

Strokes to paint

Control comes from the vertex groups the character already has.

1:1

Live and Baked

A bake stores what Live shows you while you pose, with Smooth Pops evening out sudden jumps. Untick it for an exact match.

4.5→5.2

Blender

4.5 LTS, 5.0 and 5.2 LTS, tested on each.

ResultsOff and on

One knee. Three ways round.

The same frame, rendered through the add-on as it ships: the knee at 150°, Corner Taper at 0.55, everything else at its defaults. Drag across each to compare.

With Fleshy: from the side, the calf presses into the back of the thigh and the flesh rolls out along the crease
Without: the calf passes into the thigh
OffOn
r-side-off.jpg + r-side-on.jpg
From the sideSelf-contact · knee 150°
With Fleshy: from the front, the flesh pushed out at the side of the knee
Without: the outline of the knee unchanged
OffOn
r-front-off.jpg + r-front-on.jpg
From the frontSelf-contact · knee 150°
With Fleshy: from behind, the calf flattened against the thigh
Without: the calf sunk into the thigh
OffOn
r-back-off.jpg + r-back-on.jpg
From behindSelf-contact · knee 150°

01Self-contact

It finds the contact itself.

A mesh always collides with itself. The back of a bent knee, an arm against the ribs, a thigh folding into the stomach: Fleshy finds where the surface presses, dents it, and bulges it out around the edge.

  • Self-contactalways on
  • Setupone button
  • Resultdepends on the pose only
Fig. 02Self-contact
clip slot · media/01-contact.mp4
The knee, 100° to 150°Baked with Smooth Pops · Corner Taper 0.55

02Corner Taper

Built for real joints.

Where a fold closes, behind a bent knee or inside an elbow, real flesh creases instead of swelling. Corner Taper finds the closed end of every fold by itself and takes back the bulge there, easing it in again further out. Nothing to paint, nothing to place.

The settings in this renderOn the whole mesh

Amount
0.55how much of the bulge it takes back in the fold
Reach
0.70how far out from the fold it starts
Falloff
1.00how gradually it eases back

A region can turn it on or off for its own part. Preview colours where it acts.

Corner Taper on: the crease behind the knee closes flat
Corner Taper off: a dome of flesh swells where the crease ends
Taper offTaper on
r-taper-off.jpg + r-taper-on.jpg
Where the crease endsFleshy on in both

03Colliders

Anything can press.

Add a hand, a chair, a strap or another character as a collider and it presses into the flesh. Here a coil is drawn tight round the thigh: the flesh gives under each turn and swells between them.

  • A collideran object or a whole collection
  • Firmnessper collider, 0 to 100%
  • A set-up characterpresses with its own firmness
  • Exact Collider Edgesno pops where its edge passes
Fig. 03Collider
clip slot · media/03-colliders.mp4
A coil, drawn tight and let goCollider firmness 100% · Dent 50% · Bulge 0.2 · Smooth Pops

04More features

The rest of the kit.

Built for human flesh, and just as happy on anything soft: props, toys, creatures. Pick a part to see it work.

04.1 · Any mesh

Not only skin.

Any all-quad mesh with a Subdivision Surface: a creature, a soft toy, a cushion. Here a soft tube bends on a two-bone rig and folds into itself.

  • The meshall quads, any shape
  • The rigany, or none
  • In this clipBulge 1.80 · Dent 30% · Smooth Pops
t-tube.mp4
A soft tube, foldingSelf-contact

04.2 · Props

A dent, without the bulge.

Skin squeezed at a joint rolls out round the fold; a cushion only gives. Set Bulge to 0 and a press leaves a clean hollow with no rim around it. Here a cushion is set up like any character, with a ball as its collider, rolled across it and back.

  • The colliderany mesh, held rigid
  • Bulge 0a hollow, no rim
  • In this clipBulge 0 · Dent 70% · Smooth Pops
t-cushion.mp4
A ball on a cushionCollider

04.3 · Meshes as one

Several meshes as one.

Set Up Collection: every mesh in a collection presses into the others as one mesh would. A body and a separate head, or two soft balls, with one set of settings and one bake.

  • Set upSet Up Collection
  • Settingsone set for all of them
  • Bakeone, for all of them
t-pair.mp4
Two soft ballsSet up as one collection · defaults · Smooth Pops

04.4 · Regions

Soft here. Firm there.

Give part of a mesh its own Bulge, Width, Dent or Firmness by naming a vertex group it already has, such as a rig's deform group. Here the darker half is a region at Firmness 70%: pressed as deep, it dents less.

  • Wherevertex groups you already have
  • Blendby weight, vertex by vertex
  • A whole mesha harder head than body
clip slot · media/t-regions.mp4
Two rollers, one slabFirmness 0% · Firmness 70% · Smooth Pops

04.5 · Art direction

Five settings. All of the look.

Each in a unit you can reason about: how far the bulge spreads in rows of faces, how deep the dent goes as a share of the flesh's thickness. Move them here, and drag the collider.

  • Bulge · Bulge Widthhow much it rolls out, how far
  • Denthow deep, by thickness
  • Firmness · Smoothinghow much it resists, how soft
Fig. 04Try the settings
IllustrationA slice through the surface, in 2D

04.6 · Live and Baked

Bake once. Scrub anywhere.

Pose and tune in Live: each change shows as soon as you let go, with nothing to bake. Bake for playback and renders: frames add up in a cache beside your .blend and play at about the cost of the character alone. Every frame is checked before it plays, and one you edit after baking shows undeformed until you bake it again.

  • Livesolves when you let go
  • Bakeda cache beside the .blend
  • Checkedan edited frame says why, the rest play
BakedOut of dateNot baked

05The panel

Everything in one tab.

In the 3D viewport's sidebar, under Fleshy. Each section opens and closes on its own, a section with nothing in it shows only its Add button, and every message says what to do next.

  1. FleshyThe version, and buttons to the manual, Discord, X and Patreon.
  2. SceneEvery set-up character, what each one's cache holds, and Bake All; inside it, Cache: where the frames are saved, Discard and Remove.
  3. The objectBaked or Live, Bake This Frame, Bake, the frames it will bake, and Smooth Pops.
  4. DeformationUse Baked Settings, the five settings, then Regions and Corner Taper inside it.
  5. CollidersWhat presses on this mesh, each with its Firmness, and Exact Collider Edges.
The panel's screenshot goes here
media/panel.png

06The details

Built for real shots.

What a production asks of a deformer once the first render looks right: animation, linked characters, render settings, files that move between machines.

06.1

Close Openings

A neck without its head, a mask's cut, a garment's edge: openings no longer read as contact where nothing touches.

06.2

Frame ranges

Bake 20-50 and 70-100 in one press. Bakes add up: bake one frame again and the rest stay as they were.

06.3

A bake you can stop

Progress at the bottom of the viewport, and Cancel keeps every frame already done. Nothing changes under a running bake.

06.4

Never a wrong frame

The pose, the settings, the mesh and the colliders are checked on every frame. What changed is named; the rest keeps playing.

06.5

Motion blur

Render with motion blur on, straight from the baked frames. Render frames in any order.

06.6

Linked characters

Set up on a library override, with every setting kept across a reopen and a resync of the character's file.

06.7

Travels with the file

The cache sits beside the .blend. Move both to another folder or computer and it is found again. A copied character gets its own.

06.8

Undo works

Set Up, Bake, Remove and every setting take Ctrl+Z and redo like the rest of Blender.

06.9

Fast where it counts

About a second a frame on a full body in Live, and baked playback at about the cost of the character alone.

06.10

Smooth Pops

On by default: a bake spreads a sudden one-frame jump of the flesh over a few frames. Cuts and fast contact are left as they are.

06.11

Clean collider edges

No one-frame pop where a collider's edge passes over the flesh. On by default.

06.12

Bake All

Every set-up character in the scene in one press, each with its own frames and settings.

07Compared

Side by side with the others.

The shots on this page, rendered again with two other contact add-ons in Fleshy's place: the same mesh, motion, camera and light. We tuned each one on each shot for its steadiest motion at a dent like Fleshy's. Slow them down to see every frame.

Fleshy beside
Fleshy SquishFX
v-knee-*.mp4

07.1 · Self-contact on a body

A knee, bending.

A full character's knee bends from 100° to 150° and back, so the calf presses into the back of the thigh the whole way.

Fleshy SquishFX
v-coil-*.mp4

07.2 · A collider on a body

A coil, drawn tight.

A coil wound round the thigh is drawn tight into the flesh and let go. SquishFX is at its defaults here: every setting of it that dented the thigh as deeply as Fleshy tore the mesh round the coil.

Fleshy SquishFX
v-tube-*.mp4

07.3 · Self-contact on a prop

A soft tube, folding.

A tube on a two-bone rig bends until it folds into itself.

Fleshy SquishFX
v-pair-*.mp4

07.4 · Two meshes

Two soft balls, pressed together.

Two separate meshes, each softening the other. With SquishFX on both, the result broke apart, so for it they are one mesh with its Self Collision.

Fleshy SquishFX
v-regions-*.mp4

07.5 · Firmer and softer areas

One slab, two firmnesses.

Two rollers press into a slab whose right half is firmer: in Fleshy a region at Firmness 70%, in SquishFX its vertex-group mask weighted to match. Real Time Soft Body Collision has no setting for part of a mesh, so its two halves give alike.

What each one offers for contact.

FleshySquishFX 3.3.0Real Time Soft Body CollisionSoftie Collision System1
A body pressing into itselfYes, by defaultYes, a switchits other settings did not change the result in our testsYes, a modeYes, a mode
A bulge round a self-contactYes, with its own settingNonone on our self-contact shotsYesNot in its documentation
Firmer and softer areasAny number of regions, from the vertex groups the character hasOne vertex group as a maskNoOne hardness for the whole mesh
Each collider with its own firmnessYes, and per region of the colliderOne setting for all collidersOne setting for all collidersYes, by a vertex group on the collider
Softer folds at the jointsYes, Corner TaperNo such settingNo such settingNo such setting
Separate meshes pressing each otherYes, set up as one collectionWithin one meshtwo objects broke apart in our testYes, through its collectionNot in its documentation
A bake for playbackYes: frame ranges, stop and keep what is done, motion blurYes, to shape keysNo, it runs liveNot in its documentation

1 Softie Collision System from its documentation, not tested. SquishFX also offers jiggle, ripple and penetration effects, and Softie adds noise; this section compares contact only. Versions: Fleshy 0.23, SquishFX 3.3.0, Real Time Soft Body Collision as of October 2026, tested in Blender 5.2 on 7 October 2026.

How we set them up, and every setting used

The scenes

Each add-on runs on the same mesh, motion, camera and lights as Fleshy, at subdivision level 2. Fleshy is as on the rest of this page: Exact Collider Edges and Smooth Pops on, their defaults.

The tuning, per add-on and per shot

  1. Set up as its documentation says.
  2. From its defaults, and SquishFX's three Squish presets, each setting tried over a range, one at a time, before and after the Subdivision Surface.
  3. Kept: the steadiest motion, the smallest jump of any point between frames, with a deepest dent within a factor of two of Fleshy's on that shot.
  4. Where it could also keep a collider out as well as Fleshy does, or bulge within a factor of two of it: the steadiest that does so.

SquishFX 3.3.0

SettingA kneeA coilA tubeTwo meshes2Regions
EffectSquish
Self CollisionOnOffOnOff
MaskNoneThe firm half at 30%
Before the Subdivision SurfaceNoYesNo
Intensity2
Shape Smoothing154
Spread15
Volume Preservation0.21
Lateral Flow0.291667
Contact Hardness0.5185190
Corrective Smooth40
Collision Offset00.002
Splay0

2 Both balls joined as one mesh: as two objects, they broke apart.

Real Time Soft Body Collision

SettingA kneeA coilA tubeTwo meshes3Regions
Collision ModeInternal CollisionCollider OnlyInternal CollisionCollider Only
Before the Subdivision SurfaceYesNoYesNoYes
Margin0.00300.0030.0010
Falloff Distance00.0050
Smooth Position8
Ray Limit Scale1
Pressure Scale010.5
Strength0.2510.50.251

3 The second ball in its collection, Deform Collection on, both balls' settings alike.

08Workflow

From pose to render in five steps.

One thing to get right first: bake at the subdivision level you render.

  1. 1

    Match the levels

    On the Subdivision Surface, set the viewport level to the render level.

  2. 2

    Set Up

    Select the body, not its rig, and press Set Up in the sidebar.

  3. 3

    Tune

    Press Bake This Frame, adjust, press again. Or switch to Live.

  4. 4

    Bake

    Press Bake 1-250. Stop any time; the frames done are kept.

  5. 5

    Keep animating

    Hide it in the viewport if you like. Renders are unaffected.

09Tutorial

Learn it in one sitting.

From installing to a finished render, on one character, start to end. The manual covers the rest.

The tutorial is being recorded.It will play here

10Requirements

What it needs.

SystemWindows, 64-bitmacOS and Linux are not supported yet.
Blender4.5 LTS, 5.0, 5.2 LTS
The meshAll quads, with a Subdivision Surface modifierAny rig, or none. No bone setup, nothing painted. A collider can be any mesh.
UsePersonal and commercial workOne purchase covers you on any computer you use, and your organisation's own staff.
LicenceInterface GPL, compiled core under the EULAWhat you make with it is yours.

11Questions

Before you ask.

Is it a simulation?

No. Each frame follows from its pose alone, so you can scrub to any frame, render frames in any order, and get the same result every time. Smooth Pops, on by default, evens out a sudden one-frame jump of the flesh over a few frames when you bake.

Is it built with Geometry Nodes?

No. Fleshy works out the deformation in its own engine, written in C and compiled. The Geometry Nodes modifier it adds to your mesh only applies the result.

Does it stop surfaces passing through each other?

Not always: it shapes how flesh gives where something presses, and does not hold two surfaces apart. A collider pressed in further than Dent lets the flesh give shows through, and on a mesh with few faces an edge can pass between its points. Raise Dent, or give the mesh more faces where it is pressed, at some cost in speed. Where nothing may ever pass through, such as a close-up of a hand sunk into a cushion, a Mesh Deform cage or a simulation keeps the surfaces apart exactly.

Does it need a particular rig?

No. Any rig, or none. There is no bone setup and no per-character authoring.

Does it only work on characters?

No. Any all-quad mesh with a Subdivision Surface: a creature, a soft toy, a cushion, a prop. Several meshes can be set up together as one.

Do I have to paint anything?

No. Contact is found automatically. To give parts of the body different settings, a region names a vertex group the character already has, such as a rig's deform group.

Does it render on another computer or a farm?

Install Fleshy wherever the file renders, and keep the cache file beside the .blend. Without the add-on, the character renders without contact deformation.

How big is a cache?

About 50 MB for a 250-frame shot of a full body at subdivision level 2. Baking more frames adds to the same file.

macOS or Linux?

Not yet. This version is Windows, 64-bit.