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
- Live demo: http://20.212.111.7:10018
- GitHub: https://github.com/aryancta/drydock-solver
Participant
Aryan Choudhary
Built With
- css
- dockerfile
- javascript
- python
- rust
- typescript
Log in or sign up for Devpost to join the conversation.