@uuon-foundation/riemann-dipole-engine
v1.2.1
Published
Complex field geometry engine — 8 families, 6 height modes, bipolar parameters. Canvas 2D. Zero dependencies.
Maintainers
Readme
UUON-RDE-001
Riemann Dipole Engine
The first member of the UUON Complex Field Geometry Engine family.
Eight field families. Six height modes. Bipolar parameter space. Animated. Interactive. Zero dependencies.
Ω(z) = q₁·log(z + a) − q₂·log(z − a)A complex potential field, its imaginary part lifted into three-dimensional space. The surface you see is not decorative — it is the equation made geometric.
▶ LIVE ENGINE · UUON Δmension · Foundation

What This Is
UUON-RDE-001 is not a Riemann surface renderer. It is a Complex Field → Scalar Extraction → Geometric Lift pipeline. The Riemann dipole is its default field preset — the first of eight.
You give it a complex analytic function. It evaluates that function across a polar grid, extracts a scalar quantity from the result (stream function, velocity potential, modulus, phase, or derivative quantities), lifts that scalar as height into three-dimensional space, solves iso-contour rings by binary search at 52 iterations per sample, and projects the result onto a Canvas 2D surface with painter's algorithm depth sort.
Every parameter is live. Every equation is exact. Nothing is approximated or decorative.
What Was Built Here
This engine represents a class of mathematical object — the complex Riemann surface — made physically interactive and grounded to known physics:
- Potential flow theory (Milne-Thomson 1968) — the stream function ψ and velocity potential φ are the real physical quantities underlying irrotational, incompressible 2D flow. The surface you are looking at is what every fluid mechanics textbook describes but never shows this way.
- Conformal mapping (Needham 1997, Ahlfors 1979) — the Joukowski transform literally generates airfoil geometry from a circle. The Möbius transform preserves circles and angles. These are not decorative — they are the foundations of aerodynamics, electrostatics, and complex analysis.
- Multipole field theory — the same superposition of logarithmic singularities used in electrostatics, magnetostatics, and gravitational potential theory.
- Branch cut structure (NIST DLMF §4.2) — the branch angle parameter α rotates the Riemann cut, exposing the multi-sheet topology that makes the complex logarithm fundamentally different from its real counterpart.
The engine does not simulate. It computes — exactly, deterministically, with full provenance.
Quick Start
No install. No build. No server.
git clone https://github.com/UUON-Foundation/riemann-dipole-engine.git
cd riemann-dipole-engine
open src/UUON-RDE-001.htmlOr drag src/UUON-RDE-001.html into any modern browser.
That is all.
Rendering Pipeline
INPUT: Complex function Ω(z), parameter state P
│
▼
FIELD EVALUATION
evalField(zre, zim, P)
├── Complex arithmetic: log, exp, pow, sin, div
├── Branch cut rotation: log_α(z) = log(z·e^{−iα})
└── Analytical derivative Ω′(z) per family
│
▼
SCALAR EXTRACTION
extractH(result, heightMode, heightScale)
├── ψ Im[Ω] stream function (default)
├── φ Re[Ω] velocity potential
├── |Ω| modulus
├── arg(Ω) argument / phase
├── |Ω′| derivative modulus (conformal stretch factor)
└── arg(Ω′) derivative argument (local rotation)
│
▼
SURFACE BUILD (cached on parameter key hash)
NR × NT polar grid → height map → vertex array
│
▼
ISO-RING SOLVER
Binary search, 52 iterations, convergence ~10⁻¹⁵
Solves r such that extractH(evalField(r·e^{iθ})) = ψ_target
at N=100 angular samples per ring
│
▼
3D PROJECTION
Spherical camera (r, θ, φ) → perspective divide
Manual orbit: userTheta + autoOrbitOffset (non-conflicting)
│
▼
PAINTER'S SORT
Quads sorted back-to-front by average Z depth
│
▼
CANVAS 2D DRAW
├── Floor grid (faint, depth-correct)
├── Surface quads (fill + wireframe, brightness = |φ|)
├── Animated flow meridians (2, rotate with time)
├── Iso-rings (colored, per-ring semantic)
├── Floor projections (dashed, color-matched)
├── Sphere markers (white + colored glow ring)
└── Pole markers (labeled, family-aware)
│
▼
OUTPUT: Interactive Riemann surface, real-timeField Families
Eight complex functions. Same pipeline. Entirely different topology.
| ID | Equation | Ω′(z) | Physical Analog | Reference |
|----|----------|--------|-----------------|-----------|
| dipole | Ω = q₁·log(z+a) − q₂·log(z−a) | [q₁(z−a)−q₂(z+a)] / [(z+a)(z−a)] | Source-sink pair, electric dipole, 2D potential flow | Milne-Thomson Ch.6 |
| monopole | Ω = log(z) | 1/z | Point source, free vortex | Milne-Thomson §6.1 |
| multipole | Ω = Σ qₖ·log(z−zₖ) | Σ qₖ/(z−zₖ) | N-electrode field, polygonal symmetry groups | Needham §5.5 |
| joukowski | Ω = z + 1/z | 1 − 1/z² | Conformal airfoil transform, Joukowski profile | Joukowski (1910) |
| mobius | Ω = (z+a)/(z−a) | −2a/(z−a)² | Bilinear transform, circle-preserving map | Ahlfors §3.3 |
| power | Ω = zⁿ | n·z^{n−1} | Wedge flow, rotational symmetry, branch points | Ahlfors §3.1 |
| exponential | Ω = eᶻ | eᶻ | Strip-to-annulus conformal map, Fourier periodicity | Needham §5.2 |
| sine | Ω = sin(z) | cos(z) | Periodic hyperbolic lattice, interference analog | NIST DLMF §4.21 |
Height Modes
The same equation. Six different surfaces.
Ω(z) evaluated at every grid point
│
├── ψ Im[Ω] ← stream function lifted as height [default]
├── φ Re[Ω] ← velocity potential as terrain
├── |Ω| ← distance from origin in ω-plane
├── arg(Ω) ← phase angle — branch cut structure visible
├── |Ω′| ← conformal stretching factor — where the map expands
└── arg(Ω′) ← local rotation under the conformal mapSwitching height mode on a running field reveals geometry that the default view cannot show. The branch cut rotation α becomes most dramatic in arg(Ω) mode.
Parameter Space
All parameters are fully bipolar — every slider extends into negative territory, which is mathematically meaningful, not a UI choice.
Field
| Parameter | Symbol | Range | Default | What Going Negative Does | |-----------|--------|-------|---------|--------------------------| | Pole Separation | a | −6 → +6 | 1.0 | Flips pole orientation — source and sink exchange sides | | Pole Count | n | 1 → 16 | 2 | N-fold symmetry for multipole / power modes | | Charge q₁ | q₁ | −10 → +10 | +1.0 | Reverses source pole to sink | | Charge q₂ | q₂ | −10 → +10 | −1.0 | Reverses sink pole to source | | Branch Angle | α | −4π → +4π | 0 | Traverses multiple Riemann sheets | | Height Scale | H | −5 → +5 | +1.0 | Negative inverts the surface — peaks become valleys |
Contours
| Parameter | Symbol | Range | Default | Physical Meaning | |-----------|--------|-------|---------|-----------------| | ψ Ring 1 | ψ₁ | −2π → +2π | 0.82π | Outermost iso-stream — DAF DRIFT zone | | ψ Ring 2 | ψ₂ | −2π → +2π | 0.52π | Mid iso-stream — DAF CIRCULATING | | ψ Ring 3 | ψ₃ | −2π → +2π | 0.20π | Inner iso-stream — DAF CIRCULATING |
Negative ring values trace iso-contours on the underside of the field — below the real axis, second Riemann sheet territory.
Camera
| Parameter | Symbol | Range | Default | |-----------|--------|-------|---------| | Orbit Radius | r | 0.5 → 30 | 6.2 | | Elevation | φ | 0 → π | 1.05 | | Auto-orbit | — | toggle | on | | Flow Phase | φ₀ | −4π → +4π | 0 |
Animation
| Control | Range | Notes | |---------|-------|-------| | Time Speed | 0 → 99× | In header bar — live | | Trail Mode | toggle | Partial fade instead of clear — reveals field topology accumulation |
Iso-Ring Color Semantics
The three rings are not decorative. Each maps to a physical field zone.
Ring 1 ████ #ff8c42 ORANGE ψ ≈ 0.82π DAF DRIFT
Outer transition zone
Field gradient changes sign here
Boundary between organized flow and far field
Ring 2 ████ #00d4e8 CYAN ψ ≈ 0.52π DAF CIRCULATING
Stable orbital flow band
Streamlines close on themselves
Primary hydrodynamic circulation zone
Ring 3 ████ #f5c518 GOLD ψ ≈ 0.20π DAF CIRCULATING (inner)
Tight stable band
Near-pole high-velocity region
Pressure minimum (Bernoulli)Floor projections are dashed, color-matched, lower opacity — showing where each ring maps to the complex z-plane below the surface.
Trail Mode
When TRAILS is toggled on, the canvas receives a partial opacity fill (~20%) instead of a full clear each frame. The surface traces its swept path through parameter space and persists as a ghost.
What this reveals:
- The auto-orbit sweep — the surface carves a volume, not a surface
- Flow meridians write trajectories through the field
- Ring iso-contours accumulate their deformation history as parameters change
- At high speed (50–99×) + trails, the field topology becomes readable as a density map
Turn off trails and the canvas clears immediately on the next frame.
Interaction
| Input | Action | |-------|--------| | Drag | Orbit camera | | Scroll / pinch | Zoom | | TRAILS toggle | Enable trail accumulation mode | | ⏸ button | Pause / resume animation | | ⟳ AUTO button | Toggle auto-orbit oscillation | | ↺ RESET | Return all parameters to defaults | | ◑ DARK | Toggle dark / light mode | | All sliders | Live — surface rebuilds on change |
Engine Architecture
UUON-RDE-001 INTERNAL STRUCTURE
┌─────────────────────────────────────────────────────────┐
│ STATE │
│ ├── identity id, version, standard │
│ ├── field family, heightMode, evalField() │
│ ├── parameters poleSep, poleCount, q1, q2, │
│ │ branchAngle, heightScale, rings, │
│ │ twist, speed, NR, NT, rMin, rMax │
│ ├── camera r, userTheta, phi, autoOrbit, │
│ │ aoSpeed, target │
│ ├── animation t, paused, trails, last │
│ └── derived surfaceCache, cacheKey │
└─────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────────────┐
│ MATH CORE │ │ RENDER CORE │
│ C.{add,sub,mul} │ │ buildSurf() │
│ C.{div,log,exp} │ │ solveRing() │
│ C.{pow,sin} │ │ proj() │
│ cLogBranch(α) │ │ mono(bri, alpha) │
│ evalField(P) │ │ draw() │
│ extractH(mode) │ │ loop(ts) │
└──────────────────┘ └──────────────────────────┘
│ │
└──────────────┬───────────────┘
▼
┌─────────────────────┐
│ CANVAS 2D OUTPUT │
│ White #ffffff │
│ Dark #04080f │
│ Brightness = |φ| │
└─────────────────────┘
SEPARATION INVARIANT:
Math core never touches canvas.
Render core never mutates parameter state.
Camera state never shares variables with animation time.What Is Not In This Repository
The following components are proprietary to UUON Foundation Inc. and stored in the Dmension Database (Neon PostgreSQL). They appear in source only as labeled stub comments.
PROPRIETARY — Dmension DB (ep-curly-unit, UUON Foundation Inc.)
├── G°centric normalization
│ v_n = (n/33) × 100
│ 33-position Greek Lattice operator table
│ Bergpark Wilhelmshöhe geodetic anchor (51.3°N 9.4°E)
│
├── DAF state classifier
│ CIRCULATING / DRIFT / TRAP / BRITTLE_STABILITY
│ Condition thresholds and vertex-coloring logic
│ Field state taxonomy
│
├── CLOUUD provenance chain
│ Merkle hash generation
│ Artifact sealing pipeline
│ Billing and credit integration
│
└── SAL-1.0 / USAL-1.0 enforcement logicThese connect RDE-001 to the broader CLOUUD Mathematical Operating System infrastructure. Contact [email protected] for licensing.
Repository Structure
UUON-Foundation/riemann-dipole-engine/
│
├── src/
│ └── UUON-RDE-001.html ← engine — open this
│
├── docs/
│ ├── UUON-RDE-001_manifest.json ← machine-readable API + parameter schema
│ ├── CHANGELOG.md ← full version history
│ └── REFERENCES.md ← complete academic bibliography
│
├── .github/
│ └── workflows/
│ └── pages.yml ← auto-deploy to GitHub Pages on push to main
│
├── README.md ← this file
└── LICENSE ← SAL-1.0GitHub Pages: Push to main → engine live at https://uuon-foundation.github.io/riemann-dipole-engine/ automatically. No additional configuration required.
Part of UUON Δmension
RDE-001 is the first member of the Complex Field Geometry Engine family within the UUON Δmension engine collection.
UUON ΔMENSION ENGINE COLLECTION
Complex Field Geometry
UUON-RDE-001 Riemann Dipole Engine ← this repo
Mathematical Physics
UUON-HAE-001 Hydrogenoid Atom Engine
UUON-ZPE-001 Zero Point Energy Engine
UUON-GEO-001 Kerr Metric Geodesic Engine
UUON-WPD-001 Wave-Particle Duality Engine
Fractal / Topology
UUON-IFS-3D-001 Pocket Universe Neighborhood
UUON-PSE-001 Phyllotaxis Seed Engine
UUON-FSE-001 Field Surface Engine
All engines share:
├── UUON Engine Standard v1.0 (design system)
├── Canvas 2D renderer (no WebGL, no dependencies)
├── gate-uuay API gateway (api.uuon.world)
├── G°centric v1.0 provenance frame
└── SAL-1.0 licenseAPI Manifest
The full machine-readable parameter schema, endpoint definitions, and field family specifications are in docs/UUON-RDE-001_manifest.json.
This file is designed to be consumed by AI/ML systems, API gateways, and automated tooling without parsing this README.
Key endpoints via https://api.uuon.world/v1/engines/rde-001:
| Method | Path | Description |
|--------|------|-------------|
| GET | /manifest | Full JSON manifest |
| POST | /surface/sample | Evaluate Ω(z) at point or grid |
| POST | /contour/solve | Binary-search iso-contour at ψ_target |
| POST | /field/eval | All quantities at a point |
| POST | /map/full | Complete geometry export |
| GET | /parameters | Machine-readable parameter schema |
Mathematical References
Every equation in this engine derives from a named, verifiable source. Nothing is invented.
| Source | Relevance | |--------|-----------| | Needham, T. (1997). Visual Complex Analysis. Oxford. §5.4 | Complex potential, dipole flow, conformal lift | | Milne-Thomson, L.M. (1968). Theoretical Hydrodynamics (5th ed.). Macmillan. Ch.6 | Source, sink, vortex, dipole, stream function | | Ahlfors, L.V. (1979). Complex Analysis (3rd ed.). McGraw-Hill. §3 | Riemann surface, branch cuts, Möbius transforms | | NIST DLMF §4.2 (2024). dlmf.nist.gov | Complex logarithm, principal value, branch structure | | Joukowski, N. (1910). Über die Konturen der Tragflächen. ZFM. | Conformal airfoil transform | | Milne-Thomson (1968). §10.5 | Joukowski profile, airfoil hydrodynamics | | NIST DLMF §4.21 (2024) | Complex sine, hyperbolic lattice behavior |
Full bibliography with section references: docs/REFERENCES.md
License
SAL-1.0 — Source Available License © 2026 Phillip Aguilar Ruiz III · UUON Foundation Inc.
- ✅ View, study, fork for non-commercial and research use
- ✅ Attribution required in any public use or derivative
- ❌ Commercial use, SaaS deployment, redistribution requires written license
- ❌ Proprietary components (G°centric, DAF, CLOUUD) not included
Full terms: LICENSE · Inquiries: [email protected]
GitHub Topics
riemann-surface complex-analysis potential-flow conformal-mapping
mathematical-visualization canvas-2d joukowski-transform mobius-transform
multipole branch-cut stream-function interactive-visualization
no-dependencies single-file pseudo-3d uuon dmension complex-potential
dipole iso-contour physics-visualization javascriptUUON Foundation Inc. · Phillip Aguilar Ruiz III · Kassel, Germany · 2026
G°centric v1.0 · Position 33 = 100% · Bergpark Wilhelmshöhe 51.3°N 9.4°E
