Babylon.js includes the Node Material Editor (NME), a visual node-based tool for creating custom materials without writing shader code:

// Load a material created in the Node Material Editor
BABYLON.NodeMaterial.ParseFromFileAsync("", "materials/custom.json", scene).then(nodeMaterial => {
    sphere.material = nodeMaterial;
    
    // Access and animate material properties
    const timeBlock = nodeMaterial.getBlockByName("Time");
    scene.onBeforeRenderObservable.add(() => {
        timeBlock.value = performance.now() / 1000;
    });
});

These material capabilities provide extensive control over visual appearance, from basic colored surfaces to complex physically-based materials with realistic light interaction. In Babylon.js 8.0, the Node Material Editor also supports WGSL shader generation for WebGPU.