Releases: JerryI/wolfram-js-frontend
Major update
WLJS Notebook
- Code Refactor: Improved organization of extensions and streamlined context handling for better usability.
- Graphics Enhancements: Extra padding in framed mode, grid lines added (limited to
Automatic
for now). - 3D Plots: Progress made towards full support for ticks and labels.
Desktop App
- custom window sizes and positions for extensions
- support for Bluetooth + HID devices (a dedicated dialog window)
- bugfix in
Rasterize
for Windows machines with DPR differs from 1.0
Note, please give the preference to non -offline-bundle- version if you have no troubles with a normal version of the binary. Both of them do not require internet access after the installation has been completed
Major Update
See full list of release notes at wljs website
UI Update
- added focusable separator between the cells (similar to Mathematica)
- unicode character support in
Dataset
- admonitions in markdown cells
- bookmarks in markdown cells
- more formatting options
- failsafe WLJS makes 2 kinds of backups; prevents window from closing if saving is not yet done
WLX and WebUI framework support
WLJS Notebook is built on the WLX and WebUI technology stack. Now it is fully usable even inside the notebook. Want to build a more complex application? A fully functional sidebar? Here we go!
Release of the public API (Iframe & REST)
WLJS Notebook (both desktop app and server) does support special embedding of a notebook window to iframe. Moreover, REST
API is provided by a core extension. All communication is done via HTTP POST request in JSON format.
Image3D
We implemented a shader version of Image3D using maximum intensity projection (MIP).
Export to Mathematica
Is is possible to convert .wln
notebook to .nb
with some limitations.
Desktop App
update
option in the launcher window- minor bugs with filesystem, paths
Closed issues
Minor X-Mas Update
Issues
- #313 large formatted output
- #321 dataset improvements
- #322 Failure message
- minor issues with
Sound
,Video
andAudio
objects - improvements for
CellPrint
New features
- TabView
- MessageDialog
- ChoiceDialog and related
- SystemInputDialog
Experimental: Standalone Widgets 🔥
WLJS Notebook can be used as a runtime for standalone widgets. It is 1 window app, which uses the full capabilities of a normal notebook (similar to Wolfram CDF or LabView programs) and runs in the isolated generated context.
Other features are listed in Release notes
Happy Holidays and see you in 2025 🎄
Hot fix 2.6.3
This release should cover #315 , #314 including all patches from #316
What's new?
- Refined UI for Windows, Linux & browser interface
- Improvements in
Manipulate
- Improvements in autocomplete (rescanning the context path variable in a case you imported some library)
- WLX / Slide cells now report errors, instead of crashing
For homebrew
(and other package repositories) users
If you have a restricted internet access, please, use offline-bundle-*
version, since it includes all libraries and does not require an active connection to Github servers upon installation.
Minor update & CLI
Desktop App
- moved to a new Electron version & Node
- automatic cache purging after an update
- UI improvements in Linux version (reverted native menu back, fixed rounded corners)
- fixed #302
- fixed Linux binaries issue with
no-sandbox
and icons (you might still need to liftapparmor
restrictions on Ubuntu due to the global mutual bug in the electron and Ubuntu services. SeeREADME.md
)
CLI in OS terminal
Similar to VSCode it is possible to start or open a folder in WLJS Notebook using the command
wljs .
Misc
- new examples
- moved to a new version of LPM (local package manager), which solves many issues with conflicting versions of libraries (including this one #299 ).
Check updates
button added to the main menu- Output truncation control see here
- fixed #303
- added shared libraries to the bundle for Linux binaries (Windows, OSX libs are statically linked, but Linux libs are not)
- WXF support improvements
- added #301
- Runtime controls (add external scripts globally on fly)
- wider support for
NeuralNet
package - improved support for
Legended
,Video
,Audio
- new command palette item, which helps with voice recording
Minor update (October 2024)
Summary
- fixed #287
- fixed (login dialog) #284
- added support for
SystemOpen
- added support for
Entity
,Quantity
- added support for offsetting
FrameLabel
orAxesLabel
inGraphics
,Plot
(see more here) - fixed unescaped character in html export
- added support for custom global CSS (see Settings)
- by the default
New notebook
now open a window with no sidebar Print
now supports styled output (Style
)- new examples on slides
InputText
,TextView
,HTMLView
have extended options
Hot fix: 2.5.6
We added the missing feature used in Rasterize
and Export
.
Notes:
electronAPI.requestScreenshot
added- new examples available
2.5.5
Major Update 👨🏫
A cumulative update from the version 2.5.0. We fixed a few bugs in 2D math input and cursor navigations, expanded markdown editor and added new export feature for individual figures used in the notebook. Graphics3D now has ticks (finnally). We introduce massive changes in possibilities of exporting notebooks.
As usual, if you need a fully offline installation, use the -offline-
binaries. Otherwise, use the standard version, which requires less disk space.
New features
Excalidraw in Markdown and slide cells
The famous drawing editor now is integrated into .md
and .slide
cells. Use the following symbol to spawn excalidraw editor
!![]

Figures export
There is a way to embed individual graphs from your notebook to a web. You need just a little knowledge about HTML technology. THis feature is available in Share
menu (top bar)

You select which plot to export and as a result you get two section of HTML/JS code: head and figure itself. Paste it to your blog
Graphics3D now has ticks
Ticks cannot be customized, but this is a big step compared to what we had before

AnimatePlot
We have more function for making animations easier. It is important to note, that AnimatePlot keeps the data inside notebook and is safe to be exported to HTML file or using Figure export or embedded to a page.
try to evaluate
AnimatePlot[(*TB[*)Sum[(*|*)(*FB[*)((Sin[2π(2j - 1) x])(*,*)/(*,*)(2j - 1))(*]FB*)(*|*), {(*|*)j(*|*),(*|*)1.0(*|*),(*|*)n(*|*)}](*|*)(*1:eJxTTMoPSmNiYGAoZgMSwaW5TvkVmYwgPguQCCkqTQUAeAcHBQ==*)(*]TB*), {x, -1,1}, {n, 1,30, 1}]
Dynamic HTML export
yes, it runs on a web page without Wolfram Kernel
A new experimental feature now is available! It order to make the system more general and be able to capture the effects of ManipulatePlot, any combinations of InputRange, InputButton, Offload and many more it is abstracted by the design from the controlling elements and purely analyses the events and mutations of symbols.
You can find some example of this technology in our blog
Please see our documentation.
MDX export is also on the way. We are working on integration it with Docusaurus and other MDX static page generators.
Manipulate
We have implemented Mathematica's basic function
try it
Manipulate[Series[Sinc[x], {x, 0, n}], {n, 1, 5, 1}]
Please, consider to use ManipulatePlot, AnimatePlot, ManipulateParametricPlot or general dynamics using Offload (see Dynamics) for any plots, rapidly changing data and smooth transitions instead of Manipulate.
Outline
Table of content is automatically created for notebook with more than 1 headings. It scans all markdown cells and extracts headings from them

If you click on labels it will automatically scroll into its view
Find and replace
The most basic feature you know from other IDE is now implemented. The search is localized for each cell and can be called using Ctrl/Cmd+f
combination of keys

Links to documentation in autocomplete panel
Click to 🔎 icon to open a documentation on a given symbol

This closes #211 report
Animated Equation
We use separate engine to animate TeX equations more efficiently. This subsystem is integrated with Fragments, you can combine both if needed.
This particular technique was developed by Cian Luke Martin, which is basically a post-processing engine for SVGs generated from LaTeX equations
.slide
## Animated LaTeX
$$
\\begin{align*}
\\mathbf{E}(t,x) &= \\sum_{\\omega} \\mathbf{E}_0^{\\omega} ~ exp\\Big( i\\omega t - \\frac{i\\hat{n}(\\omega) \\omega x}{c}\\Big) \\\\ &= \\sum\\mathbf{E}_0^{\\omega} \\colorbox{white}{$exp(-\\frac{\\alpha x}{2})$} ~exp\\Big(i\\omega t - \\frac{i n \\omega x}{c}\\Big)
\\end{align*}
$$ <!-- .element: data-eq-speed="0.1" -->
Bugs
- Fixed launching problems #273
- UI problems on Linux machines
- Optimizations of WLJS Interpreter. Now we can run quite complex animations like this one (Real Time Fluid Simulation) with many moving vector objects
- many more, sorry, we do not remember ;)
Major update 🍬
Breaking changes: please, update your client using binaries from this release
Together with @KirillBelovTest we reworked our main application on Windows, cleaned up UI and introduced a few new modes.
As usual pick *-minimal
version if you do not have a firewall, that restricts an internet access, and a normal one in a case if the installation has to be done fully offline.
Quick notes
This allows to create a note without making millions of files in your home directory. It stores it in the temporal directory and will ask you where to save if you need this note. All notebook files opened from the native file explorer will be shown in the similar regime (no sidebar, no distractions).
Use Cmd/Ctrl + Shift + N
to make one.
Prompt window
This feature registers a global shortcut Cmd/Ctrl + Alt + Space
to call a small prompt window - a floating input cell to do some quick calculations.
Templates
Templates are just the same notebooks, stylized using hidden Javascript or HTML cells. The default directory for them is AppData/UserTemplates/. Call them from the command line or top-bar menu
There are several built-in templates for you to try. Note that attachments folder (if found) will also be copied, so that your template can include uploaded images or other files
Code editor improvements
We contacted the developer of CodeMirror 6 and he helped us to improve UX of typing equations. Now it feels more natural, there is no need in lifting your fingers from the keyboard.
You can jump inside a fraction or other math construction.
Terminal
We added a REPL terminal, so you can directly connect to the evaluation kernel or master kernel (based on Xterm.js)
Libraries update
InputRange
,InputButton
and etc. now allows to have multiple instances (you can just copy and paste one from the output cell) and having no conflictsInputRadio
added- New method of merging UI elements is added: chaining events, where each new UI element reuses the same
EventObject
.
New export formats
- HTML
- Markdown
- Figures export (embed to a website)
- Slides only New - allows to print all slides to PDF. Even dynamic content will be rendered.
More examples
- Solving Maxwell's equation using FDTD
- Surface plasmons
- Solving wave-equation on a silhouette of Rick Astley
Release notes
Each new release will be supplied with a special notebook, that includes all new features and probably some examples
Update policy
Now each release includes metadata, which indicates compatibility with the client app. This prevents updates of the WLJS Frontend from having an incompatible Electron client app. However, console mode will always work.
Acknowledgements
Thanks these people for the financial support:
- Jon L. Woodard, USA
- @MitsuhaMiyamizu, Mars
Any amount (one-time or monthly) is appreciated, your profile will be permanently displayed at Acknowledgements
section of WLJS Notebook app.
UPD: fixed windows transparency on Win11
Major update 📦
We fixed many bugs, improved UI and implemented decorations for integrals, derivatives and etc.
Please, use _minimal
installation binary if you do not have a restricted internet access.
Bugs (& features request) 🪄
- #213 fixed in
Graphics3D
- #209 issues with clipping
- #205 windows/linux shortcuts fix
- #206
Print
actually prints to a cell as in Mathematica - #154 Boxes overflow fix
- #69 legends (addiitonal fix)
- CSS style fix (added base styles for headings, lists and etc along with Tailwind)
- #167
Dataset
improvements Plot
,Graphics
aspect ratio fix
- #212 a toolbar for inserting integrals, subscripts, and other symbols was added
- Missing boxes for
Sum
,Transpose
New syntax sugar 🍯
We have implemented a new type of boxes allowing us to render editable expressions for integrals, series, piecewise, transposed expressions, root boxes and others
Update on dynamics 🧨
Refresh
wrapper function was implemented- Faster dynamic raster graphics:
Image
got x10 speed up due to typed arrays
Plasmons.mov
Circle
,Disk
full support with correct aspect ratio
Other features 🧪
SoundNote
implementedAudio
object,Video
object with a preview- WLX support for Markdown cells (now one can embed dynamic figures from WL to markdown similar to slides)
JS errors information field 🐛
Frontend captures unhandled errors in evaluation and now prints it after a cell, which probably caused an error
Client changes 🧜🏻♂️
Debug
mode- Dark mode colors fix
- Feature: manual switching between
Light
andDark
modes - Window transparency feature (Windows 11 & OSX only)
Reinstall
feature (clean installation)- Progress bar