Three different things
| Term | What it is | Portable? |
|---|---|---|
| Smart material (.spsm) | A reusable, mesh-aware stack of layers, masks and generators saved to the Painter shelf. | Only inside Painter - closed format |
| Texture set | The per-material working space in a Painter project (one per material ID on the mesh), holding the live channels. | Project-bound |
| Texture maps | The baked PNG/EXR outputs - base color, roughness, metallic, normal and so on - exported for an engine. | Fully portable |
Why .spsm is closed
The smart-material format is proprietary. Adobe publishes no specification, and the file only has meaning inside Painter, where its generators re-evaluate against a mesh's baked maps. There is no supported way to author a .spsm outside the application. So any tool promising a drop-in smart-material file is promising something that cannot work - a red flag worth remembering.
The rule of thumb: texture maps are portable pixels and travel anywhere. A smart material is a live, mesh-aware layer stack that only exists inside Painter. You can generate the former directly; the latter you have to build in Painter.
What you can generate outside Painter
- Texture maps - procedural, tiling PBR maps you import as a base layer. Baked and mesh-unaware, but a genuine head start.
- A build script - a Python script that constructs the layer stack inside Painter via the
layerstackAPI, giving you a real editable material you can then save as.spsm. - A spec and a preset - the channel targets and layer recipe as documentation and a reloadable design.
What you cannot generate is the .spsm itself. That distinction is the whole design of Smart Material Studio: it produces the maps, the script and the spec - and is upfront that the editable material is built in Painter, not faked as a file.
So which do you actually want?
If you just need textures for an engine, export texture maps. If you want a reusable material you will apply across many meshes, you want the layer stack - build it in Painter, optionally starting from a generated script, and save it as a smart material. Knowing which of the three you need saves a lot of chasing tools that promise the impossible.