Floraform

Floraform system

Year

2014

Tags

algorithm, openframeworks

Share

Floraform is a computational simulation of differential growth on a thin surface. Our system includes a physics simulation of a thin shell or elastic surface with a curved rest configuration, and a model of growth. The surface is modelled as a triangle mesh represented as a half-edge mesh structure. It evolves through time and on each timestep, forces are computed on each vertex of the mesh, new positions are integrated for each vertex, and growth rates expand each edge of the mesh. Many of the techniques used are based on discrete differential geometry. The system can be broken down into several components.

Physics

The physics of the surface are based on “Discrete Shells” by Eitan Grinspun, et al. Each edge of the mesh is modelled as a spring which resists stretching of the surface. The edge between two faces also has a bend energy proportional to the angle between the faces that resists bending. These forces are then integrated using an overdamped implicit Euler solver.

Collision detection

In order to prevent our surface from intersecting itself, we need a way to detect collisions between parts of the surface as it grows and to introduce forces to prevent it from overlapping. We use a particle-based collision system. Each vertex of the mesh has an ellipsoid-shaped collision body around it, which has a radius equal to some collision distance normal to the surface and a radius proportional to the ring of vertices around it in the tangent plane. When two collision bodies intersect, we introduce a stiff spring-like force that pushes them away from each other. Detecting nearby collision bodies is accelerated with a simple spatial binning structure.

Geodesic distance

The growth rate of the surface is controlled by the distance along the surface from the edge or some other specified growing zone. We then expand the length of edges based on a function of this distance. The distance along a surface is known as the geodesic distance, and unlike distance through normal space, it can't be computed directly from the positions of the vertices. To compute this, we use a technique from a paper called "Geodesics in Heat" by Crane, et al. It employs a novel method to compute geodesics using heat flow to calculate the gradient of the distance, rather than directly computing it through a Dijkstra-like search.

Adaptive subdivision

As our surface grows, we need to maintain the level of detail of our mesh in order to have a smooth surface and a stable stimulation. Any edge that grows above a threshold length is subdivided such that each neighbouring triangle is split in two. To maintain good triangle shape, an edge is only split if it is the longest edge in a triangle. Additionally, we introduce edge flipping to balance the topology of the mesh as it subdivides.

  1. video: Floraform project

    Floraform is a generative design project by Nervous System inspired by the biomechanics of growing leaves and blooming flowers. It…

  2. video: Floraform - designing with simulations

    Floraform is a simulation of a differentially growing elastic surface that we created to explore how biological systems create for…

  3. Physics

    The physics of the surface are based on “Discrete Shells” by Eitan Grinspun, et al. Each edge of the mesh is modelled as a spring…

  4. Growing Zone: Edge

    Edge-based growth – The edge of the hemisphere is emitting growth signal and is the fastest area of expansion.

  5. Growth Zone - Expanding Point

    Line-based growth – The center of the hemisphere is emitting growth signal and is the fastest area of expansion. Overtime it expan…

  6. Growth Zone - Splitting Point

    Point-based growth – The center of the hemisphere is emitting growth signal and is the fastest area of expansion. Overtime it bifu…

  7. Uniform Growth

    a hemisphere growing uniformly produces a wrinkled surface

  8. Adaptive Subdivision

    As our surface grows, we need to maintain the level of detail of our mesh in order to have a smooth surface and a stable stimulati…

  9. Geodesic distance

    The growth rate of the surface is controlled by the distance along the surface from the edge or some other specified growing zone.…

  10. Collision detection

    In order to prevent our surface from intersecting itself, we need a way to detect collisions between parts of the surface as it gr…

  11. Perforation system

  12. Environmental Factors

  13. Growth Zone: 5 Edge Points