Skip to main content
iso-topology ships with a growing library of 3D shape families beyond the classic box. Each family has a shape provider that computes projected face polygons from a simple set of parameters; all providers share the same surface-material vocabulary (style.palette, style.faces, gradients, patterns, effects).

Shape families at a glance


Prism family (triprism, hexprism, octprism)

A regular n-gon extruded vertically. Each alias fixes the side count.

Effect pipeline (style.effects.effects)

Effects can now be expressed as an ordered list in addition to the individual scalar fields. When the list is present it takes precedence.

Supported effect kinds

The same kind may appear multiple times in the list; each entry is applied independently in order. This allows, for example, a tight inner glow followed by a wide outer glow by listing backglow twice with different radii.

Priority rules

Scalar fields (the old API) remain fully supported and are unaffected when effects list is absent.

Wedge (shape: wedge)

A right-triangular prism on its side. The bottom is a rectangle at z=0; the back edge (y=0) rises to full height h; the front edge (y=d) stays at z=0. This produces a sloped ramp appearance. Visible faces: slope (the inclined top face) and right (the right triangular end face). The palette top colour fills the slope; right fills the right triangle.
Semantic guide: ramp, data ingestion pipeline, traffic escalation, progressive rollout, CI/CD pipeline stage.

Custom path (shape: custom_path)

An arbitrary polygon base extruded vertically. The polygon is defined as an SVG-subset path string (M/L/Z commands only) in geom.params.path. The path coordinates are automatically normalised to fit the w × d footprint.
Supported path commands: Face names: top (the top polygon) and side0 … sideN-1 (vertical walls, one per polygon edge). Wall shading follows the same nx ≥ ny → right-palette, nx < ny → left-palette rule as prisms. Fallback: if path is missing or unparseable the shape renders as a box (rectangle footprint). Semantic guide: any brand or domain-specific shape — shield (WAF), pentagon (security), hexagon (API), star burst (CDN), custom logo outline.

Surface vocabulary

All shape families support the same style.faces overrides for per-face fills, multi-stop gradients, and multi-layer strokes. Face names depend on the shape:
See DSL YAML reference for the full style.faces schema.

Array shapes (shape: array1d / array2d / array3d)

Tiled cell grids: array1d is a linear row, array2d is a flat N×M grid, array3d is a volumetric N×M×K grid. Each cell is a small iso box sharing the same palette. Painter order is correct for the iso camera.

Rack (shape: rack)

A server rack: outer frame box with N horizontal slab shelves inside. Use params.slots to set the shelf count.