PATCHWORK COOKBOOK / 09 SEPTEMBER 2026

Harmonic geometry,
many ways to move.

A chord can be a line, a surface, a standing wave, a field of grains, a color family, or a sound. These patches keep the harmonic source shared and give each medium its own controls.

8PLAYABLE PATCHES
46GEOMETRY METHODS
15NODES & SHADERS
Biotuner harmonic torus rendered by goofi

Continuous tuningPhase & component growthField & mesh transitionsShared color & sound

Start with one patch.

Enable EEG, Biotuner, and Harmonic Geometry. Open a patch and use its Explore tab: the graph, image viewers, and controls are together. Press F over the graph to fit the nodes.

Mix chooses the harmonic state; auto adds motion around it. CycleSeconds sets the pace. In recipe 03, mix blends plate patterns with open waves. EEGDepth controls the strength of alpha modulation; Response smooths it over a short interval. Try 0.25 seconds first.

THE CENTRAL CHOICE

What should remain continuous?

Choose the transition before the rendering method. These operations can be combined, but they preserve different things.

MoveUseWhat it means
Harmonic componentsHarmonicMorphPair sorted components. Interpolate frequency ratios or log frequency, follow the shortest phase arc, and fade unmatched components.
Component richnessextension/amountKeep the base chord and grow its harmonic or subharmonic extension. Repeated frequencies are consolidated.
Mode coordinatesHarmonicModesMap two chords first, then interpolate the plate mode coordinates. Integer endpoints have fractional visual intermediates.
Field valuesGeometryBlendCrossfade scalar fields on a common physical grid, or register different domains as images. Masks become coverage.
Curve positionsGeometryBlendResample curves by arc length. Lift 2D into z=0. Optionally center and scale both endpoints.
Mesh verticesGeometryBlendInterpolate vertices only when triangle indices and counts match. Intersections remain possible.
PicturesGeometryView → CompositeUse for unrelated graphs, curve sets, and topologies. This needs no invented vertex correspondence.
Material historyHarmonicTransport → HarmonicFlowGenerate a flow from the field, then integrate an explicit GPU ink state. Freeze and reset are independent controls.

Closed rational periods, mode indices, graph membership, and rhythm lengths are discrete. Tiny tuning changes can change them sharply. A fixed-duration trace is the useful starting point for smooth frequency motion; fixed endpoint geometries are the useful starting point for structural motion.

RECIPE 01

Breathing lines

Start with auto on. Major and minor harmonic structures move through a fixed exposure. Turn auto off, then move mix slowly. Change phase while mix stays still: the tuning is unchanged, but the drawing turns inside itself.

Rendered output of Breathing lines
Output from the patch's image viewer.
HarmonicMorph → HarmonicGeometry → GeometryView · HarmonicMorph → HarmonicLissajous
autoAdd motion around the mix you choose.
mixBalance the harmonic states. This slider stays active during automatic motion; the endpoints select either state.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
formCompare lateral, rotary, and 3D harmonographs. Compound closes over a frequency-dependent horizon and can change when its smallest component changes.
dampingAdjust this aspect while keeping the other controls fixed.
phaseAdjust this aspect while keeping the other controls fixed.
stretchAdjust this aspect while keeping the other controls fixed.
yawAdjust this aspect while keeping the other controls fixed.
Download patch Cookbook guide →
RECIPE 02

Plate mode walk

Let recorded EEG reshape a plate pattern. Biotuner extracts harmonic peaks; short smoothing makes the visual transition fluid.

Rendered output of Plate mode walk
Output from the patch's image viewer.
EegPlayback → Select → Buffer → Peaks → Tuning → HarmonicMorph → HarmonicModes → Smooth → HarmonicChladni → HarmonicInk
autoAdd motion around the mix you choose.
mixBalance the harmonic states. This slider stays active during automatic motion; the endpoints select either state.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
ChannelChannel in the prerecorded EEG. Try O1, O2, or Pz.
EEGDepthStrength of the EEG modulation. Set 0 to compare the picture without that motion.
ResponseEEG smoothing window in seconds (0.05–20). Try 0.25 for a quick response or 3–8 for gentler changes. Longer windows soften movement and add delay; allow the window to fill.
approach0 draws plate modes. 1 draws open waves from the harmonic frame.
detailMaximum mode number. Raise it for finer plate patterns; lower it for broad shapes.
lineWidthChanges the visible zero-displacement band, without changing the field.
symmetryMoves between a cosine product and an antisymmetric swapped-axis form.
Download patch Cookbook guide →
RECIPE 03

Between media

Move between standing plate patterns and open waves. Recorded EEG changes the tuning, phase, and wave spacing while you choose the balance.

