Skip to content

"D" Mark — Clean-Geometry Redraw — Work Plan

Objective

Replace the current "D" mark master vector and its exports with a redraw that has geometrically correct edges: the pixelation squares are true axis-aligned squares (straight sides), and the "D" glyph's curved sections are true circular arcs that terminate in straight line segments, rather than the wobbly bezier approximations produced by GIMP's plug-in-sel2path autotrace.

Scope

  • Rebuilding brand/company/source/d-mark.svg (the currentColor master) using hand-authored, mathematically exact path geometry: <rect>-equivalent straight-sided squares, and a "D" glyph path built from true circular arcs (A commands) joined to straight line segments (L commands) at the point where the source mockup's stem nub / flat cap meets the curve.
  • Deriving the arc/square parameters from the Founder-supplied source image (C:\Users\Stuart\Downloads\ChatGPT Image Jul 16, 2026, 07_57_41 AM.png) via pixel analysis (connected-component bounding boxes for the squares; least-squares circle fit for the outer and inner curve boundaries), not by re-running GIMP's autotrace (which is what produced the wobble being fixed here).
  • Regenerating all files currently in brand/company/exports/ (d-mark-{navy,white}.svg, d-mark-{navy,white}-{256,1024}.png, d-mark-square-badge-navy-256.png) from the new master.
  • Updating brand/company/exports/d-mark-crop-reference.png and provenance notes in docs/company/brand-assets.md to reflect the new method (hand-fit geometry, not plug-in-sel2path), and noting d-mark-traced-raw.svg as superseded/no-longer-representative of the current method.
  • Using GIMP 3.2 (batch/Script-Fu, non-interactive) for the raster rasterization/export steps (PNG generation at required sizes, badge composition), consistent with the repo's established GIMP-based production workflow.

