Back to Projects

OptaPlanner 3D Bin Packing Solver

Java, OptaPlanner
Published Jan 15, 2026 · Last edited Jan 15, 2026

Project Overview

Built a dedicated OptaPlanner stack for industrial 3D bin packing so fulfillment teams can auto-generate container layouts instead of hand-curating placements. The workload ingests standard benchmark manifests, normalizes part metadata, and produces collision-safe container layouts that already respect gravity and stacking constraints. Stakeholders inspect any run through a lightweight OBJ exporter, keeping sensitive operational data out of shared viewers.

Solver Architecture

  • Added spatial indexes and specialized data structures that answer “first-fit” queries without scanning every candidate, which keeps the score director responsive on large search spaces.
  • Injected a purpose-built construction heuristic so the first feasible layout honors gravity, stacking constraints, and support-aware ordering before the local search begins.
  • Tuned the constraint provider to balance surface coverage, unused volume, and soft penalties (rotations, unsupported overhangs, handling preferences).

Custom Move Set

  • Authored specialized move families with probability weights so OptaPlanner focuses on high-value neighborhoods instead of exploring every combinatorial permutation the default moves would generate.
  • Added configurable “items to ruin” limits inside the large-neighborhood move so deeper reshuffles happen without restarting the entire search.
  • Layered tabu-based acceptors and tuned foragers so diversification kicks in only when improvements plateau, shortening convergence time dramatically.

Impact

  • Handles dense multi-container workloads that previously stalled default OptaPlanner moves because of the exploding search space.
  • Produces placements that can be reviewed visually via OBJ exports, speeding up validation with operations teams.

Technologies & Concepts