- Master
- 1230 × 1230 px, square, sRGB
- Crop
- Eyes at 38% from the top. Crown to chin fills 58–62% of the frame height.
- Safe area
- Inner 88% of the width. Keep your head inside it in both shapes: the circle loses the corners entirely, and the square border covers the outer 6.3% on every side.
- Tone curve
- CIE L* from linear luminance, S-curve at k = 0.6, then gamma 0.80. The gamma is the midtone lift; skin lives in the midtones.
- Dither
- 8×8 ordered Bayer threshold at a 2 px cell, applied to the background only. Two tones there:
#1a2418 and #ece5d3. The person stays in continuous tone between the same two.
- Separation
- MediaPipe Selfie Segmentation, run as WebAssembly in this tab. The boundary is feathered by 3 px so the edge reads as a photograph rather than a cut-out. The model weights are fetched from a CDN; the photograph is not.
- Light shaping
- Vignette 6% at r2.4, then a centre brightening of 10% at (1−r)1.6.
- Frame
- 78 px stroke — 6.3% of the master — in
#3b5320, drawn inside the edge. Leaves 87% of the width to the photograph. The square keeps sharp outer corners and rounds its opening by 168 px, so the border thickens into each corner rather than meeting at a point.
- Shapes
- Two, from one render. Circle for surfaces that crop to a circle — LinkedIn, X, Google Workspace. Square for surfaces that do not — Slack, Notion, Linear. Slack applies its own corner radius, so the square reads as a rounded square there.
- Ground
- The corners behind the circle are
#faf6ea, seen only where a surface does not crop to a circle. The square variant has no ground — the photograph reaches the border.
- Export
- 1230 px PNG master and 400 px JPEG for upload, in each shape. X recompresses hard — keep uploads under 2 MB.
- Naming
muro-profile-picture-circle-400.jpg, muro-profile-picture-square-400.jpg. Add your surname before uploading if you are filing them.