Nine more procedural materials
TextureCraft
3D texture painting; an open-source, modern texture painting application, built in pure Rust.
A fast, open-source 3D texture painting workflow: paint PBR materials straight onto your models in layers with masks, bake mesh maps, drive smart materials from them and export textures for any engine. It runs natively on macOS, Windows, Linux and FreeBSD, and in the browser via WebAssembly. Built by the ArtCraft team.
TextureCraft on getartcraft.com · ArtCraft · All Crafting Apps
The workspace: asset shelf, 3D viewport, 2D UV view, texture sets, layer stack and properties
Note
ArtCraft is a community of artists from all walks of life. Painters, sculptors, game artists, photographers, filmmakers, illustrators, designers, hobbyists, and people who picked up a stylus last week. If you make things, you belong here. Come say hi on Discord.
A look around · Made in TextureCraft · Why TextureCraft · Quick start · Status · Downloads · The Crafting Apps · License
A look around
Made in TextureCraft
Two original props, modelled procedurally by contributors, textured layer by layer with TextureCraft's
own materials, masks and mesh-map generators (no textures or models from anywhere else) and path
traced on the GPU by texturecraft-cli render.
Storm lantern: chipped enamel, rust, soot and a lit flame over eight texture sets |
Rangefinder camera: black paint brassing, leatherette, chrome and coated glass |
Why TextureCraft
- Familiar. The layout, tools, menus, panels and shortcuts texture artists already know: texture sets, a layer stack with per-channel blending, masks and generators, smart materials, the tool shelf, the 3D and 2D views. You already know how to use it.
- Fast. A tiled, copy-on-write texel engine on every CPU core and a wgpu viewport (Vulkan, Metal, DX12, WebGPU). Mesh maps bake on the GPU about 12× faster than on the CPU, Rendering mode path traces about 25× faster, and 8K texture sets stay responsive while you paint.
- Seamless. Brush stamps live on the 3D surface, so strokes flow across UV seams, and the camera's visibility keeps paint off the back of your model.
- Robust. No panics in shipped code, every command tested with hostile input, unlimited undo
from copy-on-write snapshots, and lossless
.tcraftprojects. - Open. glTF/GLB, FBX, COLLADA, USD, Alembic, OBJ, PLY and STL in; PNG, JPEG, TGA, TIFF, BMP, WEBP, EXR and HDR textures out at 8, 16 or 32 bits, with UDIM tiles; textured OBJ, GLB and USD mesh export. Every material, environment, brush alpha and built-in mesh is procedural.
- Works with MaterialCraft. Node-based materials from
MaterialCraft (
.mcmat, sent straight to the shelf) paint and fill like any material, and their graph inputs stay sliders, colors and presets here: each change re-cooks the material at the texture set's resolution, with this mesh's baked maps feeding the graph. - Agent-native. Every menu item and tool is a command you can drive from the CLI, a JSON control channel or an MCP server, so Claude and other agents can paint, bake and export the way a person does.
- Everywhere. One codebase for the desktop apps and the same UI in the browser.
The full list of what's in it is in docs/features.md.
Quick start
git clone https://github.com/storytold/texturecraft
cd texturecraft
cargo run --release -p texturecraft # desktop app (opens a sample project)
cargo run --release -p texturecraft -- model.glb # a new project from a mesh
cargo run --release -p texturecraft -- --control 7878 # + JSON control channel
cargo run --release -p texturecraft-cli -- mcp # MCP server (stdio)
cargo run --release -p texturecraft-cli -- new builtin:crate crate.tcraft --sample
cargo run --release -p texturecraft-cli -- render crate.tcraft crate.png --samples 256 # path traced
cargo run --release -p texturecraft-cli -- export crate.tcraft textures # headless export
cd apps/texturecraft-web && trunk serve # web build
cargo xtask ci # fmt, clippy, tests, layering, wasm
You need Rust 1.95 or newer. The app opens with a baked sample project and a start window (new project, open, recent projects); File ▸ New project starts from a built-in mesh, a project template or your own mesh file (UVs are generated if it has none).
Japanese, Chinese, Korean and Arabic interface text uses the fonts of
storytold/craft-fonts where it has them, an optional
build input (releases always use it): CRAFT_FONTS_DIR="$PWD/../craft-fonts" cargo run --release -p texturecraft
(an absolute path). Without it, the desktop app uses the installed system fonts.
If the app cannot start (no usable GPU, say) or has to close, it says why in a message box and
appends the details to errors.log beside its settings (%APPDATA%\TextureCraft\data on Windows,
~/Library/Application Support/TextureCraft on macOS, ~/.local/share/texturecraft on Linux).
On a machine with several GPUs, --gpu <part of the name> or --power-pref high picks one.
Use it from Claude Code and other agents
Register the MCP server with Claude Code, giving it the folders it may read and write:
claude mcp add texturecraft -- /path/to/texturecraft-cli mcp --read-root /work/project --write-root /work/project
To drive the running app instead, start it with --control 7878 and bridge to it:
claude mcp add texturecraft-app -- /path/to/texturecraft-cli mcp --bridge 7878
The details are in docs/control-protocol.md.
Status
TextureCraft is under active development. ROADMAP.md has the parity estimate by area, the remaining work and what's next.
Where we are (2026-11-01): we estimate about 93% of a texture artist's daily workflow works end to end, weighted by how much of the day each area carries: importing meshes, texture sets and UDIM tiles, the layer stack with masks, effects and smart materials, every painting tool, baking, the PBR viewport and Rendering mode, export presets and templates, and the full menu set. The interface speaks English, French, German, Spanish, Portuguese, Italian, Japanese, Chinese, Korean and Arabic; localization-parity.md has the details. The scores are self-assessed from our code against public documentation.
What's missing:
- hardware ray tracing in Rendering mode;
- pen tilt, and pen pressure on Linux, macOS and desktop browsers (the windowing layer doesn't report them yet);
- Alembic files in the older HDF5 container, and Alembic animation (the first sample is read);
- a native-speaker review of the translations;
- the first signed release on every platform.
Where we're going: the first release, v0.1.0, on every platform; then the remaining rendering
and file format gaps. The ranked list is in ROADMAP.md.
Workspace: crates/{core, texel, geom, compose, bake, paint, formats, engine, render, automation, ui-egui}
and apps/{texturecraft, texturecraft-cli, texturecraft-web}. The egui frontend is its own crate, so
the UI can be swapped without touching the engine; docs/architecture.md
explains how it fits together.
Agent and contributor rules (clean room, the asset policy, no panics in shipped code, quality gates)
are in AGENTS.md, and docs/releasing.md explains how releases
are built, signed and published. Every bundled asset is listed with its licence in
ATTRIBUTION.md.
Downloads
New to TextureCraft? Download it from the TextureCraft page on getartcraft.com. That's the easiest way to install it.
Want a specific build or format? On GitHub, the latest release has every build listed below, and all releases has earlier versions and their notes. <ver> in the file names is the version number, and SHA256SUMS.txt lists a checksum for every file.
Windows
| Build | Installer | Portable |
|---|---|---|
| x64 (64-bit Intel/AMD) | texturecraft-<ver>-windows-x64.msi |
texturecraft-<ver>-windows-x64-portable.zip |
| arm64 (Snapdragon and other ARM PCs) | texturecraft-<ver>-windows-arm64.msi |
texturecraft-<ver>-windows-arm64-portable.zip |
| x86 (32-bit) | texturecraft-<ver>-windows-x86.msi |
texturecraft-<ver>-windows-x86-portable.zip |
macOS
| Build | File | Notes |
|---|---|---|
| App, universal (Apple silicon + Intel) | texturecraft-<ver>-macos-universal.dmg |
Signed and notarized |
| Command-line tool, universal | texturecraft-cli-<ver>-macos-universal.zip |
Signed and notarized |
Linux
| Format | x86_64 | aarch64 (ARM64) | Notes |
|---|---|---|---|
| AppImage | texturecraft-<ver>-linux-x86_64.AppImage |
texturecraft-<ver>-linux-aarch64.AppImage |
Runs anywhere; updates itself with AppImageUpdate (.zsync files) |
| Flatpak | texturecraft-<ver>-linux-x86_64.flatpak |
texturecraft-<ver>-linux-aarch64.flatpak |
Sandboxed; flatpak install --user <file> |
| Debian/Ubuntu | texturecraft-<ver>-linux-x86_64.deb |
texturecraft-<ver>-linux-aarch64.deb |
|
| Fedora/RHEL/openSUSE | texturecraft-<ver>-linux-x86_64.rpm |
texturecraft-<ver>-linux-aarch64.rpm |
|
| Tarball | texturecraft-<ver>-linux-x86_64.tar.gz |
texturecraft-<ver>-linux-aarch64.tar.gz |
Unpack anywhere |
FreeBSD
| Build | File |
|---|---|
| x86_64 | texturecraft-<ver>-freebsd-x86_64.tar.gz |
Web (WebAssembly)
| Build | File | Notes |
|---|---|---|
| Static site | texturecraft-web-<ver>.zip |
Runs in a modern browser; host it on any static server |
The Crafting Apps
TextureCraft is one of the Crafting Apps: free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.
| App | What it's for | Code | Learn more | |
|---|---|---|---|---|
| PhotoCraft | Image editing: layers, masks, type and real PSD files | GitHub | Website | |
| VectorCraft | Vector illustration | GitHub | Website | |
| FilmCraft | Video editing, color and sound | GitHub | Website | |
| LightCraft | Photo library and raw development | GitHub | Website | |
| PdfCraft | Reading, organizing and protecting PDFs | GitHub | Website | |
| EffectCraft | Motion graphics and visual effects | GitHub | Website | |
| DesignCraft | Page layout and publishing | GitHub | Website | |
| FigCraft | Interface design and prototyping | GitHub | Website | |
| WordCraft | Word processing and documents | GitHub | Website | |
| SoundCraft | Audio recording and editing | GitHub | Website | |
| DeckCraft | Presentations and slide decks | GitHub | Website | |
| CADCraft | Computer-aided design | GitHub | Website | |
| GridCraft | Spreadsheets and data | GitHub | Website | |
| TextureCraft | 3D texture painting | GitHub | Website | |
| Craft Anything | See how any software works, then build your own | GitHub | Website | |
| SolidCraft | Parametric 3D CAD by Tangency Labs (community app) | GitHub |
And ArtCraft itself, our AI image and video studio for artists who want real control.
Come make things with us
Our Discord is where artists of every kind hang out: people who paint, sculpt, model, shoot, draw, cut film, set type, and people still figuring out what they like to make. Share what you're working on, ask for help, tell us what's broken, or tell us what you wish these tools could do. Whatever your medium and however long you've been at it, you're welcome here.
discord.gg/artcraft · getartcraft.com · The Crafting Apps · TextureCraft
Star history
License and credits
TextureCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the TextureCraft contributors. Required notices are in NOTICE.
Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md. Release builds also embed the fonts of craft-fonts (Japanese and Simplified Chinese faces; SIL Open Font License 1.1).
Every material, environment, brush alpha and mesh shown is generated procedurally by TextureCraft itself; no third-party textures or models appear in the screenshots.
The app icon (an engraved zebra on TextureCraft copper, #c2672b) is the owner's original artwork;
its files are in assets/app-icon/.
The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the
ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as
part of this repository and TextureCraft, under docs/brand/LICENSE-brand.txt.
Forks and modified versions must remove them.
![]()
Made by the ArtCraft team and community.





