Made by the cooperation of physicists and programmers. Driven by solving real-life cases in science ⚗️, math 🧮 and teaching 📚
written with love using freeware Wolfram Engine, JavaScript and WLX
WLJS Notebook Demonstration Project 🎉 A collection of various notebooks showcasing examples of how to use the Wolfram Language and the dynamic features of our frontend
Wolfram Language Introduction 🐺
Freeware implementation of Wolfram Language
Recommended Wolfram Engine: 13.3 or higher
All algorithms, functions, and other components of the Wolfram Language provided by the Wolfram Engine are the intellectual property of Wolfram Research, Inc.
To help maintain this open-source project ❤️
Any amount (one-time or monthly) is appreciated, and your profile will be permanently displayed on this page. Thank you for helping us!
🔗 Link Pages of real-life problems solved using WLJS Notebook and published as interactive notebooks runnning in your browser. Try it out
WLJS Notebook Demonstration Project
🔗 Link Notebooks posted as static web pages showcase various examples that demonstrate how to use the Wolfram Language and the dynamic features of our frontend.
See here
- Wolfram R&D 📽️ WL Javascript Notebook
- YTS 📽️ You don't need to program your figures manually
- YTS 📽️ How to do Dynamics in Computation Notebook
- YTS 📽️ We made AI Copilot in your Notebook 🤖
- YTS 📽️ AI Copilot in your Notebook. Part 2 🤖
- Habrahabr October 2024: Динамическая презентация или как закодить слайд с помощью Markdown и WL (Russian language only)
- Habrahabr Septempber 2024: Обзор изменений в WLJS Notebook (Russian language only)
- Medium May 2024: Reinventing dynamic and portable notebooks with Javascript and Wolfram Language
- Yandex Open Source Jam April 2024: Dynamic notebook interface + Wolfram Language (Russian language only)
- DPG2024 Berlin March 2024: Computational Notebook as a Modern Multitool for Scientists, Slides
- Habrahabr October 2023 Open-source блокнот Wolfram Language или как воссоздать минимальное ядро Mathematica на Javascript и не только (Russian language only)
- Habrahabr October 2023 Wolfram Language JavaScript Frontend (Russian language only)
It supports dynamics, GUI building blocks, and powerful Mathematica syntax out of the box.
No more static graphics! Each primitive of Graphics
/Graphics3D
was recreated from scratch using d3.js
and THREE.js
libraries. Most native plotting functions of Mathematica are supported.
Write beautiful equations between lines of normal Wolfram Language expressions.
There is no need to lift your fingers from the keyboard 🎹
Alt+2
,Cmd+2
hide/show input cellCtrl+/
make fraction on selectedCtrl+6
make superscript on selectedCtrl+2
make square root on selectedCtrl+-
make subscript on selected
Or use toolboxes for complex structures such as integrals, sum, Greek letters
An entire notebook can be exported to a standalone .html
file keeping all data inside. No internet dependency, no additional software is required for viewing a notebook
Even if you embed it to your blog page
still experimental feature
See some interactive examples from our blog page
Later, once opened using WLJS Notebook application, it is unpacked back to a normal editable format.
We deeply integrated ChatGPT, so that AI can have a read/write acccess to your notebook
Make a presentation right from the notebook.
Follows the mouse pointer and performs complex calculations
You do not need to target 60FPS, Javascript will interpolate the transitions smoothly
A toy-like fluid simulation is also possible
- Autocomplete (no LSP support for now)
- JavaScript cells deeply integrated with Wolfram Language
- HTML cells
- Markdown, KaTeX, Excalidraw
- Command palette with built-in widgets for assisting you in typing equations, capturing images and others
- Mermaid diagrams
WLJS Notebook runs locally and belongs to you (no cloud-based stuff involved). No internet connection is needed.
- @VadimBim, ???
- Gani Ganapathi, USA
- Jon L. Woodard, USA
- @MitsuhaMiyamizu, Mars
The freeware Wolfram Engine is required (Version >13.3 is preferable). Activation after installation or later using WLJS Notebook App.
On macOS, if you have Homebrew installed, you can install it through Homebrew Cask:
brew install --cask wolfram-engine
a side note for OSX/Linux users
If you face any issues, try to install avahi daemon and libuv
.
Download from the releases section.
Binaries are given in two formats. An offline version does contain the fixed versions of all necessary modules, documentation and examples, while a normal one will download the most recent ones from Github during the installation and will keep them to work fully offline.
You will be prompted to install cli binary. If you agree, it will make a symlink available from the terminal like VSCode. It will allow you to open a folder in WLJS Notebook by the command
wljs .
App will automatically register wljs-message
url protocol, so you can open any published notebooks from web-pages.
Use x64 binaries .exe
from the releases.
You might need to install libuv
dependency, then install the executable.
A note for Ubuntu users There might be a problem with starting related to a new AppArmor issue om Ubuntu 24.04. A temporal fix will be to lift the restrictions
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
and then start an app from the terminal wljs-notebook
Open an extracted folder and run an executable directly.
If you have Apple Silicon, please, download and run -arm64.dmg
binary from the releases page, otherwise use just .dmg
version.
If you have Homebrew installed, you can install this app using:
brew install --cask wljs-notebook
Desktop application is just a wrapper with a built-in Chromium browser, context menu bindings and file associations. WLJS Notebook itself is a web-based application and can run using just wolframscript
with no external services or any other programs.
contributed by @yloose
See here
Clone this repository and run:
wolframscript -f Scripts/start.wls
or on a specific hostname
wolframscript -f Scripts/start.wls host 0.0.0.0 http 8080 ws 8081 ws2 8082 docs 8085
that will open an HTTP server on 8080
port with 8081
, 8082
used for realtime communication and docs pages at 8085
- set the home folder (overrides settings)
wolframscript -f Scripts/start.wls folder "Demos"
- disable autolaunch of the evaluation kernel
wolframscript -f Scripts/start.wls noautolaunch True
You might need to install the following (for Image
and some other graphics to work properly) libraries.
working in both: browser and desktop application
Ctrl+S
,Cmd+S
save notebookAlt+.
,Cmd+.
abort evaluationCtrl+P
,Cmd+P
open command paletteShift+Enter
evaluate current cellCtrl+F
,Cmd+F
search/replace inside a cell
Alt+2
,Cmd+2
hide/show input cellCtrl+/
make fraction on selectedCtrl+6
make superscript on selectedCtrl+2
make square root on selectedCtrl+-
make subscript on selected
WLJS Notebook fully supports the native Wolfram Language paclets/packages system and cna be installed from the command palette (paste there a Github url to a package). It means most packages will work like in Mathematica with some limitations on dynamics (DynamicModule
, Opener
and etc).
Wolfram Language, WLX, HTML, CSS, JavaScript, C
Vanilla JS- TailwindCSS
- Electron (only for the desktop app, used as a wrapper)
- THREE.js, D3.js (graphics libraries)
- Tone.js (sound library)
- CodeMirror 6 (core cell editor)
- Reveal.js (library for slides), Marked.js (markdown cells), KaTeX.js (math equations), Mermaid (diagram cells), Excalidraw (drawings inside cells), Plotly.js (alternative library for plotting)
- XTerm.js (internal terminal)
- Wolfram Mathematica
- Jupyter Notebook
- Observable.io
- Wolfram Language Notebook VSCode
- Mathics
GNU GPLv3