Konkurs Młodych Mistrzów podczas Forum Teleinformatyki 2026. Zespół został także zaproszony do zaprezentowania projektu w Ministerstwie Cyfryzacji.
Przeglądarkowa wizualizacja 3D skanów przemysłowej tomografii komputerowej, oparta na skalowalnym backendzie. Zbudowana przez czteroosobowy zespół we współpracy z Narodowym Centrum Badań Jądrowych (NCBJ).
- Wyzwanie
- Przemysłowa tomografia komputerowa generuje gęste zbiory danych wolumetrycznych, wykorzystywane w badaniach nieniszczących (NDT) i naukowych. Interaktywna eksploracja takich danych zwykle wymaga specjalistycznego oprogramowania desktopowego.
- Rozwiązanie
- Surowe skany HDF5 są przetwarzane asynchronicznie przez workery w Pythonie i trafiają do magazynu obiektów kompatybilnego z S3. Usługa FastAPI jedynie autoryzuje dostęp przez presigned URL-e, więc klient webowy we Flutterze z Three.js i WebGL pobiera przekroje, siatki i wolumeny prosto z magazynu. Całość działa w Dockerze.
- Kluczowe aspekty techniczne
-
- Potok przetwarzania skanów HDF5: downsampling ograniczający pamięć, segmentacja Multi-Otsu, Marching Cubes i decymacja siatki dają siatki 3D dopasowane do przeglądarki
- Ciężkie przetwarzanie działa w workerach w tle, więc API pozostaje responsywne
- Magazyn obiektów (MinIO / S3) z presigned URL-ami: przeglądarka czyta dane bezpośrednio, API tylko autoryzuje
- Interaktywny klient do inspekcji NDT: przekroje 2D w trzech płaszczyznach, siatki 3D z cięciem i cappingiem, wolumetryczny rendering w WebGL
- Mój obszar
- Architektura backendu, projektowanie API, konteneryzacja i DevOps, w tym przygotowanie hostingu.
- Python
- FastAPI
- Docker
- MinIO (S3)
- Flutter Web
- Three.js
- WebGL
Zespół: Patryk Sadowski, Michał Szaumkesel, Herbert Zaranek, Kacper Białas
Opiekunowie: dr Tomasz Piłka (UAM, Wydział Matematyki i Informatyki), dr Konrad Klimaszewski (NCBJ)
- Skany HDF5Dane z tomografii przemysłowej z NCBJ
- WorkeryPython · NumPy · Marching Cubes, Multi-Otsu, decymacja siatki
- Magazyn obiektówMinIO (S3): przekroje PNG, siatki GLB / STL
- APIFastAPI · presigned URL-e · Docker
- Klient w przeglądarceFlutter Web · Three.js · WebGL
wolumetryczny rendering