Projects / AstroTouch

AstroTouch: astronomy you can feel

2025 – present · open-source Python · adapted from an article I wrote for MNASSA, the journal of the Astronomical Society of Southern Africa

Astronomy is an overwhelmingly visual science. We explain it with images, spectra and graphs, and in doing so we quietly assume everyone in the audience can see. That leaves blind and visually impaired people out of a science that belongs to everyone.

Tactile models are the obvious answer, but making them by hand is slow and tends to lose the science along the way. AstroTouch does it automatically: it takes a real astronomical image and turns it into a 3D-printable relief, mapping brightness to height so the structure in the data becomes something you can run your fingers over.

A hand resting on an orange 3D-printed plaque of Jupiter, with the planet's cloud bands raised as ridges and a line of Braille along the bottom edge
A printed model of Jupiter, made from a James Webb Space Telescope image. The cloud bands and the Great Red Spot are raised ridges, and the label along the bottom is Braille.

How it works

AstroTouch reads FITS files, the standard format astronomers use, and works out on its own which part of a multi-extension file holds the image. Pixel brightness then becomes height: bright regions, usually the denser or more energetic parts of an object, rise off the plate.

Raw data rarely makes a good tactile model, so the pipeline includes the adjustments that matter for touch rather than for looks:

The result is exported as an STL file that any consumer 3D printer can handle. There's a desktop app with a live 3D preview for adjusting the settings by feel, and a command line for batch work.

The AstroTouch application: controls for dimensions, scaling and labels on the left, and a 3D preview of the Jupiter plaque with its Braille label on the right
The app, with the 3D preview updating as the settings change.

An example

The Jupiter model above started as a JWST MIRI image of the planet. On a 120 mm plate, logarithmic scaling keeps the faint aurorae without flattening the bright cloud bands, and a little smoothing turns the atmospheric structure into ridges that are distinct under a fingertip. A raised border protects the surface, and the Braille strip reads "Jupiter".

Why it matters here

Astronomical societies across South Africa run star parties and school visits constantly. With a printed model on the table, a blind visitor can explore the same object that sighted visitors are queueing to see through the eyepiece, at the same time, in the same conversation.

It also puts local science in people's hands. SAAO and SARAO produce world-class images from SALT and MeerKAT; AstroTouch is a way for any club with a 3D printer to turn those into something everyone can explore.

Nine white 3D-printed tactile plaques of different astronomical objects laid out on a table
Models made with AstroTouch from data taken by a range of telescopes. The tactile models page has files to download and print.

Get it

AstroTouch is free and open source, and contributions are welcome: code, printed test models, or feedback from people who actually read the models by touch.

AstroTouch is built on Astropy, NumPy, SciPy, PyVista and numpy-stl, with a PySide6 interface. Braille follows the Rules of Unified English Braille (ICEB, 2013).