X-ray computed tomography (CT) is a non-destructive imaging technique that provides three-dimensional (3D) visualisation and high-resolution quantitative data in the form of CT numbers. CT numbers are derived from the X-ray energy, effective atomic number and density of the analysed material. The sensitivity of the CT number to changes in material density means that it can be used to identify facies changes within sediment cores by detecting downcore shifts in sediment properties, and to quantify skeletal linear extension rates and internal biological erosion from coral cores. Here we present two algorithms to analyse CT scan images for geoscience research and package them within an open-source MATLAB application (Core-CT) that is freely available at GitHub (https://github.com/yuting-yan/Core-CT). The first algorithm computes CT numbers from a user-defined region of interest to identify boundaries of density change (e.g., sedimentary facies, laminations, coral growth bands). The second algorithm segments regions with major density contrast (e.g., internal void space or biogenic material) and provides 3D geometrical measurements of these irregularities. The versatility of Core-CT for geoscience is demonstrated for a range of environmental settings using both lake and marine sediment cores (Chile and Singapore) and coral cores (Red Sea). Core-CT analysis of sediment cores shows the application is able to: (1) distinguish episodic tsunami deposits from lacustrine sediments, (2) generate rapid and detailed measurement of varved sediments, and (3) identify sedimentary facies from an unsplit marine sediment core. When applied to coral cores, Core-CT can measure skeletal linear extension of annual growth bands and provide 3D visualisation and volumetric quantification of internal bioerosion cavities. Other potential applications of Core-CT include the identification of cryptotephra in sediment cores, or laminations in speleothem samples.