Let's use this thread to post our favourite freely available third-party packages!

Instructions

  • Please post only those packages that you actually use yourself (not any package you found) or packages that you created yourself.

  • Each answer should be one package, and should preferably contain a short description/review of the package.

  • Upvote those packages that you use, so the best ones will float to the top.

The purpose of this thread is not to create a comprehensive list (such a list already exists) but to highlight the best / most popular packages that many of us could find useful/interesting. We can also use this thread to share packages our members have created. Please see discussion here.

share
This is a long-awaited thread! Unfortunately, I can't contribute, as I don't really use any third-party package. – István Zachar May 28 '12 at 18:04
Freely available means a package anyone could get OR BUY, right? – Rojo Jun 2 '12 at 22:59
@Rojo I included it because I thought this thread makes more sense for packages that anyone could get freely. There's less resistance for these packages to get popular here. But if any commercial packages are popular and get upvoted by many people---why not? – Szabolcs Jun 3 '12 at 8:12

6 Answers

LevelScheme, and it's sub-package CustomTicks.

This is a package for creating publication quality figures. It makes it easier to create multi-panel figures and insets as well as to annotate and label plots. It includes the sub-package CustomTicks which makes it easy to create and style good looking custom tick marks with minimal effort (it can be used independently from the rest of LevelScheme). LevelScheme was originally written for making energy level diagrams and includes a lot of functionality for this.

Creating figures with LevelScheme is more work than using the usual ways Mathematica provides, but it also gives much tighter control over figure appearance, and makes it easier to handle multipanel- and subfigures (an area where Mathematica is quite lacking).

share
CustomTicks all the time! – Eli Lansey May 29 '12 at 21:30
Yes! No publication ready figures without it. – Markus Roellig May 31 '12 at 13:48

NCAlgebra -- allows analytic analysis of non-commutative expressions

This packages allows you to do all sorts of non-commutative analytical work which is not straightforward to do in plain-old MMA. See, for example, Daniel Lichtblau's answer to my question about matrix block inversion.

I've been using it recently for simplifying block matrix equations to get analytical results (I know the analytical form of particular blocks, and can compute their inverses, but the larger block matrix inverse isn't trivial).

share
@R.M Been using it recently. There's a bit of a learning curve, but it's awesome. Helping me solve a series of problems I've been thinking about for a long time. – Eli Lansey May 29 '12 at 23:27

Imtek Mathematica Supplement

I use it a lot for unstructured 3-D interpolation.

share
Doesn't version 8 already support 3D unstructured (linear) interpolation using Interpolation? I thought this was one of the ways TetGenLink was used internally. – Szabolcs May 31 '12 at 13:57
I only recently read it in one of the post on SO, but didn't follow up on it. Possible V8+ is up to the task now. Does it also work for 4+ dimensions? – Markus Roellig May 31 '12 at 14:06
I didn't try, but I doubt it works for 4+ dimensions. TetGen is only for 3 dimensions. – Szabolcs May 31 '12 at 14:08
Actually, it does! Here's an example for 4D: if = Interpolation[RandomReal[1, {200, 5}], InterpolationOrder -> 1]; if[.5, .5, .5, .5] – Szabolcs May 31 '12 at 14:10

David Park's Presentations http://home.comcast.net/~djmpark/DrawGraphicsPage.html. This is a well-documented, integrated bundle of packages for: (i) more easily constructing graphics than with the default paradigm of Mathematica; easily creating various kinds of presentations of explanations, steps in derivations, etc.; (3) functions for maintaining numbered lists of equations; (4) functions for maintaining and using references within a notebook; and (5) tools to facilitate several kinds of algebraic operations upon expressions.

What I use most often from Presentations are the 2D- and 3D-graphics functions, and especially those that allow dealing with geometric objects directly in terms of complex numbers (rather than as pairs of reals) and visualizing complex-valued functions of a complex variable (again, without having to explicitly break the complex numbers apart into real and imaginary parts).

