THEREPROCASEFILLAPRINTV0.1.3 BETA
v0.1.3 beta — fine-tuning for release. Shapes, spacing, and print behavior may change before 1.0. We eventually aim to launch through Nerd Fonts; this beta is not an official Nerd Fonts release.

FOR FDM 3D PRINTING

PERSONAL + COMMERCIAL USE / FREE

Fillaprint

Equal minimum widths for strokes and gaps.

Nominal strokes and minimum clear gaps are both two extrusion widths. This gives the letter and background materials the same design minimum for FDM printing.

Download the family 3 TTFs + license ↓
Nominal strokes
2w
Minimum clear space
≥ 2w
Font families
03
Drawn characters¹
376

w = extrusion line width. Joins may be thicker. ¹ Proportional and Tab; Mono includes 362.

01 / TYPE TESTER

LIVE FONT SPECIMEN
Hex 4 mm Torx T25 M6 × 1.0 Ø12 ±0.1 45°

Proportional letter widths and kerning.

02 / STROKES AND GAPS

Minimum feature widths

Uniform stroke width does not control the width of gaps inside and between letters. Narrow gaps can make the background material too thin to print while the strokes are still printable.

Fillaprint uses the same design minimum for both: two extrusion widths. Joins can be thicker and some gaps are wider. Equal minimum widths do not require equal areas of ink and background.

An actual H outline: 2w strokes, a 3w gap, and the minimum clear-space rule of 2w.
Measured font geometry. The H has a 3w gap; the minimum rule across the design is 2w.

03 / LABELS AND SYMBOLS

Labels on printed parts.

The font was first used for small, multicolour labels on masonry repointing keys. Other applications include tool labels, storage bins, and dimensions on printed parts.

The character set includes Latin letters, accents, fractions, arrows, punctuation, and measurement symbols. The old working names were Double bead and Beadjoint.

Font specimens showing tool names, masonry measurements, metric and imperial dimensions, accented words, and bin labels.
Digital specimens drawn from the TTFs, not photographs of printed parts.

04 / PRINT SIZE CALCULATOR

MILLIMETRES / NATIVE DESIGN SCALE

Use the line width from your slicer.

Use the extrusion line width for the text, which may differ from the nozzle diameter. The calculator gives the font’s reference size.

At 0.42 mm line width, start with a 5.88 mm capital height.

Capital height / Fusion Height
5.88 mm
14 × w
Em-based font size
8.40 mm
20 × w
Nominal stroke / minimum gap
0.84 mm
2 × w
Default line pitch
11.76 mm
28 × w
Check your sliced preview. Enlarging preserves the proportions and may add beads. Shrinking removes the two-bead margin. If an application’s sizing is unclear, convert an H to outlines and measure its height. Use the default line spacing for accents and descenders, with one exception: a comma-below letter (Ģ Ķ ķ Ļ ļ Ņ ņ Ŗ ŗ Ţ ţ Ș ș Ț ț) stacked directly under a capital with a ring, breve, grave, acute, double acute, circumflex, caron or tilde (Å Ů Ă Î Š …) on the next line comes closer than 2w at the default 28w line pitch. Such labels need 30.6w (1530 font units, 1.53 em) — about 1.1× the default pitch, or 9.79 mm at w = 0.32 mm and 12.85 mm at w = 0.42 mm.

05 / RECORDED TOOLPATHS

RECORDED ORCA / ARACHNE TOOLPATHS

The demo coupon was sliced at a 0.32 mm extrusion width. Yellow is the lettering, grey is the body, blue is the design outline, and white marks areas without a bead on that layer. This is a toolpath render. Check the preview for your own printer and settings.

Recorded OrcaSlicer toolpaths for letters and symbols, showing lettering beads and the material in counters.
Top face of the original test coupon. Sizing and recorded profile notes →

06 / DOWNLOADS

V0.1.3 BETA / SIL OFL 1.1

01 / PROPORTIONAL

Fillaprint

Proportional letter widths and kerning.

Download TTF ↓

02 / TABULAR FIGURES

Fillaprint Tab

Proportional letters, equal-width digits. For measurements in columns.

Download TTF ↓

03 / MONOSPACE

