This is the one minute summary. However in my opinion this doesn't do justice to the huge amount of work behind some of these. So if you have more than a minute here
is an elaboration of some of the bullet items above
- mathics-scanner — extensive tables of Mathematica symbols and their properties, also includes a scanner for Mathematica
- mathics-pygments —
lexer and highlighter using the pygments engine based on rsmenon's pygments-mathematica. This uses the scanner tables above.
- mathicsscript —
command-line utility using the above and prompt toolkit which has enhanced syntax coloring, command-completion and can display 2D and 3D graphics (via matplotlib for 2D and asymptote for 3D)
- mathics-threejs-backend —
An implementation of Mathematica Graphics3D using
- mathics-django —
the Django-based Web front-end using the above minus mathicsscript
- pymathics-graph —
Mathics3 Graph add-on functions using NetworkX and Matplotlib
- pymathics-natlang —
Mathics3 Natural-Language Processing add-on
- mathics-omnibus —
a repository to bind them all into a single PyPI package and provides the docker scripts that make up the Mathics3 docker image.
- mathics-development-guide —
Sphinx documentation for developing Mathics. Browsable developer docs are here.
It is hoped that a number of the above can and will be used
outside of Mathics. Those of note are the Mathematica tables and scanner mathics-scanner, the Graphics3D implementation in
three.js, mathics-threejs-backend, and the syntax highlighter
mathics-pygments. In fact, Symja which is interesting of its own
right, uses or consults some of these.
We are always looking for ways to collaborate with Sage or other open-source projects.
Upcoming year of 2021
Although what we have now is pretty impressive (and I am amazed we have gotten this far), we should not give the impression that Mathics3 is anywhere complete.
Here is what we are working on and what I hope to see accomplished over the next year:
- Speeding up performance in the Mathics3 interpreter — we are working on this right now.
- FindMinimum — it was started but is not complete
- Speeding up loading time - this is harder and can only come after the above
- Being able to run more large Mathematica packages out of the box. Right now we can handle Steven Skiena"e;s Combinatorica v0.9. We would like to see, Rubi and KnotTheory at least added to this. If you have suggestions and are willing to help out contact us. Right now we are finding the performance the biggest obstacle here.
Setting up some sort of registry of Mathematica packages that work on Mathics
- Supporting Backward compatibility of older Mathematica versions
- Jupyter integration. Right now the main obstacle is cleaning up the API interaction between Mathics3 core and front ends
We could use lots of help in just about every aspect. Please help out! If you are not a Python programmer, that"e;s okay. Here are some areas outside of Python programming where you could help:
- Mathematica Programmers —
Add missing Built in Function or functions which bridge compatibility between Mathematica versions
- Mathematicians —
Make our online and printed documentation more usable and informative. Find better examples for the functions, or describe the functions better.
- Literary types —
Write or adapt your Mathematica Tutorial. As above, improve our user (or developer) documentation
- Asymptote and LaTeX gurus —
our Asymptote library especially needs work
And of course if you are a Python programmer, especially with a facility for Sympy, numpy, mpmath or Scipy, please join us.
Last, and most important, I would like to mention and offer great thanks to those who have been a part of the Mathics3 team which has done all of the things above. Without these people we would have been stuck back a decade ago in 2011.
Thanks
What has happened and will happen is not without a lot effort, work and a dedication to making Mathics3 better. Special thanks to:
- Mauricio Matera — he knows the most about the current system, the Wolfram Language and Mathematica. He has written most of the new Built-in Functions too
- Tiago Cavalcante Trindade — he started the mathics-threejs-backend and has gotten us a decade further in three.js has modernized most of the Django code. He is also a performance guru so the graphics speedups in rendering 3D objects is all due to him.
- Pablo Emilio Escobar Gaviria — he started the Mathematica Symbol Tables (mathics-scanner) moved us forward in Django and has a great general knowledge of the system.
A full list of people who have contributed can be found here.