LIBRARY
Library · 5. Models and Tools · mark ACGM

The ambigram tool

Claim

A parametric wordmark generator in which “nuna” is built from arcs and holds its reading when turned upside down.

Construction

The tool draws the wordmark as four lobes alternating above and below a baseline, each an arc of its own radius, with handles and tails added at the ends. A 2D pane shows the arc path; a 3D pane shows the same centreline extruded, as a tube or as a ribbon.

The ambigram is the organising constraint rather than an effect applied afterwards. With it on, the four radii take a mirrored pattern that holds 180° symmetry; with it off they split top against bottom. A strict-twin switch locks the two handles and the two tails together so the symmetry cannot be broken by accident, and a ghost overlay draws the 180°-rotated copy in red at low opacity to check it by eye.

The umlaut is the nuna motif itself: a circle and a four-arc diamond, with their own size, gap, offset and rotation controls.

What it does

Exactness is enforced in the path writer rather than assumed. Any span is subdivided into pieces of 90° or less and emitted as arc commands, so the curve is arcs all the way down. The bounding box is sampled and then unioned with its own 180° rotation, which is what keeps the mark centred as an ambigram rather than as a drawing that happens to be symmetrical.

Export is clipboard-first: a JSON dump of every parameter, an SVG of the 2D mark, and an SVG of the 3D view projected through the current orbit, depth-sorted. The two SVG routes also attempt a file download; the parameter dump goes to the clipboard alone, falling back to a modal textarea when the clipboard is blocked.

There is no stored state, no URL parameters and no version history inside the file; the undo stack is a hundred steps deep and dies with the page. The 3D half needs the three.js CDN and says so plainly when it is missing, while the 2D half works offline.

One defect found while reading it

The 3D SVG export reads three properties off the umlaut spots that the function producing them does not define. The 3D preview uses the correct names and is fine; the export path does not, so the umlaut circle and star come out undefined in the exported file and will corrupt its viewBox.

It is a one-line class of fix, and it is recorded here because an export that silently produces a broken file is worse than one that refuses.

Note

Fourteen versions to the wordmark, by the index's count. This page can carry which of them mattered.

Open questions

  • The file is marked v19 in three places while the index records fourteen versions. Neither number has a file behind it, and the discrepancy is unresolved.
  • The 3D SVG export defect above is unfixed.
  • The index also lists a separate ribbon-wordmark entry whose junction is resolved as a fold. This file is not that: its ribbon is a 3D cross-section, and its handle is a swirl terminal with no fold parameter. The two entries are different objects and only this one has a file.

Checks

WhatHowSource
Arcs, not curvesEvery span subdivided to ≤ 90° and emitted as arc commandsnuna-logo-tool.html
Ambigram enforcedMirrored radius pattern, strict-twin lock, 180° ghost overlay, bounds unioned with their own rotationnuna-logo-tool.html
Umlaut is the motifA circle plus a four-arc diamond, parameterisednuna-logo-tool.html
ExportsParameters as JSON to the clipboard; 2D and 3D SVG to clipboard with a download attemptednuna-logo-tool.html
3D export defectThree undefined properties read in the export path; preview unaffectednuna-logo-tool.html
External dependencythree.js r128 from a CDN, with a graceful failure messagenuna-logo-tool.html