Source Code

Part of the Solutio in silico project aim, connecting concepts to code, involves providing free, open-source code, to assist you in your education and research endeavors in the medical field. The whole repository can be downloaded directly from Github if you prefer, but you can also download individual sections of code here on the site. This site also serves as the API and documentation for the repository, explaining these individual sections of the code.


This code implements the CBDose algorithm, which calculates the dose from external beam radiation therapy using a corrections-based method.


This code implements the BrachyDose43 algorithm, which calculates the radiation dose to water from brachytherapy sources using AAPM TG-43 formalism.


This code implements the RayCT algorithm, which simulates CT projection data acquisition for a known object by tracing rays from the x-ray source through the object to the CT detectors.

Image Object Modeling

This code is used to create object models for medical image simulation. These models store the geometric shapes as well as the physical properties of the shapes that make up the object model.


The NIST Photon Attenuation Data project code is a class which handles the photon attenuation data from the NIST website. It allows you to easily import data for any element or material listed on the website and quickly calculate attenuation and absorption coefficients for photon energies ranging from 1 keV to 20 MeV, using logarithmic interpolation.


This code implements the TASMIP algorithm, calculating tungsten-anode x-ray imaging spectra between 30-140 kVp.


This section is for code that models geometric objects and performs related calculations. For example, the code is used in the image object modeling project to store shapes and calculate ray intersections and pathlengths.


This section is for utility code that enables all the other projects to run (for example, data interpolation).

Please do not hesistate to submit any questions or comments you may have about the site by using the Contact page.