honeycomb evolution

get hexadron tessellation using random search
917 Downloads
Updated 10 Jan 2011

View License

http://simulations.narod.ru/

This is a honeycomb evolution simulation. In bees evolution using trial and error method found optimal tessellation of 2d space. They minimized wax using to build walls, so total length of walls in all honeycomb is to minimize. Also different cells must have about same area.

In the code walls was parameterized using voronoi diagram. The geometry is looped: down edge of picture is up edge of the picture, left edge of picture is up right of the picture. It is like periodic boundary condition. The rectangle displayed actually repeated 3x3=9 times. Then voronoi diagram applied. Only in middle rectangle voronoi diagram part used in total length Ls calculation. To prevent moving points to one stack there not Ls minimized but Ls_ex = Ls + const/min_dist, where min_dist minimal distance between points.

Random search used.. In iteration of random search it search minimum Ls_ex each time. In each iteration the code try random position of points near current positions. Zone of random search is contracted exponentially with iterations.

Run honeycombs.m to start simulation.

Some times hexadrons not so uniform as in gif-animated here.

Animation:
http://www.youtube.com/watch?v=EIrA0fMqmq8

honeycombs_avi.m to make avi file
honeycombs_gif.m to make gif file

auxilary functions:
segment_rectange.m finds length of cross of segment and rectangle
cross_perimeter.m find points of cross of rectengle perimeter and segment

Cite As

Maxim Vedenyov (2024). honeycomb evolution (https://www.mathworks.com/matlabcentral/fileexchange/29990-honeycomb-evolution), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.1.0.0

Some errors fixed

1.0.0.0