Rendered output of Between media
Output from the patch's image viewer.
EegPlayback → Select → Buffer → Peaks → Tuning → HarmonicMorph → HarmonicModes → Smooth → HarmonicChladni → HarmonicInk
autoAdd motion around the mix you choose.
mixStanding plate patterns at 0, open interference waves at 1. Try both ends, then blend them.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
ChannelChannel in the prerecorded EEG. Try O1, O2, or Pz.
EEGDepthStrength of the EEG modulation. Set 0 to compare the picture without that motion.
ResponseEEG smoothing window in seconds (0.05–20). Try 0.25 for a quick response or 3–8 for gentler changes. Longer windows soften movement and add delay; allow the window to fill.
periodSpacing of the open waves. Smaller values pack more detail into the picture.
styleCompare fine nodal lines, signed waves, and contours.
Download patch Cookbook guide →
RECIPE 04

Sand and memory

Watch recorded EEG reshape a field of sand and carry persistent ink through it. Compare the instantaneous field with the memory left by motion.

Rendered output of Sand and memory
Output from the patch's image viewer.
EegPlayback → Select → Buffer → Peaks → Tuning → HarmonicMorph → Smooth → HarmonicGeometry → HarmonicTransport → HarmonicFlow → HarmonicInk
autoAdd motion around the mix you choose.
mixBalance the harmonic states. This slider stays active during automatic motion; the endpoints select either state.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
ChannelChannel in the prerecorded EEG. Try O1, O2, or Pz.
EEGDepthStrength of the EEG modulation. Set 0 to compare the picture without that motion.
ResponseEEG smoothing window in seconds (0.05–20). Try 0.25 for a quick response or 3–8 for gentler changes. Longer windows soften movement and add delay; allow the window to fill.
periodScale of the currents. Compare wide swirls with fine eddies.
affinityPositive collects sand near nodes; negative moves it toward antinodes.
temperatureSpread of the sand. Low values make tighter structures.
flowMixCurl (0) circulates around the field; gradient (1) moves across it.
rateInk motion speed. Try 0.05–0.2 for a slow drift or 1–2 for active currents. Zero freezes the flow.
travelDistance travelled per frame. Raise it for more visible flow.
memoryHow long the previous ink pattern influences the motion.
injectionFresh grain added to the ink. A little keeps detail alive during long runs.
inkStyleContours reveal small movements in the ink; magnitude gives a softer wash.
resetTurn on to reseed the ink, then off to let it flow.
Download patch Cookbook guide →
RECIPE 05

Knot to knot

Two rational harmonic knots are built at the same sample count and tube-side count. GeometryBlend moves each vertex to its partner. The triangle list stays fixed. This avoids remapping knot winding numbers on every intermediate tuning.

Rendered output of Knot to knot
Output from the patch's image viewer.
Two HarmonicGeometry meshes → GeometryBlend → GeometryView · same chord endpoints → HarmonicVoices → Osc → Gain → Mixdown
autoAdd motion around the mix you choose.
mixBalance the harmonic states. This slider stays active during automatic motion; the endpoints select either state.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
yawTurn the camera around the knot in Custom view.
radiusThickness of both knot tubes. Thin tubes make the crossings easier to follow.
viewChoose perspective, front, lateral, or top. Custom uses the yaw and pitch controls.
pitchTilt the camera in Custom view.
zoomZoom in to see crossings or out to see the whole knot.
perspectiveSet depth perspective. Zero gives a flat projection; try it with Top or Lateral.
chordARatios for the first knot and chord. Keep three low-order ratios to retain a clear shape.
chordBRatios for the second knot and chord. Mix follows the same endpoints for shape and sound.
extensionExtra harmonics in the sound; leaves the endpoint meshes unchanged.
levelLevel of the shared sound voices. Connect Mixdown.out to AudioOut to listen.
transposeSound transposition in octaves.
toneChoose sine, triangle, or sawtooth oscillators.
Download patch Cookbook guide →
RECIPE 06

Interval garden

Two seven-degree tunings drive a family of interval and recursive drawings. The same scale feeds BioColors and EuclidRhythm. Change form while holding the chord still to compare how each method uses the intervals.

Rendered output of Interval garden
Output from the patch's image viewer.
HarmonicMorph → HarmonicGeometry → GeometryView · EuclidRhythm → RhythmPlayer → RhythmView
autoAdd motion around the mix you choose.
mixBalance the harmonic states. This slider stays active during automatic motion; the endpoints select either state.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
formChoose chord or interval graphs, tuning points, times tables, seeded IFS, subharmonic trees, recursive polygons, or pitch lattices.
colorChoose a color mapping for the geometry.
depthRecursion depth for IFS, trees, and recursive polygons. Higher values add branches.
orderPolygon sides and structural order for methods that use them. This does not affect every form.
zoomFrame the whole garden or inspect its center.
lineWidthThickness of graph edges and curves.
pointSizeSize of graph vertices and point clouds.
rhythmModeNormal uses each interval; full also includes its inverse.
rhythmDetailMaximum denominator used to approximate intervals. Higher values make longer patterns.
tempoPlayback speed in beats per minute. One grid step per beat.
playRhythmsPause the playhead while inspecting the colored onset lanes.
Download patch Cookbook guide →
RECIPE 09

