Inspiration
Cardiovascular disease remains the leading cause of global mortality. While modern clinical workflows generate rich pre-procedural data—from standard ECGs to lab biomarkers—traditional predictive outputs are often delivered as flat numerical probabilities or static risk scores. For clinicians and patients alike, these numbers lack direct spatial intuition. We were inspired to build CardioRisk 3D to bridge this gap: uniting multi-target machine learning with interactive 3D anatomical visualization so that predicted ischemia and stenosis risk are intuitively understood at a glance.
What it does
- Multimodal Risk Estimation: Predicts overall Coronary Artery Disease (CAD) risk probability alongside localized stenosis risk across three primary coronary arteries: Left Anterior Descending (LAD), Left Circumflex (LCX), and Right Coronary Artery (RCA).
- Interactive 3D Anatomical Heart Viewer: Loads a WebGL/Three.js anatomical heart mesh with 360-degree rotation, zoom, and vessel focus modes. Coronary artery meshes dynamically adapt their emissive color based on calculated stenosis probabilities (<0.40 Normal/Green, 0.40–0.69 Moderate/Amber, >=0.70 Severe/Pulsing Red).
- Explainable AI (SHAP): Features an integrated TreeExplainer attribution panel highlighting the top clinical drivers (e.g., ST-elevation, RWMA, EF, age, cholesterol) elevating or reducing patient risk.
- Decision Support Narrative: Automatically generates clinical summary text tailored to the predicted risk profile, paired with a permanent clinical safety disclaimer banner.
How we built it
- Machine Learning Pipeline: Trained on the benchmark Z-Alizadeh Sani clinical dataset (303 patient records). We developed an anti-leakage ML pipeline using XGBoost multi-output classification, strictly dropping post-angiography target columns (
LAD,LCX,RCA,Cath,CAD) from the feature set $X$. - Explainability: Integrated SHAP (
shap.TreeExplainer) to compute localized biomarker attributions for real-time inference. - Backend Architecture: Built with FastAPI, exposing clean
/predictendpoints that return structured CAD risks, vessel probabilities, and SHAP vectors. - Frontend & 3D Rendering: Developed using React, Three.js, and Tailwind CSS with custom shader/material color-mapping for interactive vessel illumination.
Challenges we ran into
- Preventing Target Leakage: Ensuring no post-procedural angiography findings slipped into training features required strict schema audits and rigorous data separation.
- Dynamic 3D Vessel Mesh Mapping: Accurately identifying, isolating, and dynamically binding independent emissive materials to LAD, LCX, and RCA vessel segments within the 3D heart geometry without degrading rendering performance.
- Synchronizing ML Latency with UI Animation: Ensuring the SHAP attribution calculation and 3D mesh updates responded smoothly without freezing the browser thread.
Accomplishments that we're proud of
- Developing an end-to-end, functional prototype connecting clinical ML predictions directly to real-time 3D geometry manipulation.
- Maintaining rigorous clinical integrity by adhering strictly to zero-leakage training standards and displaying transparent explainability metrics alongside a safety disclaimer.
- Providing 1-click clinical presets for immediate testing and real-time responsiveness.
What we learned
- How to structure multi-output tabular prediction models in sensitive clinical contexts where vessel-level granularity is critical.
- Techniques for handling TreeExplainer attributions inside low-latency REST APIs.
- The power of spatial computing and Three.js visualization in turning abstract biomedical statistics into actionable clinical intuition.
What's next for CardioRisk 3D
- Incorporating direct DICOM / CT coronary angiography mesh generation for patient-specific personalized 3D modeling.
- Expanding multi-modal support to process raw 12-lead ECG waveform signals alongside clinical tabular data.
- Conducting usability validation studies with cardiologists and medical educators to refine the decision-support narrative.
Built With
- fastapi
- javascript
- numpy
- pandas
- python
- react
- scikit-learn
- shap
- tailwind-css
- three.js
- webgl
- xgboost
Log in or sign up for Devpost to join the conversation.