Fillaprint Mono

A fixed 12w cell. Narrow forms and 362 drawn characters.

Download TTF ↓

Open a downloaded TTF in your system’s font installer, install it, and restart your CAD or design app if needed. Download all three with the license ↓

Character coverage and full specimens

ASCII, Latin-1, Latin Extended-A, Romanian comma-below letters, additional Welsh accents, capital ẞ, fractions, currency signs, arrows, and selected mathematical symbols. This is a Latin-focused family, without complete Greek or Cyrillic alphabets.

Beta updates: Keep the release ZIP with projects that need exact lettering. Future revisions may change spacing or outlines. Replace installed fonts and restart your design app when updating. Release notes →

SIL Open Font License 1.1

Free for personal and commercial work. The SIL Open Font License permits modifications and embedding. Distributed fonts must retain the copyright notice and OFL; modified versions must use different names unless permission is granted. The font cannot be sold by itself.

Your documents, artwork, and printed products do not have to use the OFL or display a credit. If you build on the font, please acknowledge its origins and describe your changes.

Full license and Reserved Font Names · License explained · Source on GitHub ↗ · Asset record

07 / COMPLETE CHARACTER SET

11 PT

Every mapped character in each released font, set at 11 pt. Spaces occupy blank cells. Point to a cell for its Unicode value and name.

Fillaprint

389 mapped characters. Fillaprint Tab and Fillaprint Mono use these shapes except where noted below.

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƒȘșȚțȷˆˇ˘˙˚˛˜˝ΩμẀẁẂẃẄẅẞỲỳ   ‐‑–—―‘’‚“”„†‡•… ‰′″‹›⁄€₺™Ω⅓⅔⅛⅜⅝⅞←↑→↓−≈≠≤≥⌀

Fillaprint Tab

Tab uses the same shapes as Fillaprint for all 389 characters; only spacing differs: every digit sits on the same 9w cell, so numbers line up in columns.

0123456789
1111 / 8888
0123456789
1111 / 8888

Fillaprint above left, Tab above right.

Fillaprint Mono

375 mapped characters on a fixed 12w cell. These 128 are redrawn for the cell: counters widened, and narrow letters such as i, l and r given bars.

0123456789abcdefghijklnopqrstuxy«»ÆØàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿāăąćĉċčďēĕėęěĝğġģĥĩīĭįıIJĵķĺļľńņňōŏőŒœŕŗřśŝşšţťũūŭůűųŷșțȷΩỳ—―…Ω⌀

Mono leaves out 14 characters too wide for its cell: © ® ¼ ½ ¾ ʼn ‰ ™ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞

08 / WORDMARKS

ORIGINAL GLYPHS / DEFAULT KERNING

A / TITLECASE

BLUE ON WHITE
Fillaprint

Capital F with lowercase letters. The p extends below the baseline.

Download SVG ↓

B / LOWERCASE

WHITE ON BLUE
fillaprint

Paired l characters and two dotted i characters, set with the font’s default spacing.

Download SVG ↓

C / UPPERCASE

WHITE ON CHARCOAL
FILLAPRINT

A level capital height for horizontal labels, packaging, and file covers.

Download SVG ↓

D / INITIALS

FP
FP
FPFPFP

Two unmodified capitals for a compact badge. Shown at four sizes.

Download SVG ↓

09 / APPLICATIONS

DIGITAL LAYOUTS
FillaprintM06 / 01
M6 × 1.0
HEX 4 mmØ 12
FPTYPE SPECIMEN
V0.1.3 BETA
Fillaprint
Aa Bb Cc Dd Ee
0123456789
± × ÷ Ø →
Equal minimum widths
for strokes and gaps.

THREE FONT FAMILIES

FillaprintProportional
Fillaprint TabTabular figures
Fillaprint MonoMonospace

Install Fillaprint, Fillaprint Tab, and Fillaprint Mono from the downloads above.

These are screen specimens, not photographs of printed parts. Actual print size depends on extrusion width and sliced geometry.

10 / ARTWORK

SVG + PNG

The SVGs contain actual glyph outlines from Fillaprint, with the font’s kerning. They open without installing the font. All four SVGs use blue lettering on a transparent background.