share

MATLink -- seamlessly call MATLAB from Mathematica

This package lets you ...

  • Transfer data between MATLAB and Mathematica. Most MATLAB data types are supported including sparse arrays, structs and cells.

  • Wrap MATLAB functions in the MFunction head and call them directly. Argument translation is automatic.

  • Write and manage MATLAB scripts and functions.

Find more details here. Suggestions, bug reports or other feedback is most welcome!

Disclaimer: I'm one of the MATLink developers.

share

WildCats -- brings Category Theory to Mathematica

WildCats lets you manipulate and visualize categories, functors natural transformations, universal properties, etc.

This seems to be the only package for Mathematica (or any other major CAS) dedicated to Category Theory, the 70 year old, new all-encompassing mathematical language.

The latest version 0.62.0 has just been released.

I am actively developing it and always welcome users' comments and suggestions.

share
I notice that it's under the GPL. In meta.mathematica.stackexchange.com/a/353/129 Oleksandr R. noted that there may be issues with GPLed code on Mathematica. I didn't check out the attached version of the license (or the package itself), but if you didn't do so, you might consider explicitly adding a special exception allowing your code to be used together with code provided by Mathematica without requiring the Mathematica code to be GPLed, just to be on the safe side. If you used third-party GPLed code in it, of course things might be a bit more complicated. – celtschk Jun 13 '12 at 16:47
@celtschk there is also the LGPL variant which, I believe, builds in that exception. – rcollyer Jun 13 '12 at 17:01
@rcollyer: The LGPL makes a much broader exception, which may or may not be what magma wants (although it may well be appropriate in this case, so you can use the package with your own code without making that GPLed as well). – celtschk Jun 13 '12 at 17:06
@celtschk absolutely. But, I figured he should be made aware of it. In code I've written, a lib I was using was GPL, and I had to clearly separate out what used it (even farther down the chain) to properly license it all. MS is right, the damned thing is infectious. – rcollyer Jun 13 '12 at 17:09
@celtschk and others. Thank you for bringing up this issue. I am really not an expert in this matter. I simply followed the example of xAct (a GPL tensor package), whose GUI component (xPrint) I developed. This is a well-known package and some of its developers currently work for WRI. So, if it's good for them...The Imtek package profiled above also uses a GPL licence. Quantum and Theorema just say that they are "free", so it seems different people use different licences. – magma Jun 13 '12 at 19:53
Perhaps you can mention the new installation option using File -> Install... in version 8.0.4. Select "Application" and "From file...". I always wondered about the guide/InstalledAddOns page in the documentation: under "Manage" it has an "UPDATE" button (along the "UNINSTALL" button). Do you know how the Update button can be enabled? If auto-update from a website is possible, it would be nice to enable it (especially since I noticed how you already updated from 0.50 to 0.51) – Szabolcs Jun 14 '12 at 10:39
1  
I noticed that there are many cell groups in the documentation that are collapsed. The documentation browsers doesn't display cell brackets so it's a little difficult to expand them (I used the Ctrl-' shortcut). – Szabolcs Jun 14 '12 at 10:55
@Szabolcs this is a question that might be of general interest, so I will post a question and answer in the main. Please refer to: "Displaying cell groups in documentation pages" mathematica.stackexchange.com/q/6839/137 in the main – magma Jun 15 '12 at 1:29
@magma you reaaaally need examples and pictures (especially pictures) on that webpage. the lack of these things is a severe deficiency in terms of 'marketing'. just wanted to let you know :) – amr May 9 at 21:44
@amr I know, I know :-) but thanks for stimulating me. I will work on it in June. I take this occasion to friendly encourage you and many other valuable members of this community to add some information in their profiles: experience, interests, hobbies, webpages,ect. It helps put some depth to a sometimes cryptic nickname. – magma May 19 at 8:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged