Back to Releases

Release notes *2.7.5*

March 25, 2025

2D Input Improvements

Helper boxes

We introduced helper boxes that appear when you move your cursor through equations or other decorations, which helps to see the borders of each decoration

Try to focus on different elements

(*FB[*)((A)(*,*)/(*,*)((*SpB[*)Power[w(*|*),(*|*)2](*]SpB*) - (*SpB[*)Power[x(*|*),(*|*)2](*]SpB*) + I g x))(*]FB*) + (*TB[*)Sum[(*|*)x(*|*), {(*|*)x(*|*),(*|*)xmin(*|*),(*|*)xmax(*|*)}](*|*)(*1:eJxTTMoPSmNiYGAoZgMSwaW5TvkVmYwgPguQCCkqTQUAeAcHBQ*)(*]TB*) + (*TB[*)Integrate[(*|*)x(*|*), {(*|*)x(*|*),(*|*)xmin(*|*),(*|*)xmax(*|*)}](*|*)(*1:eJxTTMoPSmNiYGAo5gESnnklqelFiSWpTvkVmYwgURYgEVJUmgoAvmMJeQ*)(*]TB*) 

MatrixForm

MatrixForm has a new output form!

Table[{i,j/i}, {i,5}, {j,5}] // MatrixForm
(*GB[*){{{1,1}(*|*),(*|*){1,2}(*|*),(*|*){1,3}(*|*),(*|*){1,4}(*|*),(*|*){1,5}}(*||*),(*||*){{2,(*FB[*)((1)(*,*)/(*,*)(2))(*]FB*)}(*|*),(*|*){2,1}(*|*),(*|*){2,(*FB[*)((3)(*,*)/(*,*)(2))(*]FB*)}(*|*),(*|*){2,2}(*|*),(*|*){2,(*FB[*)((5)(*,*)/(*,*)(2))(*]FB*)}}(*||*),(*||*){{3,(*FB[*)((1)(*,*)/(*,*)(3))(*]FB*)}(*|*),(*|*){3,(*FB[*)((2)(*,*)/(*,*)(3))(*]FB*)}(*|*),(*|*){3,1}(*|*),(*|*){3,(*FB[*)((4)(*,*)/(*,*)(3))(*]FB*)}(*|*),(*|*){3,(*FB[*)((5)(*,*)/(*,*)(3))(*]FB*)}}(*||*),(*||*){{4,(*FB[*)((1)(*,*)/(*,*)(4))(*]FB*)}(*|*),(*|*){4,(*FB[*)((1)(*,*)/(*,*)(2))(*]FB*)}(*|*),(*|*){4,(*FB[*)((3)(*,*)/(*,*)(4))(*]FB*)}(*|*),(*|*){4,1}(*|*),(*|*){4,(*FB[*)((5)(*,*)/(*,*)(4))(*]FB*)}}(*||*),(*||*){{5,(*FB[*)((1)(*,*)/(*,*)(5))(*]FB*)}(*|*),(*|*){5,(*FB[*)((2)(*,*)/(*,*)(5))(*]FB*)}(*|*),(*|*){5,(*FB[*)((3)(*,*)/(*,*)(5))(*]FB*)}(*|*),(*|*){5,(*FB[*)((4)(*,*)/(*,*)(5))(*]FB*)}(*|*),(*|*){5,1}}}(*||*)(*1:eJxTTMoPSmNkYGAo5gUSYZmp5S6pyflFiSX5RcFsQBHfxJKizAoAs04KOA==*)(*]GB*)

Dataset Improvements

We fixed many bugs related to poor Dataset implementation. This one in particular was not rendered correctly

ResourceData["Global and National Annual CO2 Emissions from Fossil Fuel Burning 1751-2014"]
%28%2AVB%5B%2A%29%28Dataset%5BJoin%40%40CoffeeLiqueur%60Extensions%60InputsOutputs%60Private%60store%24167774%5D%29%28%2A%2C%2A%29%28%2A%221%3AeJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm5okJqVZphrqGhkYJuuamCYn6yamWRjqJiWZWhonW5gYJ1qaAQCKxxXQ%22%2A%29%28%2A%5DVB%2A%29

Speak

One of the oldest function from Wolfram Standard Library

Speak[(*VB[*)(RGBColor[1, 0, 0])(*,*)(*"1:eJxTTMoPSmNiYGAo5gUSYZmp5S6pyflFiSX5RcEsQBHn4PCQNGaQPAeQCHJ3cs7PyS8qYgCDD/ZQBgMDnAEA4iUPRg=="*)(*]VB*)]

It can also be converted to Audio object