Jade resonance

Give an EEG-driven harmonic field a carved material surface. Explore depth, symmetry, and the blend of two textures.

Rendered output of Jade resonance
Output from the patch's image viewer.
EegPlayback → Select → Buffer → Peaks → Tuning → HarmonicMorph → HarmonicModes → Smooth → HarmonicChladni → HarmonicRelief
autoAdd motion around the mix you choose.
mixBalance the harmonic states. This slider stays active during automatic motion; the endpoints select either state.
CycleSecondsSeconds per automatic motion cycle (2–120). Try 8 for lively motion or 45–90 for a slow drift. This does not slow the EEG itself.
ChannelChannel in the prerecorded EEG. Try O1, O2, or Pz.
EEGDepthStrength of the EEG modulation. Set 0 to compare the picture without that motion.
ResponseEEG smoothing window in seconds (0.05–20). Try 0.25 for a quick response or 3–8 for gentler changes. Longer windows soften movement and add delay; allow the window to fill.
textureAFirst surface material. Compare jade, silk, and stone.
textureBSecond surface material. Blend it into the first with textureMix.
textureMixBlend the two materials. Either endpoint holds one material; auto adds motion around an intermediate blend.
goldSeamAdjust this aspect while keeping the other controls fixed.
patinaAdjust this aspect while keeping the other controls fixed.
reliefAdjust this aspect while keeping the other controls fixed.
symmetryAdjust this aspect while keeping the other controls fixed.
Download patch Cookbook guide →
RECIPE 10

Living ratios

Each ratio replaces one voice in an anchor chord. HarmonicModes uses Biotuner chord_to_int_modes and the pairwise builder to map the complete endpoint chords. Fixed mode frequencies keep the plate still while their weights blend. The field node then applies exp(-w²/σ²) and the notebook’s D4 maximum over density. Both endpoints and the blend travel together. The default takes four seconds per transition. Texture motion starts off; nodalLines shows the same density without surface detail.

Rendered output of Living ratios
Output from the patch's image viewer.
RatioSequence → HarmonicMorph + HarmonicModes → HarmonicChladni → HarmonicRelief
runningAdjust this aspect while keeping the other controls fixed.
stepSecondsSeconds per ratio step (0.5–60). Try 15–30 with Glide near 1 for long, flowing transitions.
glideAdjust this aspect while keeping the other controls fixed.
textureAAdjust this aspect while keeping the other controls fixed.
textureBAdjust this aspect while keeping the other controls fixed.
textureMixBalance the two surface materials. Either end keeps one material; the middle adds a gentle blend.
bandWidthAdjust this aspect while keeping the other controls fixed.
densityAdjust this aspect while keeping the other controls fixed.
Download patch Cookbook guide →
SPECIMEN COLLECTION

One frame, 46 forms.

These images come from the public-session method sweep. Click a specimen to inspect the full dashboard. The same default harmonic frame feeds each method. The atlas is a comparison of approaches, not a claim that every default chord makes an equally rich form.

NODE REFERENCE

A small set of roles.

