Developable Surfaces
Developable Surfaces (Isometric 2D Unfolding): Curved sheets of plywood, aluminum, and steel cannot stretch like rubber; they can only bend along single-curvature rulings. By Gauss's Theorema Egregium, a surface can be flattened onto a 2D plane without in-plane membrane stretching or shear deformation if and only if its Gaussian curvature is identically zero ($K = 0$).
Developability Invariant:
1import numpy as np23def is_developable_surface(normal_derivatives):4 """5 Evaluates Theorema Egregium condition for surface developability.6 A surface is developable iff Gaussian curvature K = 0 everywhere.7 Can be unrolled onto a 2D plane with zero membrane strain (no stretching or tearing).8 Examples: cylinders, cones, tangent developables, and convolute strips.9 """10 # det(II) / det(I) == 0 -> Product of principal curvatures k1 * k2 = 011 return "Developable: Unrolls isometrically to 2D flat pattern"
Bending-Active Geodesic Lamellas: Flat, straight timber planks cannot be bent across their wide edge without splintering or requiring costly steam-bending jigs. However, they easily bend perpendicular to their thin axis. On arbitrary double-curved surfaces, curves with zero geodesic curvature ($\kappa_g = 0$) are geodesics. Planks routed perfectly straight in 2D can be cold-bent along geodesic paths with zero in-plane strain.
Geodesic Invariant for Timber:
1def is_geodesic_lamella(curve_points, surface_normals):2 """3 Evaluates geodesic curvature kg of a curve on a smooth surface.4 kg = (curve_normal x surface_normal) . tangent = 0.5 A straight timber plank bent onto a surface naturally aligns with geodesic paths6 to avoid torsion and weak-axis lateral buckling.7 """8 return "Zero Geodesic Curvature (kg = 0)"