Windows · macOS · Linux · Android · iPad

Procedural textures on every platform.

Surface Labs is a node-based PBR texturing toolkit with a native Rust engine at its core.

Get Surface Labs

Windows, macOS, Linux, Android and iPad. Free while in early access.

Why Surface Labs

One toolkit, every machine you own

Native everywhere

The same application runs everywhere you want it to.

One format

One .surfacelabs file opens on any device. Pick up right where you left off.

Any input

Mouse, keyboard, touch, stylus, or a controller.

Do more, faster

A native Rust engine renders most nodes in under 2 ms.

Full GLSL editor

Out of nodes? Write your own in GLSL, compiled straight to the native engine.

High resolution

Author up to 8192 × 8192 in full 32-bit float.*

* 8192² authoring is desktop-only. iPadOS and Android are capped lower.

Every platform

One build, everywhere

WindowsPortable. No installer.Direct3D 12
macOS & iPadSigned and notarized on Mac. Native iPad app.Metal
LinuxBuilt for Debian and Arch.Vulkan
Androidarm64 and x64.
MouseKeyboardTouchStylusController

8K authoring and the MCP server run on desktop only. iPadOS and Android are memory-limited.

Pipeline

Built to be driven

Surface Labs is scriptable end to end. Drive it from the command line for batch work and CI, or over MCP so an AI client reads and edits a project the same way you do.

Headless CLI

A standalone process opens a .surfacelabs file, evaluates the graph, writes the full texture set, and exits. Same engine and export path as the app, so a build step reproduces exactly what the Export dialog would write. Batch a hundred variants or drop it into CI.

surface_lab_headless project.surfacelabs --out ./textures

MCP server

A built-in server exposes the open project over MCP. A client can inspect the graph, add and rewire nodes, retune parameters, author a GLSL node, render any node back as an image, and export the set. Nine action-based tools, with the node registry served as JSON so the client reads the real parameter contract. Every edit is validated like the canvas, so nothing can leave a project the app will not open.

The headless CLI and MCP server run on Windows, macOS and Linux.

Nodes

A deep library, small graphs

Generators, filters, blends, transforms, normals, channel ops and math. Many are multi-mode: one Noise node covers eleven families, one Blend covers every mode. Fewer nodes on the canvas, graphs you can still read.

Draw

Paint masks and detail straight onto the graph.

Custom Shader

A full GLSL editor in one node. Your code becomes ports and controls.

Trim Sheet

Pack maps or whole materials into strips, each one tunable.

LUT authoring

In research

Color LUTs, authored in-graph.

Gallery

How it compares

Where Surface Labs goes further

CapabilitySurface LabsSubstance DesignerMaterial MakerBlender
Native on 5 platformsYes: YesWin · Mac · Linux · Android · iPadNo: Desktop onlyNo: Desktop onlyNo: Desktop only
Touch, stylus & controllerYes: YesNo: NoNo: NoNo: No
No account requiredYes: YesPartial: Adobe IDYes: YesYes: Yes
Author full GLSL codeYes: YesNo: Function graphsYes: YesPartial: OSL
Headless automationYes: YesBuilt-in CLIYes: YesAutomation ToolkitYes: YesCLI exportYes: YesPython
MCP integrationYes: Built-inPartial: Third-partyNo: NonePartial: Third-party

What's new

What's new in 1.2.2

  • A rebuilt 3D preview, with a pop-out viewer
  • Subsurface scattering, emissive and bloom
  • Height self-shadows and a Parallax mode
  • Preview and export that finally agree
  • A quality pass over two dozen nodes
  • A manual that updates itself, offline
Read the full 1.2.2 devlog →What the 1.2 engine rewrite changed →

Join the Discord

This is where Surface Labs gets built. Early builds land here first, people post what they make, and feature requests have a direct line to the next update. Come build with us.

Join the Discord

Get Surface Labs and get in touch

Get Surface Labs

Windows, macOS, Linux, Android and iPad. Free while in early access.

Get in touch

Questions, feedback or press. We read everything.

Or email hello@surfacelabs.app directly.