Colour and material

Metal, roughness, glass and glow — the surface of a file node, plus the one checkbox that colours a whole project by language.

The Material section is the largest part of the editor and the one that changes the character of the graph most. It is open by default.

Colour#

The Color swatch sets the shield body. Default #616161, a mid grey.

Important

Out of the box the gradient is on, and while it is on, Color is not the node's colour — it is the first stop of a two-colour fade that ends in black. So changing Color changes the top of a fade, not a flat fill. If you want a solid colour, turn the gradient off first.

The surface#

Six sliders decide how light behaves on the shield.

Control Range Default What you see
Metalness 0 – 1 1 0 is painted plastic. 1 is mirror metal — which shows reflections instead of its own colour.
Roughness 0 – 1 0.68 0 is a sharp mirror highlight. 1 is a soft brushed sheen.
Clearcoat 0 – 1 0 A second lacquer layer on top: the wet, car-paint look.
Clearcoat roughness 0 – 1 0.26 Blurs that lacquer. Does nothing while Clearcoat is 0, which is the default.
Env reflection 0 – 4 2.75 How brightly the shields reflect the invisible room around the scene.
Opacity 0.05 – 1 1 Below 1 the shields turn to glass and the graph shows through them.

Two of these interact in a way that looks like a bug the first time it happens. Metalness at 1 means the shield renders almost nothing of its own colour — a mirror shows the room, not itself. And the room is the Env reflection. Drag Env reflection to 0 while metalness is high and every file in your project goes nearly black. Nothing is broken; you've made a mirror with nothing to reflect. Either bring Env reflection back up or bring metalness down.

Opacity is the glass control, and it stops at 0.05 rather than 0 — fully invisible nodes are deliberately out of reach.

Note

Some nodes set their own transparency regardless of this slider: a file an agent is currently streaming into is drawn as a faded ghost, and dragging a node dims everything unconnected to it. Those are states, not settings, and they will make the Opacity slider look like it's misbehaving.

Glow#

Two controls under the Glow sub-heading: a Glow color swatch, default black, and a Glow intensity slider, 0 – 5, default 0.

Glow is self-illumination. It does not depend on the scene's lighting, so a glowing node stays bright in the darkest corner of the graph — this is the neon look. The colour does nothing at all until intensity leaves zero.

Gradient#

A checkbox under the gradient heading, on by default.

The gradient is baked into the shape itself as a two-stop fade. The first stop is the Color above; the second has its own swatch, labelled with the current first colour so you can read the pair — #616161 → second color. Its default is black, which is why the shipped look is a grey shield fading into the scene.

linear and radial are the two modes.

  • linear sweeps stop A to stop B across the shape, in the direction set by Angle (0 – 360, default 178). 0° runs left to right and 90° runs bottom to top, so the shipped 178° is very nearly a straight right-to-left wash.
  • radial blooms stop A at the centre out to stop B at the rim.

In radial mode the Angle slider is hidden, because a radial fade has no direction to point.

Colour by file type#

One checkbox, headed color by file type, that does more than any other control in the editor.

Ticking it writes a colour for every file type at once, so a project stops being one colour and becomes a language map: TypeScript blue, Python blue, Rust tan, JavaScript yellow, and so on. A strip of up to ten swatches beside the checkbox previews the colours for the types in view.

Some detail worth knowing before you rely on it:

  • It goes by file extension, taken from the end of the filename. Not by language detection, not by folder, not by size.
  • 43 extensions have hand-picked colours — the familiar ones, chosen to read on a dark background. Anything not on that list gets a colour derived from its own name, so it's arbitrary but stable: the same extension is always the same colour, in every project, forever.
  • The 43 are coloured whether or not they're on screen, so a .rs file that turns up later is already Rust tan. Extensions outside that list are only coloured if they were visible when you ticked the box — an unusual extension that appears afterwards stays base-coloured until you tick it again with that file in view.

Two targets, chosen with the node / glyph chips beside the checkbox:

  • node puts the language colour on the shield body. The graph reads as coloured chips.
  • glyph puts it on the icon instead. The shields stay one uniform colour and the little symbols light up — the same map, much quieter.

Only one target holds the palette at a time; switching chips moves it.

Important

Three things about this checkbox surprise people.

It turns itself on. The tick reflects whether any file type currently carries a colour — it isn't a stored flag. Colour one file type by hand and the checkbox ticks itself.

Unticking it deletes colours you set by hand. Clearing the palette strips the colour from every file type, including ones you set yourself, one at a time, on purpose. Your other per-type settings — shape, glow, glyph — survive.

node mode is the expensive one. Giving each file type its own body colour means each one needs its own mesh built when you Apply. glyph mode writes only an icon colour, which needs no rebuild, and looks nearly as good. On a large graph, prefer it.

If your machine has no GPU acceleration#

When Semantix detects software rendering — no hardware WebGL — it drops the shields to a flat material, and Metalness, Roughness, Clearcoat, Clearcoat roughness, Env reflection and both Glow controls stop having any effect. The sliders still move. Nothing happens.

Colour, gradient and opacity keep working, and those are enough to build a distinctive look. The rest of this page is for machines with a working GPU.

Nothing on this page reaches the graph until you press Apply.