### Packing Algorithm

Added support for rectangular objects in a dynamic packing algorithm using python in Rhino3D.

What is a packing algorithm?

A packing algorithm is a method for arranging objects efficiently within a given area, such as a container or a sheet of material, to minimize waste and maximize space utilization. Packing algorithms can be used in a variety of industries, such as shipping, manufacturing, and logistics, to optimize the use of resources and reduce costs.

There are several different packing algorithms that can be used, depending on the specific requirements of the problem. Some common types include:

Greedy algorithms: These algorithms work by selecting the largest object first and then fitting smaller objects around it. This can be an effective method for simple packing problems, but may not always result in the most efficient use of space.

Recursive algorithms: These algorithms work by breaking the problem down into smaller sub-problems and solving them recursively. For example, a sheet of material could be divided into smaller rectangles, and each of these rectangles could then be packed using a greedy algorithm.

Genetic algorithms: These algorithms use a simulated evolutionary process to find an optimal packing solution. They work by randomly generating a population of possible solutions and then selecting the fittest individuals for the next generation, based on factors such as space utilization and material waste.

Dynamic programming algorithms: These algorithms use a dynamic programming approach to solve the packing problem. They work by breaking the problem down into smaller sub-problems and then combining the solutions to these sub-problems to find an optimal solution to the larger problem.

There are also many variations and extensions of these basic packing algorithms, depending on the specific requirements of the problem. Some examples include multi-objective packing algorithms, which optimize for multiple criteria such as space utilization and material waste, and irregular shape packing algorithms, which are designed to pack irregularly shaped objects efficiently.