SF Paint — procedural paint materials for Blender
Twenty-one paint materials across four surfaces — walls, car paint, painted metal, painted masonry — every one a procedural node group whose controls are named sliders. The walls run a real sheen ladder from flat ceiling to gloss trim, then age: stipple, brush marks, scuffs, grime, and peel that opens onto the undercoat. The painted metal wears through to raw metal with a rust halo at every wound line. Built and tuned for EEVEE, with the render cost published per group.
$29 one-time · 3.8 MB · Blender 5.2+ · built and tuned for EEVEE · 100% procedural materials, no AI
Four surfaces, one idea — paint is a layer over a substrate, and the substrate shows where the paint gives out.
Every material is a small set of named sliders — Sheen, Wear Amount, Peel Amount, Flake Amount, Edge Bias. The 21 variants are starting points, not the product, and Sheen means the same thing in every group.
The painted metal is paint over raw metal: wear opens at corners and edges first, and every wound line carries a rust halo — paint, then a mottled rust ring, then bare metal. The peeling wall paint opens onto an undercoat. Where the paint gives out, something true is underneath.
Metallic flakes that sparkle per-flake, pearl flip-flop two-tone that shifts colour with viewing angle, clearcoat with orange peel on the coat alone. Showroom black to matte military, all from named sliders.
Painted brick, painted cinderblock, LA stucco and stucco troweled over block — the grid lands on vertical faces without UV unwrapping, and the mortar seams peel first, the way paint actually lets go of a wall. The bare surfaces underneath live in SF Stone; floors live in SF Ground.
It renders in Cycles and nothing in it is Cycles-incompatible — but it was built and tuned for EEVEE, on a laptop, and it was not tuned in Cycles, so it will look different there. If you work Cycles-first, treat it as untuned territory.
From the object's bounds, not its topology — wear placement uses an object-space edge mask driven by the Half Size slider. On boxy, machine-like shapes it lands where wear belongs with no setup. On very irregular meshes, tune Half Size and Edge Range by eye; that limit is stated in the README too.
The masonry grid is projected per dominant face direction, so it lands correctly on flat vertical faces at any rotation with no UV unwrapping. At curved corners, where projection directions meet, grid continuity is approximate — masonry is flat and boxy by nature, and that is what it is built for.
Measured in EEVEE at 1920×1080, 64 samples, against a plain material with the object in frame: car paint +23%, painted metal +25%, painted masonry +28%, wall paint +41%, and the aged walls — peel, scuff and grime together — +60%. The aged number is the biggest tax in the pack and the aging is the point; if a scene is heavy, the cheapest wins come from Stipple Amount and Surface Rough.
No. These are .blend node groups you drag from the Asset Browser or File → Append. There is nothing to install and nothing to enable in Preferences — the materials are filed under Starting Frame → Paint, by surface.
No — reset restores the generator's default, not the value the variant shipped with. The Asset Browser is the real undo: drag a fresh copy in and you get a clean instance of that variant, and the copy you tuned is untouched.
Blender 5.2 or newer. It will not open in Blender 4.x, including 4.2 LTS — that is a Blender file-format change, not something the pack can work around.
Yes. Renders, animations and projects you make with the pack are yours outright, for any commercial use, with no attribution and no obligation. The pack itself is for your own use under the included license — keep LICENSE.txt with your copy.
More tools
Free, in your browser — no sign-up. When you're ready for the production tools — a teleprompter and a live run-of-show — there's a membership for that.
The free tools are free forever. The Starting Frame membership ($24/mo, 14-day trial) adds Just Read It (teleprompter) and Next (live run-of-show). The free tools stay free either way.