560 W 218th St Apt 3C New York, NY 10034
home resume projects movies ux/ui bagel code writing
projects > cpacs >
While at Boeing I led the development team creating a software tool called CPACS that manifested and laid out all the cargo going into the Space Shuttle for resupply flights to the International Space Station.  This was very advanced software for the time, tackling the NP-hard 3D bin packing problem.  We delivered CPACS to NASA under budget and ahead of schedule.
CPACS is a software application written to support cargo planning and analysis for the International Space Station.  The Space Station will be periodically resupplied using NASA's fleet of space shuttles.  Each shuttle will transport cargo carriers to and from the station, packed with experiment payloads, crew supplies, spare parts, and other items essential to maintaining station operations.  CPACS will help produce near-optimal configurations for these carriers, maximizing the efficiency of this complex logistics system. CPACS is a comprehensive, multi-user planning and automation tool designed to ease this complex load planning task.  CPACS provides its users with two major features: an integrated set of graphical user interfaces designed to support the development, analysis, and integration of load plans, and a set of fully automated optimization algorithms which "pack" cargo carriers and perform other load planning tasks. The Configuration Editor supports the main functionality of CPACS -- building load plans. A load plan specifies a position for each item on each packing level. The screen below shows the stowage tray packing level. On the right we see the trays we are packing and on the left are some as yet unpositioned cargo items. CPACS draws a cargo item as a black box while the user positions it. He/she can move the item around within the tray using the mouse. Note how CPACS redraws the tray views and the weight scale when the new cargo item is added. Here's a detailed look at a stowage tray. The cargo items shown in the top-down and perspective views are listed to the right by part ID. This is the tray's stowage list. The color of a cargo item indicates its customer. Item number 1, CPACS-PRESS-CI-1462, is yellow -- so it belongs to the same customer we saw in the Zone Editor example. We can see by the weight scale in the lower left-hand corner, that we are very near the mass limit for this tray. The scale shows 56.31 lbs as the sum of the weight of the tray itself, the cargo items, and the weight of the foam that will surround the cargo. These are examples of trays that CPACS has packed automatically. For small problems like these, CPACS can produce a pack in just a few seconds. The automated algorithms try the cargo items in various orders and orientations much as a person would. The user can adjust the algorithms so that they will try more combinations. This makes them run longer, but they may come up with slightly better results. Whether you pack automatically or manually, CPACS is always keeping track of several packing constraints for you.
CPACS tracks a wide variety of packing constraints as the configuration is being developed. Here are some examples ...
o Weight limits
  No container can be packed beyond its loading limit.
o Center of gravity
  Containers also have center of gravity requirements. CPACS will insure that the CG stays within a given range.
o Mass allocations
  A customer's packed cargo cannot weigh more than their mass allocation.
o Occlusion
  Occlusion means that two items are occupying the same physical space at the same time! This is not allowed.
o Orientation
  Items can have required orientations. CPACS will inforce this.
o Zones
  Customers must keep their cargo within the zones defined in the Zone Editor.
Once the trays are packed to our liking, we can move on to the next level -- the stowage rack. This interface is analogous to the tray level. The containers, racks this time, are on the right and the unpositioned containees, trays, are on the left. This window offers more mass properties detail for the stowage rack. CPACS always keeps track of weights, centers of gravity, and moments and products of inertia. It's important to remember that these values represent the integrated stowage rack, including the trays and cargo items within them. The Mini-Pressurized Logistics Element, or MPLM, is a large cylindrical module that sits in the orbiter's payload bay. It accommodates various kinds of racks including the stowage rack we've been working on. Again, the process is similar -- just on a larger scale. And that pretty much wraps it up! This is the payload bay of the Space Shuttle orbiter with the MPLM, racks, trays, and cargo items we've been packing. The final product of this process is a complete configuration for an entire flight -- including pictures of each container and its cargo.