This page will soon contain more detailed descriptions of the algorithm for developers and curious users.

What is autoPACK?
autoPack is an open-source general packing algorithm that positions 3D objects on surfaces and into/around volumes with zero to minimal overlap depending on the method used and the accuracy vs speed parameters selected by the user. It provides a general architecture to allow various packing algorithms to interoperate efficiently in the same model. autoPack can incorporate any packing solution into its modular python program architecture, but is currently optimized to provide a novel solution to the "loose packing problem" which places objects of discrete size into place (compared to advancing front, popcorn, or other fast tight-packing solutions that allow objects to scale to arbitrary masses.)


What is cellPACK?
cellPack is a specialized version of autoPack designed to pack biological components together. The current version is optimized to pack molecules into cells with biologically relevant interactions to populate massive cell models with atomic or near-atomic details. Components of the algorithm pack transmembrane proteins and lipids into bilayers, globular molecules into compartments defined by the bilayers (or as exteriors), and fibrous components like microtubules, actin, and DNA.

The goal of cellPACK is to automatically create a 3D structural representation from disparate data sources. In general he quality of the generated models is gauged by whether the distribution of the ingredients conforms to the statistics of the data input. In automatically generating many models consistent with the input data one may see other emergent patterns not explicitly given in the input.

Who uses autoPACK and cellPACK?
From artists to engineers–Anyone who needs to fill space with any recipe of any number of discrete objects of arbitrary shape. Future implementations will incorporate tight packing solutions (knapsack problem, Kepler conjecture, popcorn packing, advancing front, etc.) and any programmer can contribute to the modular open-source architecture. The simplest way to interface with autoPACK/cellPACK is to visualize models that other users have generated. autoPACK and cellPACK produce a common autoPACK Result File (.apr) filetype that a growing number of applications can read and efficiently construct scenes. As of March 15, 2013, the following software packages can read and visualize .apr files:
Through uPy: DejaVu's PMV, Maxon Cinema 4D, Blender, and Autodesk Maya, Autodesk 3D Studio Max, Autodesk Soft Image
Through its own parser: UCSF Chimera


autoPACK positions 3D geometries into, onto, and around volumes with minimal to zero overlap. autoPack mixes several packing approaches and procedural growth algorithms. autoPack can thus place objects with forces and constraints to allow a high degree of control ranging from completely random distributions to highly ordered structures. 

cellPACK is a specialization of autoPack that generates probabilistic 3D models of large sections of cells that can contain dozens to trillions+ of molecules. It can position these molecules to recapitulate observed data where available and can further optimize the molecular interactions on a local level as each molecule is placed into a mesoscale model. 

By August 2012, this website will provide access to many autoPack and cellPack models, community consensus tools for iteratively improving models, as well as the autoPack code. In the mean time, this site contains a few examples of the code as well as some brief and vague descriptions of the underlying algorithms... please check back often for updates.