Overview
The whole notebook interface is made using plain Javascript, HTML powered by a Wolfram WebServer and WLX running locally on a Wolfram Kernel. It means you can work remotely by running a server anywhere you want (see how at instruction).
Some calculations are performed partially by your browser, you can have a control over it, if you want . All UI elements, cells operations are written in Javascript and Wolfram Language and performed by WLJS Interpreter
WLJS Interpreter is a tiny (3 kB) Wolfram Language Interpreter running in a browser and written in vanilla Javascript. It fully interconnects Javascript world with Wolfram Language on the server (backend). We will also reference it as frontend.
Compared to Mathematica the cell design has mostly flat structure similar to Jupyter Notebook. Only input
and output
cells are joined into groups.
Output cells are editable. We do not separate them explicitly unlike in Mathematica or Jupyter, since the whole document is a notebook, notebooks do not have inputs and outputs. You can freely edit, copy, reevaluate in place any output expression. Therefore we distinguish them only formally.
Cell control buttons
All cells are grouped by parent input cell, apart from that the structure of the notebook is flat. The controls are applied to the whole group
From left to right
- add new cell below
- hide an input cell
- evaluate (also
Shift+Enter
combo) - more
The last options expands into
Project to a window is the most interesting feature here, that allows to evaluate a cell in a new window. It comes handy while demonstrating presentations.
Shortcuts
working in both: browser and desktop application
UI
Ctrl+S
,Cmd+S
save notebookAlt+.
,Cmd+.
abort evaluationCtrl+P
,Cmd+P
open command paletteShift+Enter
evaluate current cellCtrl/Cmd + f
search in the focused cellShift + Alt + Space
overlay window (Desktop App only)
Cells
Ctrl+W
,Cmd+2
hide/show input cellCtrl+/
make fraction on selectedCtrl+6
make superscript on selectedCtrl+2
make square root on selectedCtrl+-
make subscript on selectedAlt/Cmd+/
comment a line
See more keybindings in Input cell
Wolfram Language
When you start typing the language you are using assumed to be WL. By pressing Shift+Enter
you can start evaluation
Output cells are joined to the input and the last one can be hidden by clicking on the sign on the left side from the cell.
Once you change something inside the output cell, it loses its formal parent and becomes new input cell, like in Mathematica.
Syntax sugar, fractions and other 2D input are supported
The most useful commands are listed below
Ctrl
+/
fractionCtrl
+^
powerCtrl
+-
subscriptCtrl
+2
square root
Or using a special toolbar (snippet)
Now let us move to some other gems
Snippets
To help in writing matrixes, colors, and some other useful stuff are accessible by the shortcut Super/Cmd
+P
All snippets are just special kind of notebooks including all UI elements.
AI Copilot
See it in action on Youtube Shorts
Editor of Power
A single input cell can produce Wolfram Language output, HTML page, Javascript window or a slide of a presentation
Or just draw something inside the code editor
Overlay mode
While running WLJS App (in a tray or normally) press Shift+Alt+Space
to get quick access to WLJS input cell
See more in Overlay mode
Graphics 2D & 3D
Most Mathematica's plotting functions produces lower-level primitives. The major part of them are supported
Try to drag and pan using your mouse!
Graphics elements are not exported SVG. All primitives are recreated using d3.js and THREE.js from scratch
Realtime calculations
Dynamics? We have a lot of it
Or may be even fluid simulation?
Short videos
3D Graphics using WebGL
Portability
You will probably need to share your notes with someone. Here we have a bunch of options:
- Export entire notebook as a web-page Static HTML, Dynamic HTML
- Export individual figures Figures
- Make a presentation Slides
No internet dependency, it will work permanently and will not be broken by any update in the future You can always convert back the exported notebook if needed, which is perfect if you want to share your notes on your personal blog.
Other languages
Of course the notebook interface is impossible to use without text annotation, here you do not need to switch to a different cell type. To use you favorite (or not) Markdown type in the first line of a cell .md
and magic happens
By clicking on an arrow on the right, you can hide the source cell and only the output will be displayed. An editor is very flexible you can quite easily add your custom output cell support.
Or combine WL together with Javascript to visualize your data in incredible way
The core plugins provides the following cells