Free software for physicists

There's a lot of free software available on the Web for academic and technical purposes. In the absence of anything better to do, here's a list of the stuff I'm aware of and rate as being worth a try.

First, though, some pointers to bigger lists on Wikipedia:

and this very nice list from SciPy

Drawing Feynman diagrams There are many ways to draw Feynman diagrams. Often the difficult bit is making the

associated text labels fit in with the text in the bulk of your text. If writing in LaTeX, the best approach is often to create the diagrams from TeX primitives, using macro packages. Otherwise, there are standalone packages (and there are always vector graphics packages, though you may find boson lines hard to draw). Within the LaTeX solutions there is still freedom of choice between the graphics geometry-oriented approaches and the appealing approach of constructing the diagram from a specified topology.

  • FeynDiagram: * JaxoDraw: * pyfeyn: * Axodraw: * Feynmf: * FeynArts: * Graphviz dot: * pydot: * FeynML (unfinished): * or you can always do it by hand with Impress, PowerPoint, Xfig etc.

Statistical analysis * StatPatternRecognition: * SciPy:

  • Python(x,y): * R: * ROOT: * PyMinuit: * Hippodraw: * RooFit: * PAW: Urgh! Not telling!

Data plotting There are a lot of different approaches to data plotting tools, from the point 'n' click approach to

more programmatic methods. My bias for serious scientific data analysis is that programmatic reproducibility is important and so the WYSIWYG tools are primarily useful for quick checks of data appearance rather than professional quality output or rapid regeneration when you realise a problem with your analysis scheme! The ideal package would probably be a nice GUI application with a flexible, multi-level API in a nice scripting language. I guess the closest approach to this is Hippodraw, but I've personally found Matplotlib to be very good. I've fought off my better instincts and put ROOT somewhere near the top of this list, but you have to be careful: default plots look terrible, the API is a nightmare and the default scripting language (CINT) is unstable and ill-suited to the task. The Python interface is better, but you have been warned!

  • Chaco (looks fantastic!): * Matplotlib: * ROOT (yuck! Use the Python interface rather than CINT): * Hippodraw: * Gnuplot: * PGFplots: , * PyXPlot: * PyX: * JAS3: * Biggles: * PyNGL: * ReportLab: * cTioga: * Tioga: * AIDA:,, * pygrace: * jFreeChart: * Sci. Graphics Toolkit: * GNU plotutils: * gri: * grace: * R: * DISLIN: * PLplot: * Topdrawer: * pychart:

Diagrams These are all drawing packages of the point and click type. If you want programmatic diagramming, which

might be useful for mathematical diagrams, then there are plenty of approaches: PyX and Tioga above, are viable options, as is Cairo (through the Python or Ruby APIs, for example) and finally writing Postscript by hand, which is more fun than it sounds (see Bill Casselman's excellent "Mathematical Illustrations" book for more information).

  • PGF/TikZ: , Inkscape: * Sodipodi: * PyX: * Asymptote: * SVGfig: * Xfig: * jfig: http :// * MetaPost: Graphviz: * Mac OS X Graphviz: pydot: * dot2tex: * Gimp: Skencil: * Karbon14: * OpenOffice Draw:

Maths (symbolic algebra) * Maxima: * FormCalc: *

FeynArts: * Cadabra: * Axiom:http://www.axiom- * REDUCE: * Giram: * Ginac: * yacas: * gTybalt: * Kayali (KDE interface to Maxima):

Documentation and write-ups LaTeX is the obvious one here, but for many purposes such as technical documentation

there are other, arguably better, tools.

  • LaTeX: * AsciiDoc: * tbook: * Docbook: * Apache Forrest: Twisted Lore: * Doxygen: HTML: * PyBibliographer: * eqe (for eqn rendering) * XINDY (for making indexes more easily)

Presentations * LaTeX Beamer: * OpenOffice Impress: * MagicPoint: * S5: * LaTeX: slides, prosper, foiltex: * Docbook: * PPower: