Procedural materials; an open-source, node-based material designer, built in pure Rust.
Build tileable PBR materials from noises, patterns and filters in a node graph, watch them update live in 2D and on a 3D model, and export the maps for any engine. It runs natively on macOS, Windows, Linux and FreeBSD, and in the browser via WebAssembly. Built by the ArtCraft team.
MaterialCraft on getartcraft.com · ArtCraft · All Crafting Apps
The workspace: explorer, library, node graph, 3D view, 2D view and properties
Note
ArtCraft is a community of artists from all walks of life. Painters, sculptors, game artists, material and texture 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 MaterialCraft · Why MaterialCraft · Quick start · Status · Downloads · The Crafting Apps · License
Every material below is a node graph that ships with MaterialCraft as a template, built only from
its own procedural nodes (no photos, scans or textures from anywhere else) and rendered by
materialcraft-cli render --scene sphere --full --hq (the height output displaces the mesh, with
ray-traced ambient occlusion and a shadowed key light).
Brick wall · Lava rock · Painted metal plates · Wood planks
Wicker weave · Mossy ground · Stone tiles · Polished marble
- Familiar. The layout, panels, menus and gestures material artists already know: a package explorer, a library of nodes with previews, the node graph with live thumbnails, a 3D view, a 2D view and a properties panel with base and specific parameters. Space opens the node search.
- Fast. Every node cooks on every CPU core, and a content-addressed cache means an edit re-cooks only what lies downstream: the brick wall sample cooks in about 40 ms at preview size. Cooking runs on a worker thread, so the UI never waits.
- Tileable by design. Noises and patterns live on whole-number lattices, so everything tiles seamlessly at any resolution, from 16 px to 8K.
- Robust. No panics in shipped code, every command tested with hostile input, every node cooked
with odd inputs in tests, unlimited undo from snapshots, and lossless
.mcraftpackages. - Open. Export base color, normal, roughness, metallic, height and ambient occlusion as PNG, JPEG, TGA, TIFF, BMP, WEBP, EXR or HDR at 8, 16 or 32 bits, with your own file name pattern.
- Works with TextureCraft. File ▸ Send to TextureCraft puts a material on TextureCraft's
shelf as a portable
.mcmat; painted onto a mesh there, its graph inputs stay live sliders and colors, re-cooked by MaterialCraft at the texture set's resolution with the mesh's baked maps feeding the graph's input nodes. - Agent-native. Every menu item and edit is a command you can drive from the CLI, a JSON control channel (including synthetic mouse and keyboard input) or an MCP server, so Claude and other agents can build materials the way a person does.
- Everywhere. One codebase for the desktop apps and the same UI in the browser.
git clone https://github.com/storytold/materialcraft
cd materialcraft
cargo run --release -p materialcraft # desktop app (opens the brick wall sample)
cargo run --release -p materialcraft -- package.mcraft # open a package
cargo run --release -p materialcraft -- --control 7878 # + JSON control channel
cargo run --release -p materialcraft-cli -- mcp # MCP server (stdio)
cargo run --release -p materialcraft-cli -- new wood wood.mcraft
cargo run --release -p materialcraft-cli -- render wood.mcraft wood.png --scene sphere --full --hq
cargo run --release -p materialcraft-cli -- export wood.mcraft textures --format png --depth 16
cargo run --release -p materialcraft-cli -- export my.mcraft out --set wear=0.7 # with a graph input "wear" set first
cargo run --release -p materialcraft-cli -- run my.mcraft file.exportMaterial '{"path": "my.mcmat", "size": 2048}' # for TextureCraft
cd apps/materialcraft-web && trunk serve # web build
cargo xtask ci # fmt, clippy, tests, layering, wasmYou need Rust 1.95 or newer. The app opens with the brick wall sample; File ▸ New ▸ Graph... starts from a PBR template or one of the sample materials.
Register the MCP server with Claude Code, giving it the folders it may read and write:
claude mcp add materialcraft -- /path/to/materialcraft-cli mcp --read-root /work/materials --write-root /work/materialsTo drive the running app instead, start it with --control 7878 and bridge to it:
claude mcp add materialcraft-app -- /path/to/materialcraft-cli mcp --bridge 7878The details are in docs/control-protocol.md.
MaterialCraft is under active development. ROADMAP.md has the parity estimate by area, the remaining work and what's next.
Where we are (2026-11-02): the node engine and 227 nodes (the atomic nodes including FX-Map,
SVG and Text, noises including tileable 3D ones, patterns, filters, the flood fill family,
whole-material blending and weathering), function graphs with a visual editor and dynamic
parameters, sub-graphs with exposed inputs and presets, the full editor (graph, library,
properties, 2D view with histogram, 3D view with your own OBJ/glTF meshes), .mcraft packages,
texture export, portable .mcmat materials that TextureCraft paints with (inputs stay editable
there), the browser build with file I/O, the CLI, the control channel and the MCP server
all work today. We estimate about two thirds (≈ 67%) of a material artist's daily workflow works
end to end; docs/target-app-parity.md has the breakdown.
What's missing: the rest of the node library, a GPU 3D view with tessellation and lights,
mesh-based nodes, translations and the first signed release. The ranked list is in
docs/gaps.md.
Workspace: crates/{core, image, geom, nodes, eval, formats, engine, render, automation, ui-egui}
and apps/{materialcraft, materialcraft-cli, materialcraft-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. Every bundled asset is listed with its licence in
ATTRIBUTION.md.
New to MaterialCraft? Download it from the MaterialCraft 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.
| Build | Installer | Portable |
|---|---|---|
| x64 (64-bit Intel/AMD) | materialcraft-<ver>-windows-x64.msi |
materialcraft-<ver>-windows-x64-portable.zip |
| arm64 (Snapdragon and other ARM PCs) | materialcraft-<ver>-windows-arm64.msi |
materialcraft-<ver>-windows-arm64-portable.zip |
| x86 (32-bit) | materialcraft-<ver>-windows-x86.msi |
materialcraft-<ver>-windows-x86-portable.zip |
| Build | File | Notes |
|---|---|---|
| App, universal (Apple silicon + Intel) | materialcraft-<ver>-macos-universal.dmg |
Signed and notarized |
| Command-line tool, universal | materialcraft-cli-<ver>-macos-universal.zip |
Signed and notarized |
| Format | x86_64 | aarch64 (ARM64) | Notes |
|---|---|---|---|
| AppImage | materialcraft-<ver>-linux-x86_64.AppImage |
materialcraft-<ver>-linux-aarch64.AppImage |
Runs anywhere; updates itself with AppImageUpdate (.zsync files) |
| Flatpak | materialcraft-<ver>-linux-x86_64.flatpak |
materialcraft-<ver>-linux-aarch64.flatpak |
Sandboxed; flatpak install --user <file> |
| Debian/Ubuntu | materialcraft-<ver>-linux-x86_64.deb |
materialcraft-<ver>-linux-aarch64.deb |
|
| Fedora/RHEL/openSUSE | materialcraft-<ver>-linux-x86_64.rpm |
materialcraft-<ver>-linux-aarch64.rpm |
|
| Tarball | materialcraft-<ver>-linux-x86_64.tar.gz |
materialcraft-<ver>-linux-aarch64.tar.gz |
Unpack anywhere |
| Build | File |
|---|---|
| x86_64 | materialcraft-<ver>-freebsd-x86_64.tar.gz |
| Build | File | Notes |
|---|---|---|
| Static site | materialcraft-web-<ver>.zip |
Runs in a modern browser; host it on any static server |
MaterialCraft 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 | |
| TextureCraft | 3D texture painting | GitHub | Website | |
| MaterialCraft | Procedural materials with node graphs · you are here | 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 | |
| GridCraft | Spreadsheets and data | GitHub | Website |
And ArtCraft itself, our AI image and video studio for artists who want real control.
Our Discord is where artists of every kind hang out: people who paint, sculpt, model, build materials, 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 · MaterialCraft
MaterialCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the MaterialCraft contributors. Required notices are in NOTICE.
Bundled icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md.
Every material, noise, pattern, environment, library preview and mesh shown is generated procedurally by MaterialCraft itself; no third-party textures, scans or models appear in the screenshots. MaterialCraft is an independent, clean-room implementation of a node-based procedural material workflow and is not affiliated with any other software vendor.
The app icon (an engraved rhino on MaterialCraft teal #178a9c) is original artwork made for this
project by its owner; its files and notes 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 MaterialCraft, under docs/brand/LICENSE-brand.txt.
Forks and modified versions must remove them.
Made by the ArtCraft team and community.




