Releases: WLJSTeam/wljs-notebook
Hot fix: 2.5.6
We added the missing feature used in Rasterize and Export.
Notes:
electronAPI.requestScreenshotadded- 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,InputButtonand etc. now allows to have multiple instances (you can just copy and paste one from the output cell) and having no conflictsInputRadioadded- 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
Printactually 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
Datasetimprovements Plot,Graphicsaspect 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 🧨
Refreshwrapper function was implemented- Faster dynamic raster graphics:
Imagegot x10 speed up due to typed arrays
Plasmons.mov
Circle,Diskfull support with correct aspect ratio
Other features 🧪
SoundNoteimplementedAudioobject,Videoobject 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 🧜🏻♂️
Debugmode- Dark mode colors fix
- Feature: manual switching between
LightandDarkmodes - Window transparency feature (Windows 11 & OSX only)
Reinstallfeature (clean installation)- Progress bar
Minor update 📽️
Summary
- Debug mode (ElectronApp)
- Export/Import to Markdown feature
- UI layout fixes
- New examples
- Connection indicator
- Unicode support improvements
- AI Copilot enhancements
- AudioObject, support for PCM audio streaming
- Dataset improvements
- Stability improvements
Version 2.3.7 🎂
Minor update of client & frontend
Probably this will the last update for the next 3 months. We rebuilt the GUI of a launcher, fixed hundreds of small bugs and wrote 15 more documentation pages 📒 with examples and refined API for keyboard ⌨️ event listeners in Graphics library
An examples folder was restructured and moved to Demos. All notebooks are read-only there, the system will not let to overwrite them :)
As usual you have a choice of two versions
- minimal (no offline installation)
- normal 🍍
👍🏼 Pick up a minimal one if you have an internet connection and no firewalls, it will save up some space. Both versions will work normally offline after installation.
Bugs & features
- #161 Kubuntu & Ubuntu launch problem fixes 🐛
- Shortcuts are supported in browser as well 🪄
- Launcher GUI implemented instead of a console 🪄
- GNU/Linux / MacOS sockets now can handler connection breaks better (no freezes) 🐞
Graphics`Canvas[]feature. See more here- Added
folderargument to the command line to specify the default home folder (see Readme) - Keyboard listeners. Now you can bind keys to WL's event system 🪄
- Auto install packages from command palette 🪄
- Introduction to symbolic programming chapter was added 📖
Now we Blog section on the documentation page 🍰 Here we will post some nice example on how we use WLJS in practice.
As a side note
We still have issues running WLJS on Windows from time to time (#162 for example 🪲) and it is not quite reproducible. Please, submit an issue if you face similar problems. It will help a lot us in debugging the problem.
Major update 🎓
Since the total bundle size (app + docs + libs) has exceeded 300 MB, we have decided to provide you with two options:
-
WLJS Notebook Minimal: Requires an internet connection for installation and accessing documentation.
-
WLJS Notebook Full: Includes offline documentation and the latest libraries.
Bug Fixes & Features Implemented
Plotting & Graphics
- Fixed
PlotLabelissue. - Implemented
Graphfunctionality. DatePlotnow correctly converts UNIX time scale into human-readable dates.- Added
BezierCurvesupport. - Utilized
GraphicsComplexfor 2D graphics performance enhancements.
Boxes
- Introduced a Framework for dynamic boxes.
- Included new examples showcasing decorations.
Dynamics
- Demonstrated creation and destruction of dynamic objects.
- Added new examples highlighting dynamics and interaction.
- Introduced a new input element, InputJoystick.
- Supported the use of Beep[].
UI & App
- Resolved issues with Windows server mode.
- Enabled haptic feedback for MacOS devices and sliders.
- Implemented layout improvements.
Minor update 2
Bug fixes & changes
-
Full control over a sidebar
Now it can be hidden on shown by just clicking the button -
Windows 10/11 title bar fix
-
Updates channel
You can specify a Github repo used for updates -
Improved AI
Now 3500 tokens of our documentation is sent to OpenAI for each chat session, which improves the quality of answers drastically. -
Better support for
Imageobjects
Before it was quite buggy -
Missing boxes
SometimesBoxes.wlwas not loaded properly to an evaluation kernel. We changed the way how it loads. -
New examples
Animation, realtime raster processing is added. -
Scientific tools
A new section with useful widgets is added to the examples folder
New snippets
- Format text
A small toolbar to change the font-size, color used in any cell (quite experimental)
- Take a picture
Captures a photo using your active web-camera and sends to Wolfram Kernel
Minor update
Some fancy features were added
Highlights
AI Assistant 🪄
A deep integration with OpenAI. Now there is a separate chat-window and AI has an read/write access to the cells in the notebook. It can help you to fix errors, print new cells and so on...
We still haven't tried all possible cases.
SummaryBox partial support 🎁
It appears in many Wolfram's expressions. For example
Bugs and dev features
- minor layout fixes
- camera and microphone permissions fix
NumericArraysupport on WLJS Interpreter for best performance- RevealJS slides markdown directives support (change background and etc)
PointLightworks properly- new events from slides window (
Slide,Left,Mount,Destroy) ImageSizeandMagnificationoptions forImage- reset dynamic symbols, when the connection to kernel was lost
- an option to disable acrylic material on Windows 11 machines
- an option to enable JIT Tailwind compiler to use any Tailwind classes in notebook cells (slows down the frontend when enabled)





















