Release notes *3.0.2*
docker run -it \
-v ~/wljs:"/home/wljs/WLJS Notebooks" \
-v ~/wljs/Licensing:/home/wljs/.WolframEngine/Licensing \
-v ~/wljs/tmp:/tmp \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-p 8000:3000 \
--name wljs \
ghcr.io/wljsteam/wljs-notebook:mainbrew install --cask wljs-notebookTeXView
We added a shorthand symbol for rendering expressions as :
TeXView[1/2] or directly on LaTeX string:
TeXView["\\frac{1}{2}"] It works on slides, markdown and in a normal Wolfram output cells.
Tooltip
A multitool for labelling data on plots or any other expressions:
Tooltip[x, Graphics[Disk[], ImageSize->100]] A tooltip can be used on graphics primitives as well
Plot[{Tooltip[Sin[x], "This is sine"], Tooltip[Cos[x], "This is cosine"]}, {x,0,2Pi}] (*VB[*)(FrontEndRef["4b105372-9957-40d5-b600-e8ca55b969a5"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmyQZGpgamxvpWlqamuuaGKSY6iaZGRjoplokJ5qaJlmaWSaaAgBwARTp"*)(*]VB*) Read our documentation for more information and use cases
Documentation window fix
You should no longer have any troubles when copying code blocks from docs pages.
ListAnimate
We implemented a new member of Animate/Manipulate family of symbols:
ListAnimate[Table[Graphics[Disk[{0,0}, RandomReal[100]]], {50}]] Raster
We improve the performance of Raster, which shows up in many 2D plots. For example:
Show[AudioAmplify[(*VB[*)(Audio[FrontEndRef["96178de7-c6db-41a1-a233-5b82bf4d5545"], "SignedInteger16", SampleRate->22050])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKGxsmGhmYGyXqGpilmOmapCaa6lommxjqmqYlpaYap5kaGRsZAwB86RVj"*)(*]VB*), 100]//Spectrogram, Frame->True] (*VB[*)(FrontEndRef["b7c42a82-f1c8-4441-869f-a5fad948ec29"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJ5knmxglWhjpphkmW+iamJgY6lqYWabpJpqmJaZYmlikJhtZAgCDthW1"*)(*]VB*) Moreover it supports Offload, that means you can make it dynamic manually or automatically:
Animate[ArrayPlot[
SeedRandom[123];
Table[Evaluate[Sum[Sin[RandomReal[10, 2] . {x, y} + t], {5}]], {x, 0,
5, .1}, {y, 0, 5, .1}], ImagePadding->None], {t,0,8Pi, 0.1}, RefreshRate->60] Here is another example:
rasterDensityPlotAnim[f_, {xs_, xmin_, xmax_}, {ys_, ymin_, ymax_}, {ts_, tmin_, tmax_}, OptionsPattern[]] :=
With[{
time = Unique[], buffer = Unique[],
cf = With[{c=ColorData[OptionValue[ColorFunction]]}, (List@@c[#])&],
pts = OptionValue[PlotPoints]//N,
dt = (tmax-tmin)/OptionValue[PlotPoints]//N
},
{
raw := Table[
f /. {xs -> j, ys -> i, ts -> time} // N, {i, ymin,
ymax, (ymax - ymin)/(pts - 1)}, {j, xmin,
xmax, (xmax - xmin)/(pts - 1)}]
},
time = tmin;
buffer = Map[cf, raw // Rescale, {2}];
Graphics[{
Raster[buffer//Offload, {{xmin, xmax}, {ymin, ymax}}],
EventHandler[AnimationFrameListener[buffer//Offload], Function[Null,
buffer = Map[cf, raw // Rescale, {2}];
time = If[time >= tmax, tmin, time + dt];
]]
}, Frame->True]
]
Options[rasterDensityPlotAnim] = {ColorFunction->"AvocadoColors", PlotPoints->100}; rasterDensityPlotAnim[x Sin[y+t], {x, -5, 5}, {y, 0, 10}, {t, 0, 2Pi}, PlotPoints->50] Better setup intructions
We updated our documentation and added new section on how to set up WLJS Notebook on a server and tunnel HTTP traffic over SSH.
Minor bug-fixes
- Incorrect cell content update, when a cell was morphed from output to input
- Incorrect rendering of
Rowinside ticks and other labels ofGraphics - NeuralNet package invalid format values
- Global styling of slide cells content (CSS issue)
- Instabillity of sockets interface hash map