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.
One engine
Every cubing level is units into containers
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.
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.
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
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.
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/cartonizeendpoint - 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
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.