Skip to content

Treat the flowing mode as a whole-plane holomorphic field with canonical local directions #33

Description

@isomorphisms

The flowing-background mode should be shaped by the mathematics first and by the GPU second.

The backend-independent contract is docs/holomorphic-mathematical-contract.md on main.

Whole-plane invariant

Use the ordinary meromorphic base picture

f_t(z) = R(z) exp(q_t(z))

where R carries the explicit zeros/poles and q_t is entire.

Randomness may choose a path through nearby states, but every displayed state must remain meromorphic on the ordinary complex plane with only the explicit controlled poles supplied by R.

The goal is not to parameterize all entire functions with one finite coefficient vector. A finite basis is an implementation coordinate system only.

Canonical local direction

The flowing field does not need an invented global visible-change energy in order to have a canonical local perturbation direction.

Choose:

  1. an admissible Hilbert space of entire perturbations;
  2. a local continuous linear datum to prescribe, such as value/phase change at an anchor or a derivative constraint;
  3. a gauge that prevents a trivial global phase/modulus change from masquerading as local motion.

Then the Riesz/reproducing representer of that local datum gives the unique minimum-norm holomorphic direction after normalization.

For a value constraint phi(a) = 1 in a reproducing-kernel Hilbert space with kernel K,

phi_a(z) = K(z,a) / K(a,a)

is the canonical least-norm direction.

For derivative constraints, use the corresponding normalized derivative/Riesz representer rather than inventing a visual objective.

This is the mathematical sense of least holomorphic disturbance.

Historical Bergman kernel and why it is not the final whole-plane answer

The old local-holomorphic-perturbations branch used the unit-disc Bergman extremal

phi_a(z) = (1 - |a|^2)^2 / (1 - conjugate(a) z)^2

and perturbations such as

f_new(z) = f(z) exp(i alpha phi_a(z)).

That was mathematically correct on the containing disc and exactly demonstrated the canonical-direction construction. It also explains the old three-workers-plus-coordinator design: workers could choose anchors and construct legitimate local descriptors while a coordinator managed publication/timing.

But the Bergman-disc kernel has a pole outside the unit disc when a != 0. Exponentiating it produces an essential singularity there. Therefore it cannot directly define the whole-plane semantics of the current explorer.

Do not reintroduce that hidden singularity merely because the historical local experiment was useful.

Whole-plane reproducing-kernel candidate

A whole-plane canonical direction should come from a Hilbert space of entire functions.

One natural candidate is a Bargmann-Fock space with explicit length scale s, whose reproducing kernel is, up to normalization convention,

K_s(z,a) = exp(z conjugate(a) / s^2).

The value-normalized extremal is

phi_a(z) = exp((z conjugate(a) - |a|^2) / s^2),

which is entire and satisfies phi_a(a) = 1.

This is a mathematically clean candidate, not yet an aesthetic decree. The exact entire function space, gauge, scale s, anchor distribution, amplitude, overlap, and lifetime should be evaluated visually by the user before GPU tuning freezes them into implementation constants.

If the chosen gauge removes the constant mode, use the corresponding gauge-fixed subspace or derivative constraint rather than silently restoring a global hue/modulus motion.

Analytic sensitivities

For any admissible perturbation delta q,

delta log|H(z)| = Re(delta q(z))
delta phase(H(z)) = Im(delta q(z)).

These exact quantities are what the renderer ultimately needs.

Do not substitute raw RGB finite differences or GLSL dFdx / dFdy for complex derivatives or holomorphy.

Randomness and the old worker count

Randomness may choose:

  • anchor points;
  • value/phase/derivative-oriented local data;
  • sign or phase;
  • amplitude within an accepted bound;
  • persistence and overlap.

Randomness does not choose whether a direction is holomorphic. The admitted entire function space and its canonical representer provide that.

The old three-worker design was an implementation fit for a roughly four-thread phone, with one thread/coordinator acting as coach/watch/cockswain. It is not a mathematical requirement. x86-64, ARM followers, and GPU backends may schedule the same descriptors differently.

The current 128-candidate coefficient search remains a working CPU approximation and experimentation harness. It should not be mistaken for the canonical direction theorem.

GPU-wide field architecture

The target data flow is

choose local datum/anchor
-> canonical entire minimum-norm representer
-> choose amplitude/timing
-> validate any explicit numerical/amplitude bounds
-> publish compact safe descriptor
-> whole fragment grid evaluates q_t(z)
-> Re(q), Im(q) modify phase/log modulus
-> canonical Wegert rendering

Several independent descriptors may overlap. Their sum remains entire when each descriptor is entire.

A fragment shader does not need to perform a global reduction to define the direction. If a Gram/quadratic screen reduction is useful later for diagnostics, normalization, or a measured visual experiment, keep it optional and clearly separate from the canonical local-direction construction.

Acceptance before backend optimization

  • the chosen perturbation space consists of entire functions;
  • the canonical representer satisfies its stated local value/derivative constraint;
  • its minimum-norm property is tested against the chosen Hilbert-space definition;
  • the gauge is explicit;
  • divisor preservation follows from exp(q) and is tested;
  • multiple descriptors sum to another entire q;
  • amplitude/safe-extent bounds are named for what they actually bound;
  • host/reference evaluation of Re(q) / Im(q) exists before GPU-specific approximations;
  • the user can visually compare choices of scale, anchor distribution, amplitude, overlap, and persistence without those choices being mislabeled as mathematical necessity.

The user-facing idea remains the same Wegert meromorphic zero/pole playground, except the holomorphic freedom between those explicit features is alive.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions