Organ Disease Progression Visualizer: Imaging-Driven 3D Lung Model
A deterministic pipeline that turns chest CT images into a live, signal-driven 3D lung visualisation.
- Role
- Technical Lead, full system implementation (COMP8851 team project)
- Stack
- Python, OpenCV, PyVista, Trimesh, NumPy
- Scope
- 8 clinical CT cases · scored 0.218–0.809

Can you tell what stage a lung disease is at just from a CT scan? Most people can't, so as technical lead on this Macquarie COMP8851 project I built a system that can, and that shows you exactly why. It's a deterministic Python pipeline that processes real chest CT images and maps quantitative signals directly onto an anatomical 3D lung mesh, with interactive case switching in the viewer.
From each scan the pipeline extracts three numbers: severity (mean pixel intensity), texture (standard deviation), and HDR, the proportion of pixels above a density threshold, standing in for dense lesion and fibrosis coverage. Those combine into one progression score: 0.65 × Severity + 0.20 × Texture + 0.15 × HDR. Every number on screen came from a pixel in the CT image.
That score then drives the 3D model: colour, lesion spread, surface roughness, and structural deformation all respond to it. I ran 8 clinical cases through the system, spanning 0.218 (near-healthy) through to 0.809 (advanced fibrosis), so the reference lung visibly deforms from smooth and light to darkened, volume-lost, and fibrotic as the disease advances.
Because this is a medical context, traceability was non-negotiable. Every run writes a JSON audit trail logging each pipeline decision: the extracted values, the weighting calculation, the disease-staging transition, and the exact count of affected mesh vertices. Eight cases, eight audit logs, every decision traceable back to the input.




