Convenience helpers that build an annulus from deterministically irregular concentric rings with varying sample counts, stitch adjacent rings into a locally triangulated graph, and then optionally lift the resulting irregular planar parameterization into \(\mathbb{R}^3\). This provides a non-lattice annulus family with boundary and nonuniform local valence.
irregular.annulus.surface.embedding(
rings = 6,
outer_count = 28,
outer_radius = 1,
inner_radius = 0.45,
count_irregularity = 0.2,
radial_irregularity = 0.35,
phase_twist = 0.35,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1
)irregular.annulus.surface.graph(
rings = 6,
outer_count = 28,
outer_radius = 1,
inner_radius = 0.45,
count_irregularity = 0.2,
radial_irregularity = 0.35,
phase_twist = 0.35,
surface = c("flat", "saddle", "paraboloid", "ripple", "folded"),
amplitude = 0.6,
freq_u = 1,
freq_v = 1,
normalize = c("median", "mean", "none")
)
irregular.annulus.surface.embedding() returns an n x 3 numeric
matrix with columns x, y, and z.
irregular.annulus.surface.graph() returns a list with components:
edges: the irregular annulus edges,
n: number of vertices,
edge_weights: induced positive edge lengths,
coords_surface: the 3D embedding,
coords_param: the irregular planar annulus coordinates,
weight_scale: the normalization constant applied to the raw
edge lengths,
family: always "irregular.annulus",
surface: the chosen surface name,
rings: number of concentric rings,
ring_sizes: sample counts on each ring,
label: a human-readable family label.
Number of concentric sample rings, including the inner and outer boundary cycles.
Approximate number of vertices on the outer boundary.
Positive outer annulus radius.
Positive inner annulus radius.
Irregularity level for the per-ring sample counts.
Must lie in [0, 1).
Irregularity level for within-ring radial
perturbations. Must lie in [0, 1].
Finite angular phase offset used to desynchronize neighboring rings.
Geometry family used for the 3D lift. One of "flat",
"saddle", "paraboloid", "ripple", or
"folded".
Finite deformation amplitude.
Positive ripple frequency in the first planar coordinate. Used
only when surface = "ripple".
Positive ripple frequency in the second planar coordinate. Used
only when surface = "ripple".
Normalization applied to the induced edge lengths. One of
"median", "mean", or "none".