Skip to main content

NEURAL TEXTURE COMPRESSION / THREE.JS

Rich materials.
Smaller downloads.

One compact model for an entire PBR texture set. Decode it on the GPU and use it as a standard three.js node material.

npm install three three-ntc
Eight neural materials rendered on spheres, showing metal, stone, brick and decorative surfaces
Real materials from the interactive three-ntc viewer.

FROM TEXTURES TO NEURAL MATERIALS

A complete workflow, in your browser.

01 / EXPLORE

See the tradeoffs

Inspect sample materials, change sampling modes, and load your own .ntc files in the viewer.

Open the demo →
02 / TRAIN

Make a neural material

Bake a MaterialX material, fit its latent grids and decoder, then export a portable .ntc asset.

Launch the trainer →
03 / UNDERSTAND

Look inside the model

Learn how learned feature grids, a small MLP and GPU decoding reconstruct a PBR texture set.

Read the explainer →

A familiar material.
A different way to store it.

The runtime loads the model and connects the decoded channels to a node material. The trainer is a separate package, so it stays out of your production app.

Runtime integration →
import { NTCLoader, NTCNodeMaterial } from 'three-ntc';

const { cpuModel, channelClassification } =
  await new NTCLoader().loadAsync('material.ntc');

mesh.material = new NTCNodeMaterial(
  cpuModel,
  channelClassification,
);