BENCHMARKS / MEASURED, NOT ASSERTED

Benchmarks: quality against six other engines, on datasets anyone can rerun.

From the pinned comparator sweep in the release artifacts. Utilisation and packed fraction are recomputed by our own validator from the placements it accepted, so no engine's self-report is used.

3OR-Library profiles
7engines compared
11instances measured

WHEN THIS WAS MEASURED · The sweep on this page ran against the 1.3.0 release on 2026-09-15, on a request set pinned on 2026-08-05. The raw artefacts per run are kept beside the baseline in benchmarks/results/COMPARATOR-BASELINE-1.3.0.md.

What these numbers mean

Packed fraction
The share of the requested items that actually got placed.
Volume utilisation
The share of the used containers' volume actually occupied by what was placed.
Pareto-optimal
No competitor in this dataset beat it on both axes at once. Not the same as winning outright - a competitor can share the frontier on the same instance.
Dominated
At least one competitor in this dataset matched or beat it on both axes at once.
What volume utilisation means, in depth
orlib-thpack-1

3 item types, 5 instances

orlib-thpack-1 - 3 item types
EngineVolume utilisationPacked fractionVerdict
packvium86.06%90.50%Pareto-optimal
packingsolver89.02%84.14%Pareto-optimal
boxpacker81.84%73.84%dominated
3D-bin-packing80.50%67.32%dominated
3dbinpacking67.40%80.90%dominated
xflp56.68%63.16%dominated
3d-bin-container-packing——not applicable - all-or-nothing by construction: returns nothing rather than a best effort
orlib-thpack-5

12 item types, 3 instances

orlib-thpack-5 - 12 item types
EngineVolume utilisationPacked fractionVerdict
packvium83.88%89.19%Pareto-optimal
packingsolver85.44%87.27%Pareto-optimal
boxpacker79.87%75.19%dominated
xflp69.73%72.02%dominated
3dbinpacking53.29%75.61%dominated
3D-bin-packing53.50%49.07%disqualified - rejected by our validator on one instance: collision
3d-bin-container-packing——not applicable - all-or-nothing by construction: returns nothing rather than a best effort
orlib-thpack-7

20 item types, 3 instances

orlib-thpack-7 - 20 item types
EngineVolume utilisationPacked fractionVerdict
packvium82.47%87.54%Pareto-optimal
packingsolver82.97%78.58%Pareto-optimal
3D-bin-packing83.48%75.41%Pareto-optimal
boxpacker74.28%67.25%dominated
xflp67.09%74.71%dominated
3dbinpacking50.83%72.18%dominated
3d-bin-container-packing——not applicable - all-or-nothing by construction: returns nothing rather than a best effort

COMPARATOR / ONE PROFILE, SEVEN ENGINES

Volume utilisation against packed fraction, on br1.

Volume utilisation against packed fraction on the pinned OR-Library profile. Both axes are recomputed from the placements our validator accepted, and nothing is blended into a single score.

  • packvium86.06% · 90.50%Pareto-optimal
  • packingsolver89.02% · 84.14%Pareto-optimal
  • boxpacker81.84% · 73.84%dominated
  • 3D-bin-packing80.50% · 67.32%dominated
  • 3dbinpacking67.40% · 80.90%dominated
  • xflp56.68% · 63.16%dominated
  • 3d-bin-container-packing— · —not applicableall-or-nothing by construction: returns nothing rather than a best effort
HOW TO READ THIS

Two axes, and no blended score.

An engine is Pareto-optimal when nothing beat it on every axis at once. Runtime is recorded per run but is deliberately not an axis: one competitor only builds for linux/amd64 and runs under emulation here, so ranking that mixture would compare host arrangements rather than engines. Nothing on this page is a speed claim, and none should be read out of it.

See it head-to-head, one competitor at a time

What this benchmark does not prove

  • Not a speed ranking - runtime is recorded, not scored (see "How to read this" above).
  • Not proof of global optimality - bin packing is NP-hard; nothing here is a certified-optimal claim.
  • Not every real-world workload - these are fixed OR-Library profiles, not a general coverage claim.
  • Not a claim that Packvium wins every instance outright - Pareto-optimal means not dominated, and a competitor can share the same frontier.