Back to top ↑ Artwork source record →

11 / GLYPH TUNER

LOCAL TOOL / GIT PATCH CONTRIBUTIONS

Suggest a shape change as a Git patch.

The glyph tuner is a local tool in the font repository. It edits the numeric coordinates and radii of the existing glyph definitions, redraws the glyph with the same code that builds the fonts, and exports the change as an ordinary Git patch. It runs on your computer and uploads nothing.

  1. 1 / Start the tuner

    You need Git and Python 3.12 or newer. The tuner uses the font’s pinned requirements; it adds no accounts, services, or JavaScript packages.

    git clone https://github.com/thereprocase/double-bead.git
    cd double-bead
    python -m venv .venv
    . .venv/bin/activate
    python -m pip install --only-binary=:all: -r requirements.txt
    python -m tuner.serve

    On Windows PowerShell, activate the environment with .venv\Scripts\Activate.ps1. The browser opens http://127.0.0.1:8766. The server accepts connections from this computer only.

  2. 2 / Choose a construction

    The left rail lists 193 constructions: base letters, capitals, symbols, Mono variants, accent marks, and the shared dot radius. The right rail lists the selected construction’s numbers with its source file and line.

    Search by character or group name. The preview glyph and family can differ from the construction, so you can edit the base n and inspect ñ in Mono.

    The glyph tuner with the lowercase n selected. The outline pane shows the edited n over the original, the right rail lists its coordinates with two changed values highlighted, and the sample line reads Hamburgefonts ñ ņ 0123.
    Demonstration edit: the right stem of n moved from 6w to 6.5w. Changed values are highlighted.
  3. 3 / Drag points or type values

    Drag the yellow construction points, or type exact values in the right rail. Coordinates are in extrusion widths (w), with Y pointing down; a normal stroke stays 2w wide. The edited outline is drawn in blue over the original in cyan.

    Readouts show ink width, maximum thickness, thin regions, tight holes, and gaps. The sample line uses the font’s actual spacing. If strokes come closer than 2w, finishing fills the gap with ink and the tuner shows an amber warning, because those strokes would print as one solid block. The first preview after starting the tuner takes about 7 seconds; later previews take about 1–2 seconds. Undo, redo, and reset are available, and the browser keeps your edits between visits.

    Close-up of the outline pane: the widened n in blue over the original n in cyan, with yellow construction points at the ends of its strokes.
    Original in cyan, edit in blue, construction points in yellow. One grid square is 1w.
  4. 4 / Check every affected glyph

    Validate changed glyphs rebuilds Proportional, Tab, and Mono and checks every outline that changed, including accented letters built from the edited base. In testing, validation took about 5–10 seconds. Failing glyphs are listed in red.

    Validation result: 17 changed glyphs checked and passing, listed as P, T and M versions of n, ñ, ń, ņ, ň and ʼn.
    Validation for the demonstration edit: 17 changed glyphs in Proportional (P), Tab (T), and Mono (M), all passing.
  5. 5 / Export and open a pull request

    Export Git patch downloads fillaprint-glyphs.patch — most browsers save it to a Downloads folder. It asks you to confirm first if validation failed or hasn’t run yet. Save session stores your values to resume later; a session contains parameter identifiers, source-file hashes, and numbers only. Stop the tuner, then apply the patch in your clone and rebuild and test:

    git switch -c glyph/my-adjustment
    git apply --check ~/Downloads/fillaprint-glyphs.patch
    git apply ~/Downloads/fillaprint-glyphs.patch
    python build.py
    python -m unittest discover -s tests
    git restore fonts specimen report.json

    Adjust the patch path if your browser saved it somewhere else. Restart the tuner if you want to keep iterating. The last line undoes the binaries build.py just rebuilt: maintainers rebuild fonts, specimens and the report once per release, so a source-only pull request shouldn’t include them.

    Open a pull request with the source diff, why the glyph is better, the affected families, and before-and-after images. Slicer evidence helps: record your line width, slicer version, and profile.

Geometry checks, not print results. A passing preview does not cover every letter pair, TTF rounding, or sliced toolpath; the full build, the tests, and a slicer coupon remain the acceptance checks. The tuner changes existing numbers only. New strokes, endpoint types, or characters still require editing the Python source.

