genart.dev
Download GenArt
Long Cutting

Long Cutting

Hortus · 2026 · 1000×1400 · Sheet · Canvas 2D

One cutting, laid across the sheet and cropped by it. The other three sheets are multiples set square to the paper — three fronds, a grid of six, four registers — and this is the one that gives the whole page to a single piece. It is cut at both ends and it runs off two edges, which is the honest thing for a cutting to do. What you get off a wall is a length of something longer, and a sheet is only ever a window onto the plant it came from. It is strapped where the stem is bare, because that is where you can actually put a strap.

Technique

`plants:vine` on `textures:paper`, `shapes:rect` for the mounting strips, `typography:text` for the determination block. `star-jasmine` is the one vine preset with `leafShape: "blade"`, and it draws real lance-shaped leaves that overlap and point. Every other vine here is `broad`, which renders each leaf as a round disc — a diagram of a plant rather than a plant. That single render hint is the difference between this sheet and the version it replaces. The specimen cell is larger than the sheet and hung off its left edge, so the paper crops the cutting instead of framing it. Laid at -34°: rotation happens about the cell's centre, so the cell has to travel down the sheet as the angle steepens or the whole mass swings off the top edge.

Seeds

The same system at three seeds. The composition itself re-cuts: the geometry is derived from the seed, so masses, edges and placement all move, while the palette and the drawing language stay put.

  1. Long Cutting, seed 6161
  2. Long Cutting, seed 528528
  3. Long Cutting, seed 17441744

Layer stack

In paint order. Every mark in the image comes from these; there is no handwritten drawing code.

  1. textures:paperSheet
  2. typography:textHeading
  3. typography:textAccession Number
  4. plants:vineSpecimen — Trachelospermum jasminoides
  5. shapes:rectMounting Strip — Middle
  6. shapes:rectMounting Strip — Lower
  7. typography:textDetermination — name
  8. typography:textDetermination — family
  9. typography:textDetermination — collection

Source

The complete composition. Open it in GenArt to re-render, re-seed, or take it apart.

