ABSTRACT (original article): Recently there have been extensive theoretical, numerical and experimental works on curved-fold origami. However, we notice that a unified and complete geometric framework for describing the geometry and mechanics of curved-fold origami, especially those with nontrivial Gaussian curvature at the crease (non-Euclidean crease), is still absent. Herein we provide a unified geometric framework that describes the shape of a generic curved-fold origami composed of two general strips. The explicit description indicates that four configurations emerge, determined by its spatial crease and configuration branch. Within this geometric framework, we derive the equilibrium equations and study the mechanical response of the curved-crease origami, focusing on Euler’s buckling behavior. Both linear stability analysis and finite element simulation indicate that the overlaid configuration exhibits a lower buckling threshold. To further capture the large deformation behavior efficiently, we develop a bistrip model based on the anisotropic Kirchhoff rod theory, which predicts the main features successfully. This work bridges the geometry and mechanics of curved-crease origami, offering insights for applications in robotics, actuators, and deployable space structures. CITATION (original article): Zhixuan Wen, Tian Yu, Fan Feng (2025), Geometry and Mechanics of Non-Euclidean Curved-Crease Origami, arXiv:2502.20147. https://doi.org/10.48550/arXiv.2502.20147
Numerical algorithm for Gaussian curved folds
Numerical algorithm for Gaussian curved folds
This code aims to construct curved-fold origami that have nontrivial Gaussian curvature at the crease. The example presented in this code has two creases (yref1 and yref2) described by a logarithmic spiral and an arc in the reference 2D domain. The outer boundaries (boundary1 and boundary 2) are given by translating the creases along the normal in 2D. The deformed crease is a helix (ydef).
The function develop[σ_,δ_,yref_,boudary_] computes the shapes of the two developable surfaces in a unified manner.
The function develop[σ_,δ_,yref_,boudary_] computes the shapes of the two developable surfaces in a unified manner.
In[]:=
e1={1,0,0};e2={0,1,0};e3={0,0,1};
In[]:=
rot[θ_]:={{Cos[θ],-Sin[θ],0},{Sin[θ],Cos[θ],0},{0,0,1}}
In[]:=
arclength=6π;a=1;k=1;r[ϕ_]:=a*Exp[k*ϕ]ϕ2[ϕ1_,s_]:=Log2+,,0ϕ11=2;
1
2
ϕ1
2
s;norm[ϕ1_,s_]:=-CosLog++SinLog+
ϕ1
s
2
ϕ1
s
2
2+
ϕ1
2
sCosLog+-SinLog+
ϕ1
s
2
ϕ1
s
2
2+
ϕ1
2
sIn[]:=
r1=10;θ1end=Pi;int1=ParametricPlot3D[{a*Exp[k*ϕ2[ϕ11,s]]*Cos[ϕ2[ϕ11,s]],a*Exp[k*ϕ2[ϕ11,s]]*Sin[ϕ2[ϕ11,s]],0},{s,0,arclength},AxesFalse,PlotStyle{Black,Thick}];ref1=ParametricPlot3D[{a*Exp[k*ϕ2[ϕ11,s]]*Cos[ϕ2[ϕ11,s]],a*Exp[k*ϕ2[ϕ11,s]]*Sin[ϕ2[ϕ11,s]],0}+u*Normalize[norm[ϕ11,s]],{s,0,arclength},{u,0,2},AxesFalse,PlotStyleLighter[Blue],BoundaryStyleNone,MeshNone,PlotPoints50];
Crease of the reference strip
yref1[s_]:={a*Exp[k*ϕ2[ϕ11,s]]*Cos[ϕ2[ϕ11,s]],a*Exp[k*ϕ2[ϕ11,s]]*Sin[ϕ2[ϕ11,s]],0}(*Checkarc-lengthparameterization*)Norm[yref1'[s]/.s->1]//N(*Boundaryofthereferencestrip*)boundary1[s_]:={a*Exp[k*ϕ2[ϕ11,s]]*Cos[ϕ2[ϕ11,s]],a*Exp[k*ϕ2[ϕ11,s]]*Sin[ϕ2[ϕ11,s]],0}+Normalize[norm[ϕ11,s]]*2bound1=ParametricPlot3D[boundary1[s],{s,0,arclength},AxesFalse,PlotStyle{Red,Thick}];geo1[s_]:=Norm[yref1''[s]]Show[{ref1,int1,bound1},Boxed->False,ViewPoint->Above]
Out[]=
1.
Out[]=
r1=6;θ1end=Pi;yref2[s_]:={-r1*Cos[s/r1],r1*Sin[s/r1],0};int2=ParametricPlot3D[{6*Cos[θ],6*Sin[θ],0},{θ,0,θ1end},AxesFalse,PlotStyle{Black,Thick}];ref2=ParametricPlot3D[{r*Cos[θ],r*Sin[θ],0},{r,r1-2,r1},{θ,0,θ1end},AxesFalse,PlotStyleLighter[Red],BoundaryStyleNone,MeshNone,PlotPoints50];
Boundary of the reference strip
norm2[s_]:=Normalize[{0,0,0}-yref2[s]];boundary2[s_]:=yref2[s]+2*norm2[s];bound2=ParametricPlot3D[boundary2[s],{s,0,arclength},AxesFalse,PlotStyle{Blue,Thick}];Show[{ref2,int2,bound2},Boxed->False,ViewPoint->Above,PlotRange->All]
Out[]=
rdef=4;αdef=0.1*Pi;ydef[s_]:={-rdef*Cos[s*Cos[αdef]/rdef],rdef*Sin[s*Cos[αdef]/rdef],s*Sin[αdef]}Norm[ydef'[u]]/.u->1ydefplot=ParametricPlot3D[ydef[u],{u,0,arclength},PlotStyle{Thickness[0.005],Black}]
Out[]=
1.
Out[]=
Deformed crease and Frenet frame
totaldef[u_]:=Norm[Cross[ydef'[u],ydef''[u]]]/Norm[ydef'[u]]^3;eps=10^(-6);t[u_]:=Normalize[ydef'[u]];(*γ[s]isanarc-lengthparameterizedcurve*)κ[u_]:=totaldef[u];n[u_]:=Cross[ydef'[u],Cross[ydef''[u],ydef'[u]]]/Norm[ydef'[u]]/Norm[Cross[ydef''[u],ydef'[u]]];b[u_]:=Cross[t[u],n[u]];jaco[u_]:=Norm[ydef'[u]];(*ds/du*)eps=10^(-6);τ[u_]:=-((b[u+eps]-b[u])/eps).n[u]/jaco[u];(*torsion*)
develop[σ_,δ_,yref_,boudary_]:=Module[{σ1=σ,δ1=δ,yref1=yref,boundary1=boudary,color},geo1[s_]:=e3.Cross[yref1'[s],yref1''[s]];α[u_]:=ArcCos[geo1[u]/totaldef[u]];αprime[u_]:=(α[u+eps]-α[u])/eps/jaco[u];l1[u_]:=δ1*(τ[u]-σ1*αprime[u])/Sqrt[(τ[u]-σ1*αprime[u])^2+κ[u]^2*Sin[α[u]]^2];l2[u_]:=-δ1*σ1*κ[u]*Sin[α[u]]*Cos[α[u]]/Sqrt[(τ[u]-σ1*αprime[u])^2+κ[u]^2*Sin[α[u]]^2];l3[u_]:=δ1*κ[u]*Sin[α[u]]^2/Sqrt[(τ[u]-σ1*αprime[u])^2+κ[u]^2*Sin[α[u]]^2];L[u_]:=l1[u]*t[u]+l2[u]*n[u]+l3[u]*b[u];β[s_]:=ArcCos[L[s].ydef'[s]];(*Numericallycomputethelengthofgeneratordlength[s_]ats.Thisstepmaycauseanerroriftheboudariesareodd.*)dlength[s_]:=u1/.FindRoot[Delete[(yref1[s]+u1*rot[-σ1*δ1*β[s]].yref1'[s]-boundary1[s2]),3]=={0,0},{{u1,2},{s2,s}}];develop1[u_,length_]:=ydef[u]+length*L[u];color=If[σ1*δ1==-1,Lighter[Blue],Lighter[Red]];ParametricPlot3D[develop1[s,len],{s,0,arclength},{len,0,dlength[s]},PlotStylecolor,MeshNone]]
In[]:=
left=Quiet[develop[-1,1,yref1,boundary1]];
In[]:=
right=Quiet[develop[1,1,yref2,boundary2]];
In[]:=
Show[{left,right},PlotRange->All]
Out[]=
Four configurations
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Geometry and mechanics of non-Euclidean curved-crease origami
by Zhixuan Wen, Tian Yu & Fan Feng
Wolfram Community, STAFF PICKS, March 10, 2025
https://community.wolfram.com/groups/-/m/t/3413942
by Zhixuan Wen, Tian Yu & Fan Feng
Wolfram Community, STAFF PICKS, March 10, 2025
https://community.wolfram.com/groups/-/m/t/3413942