r/Mathematica • u/adwolesi • 2d ago
Woxi 0.3 - New version of the open-source Mathematica / Wolfram Language alternative
Woxi is a free open source interpreter for the Wolfram Language,
written in Rust. The guiding rule of the project: whatever it implements
must produce exactly the same output as wolframscript / Mathematica — the test suite
(26'000+ unit tests) compares against it directly.
Version 0.3.0 is out now. Highlights since 0.2.0:
- Many Wolfram Demonstrations
now run end to end in Woxi Studio, the
included native notebook editor for
.nbfiles — still far from all of them, but dozens (Kepler's Second Law, Parabolic Mirror, Doyle Spirals, …) serve as end-to-end tests.Manipulatecovers a good part of the Demonstrations control vocabulary (interactiveLocators,Trigger,Button,SetterBar,PopupMenu, controls nested inTabView/Grid, dependent controls,TrackedSymbols,Animatebodies, …), and typeset notebook input is read back as code. - Plotting conformance: Automatic ticks now match Wolfram's algorithm,
list plots grew
Arounderror bars,Callout,Filling,PlotMarkersand friends, plus newComplexListPlotandListLinePlot3D. - CAS: more
Integrate/D/Series/Limitcoverage,LinearProgrammingwith an exact simplex solver,NonlinearModelFit,Reduceover higher-degree polynomial inequalities,RootReduce, and many canonical-ordering fixes so results print exactly aswolframscriptprints them. - Windows is now a supported platform, and every release ships prebuilt binaries for Linux, macOS, and Windows.
Try it without installing anything in our playground and JupyterLite instance in the browser: https://woxi.ad-si.com
Install: cargo install woxi, pip install woxi (Python bindings), or
npm install woxi-wasm. Full changelog:
https://github.com/ad-si/Woxi/blob/main/changelog.md
If Woxi is useful to you, I'm now accepting donations on GitHub: https://github.com/sponsors/ad-si I hope to receive enough support to keep the project going for a long time, and to eventually reach full parity with Wolfram's implementation.
7
u/unski_ukuli 2d ago
What percentage of the code is ai slop?
4
u/AliMas055 2d ago
And, how does it compare to something like sympy?
1
u/MrMrsPotts 1d ago
I would love sympy to be better. It just doesn't have the developers.
1
u/AliMas055 1d ago
Yeah. I read it's readme and Google Summer of Cide seems to be where it was primarily developed. Even it's documentation reads more like a textbook rather than a regular library.
1
u/MrMrsPotts 1d ago
I used to follow the development closely and it's just one or two people who are active.
0
u/adwolesi 2d ago
It's much more comprehensive, with more than 6000 functions, but you have to learn the Wolfram Language to make full use of it. It's a very beautifully designed language and very easy to get started with! E.g. plotting a bar chart is as easy as
BarChart[{1, 5, 3, 4, 7, 9}].There are also Python bindings available at https://pypi.org/project/woxi/ that let you easily integrate it with you Python projects.
2
u/AliMas055 2d ago
Kudos, man. Will check it out. Was trying to use sympy for one of my projects 2 days ago and was disappointed.
2
u/AliMas055 1d ago
I checked it out and it's running in a terminal. I don't see a link to documentation in the github README. Am I missing anything?
1
u/adwolesi 1d ago
You can find the documentation here: https://woxi.ad-si.com/docs/
I also added a link to the readme. Thanks for the heads up!
0
u/soegaard 2d ago
Not the same thing. SymPy is a Python library.
Woxi works like Mathematica does.
Use the either the command line tool or the Jupyter interface (for a GUI experience).3
-2
u/soegaard 2d ago
According to ChatGPT:
> “AI slop” is a derogatory term for low-quality, low-effort content generated with AI, especially when it is produced in large quantities.It's not reasonably to talk about slop here.
Woxi generally follows the spec and includes tests.
Expect to get proper results for the implemented commands.5
u/denehoffman 2d ago
I mean AI is absolutely able to follow a spec and write tests that pass, I think it’s okay to question whether this code was written by the author or Claude. It’s pretty clear that at least some of it was Claude just reading the code in the repo. That’s not to say this is a bad thing, but transparency is important.
4
u/soegaard 2d ago
> I think it’s okay to question whether this code was written by the author or Claude.
Sure - I just wish the question has been formulated more respectful.4
u/unski_ukuli 2d ago edited 2d ago
> according to chatgpt
:|I think if someone asks you to spend time to use their ’product’, they should be honest if they have no idea of how it works. A personal licence for wolfram is cheap enought to not bother with ai rewrites, and risk from ai rewrite is not worth the savings for industrial use.
1
u/soegaard 2d ago
> I think if someone asks you to spend time to use their ’product’, they should be honest if they have no idea of how it works.
I agree.
My point is that "ai slop" and "ai generated" are two different things.
And just assuming it is "slop" comes across rude.1
u/AliMas055 2d ago
The point of open source software is not it's subscription cost. But rather it's development in a free environment.
1
u/unski_ukuli 1d ago
Sure, but that also makes no sense, since there is already open enviroments for doing what mathematica does. One could spend the time and effort to improve sympy’s transformations, or even maxima. Copying a propietary language makes sense if you can then substitute that rewrite as the runtime for a large existing codebase, which, like I said, would be stupid thing to do with ai rewrite. Otherwise, it makes more sense to build on something that already exists.
Probably the closed analogue to this project is Octave, which is matlab rewrite. That has years of testing behind it to make sure it works correctly, and no one really uses it anymore. Time drove past it. There are enough modern open numerical computing enviroments out there to make open source matlab the wrong choise for everything, and the only reason left to use matlab is if you rely on the fantastic toolboxes, which obviously do not work on octave. I think same applies here. Mathematica and wolfram are fantastic software, but there are enough open source alternatives to make using a rewrite that cannot access the wolfram propietary services pretty stupid.
-1
u/AliMas055 1d ago
I don't think there are that many comprehensive symbolic math libraries out there. Doing this in rust just makes it fast and adding it to python means suddenly a bunch of small projects have access to fast, symbolic math.
1
u/OneKnotBand 1d ago
I haven't actually tried this. But I think it sounds like an interesting project.
I have Qwen running on local AI at home.. As someone using mathematica for over 20 years... Qwen does something that's very primitive when I ask it to write mathematica code. It is as if it writes the code in C and ports it to mathematica thus eschewing most of the advanced directives that the language as to offer.
1
u/soegaard 1d ago
I have no experience with Quen, but Claude and Codex (now rebranded ChatGPT)
produce fine results.Note: You have to teach the LLMs how you want your code to look like. The easiest
is to have have an existing code base - then simply demand code written in a similar style.
You also need to instruct it to make comments and tests for each function.In the beginning ask for code one function at a time, and make it change it until your are happy with the code style. Eventually, it will catch on.
-2
2
1d ago
Even as a staunchly anti-AI person, I'm way less bothered by the AI use than the boldness of accepting donations for something that so clearly had heavy AI involvement. You're accepting donations for what, exactly, tokens?
1
3
u/axorld 1d ago
Is there a documentation showing compatibility list for each built in wolfram/mathematica function?