Building an affordableversion of medicine's mostpowerful diagnostic tool.
Who we are
We are a group of ~15 undergraduate MIT students building a state-of-the-art low-field MRI scanner research prototype from scratch. We will start by following the open-source MRI4ALL design and conducting novel research as we go.
Our goal is to push the frontier of functional low-field scanners, which cost a small fraction of their superconducting counterparts. We hope to use our process and the scanner we build as a launchpad for future research and education. We also hope to become a community for all students interested in making medical imaging more accessible and learning about the full stack — electrical, mechanical, and software/ML engineering.
Why a cheaper MRI?
- 01
Catching disease early
Many serious diseases are treatable if they're caught early. However, symptoms often show up late, and the scans that could have caught them sooner are too expensive to be used more frequently.
- 02
Why MRI
MRI lets us see inside the body with incredible detail, capturing diseases that other technologies miss. And, unlike most alternatives, it doesn't use ionizing radiation, making it great for screening and monitoring. Its main limitation isn't what it can detect, but how few people can access it.
- 03
Where low-field comes in
A hospital MRI costs millions of dollars, not to mention it also needs a shielded room and liquid helium. We plan to build a permanent-magnet scanner, which costs a fraction of the price and is much easier to transport. Low-field scans have worse signal-to-noise ratios. We think better reconstruction, including ML methods, can make up for that. A scanner that does not require specialized infrastructure could bring advanced imaging into community clinics, rural hospitals, and underserved regions.
Subteams

Hardware
- Data acquisition
- RF transmit and receive
- FPGA pulse sequencing
def centered_ifft2(y): return np.fft.fftshift(np.fft.ifft2(np.fft.ifftshift(y), norm='ortho')) def kspace_center_correction(kspace): index_max = np.argmax(np.abs(kspace)) max_index_2d = np.unravel_index(index_max, kspace.shape) h,w,z = kspace.shape move_h = h//2 - max_index_2d[0] move_w = w//2 - max_index_2d[1] kspace = np.roll(kspace, (move_h,move_w,0),axis=(0,1,2)) return kspaceSoftware
- Reconstruction
- Post-processing
- Console and tooling

Mechanical
- Magnet array
- Frame and housing
- Coil formers

Gradients
- Gradient coil design
- Power amplifiers
- Field mapping

