Every asset on this page downloads from the link under it, and the full list is at the end — 113 files. The measurements behind the marks are in SPEC.md; this page is what you need in order to use them.
SPEC.mdHANDOFF.mdSTART-HERE.md
One pose, -12.0° / 132.0° — fork and blade. It is the product at rest, and it never changes. Use the reduced cut below its floor, and the tile where the mark needs its own ground.
Outlined, never retyped. The fork sits in the L's advance — it is already the mark, which is why the two are never set together.
Mark and words on one line, for a header or a footer where neither alone carries far enough.
Ink is the fork, bronze is the blade. Bronze is a material, never an interface state — not hover, not focus, not success or error.
#15181Cthe fork; primary text on light
#E3E6EAthe fork on dark; primary text on dark
#A87A3Cthe blade. Grounds, large display type, rules, chart fills, foil. NEVER an interface state — not hover, focus, success or error
#8D6732bronze where it must carry text on paper: links, body, small labels
#AD7D3Ethe same, reversed on ink. On the RAISED ground it measures 3.98 — there it is the 3:1 large-text class only
#F2F3F5the light page ground
The deep and lift cuts exist because bronze at display weight does not carry small text: those two are measured against their grounds. Every semantic token, with its contrast ratio: cp-tokens.css cp-tokens.json
TeX Gyre Heros, and its condensed cut for everything engraved. All four carry tabular figures, so numeric columns need no mono.
| display | 34/39 | display 400 | -0.012em |
| heading | 21/26 | display 400 | -0.01em |
| body | 16/26 | display 400 | 0 |
| caption | 13.5/21 | display 400 | 0 |
| label | 12/17 | condensed 700 | +0.20em |
texgyreheros-boldtexgyreheros-regulartexgyreheroscn-boldtexgyreheroscn-regular
The swing. One push, then it runs down on its own — the real double pendulum, integrated once and committed as data, because the system is chaotic and two machines do not agree on the trajectory. It plays the same everywhere because it is a recording, not a simulation.
The loop. The mark unfolding, for a header or a hold. Real physics too, and eased nowhere: motion joins at matching velocity or it does not join.
Open the live model →
Drag to orbit. The buttons walk the eight named views — the mark, the cut, the
side, the sketch, exploded with and without labels, and the room — and every
still in this pack is one of them, rendered from it rather than captured.
The drawn views are the same geometry the engineering pack ships, in brand colour rather than shop black.
The engraving, at size. It is outlines — the tracking is cut into the artwork, so re-setting it in a font will not match.
The etched roundel carries the origin sentence, unshortened, and the unit.
Ten. Everything else in this pack is measurement, and a designer is free to make a different call where the context wants one.
fork -12.0°, blade 132.0° — every unit, everywhere. Never rotate a cut to fit a layout, recolour it, or outline it.
One blade width around the mark. One cap height around the logotype.
Mark 48px / 14mm, reduced 32px, tile has its own 24 px cut. Logotype 20px cap. Horizontal 120px wide. Below a floor, use the next cut down — that is what they are for.
Never retype it in a font. The tracking was solved against the cut width, not chosen.
The logotype and the mark are not set together — the fork is already inside the logotype.
Exactly. The blade sits 70–110°, or the word breaks.
MACHINED AND ASSEMBLED IN THE USA — always, unshortened.
MK3 · #0042. Four digits, zero-padded, no №. MK3 SN0042 where the typography is not available.
MK3- and two digits is always a part, never a serial. Parts are P-001 to P-009.
The measured pairings are in the token files, with their contrast ratios. Anything not listed, measure it.
P-nnn · REV x · Vn — the stamp on anything that carries one. V is the release; the whole corpus shares it.
| marks/cp-primary-ink.svgV10 | primary | ink+bronze | 48px / 14mm |
| marks/cp-primary-mono-ink.svgV10 | primary | mono ink | 48px |
| marks/cp-reduced-ink.svgV10 | reduced | ink+bronze | 32px |
| marks/cp-reduced-mono-ink.svgV10 | reduced | mono ink | 32px |
| marks/dark/cp-primary-light.svgV10 | primary | light+bronze | 48px / 14mm |
| marks/dark/cp-primary-mono-light.svgV10 | primary | mono light | 48px |
| marks/dark/cp-primary-mono-bronze.svgV10 | primary | mono bronze | 48px |
| marks/dark/cp-reduced-light.svgV10 | reduced | light+bronze | 32px |
| marks/dark/cp-reduced-mono-light.svgV10 | reduced | mono light | 32px |
| marks/dark/cp-reduced-mono-bronze.svgV10 | reduced | mono bronze | 32px |
| wordmark/cp-wordmark.svg | full | ink+bronze | 20px cap |
| wordmark/cp-wordmark-stacked.svg | stacked | ink+bronze | 20px cap |
| wordmark/cp-wordmark-mono-ink.svg | full | mono ink | 20px cap |
| wordmark/cp-wordmark-small.svg | small | ink+bronze | |
| wordmark/cp-wordmark-short.svg | short | ink+bronze | 20px cap |
| wordmark/cp-wordmark-short-stacked.svg | short-stacked | ink+bronze | 20px cap |
| wordmark/dark/cp-wordmark-light.svg | full | light+bronze | 20px cap |
| wordmark/dark/cp-wordmark-stacked-light.svg | stacked | light+bronze | 20px cap |
| wordmark/dark/cp-wordmark-mono-light.svg | full | mono light | 20px cap |
| wordmark/dark/cp-wordmark-small-light.svg | small | light+bronze | |
| wordmark/dark/cp-wordmark-short-light.svg | short | light+bronze | 20px cap |
| wordmark/dark/cp-wordmark-short-stacked-light.svg | short-stacked | light+bronze | 20px cap |
| horizontal/cp-horizontal-ink.svg | fold-0 | ink+bronze | 120px wide |
| horizontal/cp-horizontal-mono-ink.svg | fold-0 | mono ink | 120px wide |
| horizontal/dark/cp-horizontal-light.svg | fold-0 | light+bronze | 120px wide |
| horizontal/dark/cp-horizontal-mono-light.svg | fold-0 | mono light | 120px wide |
| horizontal/dark/cp-horizontal-mono-bronze.svg | fold-0 | mono bronze | 120px wide |
| tile/cp-tile-ink.svg | default | light+bronze on #15181C | |
| tile/cp-tile-ink-24px.svg | 24px cut | light+bronze on #15181C | |
| tile/cp-tile-raised.svg | raised | light+bronze on #242A32 | |
| tile/cp-tile-raised-24px.svg | raised 24px | light+bronze on #242A32 | |
| tile/cp-tile-light.svg | light | ink+bronze on #F2F3F5 | |
| tile/cp-tile-light-24px.svg | light 24px | ink+bronze on #F2F3F5 | |
| tile/cp-tile-bronze.svg | bronze | ink on #A87A3C | |
| tile/cp-tile-bronze-24px.svg | bronze 24px | ink on #A87A3C |
| web/favicon.svg | favicon | tile ink | |
| web/favicon-16.png | favicon | tile ink small-size cut | 16px |
| web/favicon-32.png | favicon | tile ink small-size cut | 32px |
| web/favicon-48.png | favicon | tile ink | 48px |
| web/apple-touch-icon-180.png | apple touch | tile ink | 180px |
| web/maskable-192.png | maskable | tile ink, mark in 80% safe zone | 192px |
| web/maskable-512.png | maskable | tile ink, mark in 80% safe zone | 512px |
| web/og-1200x630.png | Open Graph | logotype on paper | |
| web/og-square-1200.png | square card | tile |
| stamp/cp-stamp-ink.svg | roundel | ink+bronze | 26mm |
| stamp/cp-stamp-light.svg | roundel | light+bronze | 26mm |
| stamp/cp-etch-roundel.svg | with url | mono ink | d32mm |
| stamp/cp-etch-roundel-nourl.svg | circle only | mono ink | d32mm |
| stamp/cp-etch-roundel-dimensioned.svg | dimensioned | mono ink + oxide dims | |
| stamp/dark/cp-etch-roundel-light.svg | with url | mono light | d32mm |
| url/cp-url.svg | standalone | ink + muted .COM | |
| url/cp-url-light.svg | standalone | light + muted .COM |
| plate/cp-plate-artwork.svgV1 | 4-line | ink on metal | 1:1 mm |
| plate/cp-plate-engraving.svgV10 | ART-01 engraving, as cut | ink on metal | |
| plate/cp-plate-artwork-3line.svgV1 | 3-line | ink on metal | 1:1 mm |
| plate/cp-plate-centred.svgV1 | centred | ink on metal | 1:1 mm |
| plate/cp-plate-dimensioned.svgV1 | dimensioned | + oxide dims | |
| plate/cp-plate-3line-dimensioned.svgV1 | 3-line dimensioned | + oxide dims | |
| plate/cp-plate-in-context.svgV10 | in context, block | ghosted | |
| plate/cp-plate-in-context-stamp.svgV10 | in context, stamp | ghosted |
| motion/cp-unfold.svg | unfold | ink+bronze | |
| motion/cp-unfold-light.svg | unfold | light+bronze | |
| motion/cp-loop.svg | seamless loop | ink+bronze | |
| motion/cp-loop-light.svg | seamless loop | light+bronze | |
| motion/cp-loop-calm.svg | calm loop | ink+bronze | |
| motion/cp-loop-calm-light.svg | calm loop | light+bronze | |
| motion/cp-cycle.svg | baked live cycle | ink+bronze | |
| motion/cp-cycle-light.svg | baked live cycle | light+bronze | |
| motion/cp-trace.svg | trace strip | ink+bronze+verdigris | |
| motion/cp-live.js | live cycle | configurable | |
| motion/cp-scroll.js | scroll rail | configurable | |
| motion/cp-unfold-frames.svg | filmstrip | ink | |
| motion/cp-unfold-frames-light.svg | filmstrip | light | |
| motion/cp-loop-frames.svg | filmstrip | ink | |
| motion/cp-loop-frames-light.svg | filmstrip | light |
| model/mk3-hero.htmlV11 | interactive 3D | photoreal + flat mark | |
| model/hero-stills/mk3-hero.png | still — hero | photoreal | |
| model/hero-stills/mk3-three-quarter.png | still — 3/4 | photoreal | |
| model/hero-stills/mk3-front-mark.png | still — the mark | flat brand | |
| model/hero-stills/mk3-side-elevation.png | still — side elevation | photoreal | |
| model/hero-stills/mk3-hero-arm-low.png | still — arm low | photoreal | |
| model/hero-stills/mk3-arm-drop-v2.png | still — arm drop (V2 angle) | photoreal | |
| model/hero-stills/mk3-arm-cross.png | still — arm cross | photoreal | |
| model/hero-stills/mk3-arm-swing.png | still — arm swing | photoreal | |
| model/room-stills/mk3-room-unit.png | room still — unit alone | photoreal | |
| model/room-stills/mk3-room-full.png | room still — full room | photoreal + flat vector room | |
| model/room-stills/mk3-room-full-dark.png | room still — full room, dark | dark theme |