print-bench

Perspective Coin

John Cena carries a watch engraved on two sides: "comparison is the thief of joy" on the back (for when he doesn't feel enough) and "memento mori" on the other (for when his head gets too big) — "a keeper of perspective, not time" (as he tells it in an interview clip shared on Reddit). This design turns those two engravings into a two-sided pocket coin, plus a print-in-place flipper charm: the coin captured in a keyring gimbal so you physically flip it to the reminder you need. Tier reference: docs/advanced-techniques.md Domain 3 (print-in-place kinematics).

Overview

Product shot

Hero Detail 1 / 8

Product shot

A two-sided pocket coin of the two engravings John Cena keeps on his watch (as he tells it in an interview clip shared on Reddit) — "COMPARISON IS THE THIEF OF JOY" around a radiant sun on one face, for the days you don't feel like enough, and "MEMENTO MORI" around an hourglass on the other, for the days your head gets too big. Print the bare coin for your pocket, or the flipper: a print-in-place keyring gimbal that holds the coin on two tiny axles, so you flip it — literally — to the reminder you need. A keeper of perspective, not time.

What you get

  • flipper (default) — the coin captured in a keyring ring, printed as one piece: ~Ø54 × 6 mm plus the loop. No assembly; flip it firmly once to free the pivot.
  • coin — the bare two-sided coin, Ø40 × 5 mm, reeded edge, chamfered rims.
  • perspective-coin-coupon — a 24 mm pivot-tuning flipper. Print this first.
Face AFace B
JOY faceMEMENTO face

How the mechanism prints

The coin carries two diamond-section stub axles (45° cross-section — its own overhang self-supports) that ride in teardrop sockets inside the ring, so the socket roof never bridges. A 1.2 mm moat separates coin from ring everywhere else; the only printed fusion is the thin axle/socket annulus, and the first firm flip shears it. The engraved faces are in coin-flip alignment about the pivot, so the back face reads upright after a flip.

  • Material: any rigid filament — PLA is the reference; gold silk PLA if you want it to look the part. The fit is tuned on PLA; PETG usually runs a touch tighter, so a PETG flipper tends to want pivot_clear at the 0.40 coupon-ladder ceiling (see the coupon note below).
  • Layer height: 0.2 mm. Use a height that divides 0.6 (0.12 / 0.15 / 0.2 / 0.3) — the engravings are exactly three 0.2 mm layers, and a draft 0.24 / 0.28 profile quantizes their depth off that grid.
  • Plate: a smooth plate shows the bed-side (MEMENTO) legend best — it is the first layer, and a textured sheet stipples it. Textured still prints legibly, just softer.
  • Ironing: on for the top surface — it smooths the JOY legend field (a big win on silk/metallic PLA). If the finest text (IS THE) fills in, set the ironing type to Topmost surface only (or off): the default "Top surfaces" also irons the engraved floors and can soften the ~0.55 mm stems.
  • Seam: the default "nearest" stacks the ring seam in the tab junction and leaves a visible scar. Scarf (on Bambu) is the cleanest fix — on a clean Ø54 cylinder a scarf seam is near-invisible wherever it lands. To hide it behind the loop with a Rear/Back seam instead, rotate the part 180° on the plate first (loop toward the back): the loop is modeled at the front, so a Rear seam without that rotation lands the scar on the bare arc opposite it.
  • Infill: 15–25 % (it's a coin — top it up to 100 % if you want the heft)
  • Supports: none needed — teardrop sockets, 45° axles, top-side counterbore
  • Orientation: as modeled, flat on the bed; the flipper prints in place
  • Print order: the coupon first — tune the fit for your printer (see the coupon note below), then print the real thing

Two-color faces (optional, any single-extruder printer)

The engraving is 0.6 mm deep on each face, so a plain filament swap gives both legends a contrasting color with no model change. The layer numbers below assume the reference 0.2 mm layer height — the swap heights are what matter, so pause by Z height, not by layer index:

  1. Load your field color. Print to z = 0.6 mm (layer 3 at 0.2 mm), then swap to the legend color — the MEMENTO face's engraved voids fill with it.
  2. Print to z = 4.4 mm (coin_t − engrave_depth; layer 22 at 0.2 mm), swap back to the field color.
  3. The remaining engraving (the COMPARISON face's void floors) stays the legend color. Two manual swaps, both faces two-tone.

Both swap heights are multiples of 0.2 mm, so at 0.2 mm they fall exactly on layer boundaries. z = 0.6 also divides 0.12 / 0.15 / 0.3 mm cleanly, but z = 4.4 does not (e.g. 4.4 / 0.15 = 29.3) — at any non-0.2 mm height, round the second swap to the nearest layer boundary at or above 4.4 mm. Scale both heights if you change engrave_depth or coin_t.

Parameters

ParameterDefaultWhat it does
coin_d40 mmCoin diameter (legend artwork is tuned to 40)
coin_t5 mmCoin thickness; the pivot axis sits at half of it
pivot_clear0.35 mmRadial fit: axle-to-socket clearance (across-axis rattle) — tune on the coupon
socket_end_clear0.4 mmAxial fit: end-play along the pivot (along-axis rattle) — tune on the coupon
rim_gap1.2 mmMoat between coin edge and ring bore
loop_thick3 mmWrap thickness at the keyring hole (counterbored so a split ring threads easily)
axle_r1.5 mmAxle diamond vertex radius
reed_n64Reeded-edge groove count (0 = smooth edge)
engravetrueFace engravings on/off
looptrueKeyring loop on the ring

All parameters are at the top of perspective-coin.scad, grouped in Customizer sections; override on the command line with -D 'coin_d=45'.

Assembly & use

None to assemble. When the flipper comes off the bed the coin is lightly fused to its sockets — hold the ring and flip the coin firmly once; after that it swings freely. Ego inflating? Flip to the hourglass. Comparing yourself into the ground? Flip to the sun: you are enough. The two engraved diamonds at 3 and 9 o'clock mark the pivot so you always know where to push.

The coin has no detent — whichever face is up when you pull your keys out is whatever the last jostle left. That is on purpose: the coin picks your reminder, and half the time it picks the one you weren't looking for.

Threading it onto a keyring: the loop is counterbored to a ~3 mm wrap at the hole, so a standard split ring is meant to climb over just that ~3 mm, not the full ring. (The counterbore is new in v0.2 and not yet field-threaded.) If the pivot is stiff or sloppy, reprint the coupon: raise pivot_clear if it won't break free, lower pivot_clear for across-axis wobble, lower socket_end_clear for along-axis end-play — then carry the value into the full-size print. The same two knobs fix wear: if the pivot goes loose after months of carry, lower pivot_clear / socket_end_clear and reprint.

Workbench

View in 3D

Inspect the real geometry — drag to rotate, scroll to zoom. The model is rendered from this design's own source at its default settings, right in your browser; nothing is uploaded.

Make it fit

This design has 26 tunable parameters. Change them and render your own STL — OpenSCAD runs in your browser, so nothing is uploaded and nothing is installed.

An STL you configure here is ungated. The files this project ships have each passed a printability check and a PrusaSlicer test-slice; your variant has not. Treat it as a starting point, and print the fit coupon first if the design has one.

History

History of work together

  1. 2026-08-29 commit · git

    render.sh: emit the --render form the installed OpenSCAD build accepts (fixes the render camera opt) (#408)

    Shai Perednik shai
  2. 2026-08-29 commit · git

    Fix teardrop_hole() point orientation to +Z as documented; pin it with a mates manifest (#424)

    Shai Perednik shai
  3. 2026-08-22 commit · git

    perspective-coin: reviewer doc fixes (PM-triaged Jane/Drik round) (#341)

    Shai Perednik shai
  4. 2026-08-21 commit · git

    perspective-coin v0.2 + design-iteration lineage + bridge-aware printcheck scoring (#328)

    Shai Perednik shai
  5. 2026-08-20 version · NOTES.md

    v0.2.1 — legend legibility + off-the-rim margin

    Shai Perednik shai
  6. 2026-08-20 version · NOTES.md

    v0.2 — field-driven refinement

    Shai Perednik shai
  7. 2026-08-19 field test · NOTES.md

    Field test — Prusa-style textured PEI (orange PLA)

  8. 2026-08-19 field test · NOTES.md

    Field test — smooth plate, multi-color (translucent + cream PLA)

  9. 2026-08-19 commit · git

    Add design: perspective-coin — two-sided Cena "keeper of perspective" coin + print-in-place flipper (#321)

    Shai Perednik shai
  10. 2026-08-18 version · NOTES.md

    v0.1 — first shipped version

    Shai Perednik shai