12 / V AND Z CANDIDATES

REVIEW RECORD / V4 + Z3 IN V0.1.2

Sharper joints for v and z, within the 2w rule.

Chosen: V4 and Z3, released in v0.1.2. Capital V takes the same round point and capital Z the mitred corners; Fillaprint Mono uses the same v and z. M and W keep their hairpin, where a round point would triple the fill. Download v0.1.2 ↓

Five candidates for each letter, with the current v0.1.1 shapes (V0, Z0) for comparison. The finishing step that fills the joints is unchanged; the candidates change the joint geometry, which decides how much fill it adds.

Three limits set how sharp a joint can be. Inside the joint, finishing fills any negative space narrower than 1.96w, so the notch always ends in a round about 2w across; a wider angle makes that fill shallower. At the point, ink narrower than 2w may cover at most 0.5 w²: fully mitred corners on today’s 55° z fail that check. And before any filling, where two arms meet the stroke may be at most 2.85w across (two beads): at today’s v angle, any point tighter than a 0.7w fillet breaks that rule, so a sharper v needs a wider angle. The outside rounding (R0.5w) is left as it is: it is about the radius a bead draws at a corner, and halving it would move these outlines by 0.1w at most.

Every candidate below is finished and checked by the font’s own code: thin ink, enclosed holes, fused pieces, the 4.85w thickness limit, the accented letters built from it (ź ż ž), the two-bead stroke rule, and the spacing of the sample words, computed for the new shape. V2, V5 and all five z candidates were also built into complete fonts with build.py and passed its checks. These are geometry checks, not print tests.

  • Ink as drawn
  • Ink added by finishing
  • Current v0.1.1 outline
  • Grid lines every 2w; x-height and baseline in grey. Sample words are shown large and at small text size.

Capitals follow whichever direction is chosen. For reference, the capital Z already gets no fill, because its diagonal is steep (65°); the capital V gets 3.98 w², the most of these four letters. Measurements and sources: candidates.json.

Lowercase v

V0

Current v (v0.1.1)
Current v (v0.1.1): construction view of v on a 2w grid vivid valve vex set with V0

Arms meet in a 1w centreline fillet, so the point is a 2w-radius curve.

Finishing fill
2.17 w²
Max thickness
4.26 w
Ink width
8.00 w
Unfilled stroke (max 2.85)
2.06 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (v)

Glyph source
g["v"] = solve(lambda vy: S((1, 1, B), (4, vy), (7, 1, B)))

V1

Tighter curve, same width
Tighter curve, same width: construction view of v on a 2w grid vivid valve vex set with V1

Fillet 0.7w: the tightest that keeps the unfilled stroke within two beads (2.85w) at today's angle.

Finishing fill
1.86 w² (-14%)
Max thickness
4.13 w
Ink width
8.00 w
Unfilled stroke (max 2.85)
2.75 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (v)

Glyph source
g["v"] = solve(lambda vy: S((1, 1, B), (4, vy, 0.7), (7, 1, B)), lo=5.0)

V2

Cut point, 8w spread
Cut point, 8w spread: construction view of v on a 2w grid vivid valve vex set with V2

A mitred point cut flat on the baseline, 1.0w wide. 8w between arm centres is the narrowest spread where a cut point stays within two beads.

Finishing fill
1.00 w² (-54%)
Max thickness
3.62 w
Ink width
9.00 w
Unfilled stroke (max 2.85)
2.83 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (v)

Glyph source
g["v"] = S((1, 1, B), (4.5, 8.685, 0), (8, 1, B)).intersection(Rect(-5, -5, 20, 10))

V3

Cut point, cut tops
Cut point, cut tops: construction view of v on a 2w grid vivid valve vex set with V3

Cut 1.0w point at an 8.5w spread, with the arm ends cut flat on the x-height like the capitals' diagonals.

Finishing fill
0.89 w² (-59%)
Max thickness
3.55 w
Ink width
10.10 w
Unfilled stroke (max 2.85)
2.79 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (v)

