HomeHomeomorphic meshes

Homeomorphic meshes

Morphing between meshes using GLSL

This project sets out to explore the methods which can be used to construct a triangle mesh from a set of points, it investigates the algorithmic construction of space: how point and line describe a plane and how a collection of planes build up a space.

The aim is to avoid the standard algorithmic procedures; the Delaunay or the Voronoi, in line with the algorists. http://rhizome.org/editorial/2012/jul/5/prosthetic-knowledge-picks-algorists/

A bug results in triangles which do not map to the surface connecting the points

The 3D point clouds of two different house plants were created using a Kinect, the vertices were then ordered to create two homeomorphic collections of points in the same space.

The image from a Kinect camera is used to sample the depth of points in space to create a three dimensional point cloud

An algorithmic construction of space

A process takes each point of the first mesh and finds all points within the nearest 20 units of space. Real space is mapped into data and processed in the following way:

for each point
    - find the nearest 20 points in the mesh within a set radius
    - find the range and average value of the green component of the colour at that point
    - insert into the mesh a random number of triangles relative to quantity of green the point

This process is repeated at various scales connecting points with their nearest neighbouring points as well as those further away. This forms an analogue of the internet. The resultant mesh is a collection of large to small triangles, intersecting and occupying the same space but refusing the convex hull definition of standard 3D meshes.

A snap shot of the screen whilst animating between two 3D meshes, the resulting form seems to retain the plants' colours and structures

Sometimes bugs construct distorted spaces.

A bug causes a strange and distored space to appear, stangely appealling in broken and false places distributed through space

Animating space

The set of points in each mesh is ordered by location so the that the two set of vertex positions are ordered by the spatial proximity. For the spaces to be homeomorphic they must contain an identical number of points.

The resulting code animates a partial interpolated space between two static forms never settling in either. The interpolation combines a sine waveform with Perlin noise to force a fibrillating movement between positions. The resulting form is always in the middle of other forms, never one nor the other but always at the same time a proportion of the sum of the one and the other.