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.

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.
What should remain continuous?
Choose the transition before the rendering method. These operations can be combined, but they preserve different things.
| Move | Use | What it means |
|---|---|---|
| Harmonic components | HarmonicMorph | Pair sorted components. Interpolate frequency ratios or log frequency, follow the shortest phase arc, and fade unmatched components. |
| Component richness | extension/amount | Keep the base chord and grow its harmonic or subharmonic extension. Repeated frequencies are consolidated. |
| Mode coordinates | HarmonicModes | Map two chords first, then interpolate the plate mode coordinates. Integer endpoints have fractional visual intermediates. |
| Field values | GeometryBlend | Crossfade scalar fields on a common physical grid, or register different domains as images. Masks become coverage. |
| Curve positions | GeometryBlend | Resample curves by arc length. Lift 2D into z=0. Optionally center and scale both endpoints. |
| Mesh vertices | GeometryBlend | Interpolate vertices only when triangle indices and counts match. Intersections remain possible. |
| Pictures | GeometryView → Composite | Use for unrelated graphs, curve sets, and topologies. This needs no invented vertex correspondence. |
| Material history | HarmonicTransport → HarmonicFlow | Generate 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.
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.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Balance the harmonic states. This slider stays active during automatic motion; the endpoints select either state. |
| CycleSeconds | Seconds 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. |
| form | Compare lateral, rotary, and 3D harmonographs. Compound closes over a frequency-dependent horizon and can change when its smallest component changes. |
| damping | Adjust this aspect while keeping the other controls fixed. |
| phase | Adjust this aspect while keeping the other controls fixed. |
| stretch | Adjust this aspect while keeping the other controls fixed. |
| yaw | Adjust this aspect while keeping the other controls fixed. |
Plate mode walk
Let recorded EEG reshape a plate pattern. Biotuner extracts harmonic peaks; short smoothing makes the visual transition fluid.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Balance the harmonic states. This slider stays active during automatic motion; the endpoints select either state. |
| CycleSeconds | Seconds 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. |
| Channel | Channel in the prerecorded EEG. Try O1, O2, or Pz. |
| EEGDepth | Strength of the EEG modulation. Set 0 to compare the picture without that motion. |
| Response | EEG 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. |
| approach | 0 draws plate modes. 1 draws open waves from the harmonic frame. |
| detail | Maximum mode number. Raise it for finer plate patterns; lower it for broad shapes. |
| lineWidth | Changes the visible zero-displacement band, without changing the field. |
| symmetry | Moves between a cosine product and an antisymmetric swapped-axis form. |
Between media
Move between standing plate patterns and open waves. Recorded EEG changes the tuning, phase, and wave spacing while you choose the balance.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Standing plate patterns at 0, open interference waves at 1. Try both ends, then blend them. |
| CycleSeconds | Seconds 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. |
| Channel | Channel in the prerecorded EEG. Try O1, O2, or Pz. |
| EEGDepth | Strength of the EEG modulation. Set 0 to compare the picture without that motion. |
| Response | EEG 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. |
| period | Spacing of the open waves. Smaller values pack more detail into the picture. |
| style | Compare fine nodal lines, signed waves, and contours. |
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.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Balance the harmonic states. This slider stays active during automatic motion; the endpoints select either state. |
| CycleSeconds | Seconds 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. |
| Channel | Channel in the prerecorded EEG. Try O1, O2, or Pz. |
| EEGDepth | Strength of the EEG modulation. Set 0 to compare the picture without that motion. |
| Response | EEG 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. |
| period | Scale of the currents. Compare wide swirls with fine eddies. |
| affinity | Positive collects sand near nodes; negative moves it toward antinodes. |
| temperature | Spread of the sand. Low values make tighter structures. |
| flowMix | Curl (0) circulates around the field; gradient (1) moves across it. |
| rate | Ink motion speed. Try 0.05–0.2 for a slow drift or 1–2 for active currents. Zero freezes the flow. |
| travel | Distance travelled per frame. Raise it for more visible flow. |
| memory | How long the previous ink pattern influences the motion. |
| injection | Fresh grain added to the ink. A little keeps detail alive during long runs. |
| inkStyle | Contours reveal small movements in the ink; magnitude gives a softer wash. |
| reset | Turn on to reseed the ink, then off to let it flow. |
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.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Balance the harmonic states. This slider stays active during automatic motion; the endpoints select either state. |
| CycleSeconds | Seconds 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. |
| yaw | Turn the camera around the knot in Custom view. |
| radius | Thickness of both knot tubes. Thin tubes make the crossings easier to follow. |
| view | Choose perspective, front, lateral, or top. Custom uses the yaw and pitch controls. |
| pitch | Tilt the camera in Custom view. |
| zoom | Zoom in to see crossings or out to see the whole knot. |
| perspective | Set depth perspective. Zero gives a flat projection; try it with Top or Lateral. |
| chordA | Ratios for the first knot and chord. Keep three low-order ratios to retain a clear shape. |
| chordB | Ratios for the second knot and chord. Mix follows the same endpoints for shape and sound. |
| extension | Extra harmonics in the sound; leaves the endpoint meshes unchanged. |
| level | Level of the shared sound voices. Connect Mixdown.out to AudioOut to listen. |
| transpose | Sound transposition in octaves. |
| tone | Choose sine, triangle, or sawtooth oscillators. |
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.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Balance the harmonic states. This slider stays active during automatic motion; the endpoints select either state. |
| CycleSeconds | Seconds 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. |
| form | Choose chord or interval graphs, tuning points, times tables, seeded IFS, subharmonic trees, recursive polygons, or pitch lattices. |
| color | Choose a color mapping for the geometry. |
| depth | Recursion depth for IFS, trees, and recursive polygons. Higher values add branches. |
| order | Polygon sides and structural order for methods that use them. This does not affect every form. |
| zoom | Frame the whole garden or inspect its center. |
| lineWidth | Thickness of graph edges and curves. |
| pointSize | Size of graph vertices and point clouds. |
| rhythmMode | Normal uses each interval; full also includes its inverse. |
| rhythmDetail | Maximum denominator used to approximate intervals. Higher values make longer patterns. |
| tempo | Playback speed in beats per minute. One grid step per beat. |
| playRhythms | Pause the playhead while inspecting the colored onset lanes. |
Jade resonance
Give an EEG-driven harmonic field a carved material surface. Explore depth, symmetry, and the blend of two textures.

