Abouzar Kaboudian*, PhD
*abouzar.kaboudian@physics.gatech.edu
|
![]() |
![]()
|
![]() ![]() |
So, for simulating 1 second of activity on a $4\times4$cm 2D slab, we need to solve
\[ \begin{array}{llcl} (200\times200)\times10^{5}\times&2 & = & 8\times10^{9} \\ & 100 & = & 4\times10^{11} \end{array} \]Similarly, 1 second of simulation in 3d requires solving $\sim$twenty trillion ODE's.
Unfortunately, single processors are only able to solve about $10^6$ to $10^7$ ODEs per second.
Parallel processing comes to the rescue
Parallel processing comes to the rescue
Graphic Processing Units (GPUs) can provide high levels of parallelization at a fraction of the cost of clusters.
Notice that CPU power has been stagnant in the order of a few GHz due to thermodynamic limits!
WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 3D computer graphics and 2D graphics within any compatible web browser without the use of plug-ins.
With the help of our library, Abubu.js, it is no longer so!
Abubu.js is freely available for download!
So, if you know C or a similar programming language, you can easily learn to program shaders!
|
![]() |
where $z_n$ is a complex number after $n$ iterations of the above iterative map.
A point ($z_0$) on the complex plane is a member of the set if and only if $|z|$ remains bounded.
Now, let's quickly program it!
Let's assume that I have a rectangular image that I want to colour.
Assume that each pixel on the image represents a point on the complex plane, and I want to write a recipe for coloring each pixel.
MATLAB takes 15 seconds to calculate the same domain only once!
Our WebGL program re-calculated the entire domain 60 times a second!
![]()
|
![]() ![]() |
Example: if a wildfire burns through the forest, no fire can return to a burnt spot until the vegetation has gone through its refractory period and regrown.
On this machine with a USD600 GPU, in every second, I can solve $3.6\times 10^{10}$ ordinary differential equations!
![]() |
![]() |
The experiments were reproduced using the 41-variable OVVR model*.
[*] O'Hara, Thomas, Laszlo Virag, Andras Varro, and Yoram Rudy. "Simulation of the undiseased human cardiac ventricular action potential: model formulation and experimental validation." PLoS computational biology 7, no. 5 (2011): e1002061.
Comparing experimental data with the interactive simulations. (A) Single spiral wave (VT) and (B) fibrillation in porcine ventricles. (C) VT in rabbit with drug DAM. (D) Fibrillation in rabbit with drug CytoD.
The test to verify this mechanism of defibrillation is currently underway via Optogenetic experiemnts on 2D mono-layers by our collaboratores at McGill Univeristy.
The fact that we can interact with these simulations makes these types of mechanistic studies the more intuitive.
Once the mechanism is discoverred, the simulation may no longer be needed.
Single-Cell Simulations in OVVR model
One-Dimensional Tissue Simulations in OVVR model
Two-Dimensional Tissue Simulations in OVVR model
Single stimulus leads to complex dynamics in 2D for OVVR model. I_Kr partial blockage leads to the complex dynamics in 2D.
Patient specific fitting of the model can be helpful in understanding why dynamics can be different for different patients.
These simulations can become the heart and sole of AR and VR programs such as this one:
Our goal is to help create a an infrastructure critically needed by the FDA to evaluate and validate in silico studies and VR/AR systems intended to explore new approaches for visualization and manipulation of cardiovascular anatomies, including electrical wave propagations and strategical planning of invasive procedures used in the clinic as well as anti-arrhythmic drug design.
Solving OVVR Model in 3D! This phone is solving 1.7 billion ODEs per second!
If you would like to try these programs on your own computer visit: