10
$\begingroup$

I'd like to create my custom front-end for Mathematica. I know there's a console interface (launched as math), which mostly works great, but it can't really provide functionality of e.g. interactive (rotatable) Plot3D or Manipulate, although one can show 2D plots with JavaGraphics package.

Is there an official way of interacting with the kernel so as to be able to show the manipulator, 2D/3D plots etc. and provide the user feedback to the kernel, getting back updated results?

$\endgroup$
12
  • 2
    $\begingroup$ Yes. The kernel communicates with the front end through MathLink. See chapter 2 of the old MathLink tutorial, as well as the MathLink (now WSTP) reference in the documentation. $\endgroup$
    – Szabolcs
    Commented Apr 1, 2017 at 19:10
  • 1
    $\begingroup$ If you want to use Java instead of C, J/Link comes with an simple example front end, see MathSessionPane reference.wolfram.com/language/JLink/tutorial/Overview.html under "Some Special User Interface Classes". $\endgroup$
    – Szabolcs
    Commented Apr 1, 2017 at 19:11
  • 1
    $\begingroup$ Maybe here? library.wolfram.com/infocenter/Demos/174 $\endgroup$
    – Szabolcs
    Commented Apr 1, 2017 at 22:23
  • 1
    $\begingroup$ This is a project that tries to make Mathematica available through a Jupyter notebook as a front-end. Based on this comment, dynamic objects aren't supported currently, though. $\endgroup$
    – Karsten7
    Commented Apr 2, 2017 at 3:10
  • 3
    $\begingroup$ Apropos what Karsten just said, this answer of mine shows how to set up an HTTP server in Java that could take input from the browser and forward it to Mathematica, in case you want to build the frontend in HTML/JavaScript. $\endgroup$
    – C. E.
    Commented Apr 3, 2017 at 19:42

1 Answer 1

3
$\begingroup$

Now there are 2 ways AFAIK.

  1. https://jerryi.github.io/wljs-docs/ amazing work.

  2. A much more rudimentary solution, not a "front end", but meets your need.

Is there an official way of interacting with the kernel so as to be able to show the manipulator, 2D/3D plots etc.

use wolfram player. And a simple vscode plugin.

Manipulate[
    Plot3D[x + y a,{x,0,5},{y,0,5}],{a,0,5}
]

enter image description here

https://github.com/asukaminato0721/mmaplayer

Which will almost 100% be like origin mathematica style.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.