Drydock Solver

Pack the block. Beat the clock. We built Drydock Solver for the Optimization Grand Challenge 2026 — an anytime, AI-guided engine that couples 2D spatial packing with block scheduling for shipyard erection bays.

Inspiration

We watched shipyard planners sketch block footprints on whiteboards and slide sticky notes along a timeline — knowing every percent of bay utilization compounds into days on the critical path. OGC 2026 framed that exact pain as the Grand Shipyard Puzzle, and we wanted software that respects the clock the way planners do: good enough now, better if you have another minute.

What it does

Drydock Solver accepts yard dimensions, block geometry, durations, and release dates, then returns a non-overlapping spatial schedule. It never submits empty: a constructive heuristic lands first, ALNS improves until timeout, and the UI streams SVG layouts plus utilization/makespan curves so judges see progress live.

How we built it

We put the optimizer in Rust for speed and wired a hardened rectangle feasibility layer under ALNS destroy-repair operators. A UCB1 bandit picks operators per instance. Next.js serves the demo: SSE from the solver binary, Recharts for metrics, Tailwind + shadcn for polish. OR-Tools is optional via a Settings key for sub-region exact repair.

Challenges

Coupling space and time means a placement valid at t=0 may collide at t=10 when another block arrives — we centralized that in one feasibility API so every operator stays trustworthy. Streaming partial solutions from a child process without blocking Node required careful JSONL polling and a TypeScript fallback path for demo resilience.

Accomplishments

We shipped a complete anytime loop — constructive, ALNS, bandit, visualizer, benchmark harness, and one-command Docker — that improves seeded instances measurably within seconds and documents a credible path to jagua-rs irregular geometry and competition adapters.

What we learned

Decoupling feasibility from search let us iterate on ALNS operators fast without geometry whack-a-mole. The leaderboard rewards time-budgeted improvement, not perfection on tiny cases — metaheuristics plus engineering beat hoping CP-SAT finishes on large yards.

What's next

Plug in the official June 15 OGC JSON schema, integrate jagua-rs for irregular polygons, add gated CP-SAT repair on evicted pockets, train a lightweight PPO operator policy on logged ALNS traces, and harden WASM deployment for browser-only judging environments.

Built with

Rust, Next.js 14, TypeScript, Tailwind CSS, shadcn/ui, Recharts, ALNS, Docker, Python3

Links

Participant

Aryan Choudhary

Built With

Share this project:

Updates