Inspiration
One team member spent last summer interning in a hospital lab, where he worked extensively with 3D Slicer. Because Slicer is open source and used in real medical-imaging workflows, it gave us reliable CT and segmentation tools while still allowing us to completely redesign the interface through an extension. We were also motivated to create an efficient CPU-based solution instead of relying on energy-intensive GPU hardware, making the system more practical for ordinary lab computers.
What it does
BranchForge detects arteries that branch directly from the abdominal aorta in CT angiography scans. Given a CT volume and an aorta mask, it identifies each branch opening and estimates its origin, direction, radius and a point five millimetres along the vessel. Results can be reviewed in 3D Slicer, exported as JSON or NIfTI, and optionally viewed on a phone through QR-based AR sharing.
How we built it
We created a hybrid pipeline using Python, SimpleITK, classical image processing, graph search and lightweight 3D neural networks. It learns the scan’s contrast, searches for connected blood-like regions, traces possible vessels and checks each candidate using geometry, CT cross-sections and neural evidence. We then built BranchForge as a custom 3D Slicer extension with linked 2D/3D views, readable results and export tools.
Challenges we ran into
The biggest challenge was distinguishing real arteries from nearby bright tissue and preventing duplicate or indirect branches. Medical-image coordinates, varying voxel sizes and unusual NIfTI files also required careful handling. We additionally solved Windows and macOS compatibility issues, including mismatched processor architectures between Slicer and Python dependencies.
Accomplishments that we're proud of
We are very proud of both our algorithm and the perseverance it took to build it. None of us had much prior experience with machine learning, so we had to dig deep into research papers, tutorials, and other resources to understand the problem and develop our approach. Despite the learning curve, our exported predictions matched 17 of 19 draft-labelled branches across five development cases, achieving 94.4% precision and 89.5% recall. We are equally proud of the final results and of everything we learned throughout the process.
What we learned
We learned that finding the correct branches and locating them accurately are two different challenges. We also need to understand why the algorithm sometimes misses real branches or detects fake ones. Most importantly, just because the code passes tests and works well on the scans we developed it with does not mean it will perform just as well on completely new patient scans.
What's next for Branchforge
Our next priority is independent evaluation using expert-reviewed annotations. We want to reduce false positives while preserving sensitivity to small branches, and strengthen handling of difficult geometry and ambiguous connections.
We also plan to refine the review experience so users can understand why each branch was accepted, rejected, or flagged for closer inspection.
Log in or sign up for Devpost to join the conversation.