Harmonograph Posters From Damped Motion
A motion-to-paper study of harmonograph curves, from frequency and phase contact sheets through adaptive sampling, page hierarchy, and dense-knot ink tests.
Harmonograph posters turn decaying oscillation into a line that remembers time: broad loops enter, close ratios beat against one another, and friction draws the gesture inward. The visual richness comes from measured motion, not from decorating an arbitrary curve with an antique name.
This field note moves from historical apparatus and explicit equations to ratio contact sheets, adaptive vector sampling, page composition, and a plotted dense-knot proof. Every edition remains reproducible while leaving room for art direction and material surprise.
- Input or source
- Measured transformation
- Release evidence
Harmonograph posters begin with damped motion
A harmonograph traces the coupled motion of pendulums whose oscillations gradually decay. The recognizable image is not merely a Lissajous curve with extra loops; damping gives the line a temporal direction, tightening amplitude until the gesture settles. Harmonograph posters can turn that physical logic into graphic hierarchy when frequency, phase, decay, sampling, and page crop remain independently adjustable.
The Archive.org record for H. C. Ashton's The Harmonograph documents the digitized edition and its bibliographic provenance.
Use it to locate the historical treatment of orthogonal or rotary motions, pendulum ratios, phase, friction, and a pen recording their combination. Do not imply that a browser equation reproduces bearing play, table vibration, paper drag, or a specific antique machine.
Write the parametric source before styling: x(t)=Ax sin(fx t+φx)e^(-dx t) and a corresponding y sum. A damped harmonic motion receipt records every amplitude, frequency, phase, decay rate, duration, and sample interval. The runnable proof checks the origin and decay envelope; production tests also bound coordinates, step length, curvature, and termination.
Tune ratios as compositional intervals
Integer and near-integer frequency ratios produce different visual tempos. A 2:3 pair makes a stable lobe rhythm; 2:3.01 creates a slow beat that rotates or braids the figure before damping closes it. Compare ratios with all other parameters fixed. Tiny changes can relocate dense crossings, so archive full precision rather than rounding the poster label to a decorative fraction.
Build a pendulum frequency ratio contact sheet with the same amplitude, phase, decay, duration, and crop. Include exact rational, slightly detuned, and intentionally asymmetric cases. Label them with numeric values and a small neutral line preview. The sheet is not the final composition; it reveals which structural family can carry typography and negative space at the intended size.
Lissajous letterforms explore undamped periodic relationships as glyph material. Harmonograph posters add disappearance and accumulated density, which makes the start and end of the path meaningful. Preserve one low-decay control so reviewers can see what damping contributes instead of attributing every flourish to the frequency ratio.
Runnable artifact: The fixture samples a damped two-axis oscillator and proves finite motion inside its decreasing amplitude envelope.
Save this proof as harmonograph-sampler.test.mjs and run node harmonograph-sampler.test.mjs. Expected final line: PASS: damped motion closes.
import assert from "node:assert/strict";
const point=(t,p)=>({x:p.ax*Math.sin(p.fx*t+p.px)*Math.exp(-p.dx*t),y:p.ay*Math.sin(p.fy*t+p.py)*Math.exp(-p.dy*t)});
const p={ax:100,ay:80,fx:2,fy:3,px:0,py:0,dx:.02,dy:.03};
assert.deepEqual(point(0,p),{x:0,y:0}); const a=point(5,p),b=point(50,p);
assert.ok(Math.abs(b.x)<100*Math.exp(-1)); assert.ok(Math.abs(b.y)<80*Math.exp(-1.5));
assert.ok(Number.isFinite(a.x+a.y)); console.log("PASS: damped motion closes");
Let phase decide the entrance gesture
Phase determines where each pendulum is when recording begins. Starting at two maxima creates a corner-like launch; placing one component a quarter cycle away opens a loop; offsetting a second oscillator can split symmetry. Treat the first several seconds as an entrance gesture rather than cropping it blindly. Mark the first point, direction, and first five percent of time in diagnostic output.
The phase portrait drawing should expose time with a restrained color ramp or periodic ticks, then return to one-color line for the poster proof. If the neutral line loses all hierarchy, color was doing too much. A good edition can use phase to leave an intentional quiet pocket for title and date while the dense late crossings build a counterweight elsewhere.
Use paired variants: same ratios and damping, four phase combinations. Count self-intersections approximately, measure occupied area by quadrants, and locate the longest low-curvature span. Metrics do not choose the winner, but they reveal whether a seemingly fresh composition is only a translated version or materially changes density and directional reading. Retain the same time window across the comparison, since an extra thirty seconds can add an entire interior braid and falsely suggest that phase produced the density.
Sample by geometric error, not clock habit
Uniform time steps oversample slow late motion and may undersample fast early turns. Adaptive subdivision can compare the curve midpoint with the chord midpoint, then split until deviation falls below a physical tolerance. Keep maximum time step and recursion limits so a pathological parameter set cannot explode. Report resulting vertices and worst estimated chord error at target output size.
The SVG 2 paths specification defines path data and curve commands used for portable output. Serialize stable decimal precision, avoid accidental relative-command drift, and preserve one source polyline for verification before optional Bézier fitting. A smoother path is not automatically more faithful if it bridges tight turns or shifts crossings.
At A2 size, a 0.08 mm chord tolerance may yield 18,000 points, while 0.25 mm yields 6,200 with no visible screen difference. Proof both on paper and under magnification. Harmonograph posters should select tolerance from line width, plotter mechanics, and viewing distance, not from a browser's ability to display a huge SVG. Log the first segment that exceeds tolerance and its time coordinate, because fast early motion and dense late crossings fail for different reasons and need different sampling limits.
| Preset | fx:fy | Phase | Vertices | Character |
|---|---|---|---|---|
| Orbit | 2:3 | 0°, 90° | 7,840 | open center |
| Beat | 2:3.01 | 0°, 90° | 12,480 | rotating braid |
| Fold | 3:4 | 45°, 0° | 9,220 | dense diagonal |
Compose a page around density and silence
Calculate a density field by accumulating path length into coarse cells. Use it to find the visual center, high-crossing knots, and quiet regions. Then place the curve, title, parameter receipt, and edition mark as one page. Do not automatically center the bounding box; the mass can be strongly off-center even when extrema are symmetric.
A poster family can use three roles: Orbit with generous margin and one balanced figure, Trace with a cropped passage enlarged to reveal line behavior, and Index with several small parameter specimens. Each role should preserve the same line semantics and labeling system. Guilloché SVG patterns offer a useful comparison: layered rosettes build controlled tonal fields, while a harmonograph records one decaying temporal path.
Typography should not imitate the curve. Use stable type, a compact numerical block, and alignment derived from the page rather than tangencies to every lobe. Test at thumbnail, reading distance, and one-to-one print.
The composition succeeds when the line owns motion and the type owns orientation, rather than both competing to be expressive. Include the parameter block on at least one public version; hiding the numbers turns a specific mechanical translation back into unexplained ornament.
Translate the path through a real plotter
The AxiDraw Python API documentation describes plotting controls and software interfaces for a widely used pen plotter. Whether using that machine or another, normalize units, page origin, travel bounds, pen-up height, speed, acceleration, and layer order. A path inside the SVG viewBox can still exceed the physical machine after scaling or page offsets.
A pen plotter curve needs path simplification tied to millimeters, a maximum segment count, and a plan for intersections. One continuous harmonograph line minimizes lifts, but dense crossings accumulate ink and can score soft paper. Run a small crop containing the densest knot, the fastest curvature, and the faint final tail. Record pen, ink, paper, speed, drying time, and observed spread.
Bézier plotter art with curvature control covers fitting and physical tolerance in detail. Here the priority is preserving temporal order and decay. If splitting the path helps drying, retain sequence IDs and overlap rules. Never reorder segments purely for travel optimization if the output uses opacity, pressure, or line accumulation to express time.
- 1Specify
Record oscillators, ratio, phase, damping, and duration.
- 2Sample
Bound chord error and retain temporal order.
- 3Compose
Use density and quiet regions to place page hierarchy.
- 4Proof
Plot the worst knot and final tail on the chosen stock.
Build accessible stills and parameter controls
The primary experience is a complete still, not an endless animation. Describe lobe count, overall orientation, dense regions, quiet opening, and the way amplitude contracts over time. A semantic parameter table gives exact values without forcing screen readers through thousands of path commands. Decorative time ticks can be hidden when the caption already conveys their meaning.
If controls are interactive, group frequency, phase, decay, and output separately; provide numeric inputs with valid ranges and meaningful presets. Re-render on commit or at a bounded cadence, and respect reduced motion by disabling animated drawing. Seeded randomness for generative art can govern any jitter or palette variation, but the core mathematical path should remain reproducible from explicit parameters alone.
Export the neutral line, final artwork, text alternative, parameter JSON, and a raster fallback. Test narrow screens for overflow and ensure zoom does not clip labels. The line may be visually intricate, but the interface around it should remain calm. Complexity belongs to the recorded motion, not to inaccessible controls or an undocumented autoplay loop.
Publish an edition receipt with material evidence
The edition receipt includes historical reference, equation form, oscillator count, amplitudes, frequencies, phases, decay, duration, termination rule, sampler, tolerance, vertex count, bounds, density summary, crop, line width, palette, typography, SVG version, plotter configuration, paper, ink, proof scan, accessibility text, and file hashes. Harmonograph posters become repeatable editions without pretending that repetition eliminates authorship.
Reject output with clipped extrema, aliasing at early turns, excessive coordinates, illegible parameter type, plotter chatter, pooled ink, or a tail that disappears unintentionally. Include a plain black-line control and the rejected nearby ratio. Those comparisons show which decisions belong to motion, which to page composition, and which to physical production.
The strongest image often comes from restraint: two frequencies nearly agree, one phase opens the center, damping leaves a quiet margin, and a single line carries the entire event. The receipt does not domesticate that surprise. It makes the surprise traceable to measured motion and lets a future edition change one premise at a time.
Archive a photograph of the whole sheet beside a macro of the densest crossing and a raking-light view of the final tail. Together they show composition, ink accumulation, and the point where computation becomes an object.
Harmonograph posters become editions when their parameters, sampling, crop, and plotted proof travel together. Judge harmonograph posters at paper scale, where crossings, ink load, and the decaying tail can contradict the screen preview.