What is CRUSH?

CRUSH is a free data reduction software for specific astronomical imaging arrays. It is especially designed for use with ground-based or air-borne (sub)millimeter wave cameras. It began as a PhD project at Caltech and it remains a leader in speed, innovation, and versatility alike.


CRUSH is created, written, and maintained by Attila Kovács. You can contact Attila by e-mail (attila[AT]sigmyne.com), or follow on Google+, LinkedIn, or ResearchGate.

Supported Instruments

CRUSH currently supports SHARC, SHARC-2, LABOCA, SABOCA, ASZCA, p-ArTeMiS, PolKa, GISMO, MAKO, MAKO-2, SOFIA/HAWC+, MUSTANG-2 and SCUBA-2. Further instrument support is possible. If you would like to use CRUSH with your science mission, please contact Attila Kovács (see above) for an arrangement.


100% Pure Java

CRUSH is written entirely in Java. As such, it runs under UNIX, Mac OS, Windows (and more) systems without complication (and compillation) or the need for external dependecies. Java 6 (1.6.0) or newer is required. Works well with Oracle Java, IBM Java or OpenJDK (IcedTea). Does not always work with GNU Java (gij).

External Packages

CRUSH relies on the excellent nom.tam.fits packages of Tom McGlynn and Ritchie van Nieuwenhoven for dealing with FITS images, also included in the CRUSH distribution.


Java provides comparable speed to the fastest C or FORTRAN implementation of the same code (even when those have all safe and un-safe optimizations enabled!). CRUSH is also multi-threaded, and uses all processing cores in a machine effectively. Currently, it can churn though around 100 MB (25 MS) of raw data per minute, per CPU core, on a typical PC. A typical reduction includes a total of around 50—100 processing steps, such as repeated rounds of atmospheric noise removal, gain estimation, noise weighting, despiking, spectral filtering, mapping and more. Thus, with an 18-core Intel Xeon processor you can expect to reduce 1—2 GB (or 250—500 MS) of raw data per minute. That is enough to process data from a future 100-kilopixel camera, sampled at 100 Hz, in quasi real-time!


The development of CRUSH owes many thanks to those who have endured its bugs and helped getting the issues fixed. Special thanks to Darren Dowell, Darek Lis, Colin Borys, Andreas Lundgren, Thomas Greve, Jonathan Bird, Frederique Motte, Cathy Horellou, Johannes Staguhn, Giorgio Siringo, Ting Su, Israel Hermelo, Carsten Kramer, and Melanie Clarke. To Colin, I am additionally grateful for creating the prior incarnation of the CRUSH pages.