Skip to content

E01 — Drawing symbol shapes from numbers ​

In one paragraph ​

Before E01 there was nothing to draw. Now you can make the two shapes symbols are built from, a rectangle and a regular polygon of 3 to 12 corners. Every shape comes from the numbers you type. You can round each corner on its own, place the polygon in its box or stretch it to fill the box, move, add and delete points, and turn any shape by any whole angle. Every drawing is a single SVG <path> written with at most 5 decimals, and it is the same each time you type the same numbers. Eight features, released from version 0.7.0 to 0.14.0, all tried in the playground.

Feature by feature ​

F01 — A rectangle with rounded corners ​

Type a width, a height and a radius: the corners are rounded exactly. When the radius is too big, the rounding is reduced just enough to fit, and the page says so. Your number is kept, and the rounding grows back when the rectangle grows. Demo page.

A rectangle with radius 10

F02 — A regular polygon with rounded corners ​

Choose Polygon and a number of corners from 3 to 12. You get the largest regular polygon that fits the box without being stretched, always with a flat side at the bottom. The radius works as for the rectangle. Demo page.

A regular hexagon

F07 — A polygon anchored in its box ​

A grid of nine buttons says where the polygon sits in the room its box leaves: top left, middle, bottom right and so on. Rounding goes inwards, so a flat side placed against the box stays there. Demo page.

A triangle on the bottom of its box

F03 — A rounding for each corner ​

The Points button shows the corners as handles. Select one or several, type a radius, and only those corners are rounded. When the corners differ, the shape's Radius field reads Mixed. Demo page.

A hexagon with two corners rounded

F09 — The rectangle, a free shape you can stretch ​

Nothing changes on screen: behind it, the rectangle is now a free shape. Its points are kept in a box of their own and stretched to the width and height you type, with no loss. Demo page.

A triangle stretched to 100 × 40

F08 — Moving, adding and deleting points ​

In Points mode, type the X or Y of a point to move it. You can add a point in the middle of an edge, or delete points, keeping at least three. Convert to free shape turns a polygon into a free shape without moving it. Demo page.

A peak added in the middle of a side

F04 — Turning a shape by any angle ​

Every shape has an angle, from 0 to 359, clockwise about the center of its box, and a position, the x and y of its straight box. A turned shape can still be resized and edited without jumping. Demo page.

A rectangle turned

F06 — A polygon stretched to its box ​

Tick Stretched to its box and the polygon touches all four sides of its box. Its sides stay as even as possible, under rule C, the rule the Product Owner chose. Demo page.

Rule C in five boxes

Words you will meet ​

TermIn plain wordsWhere it shows
Boxthe width × height you type, drawn in grey behind a polygonevery shape
Radiushow much a corner is rounded; the effective radius is what fits, your number is keptRadius field, Effective radius
Regular polygona polygon with all its sides and all its corners equalPolygon
Anchorwhere the polygon sits in the room its box leaves, one of nine placesAnchor grid
Point, handlea corner of the shape, and the round button drawn on it in Points modePoints mode
Free shapea shape whose points are typed one by one; the rectangle is one, a polygon becomes onethe panel's title, Free shape
Anglehow far the shape is turned, clockwise, about the center of its boxAngle field, −90° and +90°
Turned boxthe box turned with the shape, drawn as a thin blue framea turned shape
Straight boxthe smallest upright rectangle around the drawn shape, dashed; its x and y are the positionX, Y, Straight box
Stretcheda polygon touching the four sides of its boxStretched to its box

User test of the epic ​

Run npm run dev and open http://localhost:5173/?guide=epic&step=67. Steps 67 to 72 each mix several features. Next types the shape for you; the clicks and the extra values written in the step are yours.