| auto | Add motion around the mix you choose. |
|---|---|
| mix | Balance the harmonic states. This slider stays active during automatic motion; the endpoints select either state. |
| CycleSeconds | Seconds 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. |
| Channel | Channel in the prerecorded EEG. Try O1, O2, or Pz. |
| EEGDepth | Strength of the EEG modulation. Set 0 to compare the picture without that motion. |
| Response | EEG 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. |
| textureA | First surface material. Compare jade, silk, and stone. |
| textureB | Second surface material. Blend it into the first with textureMix. |
| textureMix | Blend the two materials. Either endpoint holds one material; auto adds motion around an intermediate blend. |
| goldSeam | Adjust this aspect while keeping the other controls fixed. |
| patina | Adjust this aspect while keeping the other controls fixed. |
| relief | Adjust this aspect while keeping the other controls fixed. |
| symmetry | Adjust this aspect while keeping the other controls fixed. |
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.

| running | Adjust this aspect while keeping the other controls fixed. |
|---|---|
| stepSeconds | Seconds per ratio step (0.5–60). Try 15–30 with Glide near 1 for long, flowing transitions. |
| glide | Adjust this aspect while keeping the other controls fixed. |
| textureA | Adjust this aspect while keeping the other controls fixed. |
| textureB | Adjust this aspect while keeping the other controls fixed. |
| textureMix | Balance the two surface materials. Either end keeps one material; the middle adds a gentle blend. |
| bandWidth | Adjust this aspect while keeping the other controls fixed. |
| density | Adjust this aspect while keeping the other controls fixed. |
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.
compound
lateral
rotary
trace 3d
closed 2d
closed 3d
pairwise
rose
epicycloid
hypocycloid
tuning circle
times table
interval graph
chord graph
consonance polygon
stern brocot
continued fraction
farey
subharmonic tree
ifs
lsystem
recursive polygon
pitch lattice
tube
knot
torus
sphere
cylinder
point cloud
tree 3d
polyhedron
plate
pairwise plate
symmetric plate
triple plate
circular plate
elastic
harmonic field
quasicrystal
wave lattice
vortex
sources
acoustic
faraday
spherical field
spherical meshA 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.
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.
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.
- Read the full survey and implementation plan.
- Pinned Biotuner source tree.
- Upstream geometry data schema.
- Upstream metrics and transitions tutorial.
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.