×
Curved Crease
An interactive tool for designing curved-crease origami.
It takes a polysurface of ruled surfaces as input and
optimizes the control points so each surface patch
becomes developable and satisfies the geometric
constraints for valid crease folding between patches.
The optimizer uses a Gauss-Newton solver on B-spline
control points, enforcing several residual types:
Developability
Each ruled surface patch must be developable:
(b-a)·n = 0 ruling ⊥ normal
a'·n = 0 tangent of rail a ⊥ normal
b'·n = 0 tangent of rail b ⊥ normal
Curved Crease
The osculating plane of the crease curve must bisect the dihedral
angle between the two surfaces:
a'·(n₁+n₂) = 0 tangent ⊥ sum of normals
a''·(n₁+n₂) = 0 curvature ⊥ sum of normals
Anchor Z
Keeps the height of each control point close to its
initial value.
Folding Angle
Soft constrain to keep the initial dihedral angle between adjacent
surface patches at each crease.
Fairness
Soft constrain to make every three consecutive
control points collinear, producing smoother curves.
C1 Tangent
Enforces tangent continuity at junctions where
multiple rails meet.
Regression
Controls how much the geometry changes per step.
Higher values stabilize the solver but converge more slowly.
Algorithm Based on
Geometry and Interactive Design of Curved Creases - Klara Mundilova, TU Wien, 2017
Development: Soroush Garivani - soroushgarivani@gmail.com