StepDoYou should seeOK?
67Rectangle 160 × 100, radius 12 (F01); type Width 200 (F09)it widens, its left side fixed; Effective radius: 12 (as requested)
68Rectangle 160 × 40, radius 1000 (F01); type Angle 90 (F04)a capsule, effective radius 20; standing up, Width and Height still 160 and 40; straight box x 60, y −60
69Triangle 120 × 120 anchored bottom (F02, F07); Points, point 1, Ctrl + point 2, radius 15 (F03)only the base corners rounded, the base still on y 120; Effective radius: mixed
70Hexagon stretched in 160 × 100 (F06); Points, Convert (F08); points 1 and 2, add a middle point, Y 120converting moves nothing; a new point under the base; Height 120
71The same hexagon; Angle 30 (F04), then Points and Convert (F08), then Width 200nothing moves when converting; once widened, point 3 stays at x 10.71797, y 10; the angle stays 30
72The stretched hexagon with radius 1000 (F06, F01); type X 0 (F04)every corner rounded by 50, the shape leaves the left and right of its box; Straight box: x 0, y 0, width 124.08793

Decisions taken on the way ​

  • Every value you type is a whole number. The computed drawing may have decimals, written with at most 5 (ADR-0003, Q10).
  • A radius too big is reduced locally, edge by edge, never refused; your number is kept (ADR-0007, Q8).
  • Each corner has its own radius; the radii follow the point numbers when the number of corners changes (ADR-0029).
  • The rectangle is a free shape: its points live in a box of their own and stretch without loss (ADR-0032, ADR-0033).
  • A converted polygon keeps its exact points, decimals included; only a coordinate you type is a whole number (ADR-0031, ADR-0034).
  • Every shape has an angle and a position; editing a turned shape leaves it where it is (ADR-0035).
  • A stretched polygon follows rule C: equal sides while every corner keeps half of its usual turn, then a plain stretch (ADR-0037).
  • Point numbers never change once a shape exists, except when a point is added or deleted (Q11, Q18).
  • A polygon has 3 to 12 corners (Q19); a size has no upper limit in the library, and the playground caps typing at 100 000 (Q20).
  • Free V1, then a paid pro edition for new features (ADR-0030).

Limits and next epic ​

  • Only straight sides and rounded corners: no curve with handles, no ellipse, no round shape. That is E14, the next epic: Bézier curves typed as numbers, the ellipse, and the round shape F10.
  • No text: E15, right after E14.
  • Points are typed, not dragged; one shape at a time; the eight handles of a box, the rotation centre you move, and the warnings on shapes that cross themselves come with the editor (E02).
  • Shapes in a tree and a layout box that places them: E13.
  • The playground is a demonstration of the library, not the Symbol Editor.

Questions for the review ​

  1. Closure. E01's closure criterion was "the cases of shapes.md §2–3 render as specified in the playground". §3 still holds text (now E15) and the layout box (E13). Should the criterion keep only the rectangle and the regular polygon?
  2. Anything unwanted. Is there something E01 built that you did not mean, or that works differently from what you had in mind?
  3. Next epic. Is E14 (curves, ellipse, round shape) still the right next step, before E15 (text)?

Review ​

Held with the Product Owner on 2026-10-12 (REV-001).

Answers to the questions. 1: yes, the closure criterion now keeps only the rectangle and the regular polygon. 2: nothing was built that they did not mean, and nothing works differently from what they had in mind. 3: yes, E14 (curves, ellipse, round shape) is the right next epic, before E15 (text).

The user test, step by step.

StepWhat they sawMatches the step
67the rectangle widened to 200 and kept its radius of 12yes
68the capsule with an effective radius of 20 stood up at 90°; trying radius 20 by hand, the "reduced to fit" message went away, and smaller radii rounded less, as expectedyes
69only the two corners of the base were rounded by 15yes
70nothing moved on converting; the point added in the middle of the base went down to y 120 and the height became 120yes
71turned by 30°, converted and widened, point 3 did not move; going back undid it all without a changeyes
72every corner had an effective radius of 50; with X 0 the shape seemed to go partly off the canvas — not blocking, kept for later (improvement log)yes, one doubt

What the demo meant and what they understood. Each step showed what it meant to show. Two points were checked after the review (RET-001): at step 72 the shape and its handles sat left of the view, which now keeps a margin of 40 so that they stay in sight; the steps say to press Enter after a point's X or Y because those fields apply on Enter, so that typing a minus sign moves nothing yet.