3D Mobius - Boy's Surface (Apéry & Bryant-Kusner) in Geometry Nodes

codesignprojects in Simulations & Effects


Overview

This package contains two standalone Geometry Nodes node trees implementing Boy’s surface—a smooth, non-orientable immersion of the real projective plane ℝℙ² with 3-fold rotational symmetry:

  1. Math_Visualization (Apéry Formulation): Explicit trigonometric evaluation over a parameterized domain grid (u,v)(u, v)(u,v).
  2. Math_Visualization.001 (Bryant–Kusner Formulation): Rational complex polynomial mapping over a polar disk (r,θ)(r, θ)(r,θ), followed by ℝ³ spherical inversion.

Accompanying PDF reference sheets map each mathematical equation directly to its corresponding colored frame inside the node editor.

What is Boy's Surface:
Discovered by Werner Boy in 1901, it is an immersion of the real projective plane (ℝℙ²) in 3D space — topologically equivalent to sewing a Möbius strip to the boundary of a disk without any pinch points or sharp singularities.

How it works (Two Complete Implementations Included):

  • Apéry Parameterization: Generates the surface from a parametric (u, v) grid using François Apéry's explicit trigonometric equations, organized into a shared denominator branch D(u, v) = 2 − √2·sin(3u)·sin(2v) and dedicated X, Y, and Z coordinate branches.
  • Bryant–Kusner Parameterization: Maps a polar grid (r, θ) on the complex unit disk (w = r·e^(iθ)) into Robert Bryant and Rob Kusner's Willmore-energy-minimizing immersion. The node tree explicitly separates the Real and Imaginary parts of the complex denominator D(w) = w⁶ + √5·w³ − 1 and coordinate numerators, performs ℝ³ spherical inversion (P = g / ||g||²), and constructs a dual-offset shell (±0.001) with flipped faces to eliminate shading seams across the non-orientable Möbius twist.

Geometry Nodes Setup & Controls

  • Resolution (Value node in Frame Resolution): Controls grid density (X×YX \times YX×Y). Higher values produce smoother self-intersection curves and tunnel silhouettes.
  • Domain Grid (Grid node in Frame Base Grid):
    • Size X=2πX = 2\piX=2π (≈6.283185\approx 6.283185≈6.283185), Size Y=1.0Y = 1.0Y=1.0.
    • Shifted internally to map X∈[−π,π]X \in [-\pi, \pi]X∈[−π,π] (polar angle θ\thetaθ) and Y∈[0,1]Y \in [0, 1]Y∈[0,1] (radial distance rrr on the complex disk).
  • Shape Calibration (Bryant–Kusner Scale Frames):
    • XXX & YYY Branches (Math.064 & Math.043): Multiplier kkk (default: -1.650). Governs the radial span and thickness of the 3 outer underbranching lobes.
    • ZZZ Branch (Math.079): Offset ccc (default: 0.850). Shifts the center of the spherical inversion, governing the scale of the central triangular cap and the aperture of the 3 internal tunnels.
  • Non-Orientable Dual Shell:
    • Uses dual ±0.001\pm 0.001±0.001 offsets with face flipping and side-wall stripping (Delete Geometry: Not Top). This resolves the normal-inversion boundary artifact across the Möbius twist without requiring heavy post-boolean operations.
  • Surface Attributes:
    • Outputs FlowUV (r2r^2r2), a normalized scalar field running smoothly from 0.0 at the triple point to 1.0 along the outer perimeter seam, accessible in the Shader Editor via an Attribute node.

For translucent/X-ray styling with internal tunnel visibility:

  • Render Engine: EEVEE (Blender 4.2+ / 5.2)
  • Surface Settings (Material Properties):
    • Render Method: Blended (avoids dithered noise across gradient alpha)
    • Backface Culling: Camera: ON (prevents double-rendering of the ±0.001\pm 0.001±0.001 dual shells)
    • Transparency Overlap: ON (ensures all 3–4 internal overlapping layers composite smoothly)
    • Shadows / Ray Visibility: Uncheck Shadow on the object to prevent the inner shell from self-shadowing the outer skin.
$2.90

Have questions about this product?
Login to message

Details
Published 1 day ago
Blender Version 4.2 - 5.2
Render Engine Used Cycles, Eevee
License Creative Commons