I kept running into the same problem while making games: the material I needed was simple to describe, but making it repeatable meant opening a large art package and leaving the useful decisions trapped inside a project file.
Nielo Materials started with the opposite question: what if the graph were just text?
Nielo MaterialsOpen the free web app
The Material Is the Document
Every material is a readable .nielo.json file. It describes the nodes, their connections, the exposed parameters, and the outputs for base color, normal, roughness, and height.
The source editor and graph are two views of that file. Move a slider or reconnect a node and the text changes; edit the text and the graph and preview follow. There is no hidden second version waiting to get out of sync.
Because the source is plain text, a material can live in Git, survive a code review, travel in a URL, or be written by an agent without giving up the visual editor.
One Document, Two Workflows
The browser app handles the part where I need to look. It renders with WebGPU, keeps a lit 3D preview beside the graph, and shows the individual texture maps. The command line handles the rest: validation, headless rendering, visual comparisons, and engine-ready exports for Unity, Unreal, and Godot.
Both use the same core. The sphere in the browser and the textures going into a game come from the same document.
Designed to Repeat
Procedural textures only work in games if they tile cleanly, so every generator wraps at the edges. Randomness is explicit too: Variation changes the seed, while keeping it produces the same material again.
Compatibility matters just as much. Once a node version ships, its result is frozen. Better algorithms get a new version and a migration instead of silently changing old work, and reference-image tests catch visual drift.
Nielo Materials is part of Nielo, a family of free creative tools where the source stays understandable and the result stays yours.

