|
This application searches for the best way to arrange a number of shapes (circles and polygons) within another shape. It does this by maximising the radius of the inner shapes with respect to the radius of the outer shape. For polygons the radius is the distance from the centre to one of the vertices. |
|
|
|
Use the controls below to change the parameters used in the simulation. |
| Temperature: | ||
| Per second: | ||
| Min Temperature (log 10): | ||
| Min improvement (log 10): | ||
| Show touching: |
|
Use the controls below to manage the number of shapes in the main display. |
| Circles: | ||
| Triangles: | ||
| Squares: | ||
| Pentagons: | ||
| Hexagons: | ||
| Heptagons: | ||
| Octagons: | ||
| Nonagons: | ||
| Outer Shape: |
|
The text below shows the best packing found so far. You can cut and paste this text to preserve your best packings. That's how I've encoded the images on the results page. |
View an historical result:
Annealing History
|
|
scale |
| Start | Will start a new simulation using the shape counts and attributes specified in the table above. |
| Pause | Pauses the current simulation. |
| Resume | Resumes a paused simulation. |
| Update | Updates the attributes of the current simulation but leaves the shapes unchanged. |
| Best | Shows the best fit achieved since the simulation started. The simulation will also pause, but can be resumed. |
| Reset Best | Clears the best so far value and saved state. |
| T-Cycle | Starts a temperature cycling mode to help find solutions. This will keep decreasing the temperature until a minimum is reached, at which point it resets to a high temperature and starts again. This mode can be cancelled using "Start" or "Update". |
| Shapes | Determines how many of each shape type are used in the simulation. |
| Temperature | Determines how much freedom of movement the shapes have. Low temperatures tend to freeze in a configuration, larger temperatures allow the shapes to explore a larger range of sizes. If your simulation seems to be trapped in a sub-optimal configuration you can raise the temperature for a bit to try to shake it out. |
| Move step | The size of the random moves that will be generated. |
| Angle step | The size of the random rotations that will be generated (radians). |
| Per second | The number of iterations that will be attempted in one second. The actual number may be smaller if your computer isn't up to it. |
To find good packing solutions:
(c) John Whitehouse 2014 - 2023