Isometric drawings
The isometric kit live: one 30 degree projection, one corner radius and one light, with boxes and prisms built on a slab and a mark seated on a face.
The isometric family draws GT's infrastructure: stacks, chips, plates and the Locadex iso. Every drawing goes through one module, src/app/d/toolchain/diagrams/iso.ts, with one 30 degree projection, one corner radius and one light from the upper left, so separate drawings read as one set. The gt-diagrams skill holds the rules, and its reference drawings include the Locadex iso.
The kit
The plate builds a solid on a slab with the kit's own functions. Width, depth and height size a box, and Solid swaps the box for a hexagonal or octagonal prism extruded from its plan polygon the same way. Mark seats the GT mark on the solid's top face with plane(z).
Each solid is drawn in the extrusion recipe: the opaque hull first, which hides whatever stands behind it, then the three visible faces, then only the hairlines that the silhouette and the top contour do not already draw. A later solid painted over an earlier one occludes it with no depth sorting.
Import and functions
import { frontEdge, leftFace, plane, rightFace, roundedPolygon, segment, silhouette, topFace, type IsoBox } from '@/app/d/toolchain/diagrams/iso';
const box: IsoBox = { x: -28, y: -24, z: 4.2, w: 56, d: 48, h: 18 };
const [a, b] = frontEdge(box);
<g>
<path className='hull' d={roundedPolygon(silhouette(box))} />
<path className='right' d={roundedPolygon(rightFace(box))} />
<path className='left' d={roundedPolygon(leftFace(box))} />
<path className='top' d={roundedPolygon(topFace(box))} />
<path className='line' d={roundedPolygon(silhouette(box))} />
<path className='hair' d={roundedPolygon(topFace(box))} />
<path className='line' d={segment(a, b)} />
</g>;| Function | What it returns |
|---|---|
project(x, y, z) | A world point on screen: +x runs down to the right, +y down to the left, +z straight up. |
topFace, leftFace, rightFace, silhouette, frontEdge | The faces, the outline and the near vertical edge of an IsoBox { x, y, z, w, d, h }. |
prismTop, prismFaces, prismSilhouette, prismFrontEdges | The same for an IsoPrism { points, z, h }, any convex plan polygon. Each face says whether it takes the left or the right shade. |
roundedPolygon(points, r) | A path through the points with the family's corner radius, ISO_RADIUS (2.4). |
plane(z, ox, oy) | The SVG transform that lays plan content on the face at height z, for marks, labels and chip seats. |
markPath(x, y, w, d, z) | A flat rounded rectangle on a face: a content bar or a mark's plinth. |
depth(x, y, z) | How near the camera a point sits; its sign splits an object's front from its back. |
IsoFrame wraps a drawing in the family's 240 by 180 frame and its props, className, strokeWidth, accent and title, which every drawing in the family takes.
When to use it
Use the kit for infrastructure: a stack of layers, a device, a plate of chips, a mark on a slab. Keep the light from the upper left and the shading in its order: the top lightest, the front-left face in the middle and the front-right face darkest. Spend the accent on one object at most. A diagram of a flow between parts uses the doubled line instead.
Reduced motion and themes
The kit draws still geometry; a host that animates it, as the stack tower does, runs its own timeline and holds a still under reduced motion. The plate's faces are the stage's ink at 4, 9 and 15 percent, so on paper they shade like daylight, and on ink they take the night shading the dark bands use.
Numbers and traps
The projection and the light make the drawings agree on angle and shade. These proportions and alphas make them agree on weight, so a stack drawn for one page sits beside a chip drawn for another as one set.
| What | Value | Measured on or held by |
|---|---|---|
| Plate thickness | about 4% of the footprint | The stack tower: footprint 104, thickness 4.2 |
| Air between stacked plates | about 40% of the footprint | The stack tower: 42 between plates |
| Corner radius | ISO_RADIUS 2.4, clamped to half of each adjoining edge | roundedPolygon, so a thin slab keeps its side faces |
| Corner radius on diff slats | 1.2 | At 2.4 a thin slat reads as a capsule |
Rim alpha, plate i of n | 0.12 + 0.08 d, where d = i / (n - 1) | 0 at the bottom plate, 1 at the top |
| Top edge alpha | 0.24 + 0.24 d | The same d |
| Front edge alpha | 0.08 | Every plate |
| Labels beside a drawing | sans at 9 to 10 user units, about 0.6 alpha, leaders at 0.14 | Mono only on numbers |
| Glyphs on a chip | <T>, en and ja at 6.5 px | Short glyphs read at chip scale, and words do not |
| The Locadex mark's box | a 500-unit viewBox around a glyph 199 by 222 | markHalf = glyphWidth * (500 / 199) / 2 sizes the image box from the glyph |
- Depth comes from each plate's stroke alpha. Group opacity carries no depth in this family. The pricing board's
is-dimat opacity 0.32 marks a selection and says nothing about depth. - A hand-written
scale(1 0.5) rotate(45)is the 2:1 dimetric squash. Its y to x ratio is 0.5 where the 30 degree face needs 0.577, so a mark placed that way lies flatter than the face under it. Seat flat art withplane(z, ox, oy). Its matrix is the flat-to-iso map in one step, and it agrees withproject()on that plane: rotate 45 degrees, scale y by tan 30 (0.577), then scale the whole by the square root of 1.5. - Every point goes through
project()orplane(), the two functions that hold the 30 degree projection. - Plates are opaque. The first plates were frosted glass, a near-opaque hull under a diagonal white sheen, and BRAND.md section 9 lists glassmorphism under Avoid. The stack tower and the Locadex iso use opaque plates with no sheen.
- The line audit reads lines from computed CSS and cannot see SVG strokes, so check every junction of a drawing by eye in 2x crops.
The gt-diagrams skill's isometric reference holds the face tones for each material, the extrusion recipe and the shimmer.
Doubled lines and connectors
The brand's doubled line as a component, with live gauge, gap, two-tone and pulse controls, and the production connector that carries a translation.
Globes and maps
Every globe in the library, live: the edge delivery globe, the dithered globe field in two looks, and the blog globe directions from all three rounds.