ArtCraft

TextureCraft icon: an engraved zebra on a copper tile

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.

Status: in active development Written in pure Rust Runs on macOS, Windows, Linux, FreeBSD and the web MCP server for agents License: MIT OR Apache-2.0
Reviewed by CodeRabbit

Join the ArtCraft community on Discord

TextureCraft on getartcraft.com · ArtCraft · All Crafting Apps


The TextureCraft workspace: the material library on the left; the 3D viewport and the 2D UV view of a 1970s portable TV in aged cream plastic with a hand-drawn crayon flower; and the texture set list, the layer stack with its Crayon doodle and Wear and dirt folders, and the fill layer properties on the right
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

Bake mode on the portable TV: its seven texture sets and the mesh map bakers on the left, the common bake parameters below them, and the Bake selected textures button under the viewport

Bake mesh maps: ambient occlusion, curvature, thickness and more, ray traced on the GPU

The Export textures dialog: texture sets to export, the output directory, an output template, file type, size, padding and normal map format

Export textures: presets for common engines, or your own output templates with channel packing

Rendering mode: the portable TV path traced on the GPU at 256 samples with denoising, the curved screen catching the studio light, and the render settings in a card over the viewport

Rendering mode (F10): your textures path traced on the GPU, with a denoiser

TextureCraft in the light brightness level with the blue accent: the same panels as tiles on a light background around the dark 3D viewport

Light theme: four brightness levels and seven accent colours

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.

A path-traced storm lantern on a dark stage: red enamel chipped to bare steel on the edges, rust and grime in the seams, a cream pinstripe, a tarnished brass burner and knob, rusty guard wires and a glowing flame behind the glass globe

Storm lantern: chipped enamel, rust, soot and a lit flame over eight texture sets

A path-traced vintage rangefinder camera: black enamel worn through to brass along the edges and corners of the top plate, cognac leatherette, knurled chrome dials, a black lens barrel with an engraved distance scale and a coated front element

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 .tcraft projects.
  • 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; OBJ, textured GLB and USD mesh export. Every material, environment, brush alpha and built-in mesh is procedural.
  • 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.

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 (the windowing layer doesn't report it 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.


Join the ArtCraft community on Discord

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

Star History Chart

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.

ArtCraft
Made by the ArtCraft team and community.

S
Description
No description provided
Readme
17 MiB
0 Stars 0 Watchers 0 Forks
Languages
Rust 95.6%
WGSL 2.6%
Shell 1.3%
PowerShell 0.4%
HTML 0.1%