SpeechSynthesize[SpokenString[(*VB[*)(RGBColor[1, 0, 0])(*,*)(*"1:eJxTTMoPSmNiYGAo5gUSYZmp5S6pyflFiSX5RcEsQBHn4PCQNGaQPAeQCHJ3cs7PyS8qYgCDD/ZQBgMDnAEA4iUPRg=="*)(*]VB*)], GeneratedAssetLocation -> None]
(*VB[*)(Audio[FrontEndRef["3084d98a-f8fc-4003-b2b6-0adfe3c2edd8"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKp6UkJRuYGVvqpiYbGOiamCWl6VokGifpJqUkWpimGSalmCQaAQCU3haE"*)(*]VB*)

Improved support for Video object

For quite some time Video could only show "motion picture" without any audio. Now we have audio playback as well.

UPD: A few seconds before the release. We found a way to stream it to the native browser's video engine. It will work even better

Video["ExampleData/Caminandes.mp4"]

Better Inset support

It allows to combine multiple different graphics objects in a quite complex way. Here are a few example

Plot[Sin[x], {x, 0, 10}, 
 Epilog -> Inset[Graphics3D[Cylinder[], ImageSize -> 60], {0.5,0.5}]]
Graphics[{Circle[], Inset[EditorView[ToString[x^2 + y^2 == 1 // Unevaluated, StandardForm]], {0, 0}, Center, {1,0.7}]}, ImageSize->200]
(*VB[*)(FrontEndRef["5393609c-0f83-4065-880c-9e21d14e9307"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmxpbGpsZWCbrGqRZGOuaGJiZ6lpYGCTrWqYaGaYYmqRaGhuYAwBtzBSO"*)(*]VB*)
(*VB[*)(Graphics[{Circle[{0, 0}], Inset[EditorView["(*SpB[*)Power[x(*|*),(*|*)2](*]SpB*)+(*SpB[*)Power[y(*|*),(*|*)2](*]SpB*)==1"], {0, 0}, Center, {1, 0.7}]}, ImageSize -> 200])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWlMIB4HkHAvSizIyEwuhoiA5H0yi0sgqtmAhHNmUXJOKqpsJpBmABNpIKFiViDhmVecCtXGBSRcUzJL8ovCMlPLg32AXA2t4AKnaC3NgPzy1KLoCg2tGi1NHTBpFKuhFQuU1NLURlVUiVWRra0hLrdAnJuaV5JahKYE5KqiNDB4Zo+QCyrNSS3mBLk9NzE9NTizKjXzBJAHAJcsQnQ="*)(*]VB*)

Or combination of overlayed raster images

img = (*VB[*)(FrontEndRef["3404a670-7ee4-478b-9771-8ccfa938b07d"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKG5sYmCSamRvomqemmuiamFsk6VqamxvqWiQnpyVaGlskGZinAAB3QRVU"*)(*]VB*);
faces = FindFaces[img];
res = HighlightImage[img, {"Blur", faces}]
(*VB[*)(FrontEndRef["2ed27c25-8a6c-4ad4-80e5-91b2daa99385"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKG6WmGJknG5nqWiSaJeuaJKaY6FoYpJrqWhomGaUkJlpaGluYAgCHkhWo"*)(*]VB*)

Internals

Welcome Screen

If WLJS Notebook is launched for the first time, it will guide a user though a short tutorial.

%3Cbr%20%2F%3E

Watchdog 🩼

We added a set of self-tests for the Wolfram Kernel, which are performed periodically during the active session and before any evaluation. They take about 10610^{-6} seconds of computational time; however, they allow for hot-reloading some of the modules that may misbehave due to uncontrollable definition reloads in the Wolfram Language Standard Library.

Yes, this is a sort of workaround. The Wolfram Kernel can clear any custom FormatValues of the system symbol, even those that do not interfere with system definitions. This is a big pain, but we can still live with it since it happens rarely and only for particular symbols.

UI bug fixes

  • Layout scroll bars corrections for mini apps on Windows

On-demand license

If you want to try WLJS Notebook without binding the free license to your machine, you can issue license entitlement using Wolfram Cloud or a friend. Then

%3Cpre%20%3E%3Ccode%20%3E%0Agit%20clone%20https%3A%2F%2Fgithub.com%2FJerryI%2Fwljs-notebook%0Acd%20wljs-notebook%0Awolframscript%20-f%20Scripts%2Fstart.wls%20-entitlement%20XXX-CODE-OF-ENTITLEMENT-XXX%0A%3C%2Fcode%3E%3C%2Fpre%3E

It also would make sense on servers.

In this regime the evaluation kernel works much slower


%0A%3Cstyle%3E%0A%20%20img%20%7B%0A%20%20%20%20border-radius%3A%200.5rem%3B%0A%20%20%7D%0A%3C%2Fstyle%3E %0A%3Cstyle%3E%0A%20%20%5Btransparency%3D%22false%22%5D%20.bg-g-trans%20%7B%0A%20%20%20%20background%3A%20transparent%20%21important%3B%0A%20%20%7D%0A%0A%20%20%5Btransparency%3D%22true%22%5D%20.bg-g-trans%20%7B%0A%20%20%20%20background%3A%20transparent%20%21important%3B%0A%20%20%7D%0A%3C%2Fstyle%3E