Whilst many wonderful commercial software packages exist for visualising scientific data (such as the widely used Interactive Data Language), I found that such packages could be somewhat cumbersome for the manipulation and visualisation of particle-based data. The main problem was that much of what I wanted to do was fairly specific to SPH (such as interpolation to an array of pixels using the kernel) and while generic routines exist for such tasks, I could not explain how they worked, nor were they particularly fast. Also, while interactive gizmos are handy, it can prove more difficult to perform the same tasks non-interactively, as required for the production of animations. The major work in the visualisation of SPH data is not the image production itself but the manipulation of data prior to plotting. Much of this manipulation makes sense within an SPH framework.
splash is designed for this specific task - to use SPH tools to analyse SPH data and to make this a straightforward task such that publishable images and animations can be obtained as efficiently as possible from the raw data with a minimum amount of effort from the user. I have found in the process that the development of powerful visualisation tools has enabled me to pick up on effects present in my simulation results that I would not otherwise have noticed --- the difference between a raw particle plot and a rendered image can be substantial. A key goal of splash is to eliminate the use of crap-looking particle plots as a means of representing SPH data!
splash is a utility for visualisation of output from (astrophysical) simulations using the Smoothed Particle Hydrodynamics (SPH) method in one, two and three dimensions. It is written in Fortran 90/95 and utilises giza , a custom-build backend graphics library to do the actual plotting. In particular the following features are included:
splash is geared towards gas dynamics simulations with SPH and has basically grown out of my visualisation needs. Thus it may not be particularly useful for things like water and solids etc. in SPH. An SPH visualisation tool geared towards the non-gaseous side of things you may want to have a look at is pv-meshless, by John Biddiscombe:
splash also doesn't make coffee.
The algorithms implemented in splash are not described here, but instead described in a paper (???) (Publications of the Astronomical Society of Australia, 24, 159-173), available from:
This paper should be cited if you use splash for scientific purposes, and please do so as it is my only form of thanks!
2.6.0 & 22/10/15 & SILO, falcON and .pbob data reads implemented; bug fixes in gadget-hdf5 reader; can recognise particle types in ascii read; more robust sphNG read; dust fraction recognised in Phantom data read; Toomre Q works in physical units; bug fix with disappearing units labels; bug fix in shock tube solution; added splash calc delta; splash to ascii keeps precision; better power spectra 2.5.1 & 29/01/15 & error bar style options; support for 5K displays; can plot vectors and render with colours if h not read; range restrictions apply during splash to grid; improved line-style legend; now up to 6 line styles; fixes to amuse-hdf5 read; phantom read handles star/dm particles; various bugs fixed 2.5.0 & 22/08/14 & instant multiplots by giving multiple columns as y axis; ability to plot multiple exact solution files on same plot; compiles in parallel by default; support for tagged sphNG/Phantom format; AMUSE hdf5 format reader added; various bug fixes 2.4.1 & 01/04/14 & Roche-lobe plotting vastly improved; newunit= issue fixed; bug fix with reading sink velocities from Phantom; other minor bug fixes 2.4.0 & 21/02/14 & time formatting in legend can include general functions; option to include sinks in opacity rendering; supports one-fluid dust visualisation; C-shock exact solution; better polytrope solution 2.3.1 & 11/11/13 & SPLASH_COROTATE option to plot in frame corotating with sinks; bug fixes with handling of dead/accreted/boundary particles in sphNG/phantom; various other bugs fixed 2.3.0 & 09/08/13 & can customise time formatting in legend; improvements to legends; less verboseness; splash can read and plot pixel maps produced with -o ascii; 3D vector field plotting improved; bug fix with gfortran 4.8 2.2.2 & 10/05/13 & particle tracking by type implemented; can interpolate specific columns in splash to grid; SPLASH_CENTRE_ON_SINK option generic to all data reads; Aly Reheam format added; option for 2nd y axis on plots; bug fix with X11 linking on Ubuntu; can read gadget ICs files 2.2.1 & 21/02/13 & minor bug with axes plotting fixed; Wendland kernels added; bugs with exact solution plotting fixed; bug fix with tracking of dark matter particles 2.2.0 & 16/11/12 & option to use different kernels for interpolation; floating/inset colour bars added; splash to gadget conversion implemented; splash to grid works in 2D; improved interfaces to shapes and animation sequences; automatically turns on dark matter particle plotting if no gas; interactive mode help displayed automatically 2.1.1 & 31/08/12 & irregular/circular particle selection using shift-left click/middle click; improved h5part and GADGET HDF5 data reads; splash can be compiled in double precision; bug fixes with calculated quantities + change of coordinate systems; improved vector plot legend; option for box+numbers but no labels added 2.1.0 & 16/05/12 & 3D vector field visualisation added; GADGET HDF5 read implemented; page sizes can be specified in pixels; limits can auto-adapt to device aspect ratio; more general exact solution from file option; tiling works with one colour bar per row; splash calc handles different particle types 2.0-beta & 29/08/11 & new giza backend --- antialiased lines; real fonts; pdf, eps and svg drivers; fewer build dependencies (only cairo, X11); support for semi-transparent text; Double-rendering (with transparent background) implemented 1.15.0 & 29/08/11 & Multiplot with different particle types implemented; calculated quantities list is now pre-filled automatically; preliminary support for r-phi and r-z rendering; outlined solid markers implemented; better handling of multiple types; manual contour levels can be specified in splash.contours; parallel splash to grid; better support for non-square pixels; clipping of numbers at edge of viewport fixed 1.14.1 & 17/03/11 & SEREN data read added; dragon read updated; build follows Gnu conventions on DEST and DESTDIR (for macports build); can have up to 12 particle types; exact solutions re-ordered; dusty wave exact solution added 1.14.0 & 06/12/10 & Can flip between rendered quantities in interactive mode using f,F; SPLASH_DEFAULTS variable can be set for system-wide defaults; can plot arbitrary functions of x,t as exact solution; added data read for H5PART format; GADGET read across multiple files implemented; error bars can be plotted for x and y axis simultaneously; default rotation angles set if 3D perspective turned on; new directory layout and more helpful error messages during build; PGPLOT linking is easier to get right 1.13.1 & 26/02/10 & bugs with new calc quantities module fixed; generic library interface implemented so backend can be changed easily; bug fix with auto pixel selection; simpler foreground/background colour setting; added subgrid interpolation warning 1.13.0 & 25/02/10 & function parser incorporated; calculated quantities can now be specified at runtime; arbitrary function plotting implemented as an exact solution; command-line SPH->grid conversion ("splash to grid") implemented; ctrl-t in interactive mode adds arbitrary text box; better line style/colour changing; bug fix with tiling and y-axis labels; various other bug fixes 1.12.2 & 15/07/09 & Variable marker sizes added, can plot particles as circles with size proportional to h; dark matter rendering with block-labelled GADGET format fixed; VINE read handles star particles; TIPSY read with ifort10.0.0 works; snsph read added; splash to phantom added; does not override labels for coords, vectors by default; bug fixes with contouring options; stability bug fixes with older compilers; more robust memory handling; bug fix with automatic pixel selection causing seg fault 1.12.1 & 20/04/09 & Can edit/delete text shapes interactively, also the colour bar label; can customise the label on projection plots; contour levels better defined; SPLASH_HMIN_CODEUNITS added; option for numeric labelling of contours; contour limits can be set separately to render limits for same quantity; minor bug fixes 1.12.0 & 22/12/08 & command-line plotting implemented; ln transform added; bug fixes in GADGET read; backspace over annotation (legends,titles,axes,colour bar) in interactive mode removes it; "splash calc" command line utility calculates time sequences of global quantities from a sequence of dump files; bug fix causing seg fault 1.11.1 & 13/10/08 & automatic number of pixels and exact pixel boundaries implemented; mass does not have to be read from dump file; frame changes are per-page not per-dump file for animation sequences; lower stacksize footprint; bug fix with circles of interaction; bug fixes with block-labelled GADGET read; Steve Foulkes data read added 1.11.0 & 15/08/08 & ability to use subset of particles in restricted parameter range(s); probability density function plot option; plot-hugging colour bars added; ability to annotate plot with a range of shapes; v, V, w and H implemented in interactive mode for >1 panel; various bug fixes 1.10.2 & 08/05/08 & disc surface density / toomre q parameter plotting added; flash colour schemes added; splash to binary convert option; can change order in which particle types are plotted; splash.columns file overrides default column label settings; vanaverbeke format read; various bug fixes 1.10.1 & 11/03/08 & "splash to" command line option converts binary dumps to ascii format; vector plots + rotation now implemented; block labelled GADGET format read; ring-spreading exact solution added; other minor changes 1.10.0 & 29/11/07 & horizontal colour bars implemented; -p, -o command line options; can have mixed types in data reads; TIPSY and DRAGON data reads; density weighted rendering; normalisation option applies to column density plots; improved particle tracking; save as option; various bug fixes 1.9.2 & 12/09/07 & improvements to ascii read including asplash -e option; smarter foreground/background colour changing for titles; min=max problem fixed (caught by splash not pgplot); fixed vector arrow length option; other minor changes and bug fixes 1.9.1 & 11/07/07 & environment variables + improvements to gadget data read; better prompting; 3 new colour schemes; improved legend/title options; other minor changes 1.9.0 & 21/05/07 & animation sequences implemented; origin settings now affect radius calculation and are relative to tracked particle; automatic line width choice for postscript devices; w key adapts vector arrows; vastly improved userguide 1.8.1 & 28/03/07 & option to hide vector arrows where there are no particles added; smoother 3D plotting at low pixel numbers; (smoother vector plots); bug fixes with a); issues with round-off error with z integration of vectors fixed 1.8.0 & 15/03/07 & hidden particles not used in rendering; units for z integration addded; a) and g) implemented in interactive mo de for multiple-plots-per-page; improved cross section using x in interactive mode 1.7.2 & 19/02/07 & Menu shortcuts implemented; bug fix/ more sensible transformation of angular vector components in different co-ordinate systems; improvements to interactive zoom and origin recentreing; improved colour-by-type option; restrictions on page size removed; minor bug fixes 1.7.1 & 04/01/07 & command line options for defaults and limits files added; minor bug fixes 1.7.0 & 13/12/06 & renamed SPLASH instead of SUPERSPHPLOT; much faster data read for gadget and sphNG reads (only required columns read); physical units can be saved to file; new menu formats; various other bug fixes 1.6.2 & 24/10/06 & fast particle plotting and streamline plotting implemented; more bug fixes with interactive mode on multiplots; various other bug fixes 1.6.1 & 24/08/06 & bug fixes to 1.6.0; further improvements to interactive mode on multiplots 1.6 & 11/08/06 & interactive mode on multiple plots per page; highly optimised interpolation + parallel version; new Makefile; various bug fixes 1.5.4 & 06/07/06 & Handles multiple SPH/non-SPH particle types; axes redrawn after plotting; minor bug fixes 1.5.3 & 03/07/06 & minor bug fixes/improvements to multiple plots per page, colour bar labelling, tiled plots and legend. Accelerated rendering option for projections 1.5.2 & 11/05/06 & S) option for saving limits and defaults; MUCH faster interactive replotting (no unnecessary re-rendering); a few other minor things 1.5.1 & 26/04/06 & docs updated for v1.5, other minor changes 1.5 & 17/03/06 & 3D perspective added, 3D opacity rendering, improved rotation, colour schemes, adjustable vector arrows (+legend), improved timestepping behaviour, speed enhancements, physical unit rescaling 1.0.5 & 28/09/05 & error calculation for exact solutions; legend for plot markers; exact(densityprofiles) added; more colour schemes; unit rescaling improved; other minor changes and bug fixes 1.0.4 & 17/08/05 & better colour schemes; interactive colour scheme changing; various minor changes and bug fixes 1.0.3 & 05/07/05 & rescale data option; better page setup; improved zooming; interactive particle tracking + various minor changes and bug fixes 1.0.2 & 01/06/05 & much improved ascii data read; better line plotting; zoom on powerspectrum plots; calculate quantities switch + various bug fixes 1.0.1 & 17/05/05 & better colour bar behaviour on multiplots; various minor improvements 1.0 & 17/04/05 & first "official" release: version given to many people at IPAM meeting and put on web. 0.667 & 12/04 & This version was released to a limited number of people who had specifically requested a copy. 0.666 & 10/04 & This version was released to one or two people and had some bugs still buried.
splash - a visualisation tool for SPH data ©2004-2014Daniel Price. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.