When constructed in a 2-D rigid material like card, all surfaces assume
curved shapes, though these are not necessarily uniquely defined - some
faces are bi or multi-stable indicating multiple solutions.
If I take a piece of paper and try to form it into a curve, it can only curve
in one direction (e.g. like rolling it into a cylinder). One of the two
principle curvatures is going to be zero, and the curvature of the surface
(being the product of the principle curvatures) is also zero. So I'm a
little puzzled by your description of forming curved surfaces out of rigid
card-like material. If you can only curve in one direction the curvature
is always going to be zero (which makes minimizing the curvature not
interesting) and it's impossible to avoid creating curved edges unless you
just keep the faces coplanar. To create the curved surfaces you seem to be
interested in you need to make them out of a stretchy material. Soap
In answer to the question of how you might construct curved faces when you
are given straight edges, the obvious and simple way to do it is to just
bilinearly interpolate the points on the surface. That gives a result like
this, with curved faces:
I would guess that surfaces like this would satisfy various optimality
conditions, but I don't know for sure. But if I try to form that surface in
the image out of paper, the paper develops creases (or would tear if it was
> Really this is more a geometry question than OpenSCAD but I know you're a
> knowledgable lot.
> I've recently been playing with creating nets of solids with non-planar
> faces. When folded, such nets result in curved surfaces, but as
> the non-planer surfaces are minimally triangulated.
> <http://forum.openscad.org/file/t229/random-n-prism.png> >
> When constructed in a 2-D rigid material like card, all surfaces assume
> curved shapes, though these are not necessarily uniquely defined - some
> faces are bi or multi-stable indicating multiple solutions.
> <http://forum.openscad.org/file/t229/rpenta-r.jpg> >
> I'd like to find some optimisation method which would produce a
> triangulation of the solid which would satisfy the fixed edge length
> constraints whilst minimising curvature (or something like that)
andrianv - yes I have created similar shapes to the one you show with upper
and lower faces generated as random polygons:
https://www.thingiverse.com/thing:3028025 (if anyone can still use
Thingiverse these days).
If so minded, you can assemble a solid with regular pentagonal faces from
this net (no tabs added)
However here the faces are different, typically bowing outward rather than
inward on a quadrilateral face.
In less regular nets, the upper face is twisted in several directions -as
Ronaldo sugggests- the net of the one in the photo has having several lines
of curvature on one hexagonal face - as the rather poor photo in my post
with regard to curvature, yes I agree the local curvature in a 2d rigid sheet
is everywhere zero although the sheet may look globally curved in different
directions. The initial triangular mesh however will not have zero
curvature however so changing the mesh to reduce the average curvature
should move it towards the smoothly curved form.
I tried folding up your flat models. First, it's hard to align edges
accurately. The edges tend to curve during assembly, and I think retain
residual curvature. Secondly, the "curved" faces are really acting like
creased faces, where they are divided into two triangles. Because I didn't
actually form a crease, there is instead a curve there, and some distortion
to accomodate it, but mathematically the model appears to me to be that you
are just dividing the quadrilaterals into pairs of triangular faces. So
the model I posted before looks like this, where I only approximate the
curved face with two triangles instead of a hundred:
I suspect you must be using rather heavy card - I dont find any problem
getting smothly curved surfaces with 160 or 180 gsm card. The simple
triangulation shown in your model (and in mine in the initial post) is the
first approximation to the curved surface - my aim was to compute a better
I was using 90 gsm "card" for my models---regular printer paper.
I think that you have it backwards. Your models are a curved approximation
to the triangulations, where in those approximations, the edges aren't
actually straight You can't curve the faces and keep the edges straight.
It's not possible mathematically unless the paper stretches because the
paper has to have zero curvature. (The shapes you want to form aren't
"developable" in the language of the paper you cited.) You can keep two of
the edges straight, but the other ones need to curve--unless you do like the
triangulations and crease the paper on the line between vertices. Or unless
you do something like is shown in the paper and form a complex origami
tessellation that enables the paper to develop non-zero Gaussian curvature
at the large scale.
It's not possible to compute the curved surface that forms in the real
models because it's not a well-defined surface. We don't know which edges
have curved, and by how much, because all that curvature is being absorbed
and distributed throughout the model in assembly errors and small
mis-matches in a complex and unconstrained, undefined way. If you want to
compute the curved surface you need to intentionally curve the edges so you
know which edges are curved and what the curves of those edges are.