RatioSequence
Signal · biotuner
One [2,N] endpoint ratio ARRAY with eased mix, step, phase and voice metadata. Both HarmonicMorph and HarmonicModes read the same coherent transition.
HarmonicMorph
Signal · biotuner
One [4,N] harmonic ARRAY: ratio, amplitude, phase and damping. Use Select for individual rows or active columns. Shared by CPU geometry, shaders and sound.
HarmonicGeometry
Signal · harmonic-geometry
46 Biotuner geometry methods. One indexed ARRAY stores coordinates, connectivity, grids and masks once. Metadata identifies the method and parameters.
HarmonicModes
Signal · harmonic-geometry
Map harmonic frames to per-ratio or whole-chord pairs. Output [4,32], or [4,64] for fixed endpoint field blends. The mapping readout reports ratios and pairs; coherent transition packets are supported.
HarmonicTransport
Signal · harmonic-geometry
A scalar geometry field becomes equilibrium density, sampled particles, tracer flow, or streaming. Field grids and circular masks survive the transfer.
GeometryBlend
Signal · harmonic-geometry
Two indexed geometry arrays and optional mix. Blends matched scalar fields, resampled curves or meshes with identical faces into one geometry ARRAY.
GeometryMetrics
Signal · harmonic-geometry
One labeled measurement ARRAY. Undefined measurements remain NaN.
GeometryRender
Graphics · harmonic-geometry
GPU rendering directly from the indexed geometry ARRAY. Fixed view, transparent background, antialiased lines and matte or wireframe meshes. No upload node.
GeometryView
Signal · harmonic-geometry
One rendered image. display/layout selects a labeled dashboard or transparent image. Supports BioColors palettes. Raw fields stay in the geometry ARRAY.
HarmonicVoices
Signal · biotuner
Pitch and gain columns for native oscillator voices. Retains measured weights and silent slots. No duplicate frequency output.
HarmonicLissajous
Graphics · harmonic-geometry
GPU projection of three selected components over a fixed exposure. Sampling, phase, damping, and camera determine the trace.
HarmonicChladni
Graphics · harmonic-geometry
GPU signed displacement or nodal/antinodal density from packed modes. D4 maximum or average applies after the density transform. Approach blends plate modes toward directional waves.
HarmonicInk
Graphics · harmonic-geometry
Signed field or prepared density to nodal lines, magnitude, displacement colors, or contours. Reads BioColors.rgb directly. Retains coverage alpha.
HarmonicRelief
Graphics · harmonic-geometry
Signed field or prepared nodal density to twelve organic and material textures. Grains, cells, and colonies follow the field with restrained highlights. Morph height detail, density, color, and light response independently of ratio motion.
HarmonicFlow
Graphics · harmonic-geometry
Persistent seeded ink. Flow advection, state-derived feedback, diffusion, and optional injection. Rate 0 freezes state exactly.

The bundle README gives array shapes, metadata, geometry connectivity, and wire contracts. Nodes use the shared goofi interfaces; a patch can be edited through the UI, CLI, or MCP with the same operations.

WORKING PRACTICE

Keep the experiment readable.

Choose one row and one meaning for amplitudes.

For channel × peak arrays, select a row in HarmonicMorph. NaN padding is removed together with its amplitude and phase. Peaks are converted to ratios against the smallest valid peak. Tuning inputs already contain ratios. Written lists accept fractions such as 7/4 and decimals such as 1.41421356.

Peaks.amps uses dB power; select db_power. HarmonicSpectrum.peakValues contains harmonicity scores; use linear when you intentionally want those scores as weights. Tuning creates pairwise degrees: its output is not aligned to the original peak amplitudes. Do not connect those arrays as if they were.

Separate motion from observation.

Phase changes the source cycles. A camera rotates the view. A field style changes color. These should not be treated as the same operation. Use a fixed camera extent and fixed field range when comparing amplitude changes; automatic fitting can make a quiet frame look large again. Many Biotuner generators normalize component amplitudes: their size is relative structure, not calibrated signal power. Use a separate image opacity or audio gain to fade the whole output.

Know where continuity ends.

The morph pairs components by sorted rank. It does not track peak identity or smooth detector jitter over time. Silent components remain in the shared frame so fixed slots can fade; discrete graph and structure methods omit them. Unequal component counts can therefore change graph topology even while continuous traces fade smoothly.

The pinned pairwise and triple plate wrappers use uniform pair weights. They do not directly express peak-amplitude weighting. Use the per-ratio plate, open fields, or an explicit blend of whole fields when amplitude weighting is central to the experiment.

Use a live preview budget.

The studies start with compact 384 × 384 image views. Increase one resolution at a time while watching the update rate.

Capture and extend.

Use goofi's recorder for geometry arrays, metrics, or final images. Keep the indexed geometry ARRAY when you need vertices, edges, faces, or a physical field grid. Record the image when you need the final appearance. A geometry frame is data, so another node can export it or use its measurements to control a new medium.

To combine these recipes, keep one HarmonicMorph as the source and connect its single harmonic output to several destinations. Keep the geometry method, mode transition, field blend, camera, and material controls independent. For a stable performance, store two endpoint tunings and automate the blend between them.

SURVEY & DECISIONS

Built from the source.

The survey uses Biotuner revision f45570e674d8193c7780891b9053a39bf6168c1e, the same revision pinned by goofi's existing Biotuner bundle. It covers the descriptor, curve, circular, fractal, 3D, eigenmode, wave, parametric, transport, morphogenetic, transition, and metric modules.

Some upstream methods run long fresh simulations inside each response. Crystallization, reaction-diffusion, and plasma equilibrium were surveyed but were not put on a real-time frame path. The new Flow shader owns its evolving state. Polygon eigenproblems, volume extraction, and the remaining extension families remain possible future additions; this bundle does not claim to wrap every upstream API.

Verification uses real public node sessions, CPU/GPU plate comparison, masks, changing peak rows, silence and recovery, shader state, archive loading, control bindings, and native audio on test clocks. The final verification record is in VERIFICATION.md. Browser screenshots document the layouts on this checkout.