Glyph source
g["v"] = S((1 - 0.4846 * 3, -2), (4.75, 8.739, 0), (8.5 + 0.4846 * 3, -2)).intersection(Rect(-5, 0, 20, 10))

V4

Round point, 8.5w spread
Round point, 8.5w spread: construction view of v on a 2w grid vivid valve vex set with V4

Arms meet in a plain round join (the stroke's own 1w radius). At a narrower spread this join is thicker than two beads.

Finishing fill
1.06 w² (-51%)
Max thickness
3.58 w
Ink width
9.50 w
Unfilled stroke (max 2.85)
2.80 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (v)

Glyph source
g["v"] = solve(lambda vy: S((1, 1, B), (4.75, vy)) | S((4.75, vy), (8.5, 1, B)) | D((4.75, vy)), lo=5.0)

V5

Knife point
Knife point: construction view of v on a 2w grid vivid valve vex set with V5

A true mitred point. It passes only at this width (10w ink, as wide as m); narrower, the tip is thin ink.

Finishing fill
0.85 w² (-61%)
Max thickness
3.40 w
Ink width
10.00 w
Unfilled stroke (max 2.85)
2.73 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (v)

Glyph source
g["v"] = S((1, 1, B), (5, 8.444, 0), (9, 1, B))

Lowercase z

Z0

Current z (v0.1.1)
Current z (v0.1.1): construction view of z on a 2w grid lazy zinc fizz źżž set with Z0

Diagonal at 55°. Corners filleted 0.8w on the centreline (1.8w outside radius).

Finishing fill
1.57 w²
Max thickness
3.38 w
Ink width
7.00 w
Unfilled stroke (max 2.85)
2.26 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (zźżž)

Glyph source
g["z"] = S((0, 1), (6.3, 1, 0.8), (0.7, 9, 0.8), (7, 9))

Z1

Round corners, same lean
Round corners, same lean: construction view of z on a 2w grid lazy zinc fizz źżž set with Z1

Same 55° diagonal. Corners are the stroke's own 1w radius. Sharper corners, but slightly more fill in the notches.

Finishing fill
1.84 w² (+17%)
Max thickness
3.45 w
Ink width
7.60 w
Unfilled stroke (max 2.85)
2.75 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (zźżž)

Glyph source
g["z"] = S((0, 1), (6.3, 1)) | S((6.3, 1), (0.7, 9)) | S((0.7, 9), (7, 9)) | D((6.3, 1)) | D((0.7, 9))

Z2

Mitred corners, 58°
Mitred corners, 58°: construction view of z on a 2w grid lazy zinc fizz źżž set with Z2

Sharp mitred corners. At 55° they fail the thin-ink check; 58° is the first lean that passes.

Finishing fill
1.73 w² (+10%)
Max thickness
3.40 w
Ink width
7.81 w
Unfilled stroke (max 2.85)
2.70 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (zźżž)

Glyph source
g["z"] = S((0, 1), (6.0, 1, 0), (1.0, 9, 0), (7, 9))

Z3

Mitred corners, 61°
Mitred corners, 61°: construction view of z on a 2w grid lazy zinc fizz źżž set with Z3

Steeper diagonal. The notch under each bar falls below the 0.5 w² fill tolerance, so finishing leaves it open.

Finishing fill
0.33 w² (-79%)
Max thickness
2.98 w
Ink width
7.09 w
Unfilled stroke (max 2.85)
2.67 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (zźżž)

Glyph source
g["z"] = S((0, 1), (5.7, 1, 0), (1.3, 9, 0), (7, 9))

Z4

Mitred corners, 65°
Mitred corners, 65°: construction view of z on a 2w grid lazy zinc fizz źżž set with Z4

The capital Z's lean. Corners land inside the bar ends.

Finishing fill
0.29 w² (-82%)
Max thickness
2.91 w
Ink width
7.00 w
Unfilled stroke (max 2.85)
2.62 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (zźżž)

Glyph source
g["z"] = S((0, 1), (5.4, 1, 0), (1.6, 9, 0), (7, 9))

Z5

Square bar ends, 67°
Square bar ends, 67°: construction view of z on a 2w grid lazy zinc fizz źżž set with Z5

Full-width bars with square ends; the diagonal is cut flat on the bars' outer edges, like N.

Finishing fill
0.28 w² (-82%)
Max thickness
2.90 w
Ink width
7.00 w
Unfilled stroke (max 2.85)
2.61 w
Closest pair in sample
2.02 w

Passes the build's glyph checks (zźżž)

Glyph source
g["z"] = S((0, 1), (7, 1)) | S((0, 9), (7, 9)) | diagonal(5.2, 1, 1.8, 9, clip=(0, 10))

13 / CAPITAL V AND Z CANDIDATES

REVIEW RECORD / CV2 + CZ2 IN V0.1.3

A wider V and longer Z bars.

Chosen: CV2 and CZ2, released in v0.1.3. V is 10w wide, as wide as M and W, so Fillaprint Mono uses the same V; Z’s bars run 0.5w past the corner tips. The cards below keep the v0.1.2 shapes as CV0 and CZ0 for comparison.

Four widths for the capital V and four ways to lengthen the capital Z’s bars, with the v0.1.2 shapes (CV0, CZ0) for comparison. The chosen pair went into v0.1.3.

V. The round point stays; only the spread of the arms changes, in half-bead steps from 9w to 11w of ink. A wider V also gets less joint fill, because the angle opens. At 10w (CV2) the V is as wide as M and W, and that is the widest capital the Mono cell holds: with CV3 or CV4, Fillaprint Mono would get its own 10w V (CV2).

Z. Today’s mitred corners stick out 0.6w past the ends of the bars, so the bars stop short of the corner above or below them. CZ1 runs each bar out level with the opposite corner without making the Z any wider. CZ2 runs them 0.5w further. CZ3 and CZ4 also move the corners outwards, which flattens the diagonal (61° and 63°, from 65°). The notch under each bar stays below the fill tolerance, so the corners stay sharp.

Every candidate is finished and checked by the font’s own code (thin ink, holes, fused pieces, the 4.85w thickness limit, Ź Ż Ž built from the new Z, and the spacing of the sample words) and was built into complete fonts with build.py. These are geometry checks, not print tests.

  • Ink as drawn
  • Ink added by finishing
  • Current v0.1.2 outline
  • Grid lines every 2w; cap height and baseline in grey. Sample words are shown large and at small text size.

Measurements and sources: candidates.json.

Capital V

CV0

Current V (v0.1.2)
Current V (v0.1.2): construction view of V on a 2w grid VIVID VAULT Vex set with CV0

Round point, arm centres 1 to 8: 9w of ink, as wide as N and O.

Finishing fill
2.17 w²
Max thickness
4.21 w
Ink width
9.00 w
Unfilled stroke
3.13 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (V)

Glyph source
g["V"] = solve(lambda vy: S((1, -3, B), (4.5, vy)) | S((4.5, vy), (8, -3, B)) | D((4.5, vy)), lo=5.0, hi=20)

CV1

Half a bead wider
Half a bead wider: construction view of V on a 2w grid VIVID VAULT Vex set with CV1

Arm centres 1 to 8.5: 9.5w of ink. The same spread as the lowercase v.

Finishing fill
1.98 w² (-9%)
Max thickness
4.13 w
Ink width
9.50 w
Unfilled stroke
3.10 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (V)

Glyph source
g["V"] = solve(lambda vy: S((1, -3, B), (4.75, vy)) | S((4.75, vy), (8.5, -3, B)) | D((4.75, vy)), lo=5.0, hi=20)

CV2

One bead wider
One bead wider: construction view of V on a 2w grid VIVID VAULT Vex set with CV2

Arm centres 1 to 9: 10w of ink, as wide as M and W, and the widest V the Mono cell holds.

Finishing fill
1.82 w² (-16%)
Max thickness
4.05 w
Ink width
10.00 w
Unfilled stroke
3.05 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (V)

Glyph source
g["V"] = solve(lambda vy: S((1, -3, B), (5.0, vy)) | S((5.0, vy), (9, -3, B)) | D((5.0, vy)), lo=5.0, hi=20)

CV3

One and a half beads wider
One and a half beads wider: construction view of V on a 2w grid VIVID VAULT Vex set with CV3

Arm centres 1 to 9.5: 10.5w of ink. Wider than the Mono cell allows, so Mono would use CV2.

Finishing fill
1.68 w² (-23%)
Max thickness
3.96 w
Ink width
10.50 w
Unfilled stroke
3.00 w
Fits the Mono cell
no (10w max)
Closest pair in sample
2.02 w

Passes the build's glyph checks (V)

Glyph source
g["V"] = solve(lambda vy: S((1, -3, B), (5.25, vy)) | S((5.25, vy), (9.5, -3, B)) | D((5.25, vy)), lo=5.0, hi=20)

CV4

Two beads wider
Two beads wider: construction view of V on a 2w grid VIVID VAULT Vex set with CV4

Arm centres 1 to 10: 11w of ink. Mono would use CV2.

Finishing fill
1.55 w² (-29%)
Max thickness
3.89 w
Ink width
11.00 w
Unfilled stroke
2.96 w
Fits the Mono cell
no (10w max)
Closest pair in sample
2.02 w

Passes the build's glyph checks (V)

Glyph source
g["V"] = solve(lambda vy: S((1, -3, B), (5.5, vy)) | S((5.5, vy), (10, -3, B)) | D((5.5, vy)), lo=5.0, hi=20)

Capital Z

CZ0

Current Z (v0.1.2)
Current Z (v0.1.2): construction view of Z on a 2w grid ZINC HAZE Zulu ŹŻŽ set with CZ0

Mitred corners, 65° diagonal. The corner tips stick out 0.6w past the bar ends.

Finishing fill
0.28 w²
Max thickness
2.90 w
Ink width
8.17 w
Unfilled stroke
2.61 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (ZŹŻŽ)

Glyph source
g["Z"] = S((0, -3), (6.3, -3, 0), (0.7, 9, 0), (7, 9))

CZ1

Bars level with the corners
Bars level with the corners: construction view of Z on a 2w grid ZINC HAZE Zulu ŹŻŽ set with CZ1

Same diagonal and corners; each bar runs 0.6w further, level with the opposite corner tip. The Z is no wider.

Finishing fill
0.28 w² (+0%)
Max thickness
2.90 w
Ink width
8.17 w
Unfilled stroke
2.61 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (ZŹŻŽ)

Glyph source
g["Z"] = S((-0.585, -3), (6.3, -3, 0), (0.7, 9, 0), (7.585, 9))

CZ2

Bars past the corners
Bars past the corners: construction view of Z on a 2w grid ZINC HAZE Zulu ŹŻŽ set with CZ2

Same diagonal; each bar runs 1.1w further, 0.5w past the opposite corner. 1w wider.

Finishing fill
0.28 w² (+0%)
Max thickness
2.90 w
Ink width
9.17 w
Unfilled stroke
2.61 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (ZŹŻŽ)

Glyph source
g["Z"] = S((-1.085, -3), (6.3, -3, 0), (0.7, 9, 0), (8.085, 9))

CZ3

Wider Z, 61° diagonal
Wider Z, 61° diagonal: construction view of Z on a 2w grid ZINC HAZE Zulu ŹŻŽ set with CZ3

Corners move out 0.5w each, to the lowercase z's lean; bars level with the corner tips. 1.1w wider.

Finishing fill
0.33 w² (+18%)
Max thickness
2.98 w
Ink width
9.29 w
Unfilled stroke
2.67 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (ZŹŻŽ)

Glyph source
g["Z"] = S((-1.146, -3), (6.8, -3, 0), (0.2, 9, 0), (8.146, 9))

CZ4

Wider Z, bars past the corners
Wider Z, bars past the corners: construction view of Z on a 2w grid ZINC HAZE Zulu ŹŻŽ set with CZ4

Corners move out 0.25w each (63°); bars run 0.5w past the corner tips. 1.6w wider.

Finishing fill
0.30 w² (+7%)
Max thickness
2.94 w
Ink width
9.73 w
Unfilled stroke
2.65 w
Fits the Mono cell
yes
Closest pair in sample
2.02 w

Passes the build's glyph checks (ZŹŻŽ)

Glyph source
g["Z"] = S((-1.365, -3), (6.55, -3, 0), (0.45, 9, 0), (8.365, 9))