Powrót do strony głównej

3D-pakowacz ładunków za 0,3 s z LIFO

Usługa na Django realizuje 3D-pakowanie ładunków z algorytmem MaxRects, uwzględniając LIFO i fizykę. Przetwarza 400 SKU za 0,3 sekundy z wizualizacją Three.js. Nadaje się dla handlu detalicznego z integracją Excel.

Błyskawiczne 3D-pakowanie floty: 0,3 s na 400 pudeł
Advertisement 728x90

3D-pakowanie ładunków w 0,3 sekundy: algorytm MaxRects z LIFO i pełną rotacją

Serwis internetowy oparty na Django rozwiązuje problem 3D-pakowania ładunków dla floty składającej się z naczep typu euro, kontenerów i pojazdów małotonażowych. Algorytm przetwarza ponad 400 pozycji SKU w 0,19–0,3 sekundy, uwzględniając LIFO, 90% powierzchni nośnej i obrót w 6 osiach. Interfejs z Three.js wizualizuje wyniki w czasie rzeczywistym, obsługując wczytywanie z Excela i ręczne wprowadzanie danych.

Ewolucja od bota Telegram do pełnoprawnej platformy

Projekt rozpoczął się od silników optymalizacyjnych: 0,4 sekundy na problem komiwojażera dla 10 000 punktów, mniej niż 1 sekunda na pakowanie skomplikowanych kształtów, takich jak trójlistniki. Bot Telegram przyjmował JSON z wymiarami i zwracał współrzędne, ale dla handlu detalicznego potrzebny był interfejs internetowy.

Kluczowe wymagania dla produktu:

Google AdInline article slot
  • Dwupanelowy interfejs dla floty i ładunków.
  • Parsowanie Excela z walidacją.
  • Interaktywna wizualizacja 3D w Three.js.

Stos technologiczny: Python/Django, PostgreSQL w Dockerze, frontend Three.js. Priorytetem jest szybkość i praktyczność: LIFO ważniejsze niż idealna gęstość.

Algorytm 3D MaxRects: fizyka zamiast matematyki

Zmodyfikowany 3D MaxRects pracuje z listą wolnych prostopadłościanów w nadwoziu, unikając pełnego przeglądu współrzędnych. Wektoryzacja zapewnia wydajność 0,19–0,3 sekundy dla floty z 8 pojazdów.

Parametry fizycznej realizowalności:

Google AdInline article slot
  • Pełna rotacja (6 projekcji): Długie ładunki (2400 mm) próbują ustawienia pionowego lub na krawędzi, jeśli pozwalają na to gabaryty.
  • Powierzchnia nośna 90%: Pudełka opierają się na dolnej warstwie na co najmniej 90% powierzchni, wykluczając wiszące rozwiązania.
  • Kolejność LIFO: Uwzględniany jest kolejność rozładunku dla rzeczywistych magazynów.

Porównanie z rynkiem: konkurenci poświęcają minuty lub godziny, często ignorując LIFO i fizykę.

Architektura: Django, Docker i skalowalność

Backend na Django + PostgreSQL w kontenerach Docker. Nginx + Gunicorn (3 workery) zapewnia odporność na awarie. HTTPS na porcie 443 omija korporacyjne zapory ogniowe. Średnie zużycie pamięci — 29% na serwerze z 8 GB przy 400 SKU.

Autoryzacja przez Django Auth: izolacja danych według użytkowników, historia obliczeń w ORM. Każdy widzi tylko swoją flotę i ładunki.

Google AdInline article slot

Interfejs: elastyczne wprowadzanie i precyzyjne dostosowanie

Dwupanelowy układ dzieli flotę (po prawej) i ładunek (po lewej). Flota: wymiary, ładowność, ilość. Ładunek: rozmiary, waga, ilość, parametry (LIFO, StackLimit).

Opcje wprowadzania:

  • Ręczne formularze do korekt.
  • Zbiorcze wczytywanie Excela z walidacją.

Pola wyboru optymalizacji:

  • Przechylenie (Tilt): Zezwolenie/zakaz obrotu dla ładunków kruchych.
  • Optymalizacja floty: Priorytet wypełniania dużych pojazdów dla minimalizacji kursów.

Wizualizacja i eksport wyników

Obliczenia w 0,19–0,3 sekundy generują scenę 3D w Three.js. Kodowanie kolorami według SKU, interaktywny obrót, sprawdzanie LIFO i podparcia. Eksport: raporty PDF lub Excel ze współrzędnymi X, Y, Z.

Wdrożenie dla produkcji

Gunicorn z 3 workerami + Nginx reverse proxy. Docker zapewnia autonomię. Testowanie: 98% pokrycia, stabilność pod obciążeniem kilku użytkowników.

Co jest ważne

  • Szybkość 0,19–0,3 sekundy dla 400 SKU i 8 pojazdów.
  • Ograniczenia fizyczne: LIFO, 90% podparcia, 6 osi rotacji.
  • Interfejs dla logistyków: Excel, wizualizacja 3D, izolacja danych.
  • Stos produkcyjny: Django, Docker, Nginx/Gunicorn.
  • Skalowalność: niskie zużycie zasobów.

— Editorial Team

Advertisement 728x90

Czytaj dalej