long-cutting.genart
{
  "genart": "1.2",
  "id": "long-cutting",
  "title": "Long Cutting",
  "created": "2026-09-10T00:00:00Z",
  "modified": "2026-09-10T21:37:08.785Z",
  "renderer": {
    "type": "canvas2d",
    "version": "1.x"
  },
  "canvas": {
    "width": 1000,
    "height": 1400
  },
  "parameters": [],
  "colors": [],
  "state": {
    "seed": 61,
    "params": {},
    "colorPalette": [
      "#2e2118",
      "#4a3626",
      "#7a6247",
      "#b9a880",
      "#efe7d6"
    ]
  },
  "algorithm": "// Hortus — the sheet only. This code draws NO specimen.\n//\n// The other three series in the gallery compute their whole picture here and\n// let layers make every mark. This one does not, and the difference is the\n// point of the series: a herbarium sheet is not composed, it is a CONVENTION.\n// The specimen goes where specimens go, the label goes where labels go, and\n// what varies between sheets is the plant, not the layout. So the layout is\n// fixed in the layer transforms and the growth of the specimen is what the\n// seed reaches.\n//\n// All this does is lay the paper down under everything else.\nfunction sketch(ctx, state) {\n  ctx.fillStyle = state.colorPalette[4];\n  ctx.fillRect(0, 0, state.canvas.width, state.canvas.height);\n}\n",
  "layers": [
    {
      "id": "sheet",
      "type": "textures:paper",
      "name": "Sheet",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": 0,
        "y": 0,
        "width": 1000,
        "height": 1400,
        "rotation": 0,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "preset": "rough",
        "roughness": -1,
        "color": "#efe7d6",
        "seed": 61
      }
    },
    {
      "id": "heading",
      "type": "typography:text",
      "name": "Heading",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": 31,
        "y": 63,
        "width": 571,
        "height": 37,
        "rotation": 0,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "text": "LONG CUTTING",
        "fontFamily": "Georgia",
        "fontSize": 16,
        "fontWeight": "400",
        "fontStyle": "normal",
        "color": "#2e2118",
        "align": "left",
        "baseline": "top",
        "lineHeight": 1.55,
        "strokeEnabled": false,
        "strokeColor": "#000000",
        "strokeWidth": 2,
        "shadowEnabled": false,
        "shadowColor": "rgba(0,0,0,0.5)",
        "shadowBlur": 4,
        "shadowOffsetX": 2,
        "shadowOffsetY": 2
      }
    },
    {
      "id": "accession",
      "type": "typography:text",
      "name": "Accession Number",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": 614,
        "y": 63,
        "width": 354,
        "height": 37,
        "rotation": 0,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "text": "HORT. 04415",
        "fontFamily": "Georgia",
        "fontSize": 14,
        "fontWeight": "400",
        "fontStyle": "normal",
        "color": "#7a6247",
        "align": "right",
        "baseline": "top",
        "lineHeight": 1.55,
        "strokeEnabled": false,
        "strokeColor": "#000000",
        "strokeWidth": 2,
        "shadowEnabled": false,
        "shadowColor": "rgba(0,0,0,0.5)",
        "shadowBlur": 4,
        "shadowOffsetX": 2,
        "shadowOffsetY": 2
      }
    },
    {
      "id": "specimen",
      "type": "plants:vine",
      "name": "Specimen — Trachelospermum jasminoides",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": -131,
        "y": 417,
        "width": 1114,
        "height": 1114,
        "rotation": -34,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "preset": "star-jasmine",
        "seed": 61,
        "iterations": 9,
        "trunkColor": "#2e2118",
        "branchColor": "#2e2118",
        "leafColor": "#2e2118",
        "drawingStyle": "ink-sketch",
        "detailLevel": "botanical-plate",
        "strokeJitter": 0.28,
        "inkFlow": 0.74,
        "lineWeight": 1.4285714285714286,
        "elevation": 0,
        "azimuth": 0,
        "growthTime": 1,
        "growthCurve": "linear",
        "windDirection": 0,
        "windStrength": 0,
        "gustFrequency": 1,
        "gustVariance": 0.3,
        "windTurbulence": 0,
        "windTime": 0,
        "showFruit": false,
        "fruitType": "apple",
        "fruitDensity": 0.3,
        "fruitColor": "",
        "showBark": false,
        "barkType": "furrowed",
        "showVeins": true,
        "veinPattern": "pinnate"
      }
    },
    {
      "id": "strip-1",
      "type": "shapes:rect",
      "name": "Mounting Strip — Middle",
      "visible": true,
      "locked": false,
      "opacity": 0.55,
      "blendMode": "normal",
      "transform": {
        "x": 617,
        "y": 634,
        "width": 106,
        "height": 16,
        "rotation": -34,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "fillColor": "#b9a880",
        "fillEnabled": true,
        "strokeColor": "#7a6247",
        "strokeWidth": 1,
        "strokeEnabled": true,
        "cornerRadius": 0
      }
    },
    {
      "id": "strip-2",
      "type": "shapes:rect",
      "name": "Mounting Strip — Lower",
      "visible": true,
      "locked": false,
      "opacity": 0.55,
      "blendMode": "normal",
      "transform": {
        "x": 697,
        "y": 863,
        "width": 106,
        "height": 16,
        "rotation": -34,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "fillColor": "#b9a880",
        "fillEnabled": true,
        "strokeColor": "#7a6247",
        "strokeWidth": 1,
        "strokeEnabled": true,
        "cornerRadius": 0
      }
    },
    {
      "id": "det-name",
      "type": "typography:text",
      "name": "Determination — name",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": 74,
        "y": 1131,
        "width": 657,
        "height": 37,
        "rotation": 0,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "text": "Trachelospermum jasminoides",
        "fontFamily": "Georgia",
        "fontSize": 20,
        "fontWeight": "400",
        "fontStyle": "italic",
        "color": "#2e2118",
        "align": "left",
        "baseline": "top",
        "lineHeight": 1.55,
        "strokeEnabled": false,
        "strokeColor": "#000000",
        "strokeWidth": 2,
        "shadowEnabled": false,
        "shadowColor": "rgba(0,0,0,0.5)",
        "shadowBlur": 4,
        "shadowOffsetX": 2,
        "shadowOffsetY": 2
      }
    },
    {
      "id": "det-family",
      "type": "typography:text",
      "name": "Determination — family",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": 74,
        "y": 1171,
        "width": 571,
        "height": 37,
        "rotation": 0,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "text": "APOCYNACEAE",
        "fontFamily": "Georgia",
        "fontSize": 14,
        "fontWeight": "400",
        "fontStyle": "normal",
        "color": "#7a6247",
        "align": "left",
        "baseline": "top",
        "lineHeight": 1.55,
        "strokeEnabled": false,
        "strokeColor": "#000000",
        "strokeWidth": 2,
        "shadowEnabled": false,
        "shadowColor": "rgba(0,0,0,0.5)",
        "shadowBlur": 4,
        "shadowOffsetX": 2,
        "shadowOffsetY": 2
      }
    },
    {
      "id": "det-body",
      "type": "typography:text",
      "name": "Determination — collection",
      "visible": true,
      "locked": false,
      "opacity": 1,
      "blendMode": "normal",
      "transform": {
        "x": 74,
        "y": 1214,
        "width": 657,
        "height": 157,
        "rotation": 0,
        "scaleX": 1,
        "scaleY": 1,
        "anchorX": 0,
        "anchorY": 0
      },
      "properties": {
        "text": "Old wall, south aspect\ncut at two metres, laid to the sheet\ncoll. E. T. Carter\n14 September",
        "fontFamily": "Georgia",
        "fontSize": 14,
        "fontWeight": "400",
        "fontStyle": "normal",
        "color": "#2e2118",
        "align": "left",
        "baseline": "top",
        "lineHeight": 1.55,
        "strokeEnabled": false,
        "strokeColor": "#000000",
        "strokeWidth": 2,
        "shadowEnabled": false,
        "shadowColor": "rgba(0,0,0,0.5)",
        "shadowBlur": 4,
        "shadowOffsetX": 2,
        "shadowOffsetY": 2
      }
    }
  ]
}