# Everyday T-shirt — original parametric draft v1 Implemented November 9, 2026. This is a four-piece, dartless jersey T-shirt recipe, editable in `tee.html` or generated directly from code. It is a **development cutting draft, not a sew-tested or professionally graded pattern**. Geometry checks establish seam compatibility, not three-dimensional fit. ## Try it From the Botcraft checkout, serve `parametric-sewing` using the existing preview workflow and open `tee.html`, or choose Tops → Shirts → Everyday T-shirt. The same module powers preview, JSON import/export, physical SVG and tiled print. No dependencies or build step are required. A browser needs an HTTP server for the ES modules; the generated print layouts are self-contained HTML. Browser-free generation (Node 18+): ```sh node apps/sewing/patterns/generate-tee.mjs straight /tmp/tee-straight node apps/sewing/patterns/generate-tee.mjs shaped /tmp/tee-shaped node apps/sewing/patterns/generate-tee.mjs boxy /tmp/tee-boxy node apps/sewing/patterns/generate-tee.mjs /tmp/tee-straight/recipe.json /tmp/tee-custom node --test apps/sewing/tests/tee.test.mjs ``` Change numeric values in `recipe.json`, then regenerate. Unknown recipes, versions and units are rejected. Physical geometry is always millimeters; UI unit changes and zoom never rescale a saved draft. The browser saves the last valid draft locally. Download JSON for a portable copy. Invalid input dims the last preview, displays an error and disables export instead of silently using it. ## Published measurement references These are **finished garment** dimensions, not body-size recommendations. The manufacturer publishes flat chest width and high-point-shoulder (HPS) length. We double flat chest width for circumference and use 25.4 mm per inch. No proprietary pattern pieces or manufacturer construction shapes are reproduced. | Preset | Chest circumference | HPS length | Provenance | | --- | ---: | ---: | --- | | Straight / masc | 1016 mm | 736.6 mm | BELLA+CANVAS 3001 M: flat chest 20 in; length 29 in | | Shaped / femme | 850.9 mm | 679.45 mm | BELLA+CANVAS 6004 M: flat chest 16.75 in; length 26.75 in | | Boxy | 1120 mm | 640 mm | Original design starting point | Sources, consulted November 9, 2026: - [BELLA+CANVAS 3001 official specification](https://www.bellacanvas.com/spec/3001%20specs.pdf) - [BELLA+CANVAS 6004 official specification](https://www.bellacanvas.com/spec/6004.pdf) - [Melissa Mora / Melly Sews: drafting a T-shirt from measurements](https://mellysews.com/draft-a-t-shirt-pattern-from-measurements/): measurement landmarks, four-piece construction, matching sleeve to armhole, excluding fold allowances and a fabric-dependent 0.85–0.90 neckband starting ratio. - [FreeSewing Teagan](https://freesewing.eu/docs/designs/teagan/): corroborates that T-shirt fit needs shoulder, torso and arm measurements beyond a chest label. We do not import its pattern/code. **All other preset values are explicit original drafting assumptions.** They are not sourced body measurements, manufacturer specifications or universal men's/women's proportions. Compare dimensions to a garment you own, then make a test garment. Silhouette names describe starting styles; anyone can use any preset. This v1 takes finished dimensions, avoiding an implied body-to-fit algorithm. For circumference, decide desired ease and add it to the relevant body dimension, or measure a comfortable existing shirt. Fabric, recovery and intended fit matter. ## Construction and editor capabilities `patterns/geometry.mjs` supplies reusable points, lines, cubic Bézier segments, curve length, curve-position marks, bounds, segment reversal, variable seam allowances and crossing checks. `patterns/tee.mjs` defines the versioned recipe, 20 editable numeric fields, preset data, constraints and dependent construction. `patterns/output.mjs` renders the same geometry to preview, SVG and print tiles. `tee-editor.mjs` is a UI over those functions, not another source of pattern shapes. The older independent sleeve sandbox remains a demo and is not the T-shirt draft. Coordinates use HPS height as y=0, body fold as x=0. Front/back half pieces have chest / 4 at the underarm, waist / 4 at waist level and hem / 4 at the bottom. Their equal side contours and shoulders guarantee matching body seams. Waist curves have vertical tangents; the final 40 mm at hems is vertical so the turn-up can meet the side seam without shortening or narrowing the allowance. The front and back have different neck depth and armhole control points. These are original cubic constructions, not a claim to reproduce the reference brands. Shoulder span/drop and armhole depth are independent inputs with validity limits. The sleeve is a full piece with separate front/back cap cubics and one shared cap height. A nested monotonic numerical solve finds the two cap widths and height such that front cap length = front armhole length, back cap = back armhole, and the cap widths sum to the requested finished biceps circumference. **No cap ease is added.** Lengthening a sleeve preserves the cap; changing armhole-related inputs re-solves it. Both underarm sides taper equally and finish vertically for the last 40 mm. Impossible biceps/depth/length combinations fail explicitly. Single front and double back chalk marks lie at 65% of the respective seam arc length from shoulder/crown; the crown aligns with the shoulder seam. Grainlines, cut counts and body fold edges travel with the pieces. The neckband is a full rectangle: loop seam length = total neckline seam length × band ratio; cut length adds two joining allowances; cut width = 2 × (finished band width + allowance). Fold the band lengthwise. Its long direction is the fabric's greatest stretch. A head-clearance check compares required extension with the entered tested band stretch; this is a basic feasibility screen, not a comfort or recovery guarantee. ## Accuracy and output boundaries - Seam lengths use adaptive cubic subdivision, not control-polygon length. Paired seam differences must be under 0.5 mm; default presets solve much closer. - Cut contours use flattened curve normals with mitered joins, per-edge allowance categories and removal of small concave offset loops. They are approximate offsets, not uniformly enlarged stitch paths. Fold allowance is zero. - Seam and cut contours are checked for crossings. This engine is scoped to the supported simple pieces; it is not a general CAD offset/boolean engine. - Seam allowance defaults to 10 mm; hems to 25 mm. The neckline cut edge lies toward the neck opening. Transfer seam-line marks with chalk, not deep cuts. - SVG has explicit millimeter dimensions and matching viewBox. All exports include cut and stitch lines even if a preview layer is hidden. - Letter/A4 layouts use 10 mm page margins and 10 mm repeated overlap, row/column labels, an assembly map and a 50 × 50 mm calibration square. Print at 100% / Actual size with browser headers/footers off. Check both axes of the square and a known assembled measurement. Digital scale cannot validate a printer. - Join shoulders, set sleeves flat, join underarms/body sides, close/fold/quarter and attach the neckband, then turn/stitch hems. Use knit-compatible stitches and representative prewashed fabric; stabilize shoulder seams as appropriate. ## Limits to retain Shaped / femme changes waist and hem shaping. It **does not** provide a full-bust adjustment, front/back arc allocation, bust darts or extra front balance. The reference women's shirt is slim; its measurements do not establish which body will fit it. Boxy is a relaxed shoulder draft, not an independently fitted oversized block. No negative-ease fitting algorithm, size grading, woven option, cloth simulation or sewn-fit validation is provided. Parameter limits describe supported computational inputs, not a validated inclusive body-size range. ## Verification Focused tests cover the three presets, paired seams, assembled circumferences, fold/hem/band allowances, JSON round-trip, sleeve-length independence, invalid inputs and Letter/A4 tile coverage. An 81-combination chest/depth/biceps sweep accepted 68 constructions with matching seams and rejected 13 incompatible ones. Browser checks and any remaining verification limits are recorded in the task handoff; automated geometry tests do not establish sewn fit or printer accuracy.