Young Masters Competition (Konkurs Młodych Mistrzów) at Forum Teleinformatyki 2026. The team was also invited to present the project at the Ministry of Digital Affairs.
Browser-based 3D visualization of industrial CT scans, powered by a scalable backend. Built by a team of four together with the National Centre for Nuclear Research (NCBJ).
- Challenge
- Industrial computed tomography produces dense volumetric datasets used in non-destructive testing (NDT) and research. Exploring them interactively usually requires specialised desktop software.
- Approach
- Raw HDF5 scans are processed asynchronously by Python workers and stored in S3-compatible object storage. A FastAPI service only authorises access with presigned URLs, so the Flutter web client with Three.js and WebGL pulls slices, meshes and volumes straight from storage. All of it runs in Docker.
- Engineering highlights
-
- Ingest pipeline for HDF5 scans: downsampling to cap memory, Multi-Otsu segmentation, Marching Cubes and mesh decimation produce browser-sized 3D meshes
- Heavy processing runs in background workers, so the API stays responsive
- Object storage (MinIO / S3) with presigned URLs: the browser reads data directly, the API only authorises
- Interactive client for NDT inspection: three-plane 2D slices, 3D meshes with clipping and capping, WebGL volume rendering
- My focus
- Backend architecture, API design, containerised delivery and DevOps, including the hosting setup.
- Python
- FastAPI
- Docker
- MinIO (S3)
- Flutter Web
- Three.js
- WebGL
Team: Patryk Sadowski, Michał Szaumkesel, Herbert Zaranek, Kacper Białas
Supervisors: dr Tomasz Piłka (UAM, Faculty of Mathematics and Computer Science), dr Konrad Klimaszewski (NCBJ)
- HDF5 scansIndustrial CT data from NCBJ
- WorkersPython · NumPy · Marching Cubes, Multi-Otsu, mesh decimation
- Object storageMinIO (S3): PNG slices, GLB / STL meshes
- APIFastAPI · presigned URLs · Docker
- Browser clientFlutter Web · Three.js · WebGL
volume rendering