Out of scope

  • Any change to the mark's overall design (proportions, which squares exist, D's general silhouette) — this is a precision/quality fix to existing approved-pending geometry, not a redesign.
  • Founder approval — this remains a candidate; docs/company/brand-assets.md already records that nothing here is approved yet, and this task does not change that.
  • The wordmark lockup (still open per docs/company/brand-assets.md).
  • Re-deriving the navy color (#0D1B2A stays canonical per prior reconciliation).

Applicable authority

Files expected to change

  • brand/company/source/d-mark.svg (rewritten geometry).
  • brand/company/exports/d-mark-navy.svg, d-mark-white.svg (regenerated).
  • brand/company/exports/d-mark-navy-{256,1024}.png, d-mark-white-{256,1024}.png (regenerated).
  • brand/company/exports/d-mark-square-badge-navy-256.png (regenerated).
  • brand/company/exports/d-mark-crop-reference.png (replaced with new source crop reference).
  • docs/company/brand-assets.md (provenance note updated to describe the new method).

Assumptions

  • The Founder's new reference image (ChatGPT Image Jul 16, 2026, 07_57_41 AM.png, 1254×1254, white-on-navy) supersedes the old crop as the shape reference, since it was supplied specifically for this redraw.
  • Pixel-fit outer/inner arc centers and radii are close enough between the two circles' vertical centers (614.7 vs 615.0) that a single shared vertical center is an acceptable, cleaner simplification; horizontal centers differ intentionally (different radii, same stem line) and are kept distinct.
  • "Straight lines" at the ends of the curved section means: the flat stem-nub edges (top and bottom, where the letterform's vertical stem remnant is still solid before dissolving into squares) must be true vertical straight lines, and the short cap segment connecting the inner arc's start/end to that stem nub must be a true straight line — not that the D should be redesigned as a closed ring.

Risks

  • Hand-fit geometry is an approximation of the source raster (anti-aliasing/threshold noise means no fit is pixel-perfect); mitigated by fitting with least-squares circle fit (outer arc mean error ~1.2px, inner arc mean error ~0.5px on a 1254px canvas) and rounding to clean numbers only after confirming visual fidelity against the source crop.
  • Regenerating downstream exports risks drifting from siteinfra/assets/logo.png / favicon.png, which were derived from the old master — those are out of scope for this task but will visibly diverge from the new master until a follow-up regenerates them; noted here so it isn't silently forgotten.

Validation plan

  • Visual side-by-side comparison (rendered PNG) of the new mark against the Founder's reference image before finalizing.
  • python scripts/check.py after doc updates.
  • No unittest discover tests impact expected (asset-only change).

Progress checklist

  • [x] Analyze source image geometry (square bounding boxes, outer/inner arc circle fits).
  • [x] Hand-author new d-mark.svg master with exact rects and arc+line path.
  • [x] Regenerate navy/white SVG and PNG exports (GIMP batch, via scripts/gimp_render_svg.py).
  • [x] Regenerate square badge favicon-style export (via scripts/gimp_compose_badge.py).
  • [x] Visual comparison against reference; confirmed straight square sides, straight cap ends, true circular curve.
  • [x] Update docs/company/brand-assets.md provenance section.
  • [x] Run python scripts/check.py; passed (after fixing an unrelated document_id collision this new file introduced). Also ran python -m unittest discover tests: 38 passed.
  • [x] Second pass (same day, Founder feedback): the circular-arc curve above produced a visible bulge/kink where the straight stem-nub met the arc off-tangent. Rebuilt the "D" glyph's curved band as a flat horizontal shoulder (~30% of outer width) handing off to a tangent-matched cubic-Bezier quarter-curve (kappa≈0.5523), mirrored top/bottom, uniform ~138px band thickness, per the construction the Founder worked out. Re-rendered and visually confirmed the kink is gone at both 1024px and 256px. Re-ran python scripts/check.py and python -m unittest discover tests after the doc updates below — see Handoff notes.

Decisions required

  • None — this stays within "candidate, not approved" status per existing governance; no status fields are being changed to approved.

Handoff notes

Complete, across two passes in one day. First pass replaced the GIMP autotrace with true <rect> squares and a true-circular-arc "D" band; the Founder flagged a visible bulge/kink in that curve. Second pass replaced the circular arc with a tangent-continuous flat-shoulder + cubic-Bezier construction (see Method in docs/company/brand-assets.md), which is what's now live in brand/company/source/d-mark.svg and all six brand/company/exports/ files (navy/white SVG, navy/white PNG ×2 sizes, square badge). d-mark-crop-reference.png was replaced with the new source crop in the first pass and did not need to change again in the second (same bounding box). Status remains candidate, not approved — nothing here was marked approved.

Not done (flagged, out of scope per this plan): siteinfra/assets/logo.png and favicon.png still reflect the previous master's geometry. If/when someone wants those to match the new mark, regenerate them with scripts/gimp_render_svg.py / scripts/gimp_compose_badge.py the same way they were originally produced (see docs/company/brand-assets.md's 2026-07-11 entry).

2026-07-17 addendum — logo.png/favicon.png regenerated

The "D" mark was approved 2026-07-16 (see docs/company/brand-assets.md); this addendum closes the "not done" item above.

  • favicon.png: regenerated via scripts/gimp_compose_badge.py --mark-svg brand/company/exports/d-mark-white.svg --canvas 256 256 --bg-color "#0D1B2A" --mark-size 161 131 --offset 54 60 — reusing the exact padding/position from the 2026-07-11 version, now against the approved geometry.
  • logo.png: rendered d-mark-white.svg at high resolution via gimp_render_svg.py, autocropped to its ink bounding box (PIL Image.getbbox() on alpha), padded ~8% per side (matching the previous file's ~7-10% margins, measured from the file being replaced), then scaled to 512px height — 612×512 final, transparent background.
  • Verified both in a real build: python siteinfra/build_site.py, served the output (devonshire-digital-site/) via python -m http.server, and viewed the homepage in a Chrome tab — the header logo renders as a crisp solid white mark on the navy header.
  • python scripts/check.py: passing.
  • Approved by the Founder, 2026-07-17 (same day, after review) — see docs/company/ brand-assets.md's asset register for the formal record.

This plan can now be archived to work/archive/ — the "D" mark, its exports, and both deployed siteinfra/ derivatives are all regenerated from the same current geometry; nothing further is scoped to this plan.


Report an issue about this page