Cartonization · cubing

Know which box to use, and where every item goes

A 3D packing service for your warehouse software. Your back end sends the order lines and the box sizes you stock; it returns the containers to use and the position of every unit. Your page shows the result in 3D.

The 3D view of a mixed pallet, with the summary and the containers list

One engine

Every cubing level is units into containers

Cartonization

Order lines into boxes

The items of an order go into the box types you stock, and each box is right-sized down to the smallest one that still holds its contents.

Palletization

Cartons onto pallets

The pallet's height is the stack height and its maximum weight the load limit, with a minimum support ratio for every carton.

Rack bins

Goods into bin locations

Each bin location is a container with a quantity: how many of that bin exist.

Algorithms

Nine algorithms, ranked for you

Pick one algorithm, or run them all and let the service return the best result, with every algorithm's ranking. Constructive packers (extreme points, largest area fit first, deepest bottom left fill, corner points, empty maximal spaces, guillotine, wall building) run alongside a genetic algorithm and simulated annealing.

  • Fewest unpacked units always come first
  • Then your objective: fill rate (the default), fewest containers, lowest cost or weight utilization
  • Several box types, stock limits per type, and a cost per box
  • Time budgets per request; units that don't fit are listed with a reason, not lost
The algorithm ranking and the containers list of an order, including a hazmat box

Multi-level

Items into cartons into pallets, in one request

Up to three levels in one call. Every packed container becomes one unit of the next level, with its outer dimensions, gross weight and hazard class.

Level 1: a carton with books, cables and mugs; level 2: the cartons stacked on a pallet

Constraints

Packings your warehouse can actually build

One constraint checker is shared by every algorithm, and every algorithm's output is tested against an independent solution validator.

Hazmat

Hazmat items go only into hazmat containers certified for their class, one hazard class per container.

Support and stacking

A minimum support ratio, no floating items, non-stackable items, and an optional heavy-on-bottom rule.

Crush limits

The most weight an item may carry, passed down through the stack and split by contact area.

Overhang

Pallet loads may extend a set distance past each edge; fill rate is measured against that envelope.

Rotation

Per item: any rotation, upright only (the height stays vertical) or none.

Weight

Maximum weight per container, tare weights, and weight utilization in the results.

Integration

A POST from your back end, four elements in your page

From your back end

curl -X POST https://cubing.your-company.example/api/pack \
  -H 'Content-Type: application/json' \
  -d '{"containers": […], "items": […],
       "includeAllSolutions": true}'

Your back end maps SKUs through your item master, adds your box master and calls POST /api/pack. Client examples for Java (plus a Spring Boot controller), TypeScript, Python, C# and curl.

In your front end

<script type="module"
  src="https://cubing.your-company.example/widget/1.0.0/cartonization-components.js"></script>
<cartonization-3d-view group="pack"></cartonization-3d-view>
<cartonization-containers group="pack"></cartonization-containers>

Summary, Algorithm ranking, Containers and 3D View display the response your back end passes on; they never call the API. Components in one group share the selection. Typed, themable with CSS tokens, works under a strict CSP.

Working samples

  • Back ends in Node and Java 17 (JDK only) with a POST /api/cartonize endpoint
  • Front ends in plain HTML, Angular, React and Vue: an order form, a Cartonize button and the components
  • The samples are built and driven in headless Chrome by the product's own checks

Documentation on every install

  • Calling the API: errors, retries, timeouts and complete clients
  • Embedding: loading the script with SRI, groups, events, theming, framework guides
  • Reference: every request and response field and the limits

Deployment and licensing

Deployment

  • Self-hosted: runs in your environment or your customer's
  • Each request is solved in a worker thread, with a limit on concurrent requests and a timeout
  • Typical orders and pallets solve in under a second plus the time budget you give the metaheuristics
  • The API has no authentication: run it inside your network

Licensing

  • Offline, signed license key; nothing phones home
  • Evaluation license: results are marked TRIAL in the components
  • No download yet: ask us for an evaluation

How licensing works

Pack an order in the live demo

The live demo runs the real service. Load the cartonization, pallet or rack bins example and pack it with every algorithm.