Inspiration

Every patient’s arteries branch differently. We wanted to make those differences easier to explore, using the aorta as a starting point.

What it does

BranchSeed takes a CT scan and an aorta mask, detects potential daughter arteries, and traces their initial paths. It estimates each branch’s origin, a seed point 5 mm along its path, radius, and direction.

An interactive viewer combines CT slices, vessel overlays, and 3D geometry. Users can inspect branches, adjust clipping planes, and export results as JSON.

How we built it

We used Python, SimpleITK, NumPy, SciPy, and scikit-image for preprocessing, detection, tracing, and geometry. A Starlette API connects the pipeline to a React and TypeScript frontend, with NiiVue handling medical-image visualization.

Challenges we ran into

Separating small branches from nearby bright structures, avoiding false detections at cropped boundaries, and preserving physical coordinates across processing and visualization. We also worked through WebGL initialization and camera-control conflicts.

Accomplishments that we're proud of

We connected the full pipeline to an interactive viewer, preserved measurements in physical millimetres, and made algorithm results inspectable alongside the original CT intensities.

What we learned

Detection alone is not enough. Coordinate handling, clear visualization, and checking predictions against source images are essential. A convincing overlay does not guarantee an accurate result.

What's next for BranchSeed

Validate against reference annotations, improve small-branch detection, reduce false positives, and refine tracing and radius estimates. We also want smoother 3D surfaces and better tools for reviewing missed branches.

BranchSeed is a research prototype, not a clinically validated tool.

Built With

Share this project:

Updates