A system comprising: at least one processor; and at least one memory storing instructions which, when executed by the at least one processor, cause operations comprising: generating computational models of hearts with varying shapes, fiber orientations, scars, fibrillation source types, and fibrillation source location, the computational models being general models that are not representations of a specific patient, at least a portion of the computational models are generated through incorporating an ionic model of human ventricular or atrial action potential during a simulated ventricular fibrillation or atrial fibrillation; generating a simulated vectorcardiogram for each computational model; storing the simulated vectorcardiogram of each computational model in association with a fibrillation source location of the fibrillation source of that computational model; generating a vectorcardiogram of the patient's heart; comparing the generated vectorcardiogram of the patient's heart against stored vectorcardiograms of hearts; and identifying a matched stored vectorcardiogram of a heart that matches the generated vectorcardiogram of the patient's heart; and identifying the location of a fibrillation source associated with the matched stored vectorcardiogram of the heart. at least one processor; and at least one memory storing instructions which, when executed by the at least one processor, cause operations comprising: generating computational models of hearts with varying shapes, fiber orientations, scars, fibrillation source types, and fibrillation source location, the computational models being general models that are not representations of a specific patient, at least a portion of the computational models are generated through incorporating an ionic model of human ventricular or atrial action potential during a simulated ventricular fibrillation or atrial fibrillation; generating a simulated vectorcardiogram for each computational model; storing the simulated vectorcardiogram of each computational model in association with a fibrillation source location of the fibrillation source of that computational model; generating a vectorcardiogram of the patient's heart; comparing the generated vectorcardiogram of the patient's heart against stored vectorcardiograms of hearts; and identifying a matched stored vectorcardiogram of a heart that matches the generated vectorcardiogram of the patient's heart; and identifying the location of a fibrillation source associated with the matched stored vectorcardiogram of the heart. generating computational models of hearts with varying shapes, fiber orientations, scars, fibrillation source types, and fibrillation source location, the computational models being general models that are not representations of a specific patient, at least a portion of the computational models are generated through incorporating an ionic model of human ventricular or atrial action potential during a simulated ventricular fibrillation or atrial fibrillation; generating a simulated vectorcardiogram for each computational model; storing the simulated vectorcardiogram of each computational model in association with a fibrillation source location of the fibrillation source of that computational model; generating a vectorcardiogram of the patient's heart; comparing the generated vectorcardiogram of the patient's heart against stored vectorcardiograms of hearts; and identifying a matched stored vectorcardiogram of a heart that matches the generated vectorcardiogram of the patient's heart; and identifying the location of a fibrillation source associated with the matched stored vectorcardiogram of the heart.