An art director who opens a client’s logo reads a constraint in it. A hexagon rules out the right angle. A wireframe outline rules out heavy flat colour. An engraved feather rules out the block and calls for the fine line.

I wanted to measure that gaze and bring it into the pipeline. It builds redesign proposals from a client’s site, and I am the one who chooses between them.

What can be read in a logo without understanding it

The first module understands nothing of what it looks at, and that is exactly why it is reliable.

The logo is converted to greyscale, transparency is flattened onto white, otherwise there is no edge to measure, and a gradient filter runs over it. Every clear enough edge votes for its orientation, brought back between 0 and 180°. That gives a histogram, from which the dominant peaks are pulled, and the signature is read. Two peaks at 30° and 150° is a hexagonal grid. Peaks at 0° and 90°, an orthogonal grid. A clear peak more than 20° from both axes, a diagonal grid. Nothing dominant, and that is a valid result.

The orientation histogram and the peaks that make a signature Three stacked histograms share one horizontal axis graduated from 0° to 180°, each made of thirteen bars of equal width. The first, named hexagonal grid, has two bars clearly taller than the others, at 30° and 150°. The second, named orthogonal grid, has its two tall bars at 0° and 90°. The third, named nothing dominant, has only bars of identical height. Three dotted vertical lines connect the 30°, 90° and 150° marks through all three histograms. ORIENTATION HISTOGRAM A SIGNATURE, NEVER A SINGLE ANGLE hexagonal grid orthogonal grid nothing dominant 0° 30° 90° 150° 180°
Two named peaks make a signature, bars all of equal height are still a valid result.

A signature always requires its complete combination, never a single angle. Almost every logo has a vertical edge: concluding « orthogonal » from that clue alone would be noise disguised as information.

And when the logo is an SVG, the geometry is declared in it. A six-vertex polygon is a hexagonal signature, no discussion. We read instead of measuring, and fall back on measurement only when the file is a single unreadable path, which is the case for most real logos.

A measurement that does not become a constraint is useless

A hexagonal grid is useful through what it forbids and what it calls for: a six-sided cutout mask, a grid with columns offset by half a height, slanted separators, and the right angle banned from bevels.

When the grid is diagonal, the slope used is the angle actually measured, not 45°. Forcing a 45° bevel onto a logo cut at 30° betrays the brand guidelines.

The measured slope carried over to three page elements On the left, an angle opening from a vertex on a horizontal line: a solid line rises at 30°, marked with an arc, and a shorter dotted line rises at 45°. On the right, three aligned shapes of equal height. The first is a six-sided mask with two opposite corners cut along the 30° slope. The second is a rectangle crossed from side to side by an oblique separator at the same slope. The third is a rectangle whose top left corner is bevelled at the same slope. In each shape, a dotted line starts from the same point at 45° and moves away from the solid line. All the solid oblique lines are parallel to one another. ONE SLOPE FOR THE WHOLE SITE DOTTED, THE IMPOSED 45° BEVEL 45° 30° the measured angle cutout mask separator bevel
Three places, one slope, and it comes from the measurement.

The measurement must come out as a written rule in the working language, « ban the right angle from cutouts », otherwise it will be read and forgotten.

The logo that broke the method

Then came a client whose logo is an engraved feather, in fine line.

The geometry returned nothing. That is the right result: the hatching of an engraving runs in every direction, there is no grid to draw from it. So the brief wrote, quite logically, « invent no shape constraint ». A dead end.

Except that this logo carried a complete art direction in its subject. An engraved feather speaks of lightness, the fine line, the editorial register, craft, writing. It excludes massive flat colour, immersive tech, big blocks of colour. The client’s richest signal was there, and my sensor could not see it because it was not built for that.

The second reading, and why it is separate

Hence a second pass, the only one in the whole module that calls a model: a reading of the subject. What the image represents, how it is drawn, what world it belongs to, what it calls for and what it excludes.

The result is strict JSON: a subject in 3 to 8 words, a treatment, a register, 2 to 4 stances called for, 1 to 3 excluded. Free text would be reread by the generator as a suggestion, a list of constraints gets respected.

The case of a logo that is only the written name is covered: the expected answer is literally « nothing to read beyond the typography ». Once again, « nothing » must be a valid answer, otherwise the model embroiders.

And the result is cached in the client record. The reading costs one call, the brief is rendered on every dashboard view. Never one inside the other: a function you display must not be able to trigger a bill.

The two readings are independent and cumulative. A grid with no subject, for an abstract logo, and a subject with no grid, for an organic illustration, are both normal. We only return « nothing » when both stay silent.

The ornament trap

The grid was measured, transmitted, understood, and applied as decoration. A bullet a few pixels wide, two bevelled corners, box ticked.

The rule that followed is deliberately blunt: a measured grid must structure at least two strong compositions, one of them on the first screen. The mask of a photo, the footprint of a gallery tile, the break of a section.