What the 3D Painter is
Smart Material Studio's 3D Painter is a free, install-free texture painter that runs entirely in your browser using WebGL. You bring a model, it renders it in real time with image-based lighting, and you paint directly onto the surface. Everything stays on your machine - the model and your textures are never uploaded.
Step by step
- Import your model. Drop a
.glb,.gltf,.objor.stlanywhere on the painter, or start on the built-in sphere or shader-ball. Meshes that have no UVs are automatically box-unwrapped so you can start painting without leaving the browser. - Bake mesh maps. Click Bake to generate ambient occlusion, curvature, normal, position, ID and (if the mesh has them) vertex-colour maps. Each is a thumbnail you can download, and they feed the mask generators in the next step.
- Paint, or mask a material. There are two ways to work - see below.
- Export. Download a textured .glb for Unity, Unreal, Godot or Sketchfab, the PBR maps as PNGs, or a per-engine texture set in one .zip with the right packing and naming for your target. Save the whole project (model plus layers) to a file or in the browser and reopen it later.
Two ways to paint
Hand painting is the direct route - pick a colour from the HSV wheel and paint with eight tools: brush, fill bucket (by UV island or single face), eyedropper, smudge, blur, clone stamp, gradient and image decals for logos, labels and numbers. Strokes carry per-stroke roughness and metallic with blend modes (normal, multiply to shade, add to highlight), plus mirror and radial/kaleidoscope symmetry, a stroke stabilizer and Wacom pen-pressure support. A relief brush sculpts raised or carved height that lights up on the model, and mesh-aware smart fills bake edge-wear and ambient-occlusion contact shading straight onto your hand paint.
Painting across UV seams. Turn on the projection brush and strokes paint through the surface in screen space, so one stroke covers every UV island under the brush instead of stopping at an island border - the seam problem that usually sends people back to a desktop app. Organise the result with layer groups and folders, duplicate or merge layers, and bookmark camera angles to jump back to them.
Fill layers with masks is the Substance-style route - drop a material onto the whole surface, then reveal it through a mask stack: edge-wear and cavity generators driven by the bake, tileable procedural noise, and hand paint, each with its own blend and opacity. Fill a layer with rust and mask it to the cavities; fill with worn metal and mask it to the convex edges.
What it exports
- Textured .glb - the composited maps packed into a glTF PBR material, ready to drop into an engine or viewer.
- Per-engine texture set - one .zip packed and named for Unreal (DirectX normal + ORM), Unity Standard/URP (MetallicSmoothness) or HDRP (MaskMap), Godot or glTF, each with import notes - or every channel PNG unpacked (base color, roughness, metallic, normal, height, AO, emissive).
- Project files - save the model and full layer stack to a portable file or an in-browser slot and reopen it to keep working.
Honest about what it is. This is a real browser texture painter, not a Substance 3D Painter replacement. The baked ambient occlusion is curvature-based (approximate, not path-traced), and a single brush stroke currently paints within one UV island - painting continuously across a UV seam (projection painting) is on the roadmap. For quick jobs, low-poly and stylised work, learning PBR, and no-install machines it does the job; for film/AAA-depth procedural work, keep Painter.