It was developed by Dominic Ford, with the aim of making it possible to embed scienfically-accurate charts in websites, in a style similar to that used by most scientific journals.
It is also designed to make it easy to make interactive plots, where the user can change the axis ranges with intuitive scroll and zoom operations.
JSPlot can render charts onto HTML5 canvas objects, to PNG files, or to SVG files.
I work at the Institute of Astronomy, Cambridge UK, as a software developer on the European Space Agency's PLATO mission. We are responsible for developing the PLATO exoplanet search pipeline, which will become operational when the spacecraft launches in 2026.
I previously led the development of the data-analysis pipeline for 4MOST's spectroscopic surveys of the Milky Way, working in Sofia Feltzing's group at Lund Observatory, Sweden (2017–2019). 4MOST will observe the spectra of tens of thousands of astronomical targets every night, generating a volume of data that poses unique challenges. Machine-learning techniques are likely to offer the only affordable way to analyse such a large dataset, but the interpretation of their output requires care.
In my spare time, I work on many science communication and amateur astronomy projects. In 2022, I was awarded the British Astronomical Association's Horace Dall Medal for the development of software systems to benefit amateur astronomers.
Amateur astronomy projects
- In-The-Sky.org – A guide to what's visible in the night sky, automatically tailored to wherever you happen to live on Earth. As well as a planetarium and charts/tables for individual objects, the site has now grown to include an extensive searchable catalogue of astronomical events spanning the years from 1950 to 2300.
Astrophotography archive – A searchable online database of amateur astronomical images, developed in collaboration with the British Astronomical Association.
As of December 2022, the archive contains over 65,000 images, searchable by object, object type, date, etc. The BAA's archives go back many decades and we are working to digitise many of the older images and glass plates, with the aim of documenting how amateur astronomy has changed through the 20th century.
In addition to the BAA's archive, I also maintain a much smaller personal archive of my own astrophotography.
Pi Gazing – A fun project to create a network of motion-sensitive cameras which record shooting stars, satellites, aircraft, and anything else in the sky that moves. When the same object is spotted simultaneously from multiple observing sites, its three-dimensional trajectory can be triangulated.
I use off-the-shelf security cameras, with Raspberry Pi computers housed in the camera enclosures to do real-time analysis on the images. Each observatory is highly autonomous, using astrometry.net to precisely determine the sky area that each camera is pointing at, and a GPS receiver to determine the camera's location.
This project ran from 2014–2016 in collaboration with Cambridge Science Centre under its former name of MeteorPi. Between 2020–2022, the project observed again under its new name of Pi Gazing. The code is all freely available on GitHub.
Other web-development projects
A more complete archive of my amateur software-development projects can be found on GitHub.
HillTopViews.org.uk – A three-dimensional interactive terrain map of the Earth and Moon. The Earth maps are based on altitude data collected by NASA's Shuttle Radar Topography Mission (SRTM) in 2000, combined with additional open-source data from Open Street Map. The Moon maps are based on a digital elevation model (DEM) from the Lunar Orbiter Laser Altimeter (LOLA; Smith et al., 2010), an instrument on the NASA Lunar Reconnaissance Orbiter (LRO) spacecraft (Tooley et al., 2010).
- Retrocomputing archive – In the 1980s and 1990s, I learnt to program using 8-bit Acorn and Commodore computers. Here you can find a preserved archive of files recovered from cassette tapes and floppy disks from that era.
- Dominic's photos – When I'm not doing other things, I dabble in amateur photography. You can find some of my photos here.
- Family photos – An archive of around 5,000 old family photos, going back to the 1950s (password protected).
- The Observer's Guide to Planetary Motion – My book, which describes much of the science behind how In-The-Sky.org does its calculations.
- Pyxplot – A graphing and vector graphics package which I wrote in 2008–2012.
- GrepNova – An automated image-comparison tool which I wrote in 2005 for amateur astronomers who hunt for supernova. This tool was used by Tom Boles, who currently holds the world record for the largest number of supernovae discovered by any single individual.
- Naked Astronomy – Between 2012 and 2014 I worked for the Naked Scientists in Cambridge, where I produced the monthly STFC-funded podcast Naked Astronomy. I also spent one day a week in the newsroom of BBC Radio Cambridgeshire, acting as a science advisor.
- Square Kilometre Array – Between 2007 and 2012, I worked at the Cavendish Laboratory, Cambridge, on feasibility studies for the use of Graphics Processing Units (GPUs) to build a correlator for the SKA.
- PhD Thesis – I was awarded my PhD from the University of Cambridge in 2008, where my supervisor was Prof Paul Alexander. I built a model of the infrared spectra of dusty star-forming galaxies, which were being observed in large numbers at that time by Spitzer.
In the 1990s I was the kind of geeky teenager who sat in my bedroom writing computer games for my Acorn Electron. I even got a couple of them published. Though the reviewers spotted, quite correctly, that I wasn't very good at making up story lines.
- Shipwrecked – Published here (1996) and reviewed in detail here. In the unlikely event you want to try and complete it, you may find this solution useful. It even got ported to the Commodore 64 and some YouTubers have recently made some videos about it (!!).
- Jupiter III – The sequel to Shipwrecked, published here (1996) and reviewed in detail here. This was my first attempt at high-speed scrolling graphics. In the unlikely event you want to try and complete it, you may find this solution useful.