State of the Wolfram Cloud

John Pacey
 Director of Cloud Development — Wolfram Research

#WolframTechConf

ABSTRACT

This talk will give an overview of what’s new in the world of cloud notebooks and beyond. We’ll also give a brief update on the ongoing improvements with our enterprise support, as well as custom applications built with the Wolfram Cloud and related technology.

Overview

Brief review of Wolfram Cloud capabilities

Explanation of key features of the Wolfram Cloud environment

Roadmap and Priorities

Related Talks

Cloud Office Hours - Later Today 11:30am-12:30 pm CST

Questions

The Wolfram Cloud

www.wolframcloud.com

Work with notebooks and write WL code in a web browser

Share interactive notebooks and other content

Deploy applications written in Wolfram Language

Powerful hybrid desktop + cloud workflow

Working with notebooks

https://www.wolframcloud.com/

Expand[(1+x)^100]

manipulate=Manipulate[Plot[Cos[a x+b],{x,0,6}],{{a,2,"Multiplier"},1,4},{{b,0,"Phase Parameter"},0,10}]

CloudPublish[manipulate,"mymanipulate"]

Working with deployed content

CloudConnect from desktop

CloudConnect["jpacey@wolfram.com"]

$ProcessID

CloudEvaluate[$ProcessID]

Examples

CloudDeploy[APIFunction[{"x"->"Integer"},FactorInteger[#x]&]]

CloudDeploy[
FormFunction[
"Input" -> <|"Input" -> "Hello World!", "Label" ->None|>, 
SpeechSynthesize[#Input]&, 
AppearanceRules-><|
"Title"->"Text to Speech",
"Description" -> "Write to me, I'll speak to you!"
|>
], "WolframSpeak"
]

CloudDeploy[APIFunction[
"choices" -> DelimitedSequence["String"],
HTTPRedirect @ First @ CloudDeploy[FormFunction["choices" -> #choices, Identity]] &
],"ChoicesFormAPI"]

CloudDeploy[
APIFunction[
{"name" -> "String"},
HTTPResponse[XMLTemplate["<h1>Hello <wolfram:slot/></h1>"][#name]] &
]
,"Greetings"]

Embedding notebooks and external notebooks

Seamlessly embed notebooks on websites

wolfr.am/notebookembedder

WolframNotebookEmbedder.embed(
  "https://www.wolframcloud.com/obj/jpacey/Published/Example.nb",
   container);

View and render Notebooks given by URL or expression

https://www.wolframcloud.com/view?url=https://dataverse.scholarsportal.info/api/access/datafile/152530

https://www.wolframcloud.com/view?expr=Notebook%5B%7BCell%5B%22hello%20world%22%2C%20%22Text%22%5D%7D%5D

Cloud support status

WolframLanguageData["Plot","CloudSupportStatus"]

WolframLanguageData["GeometricScene","CloudSupportStatus"]

WolframLanguageData["Inset","CloudSupportStatus"]

WolframLanguageData["Inset","CloudSupportNotes"]

WolframLanguageData["FinancialData","CloudSupportStatus"]

WolframLanguageData["FinancialData","CloudSupportNotes"]

WolframLanguageData["RunProcess","CloudSupportStatus"]

WolframLanguageData["RunProcess","CloudSupportNotes"]

Key Concepts of the Wolfram Public Cloud Environment

General

Linux virtual machines

currently NO GPU

Per-user limits on overall storage and evaluation memory and time constraints

Limit or disallow certain functions for security reasons

Combination of different sandboxing techniques to isolate execution of user code

NOTE: All of the above restrictions can be reconfigured or changed in a custom or enterprise solution.

New related offering of Wolfram Compute Services

Gives even more control and isolation for your specific longer-running evaluations

Kernel Types

“Session”

Long-lived kernel assigned to a single user when editing a notebook

“Public”

Short lived kernel assigned to a single user and typically a single evaluation

Executing an APIFunction or FormFunction

Viewing and possibly interacting with deployed notebooks or with a deployed Manipulate

Deployed notebooks have additional concept of a “reserved kernel”

Views, types of kernels

Cloud notebooks are cloud objects like all other files in the cloud. They are distinguished by a certain MIME type (typically application/vnd.wolfram.nb).

How a cloud object is displayed when accessing it in a web browser ultimately depends on the view. The view is determined in the following way (high to low precedence):

explicit parameter in the URL: /obj/path?_view=view

the path prefix: /env/path vs. /obj/path

default view for the type of object: e.g. the default view for notebooks is the “deployed notebook view”

Usually, you don’t have to worry about specifying views explicitly, but you can do so using the CloudObjectURLType option to CloudObject and related functions:

CloudObject["myobj",CloudObjectURLType->"Environment"]

The most common switch is between the environment view that allows you to edit notebooks (or other cloud objects) and the deployed object view that allows interaction but no editing.

The environment view is meant for editing files, providing various menus and controls such as a file explorer and the formatting palette. Only authenticated users with a proper subscription can open the environment view. Evaluations in the environment view are done in your session kernel, which persists throughout your whole browser session (until the session times out or you log out or reset the session). Evaluations in your session kernel generally do not cost any Cloud Credits (with some exceptions, such as certain Wolfram|Alpha calls).

The deployed object view is meant for viewing and interacting with files by a wider audience. The focus is on the content itself, with no editing controls. The deployed view is available to unauthenticated users as well (depending on permissions). Evaluations in the deployed view use a public kernel. The owner of the notebook is potentially charged Cloud Credits for evaluations in such kernels, at least once a certain complementary interaction limit is reached and they don’t want to disable interaction beyond that limit.

More details: https://wolfr.am/CloudNotebooksImplementationNotes

FrontEnd-Kernel communication overhead

The browser is communicating with the kernel over the network. It is important to understand and reduce FrontEnd to Kernel communication

Different from a typical desktop notebook session where the FrontEnd and kernel processes essentially having zero latency.

Looking at “LinkSnooper” kernel configuration output in a desktop kernel session can help identify things to try and eliminate or reduce.

Wolfram Cloud Applications

LLM Integration

Pairing LLMs of your choice with the Wolfram Language thanks to the Wolfram Cloud, enabling:

Execution of WL code through http requests

Rapid building, prototyping, and deployment of new versions

Safe execution of arbitrary user code

Foundation for different Wolfram integrations with LLMs and Agents via MCP and similar protocols

Wolfram Cloud Applications

Expanding Resources system

https://resources.wolframcloud.com/

Wolfram Community

https://community.wolfram.com

Utilizes the Wolfram Public Cloud and the Wolfram Notebook Embedder

Wolfram U

https://www.wolfram.com/wolfram-u/

Wolfram Language Playground

https://www.wolfram.com/language/#playground

The Wolfram Cloud provides a “sandbox” to evaluate and experiment without requiring sign-in.

Lots of other internal and customized applications

Customized ERP solutions

Log analysis and Task systems

Custom LLM integrations and solutions for enterprises

Internal development instances and cross-team sharing of materials and content

Primary internal development platform

Developing new features

Tracking and planning of agendas and related documentation

Custom dashboards

Hybrid web applications for bug tracking and build monitoring

Many, many other things

Roadmap Updates and Priorities

Notebooks

Maintaining compatibility and parity with desktop features

Improved Tabular support — Coming Soon

Improved code assist features

Syntax highlighting in deployed (/obj) view — Coming Soon

Improved rendering quality of Images in notebooks — Coming Soon

Continual rendering performance improvements, particularly Dynamic and Manipulate

Continued focus on Native Graphics and rendering more things purely in the browser

Improved support for RasterBox (WIP)

Long term overhaul of our editor (WIP)

Full DarkMode support (WIP)

Cloud Objects

Performance optimization and better support for bulk operations

Improved documentation and workflows

Roadmap Updates and Priorities

Enterprise support

Auto-scalable deployments and options for different cloud providers

Custom-tuned for specific use cases, such as large scale APIs consumption or LLM integration.

Customized containerized architectures

Looking for initial adopters to partner with us

Custom solutions:  Small, medium, and large projects please contact us

More information

Notebook features: https://wolfr.am/CloudNotebooksImplementationNotes

Release notes: https://wolframcloud.com/obj/release-notes/

Updated version of this talk: https://www.wolframcloud.com/download/jpacey/Published/WTC-2025-StateOfTheCloud.nb

Related Talks

Office Hours: Wolfram Cloud later today at 11:30am - 12:30 PM CST

Thank you!

A huge thank you to my team and their continued hard work.

Questions?

John Pacey
jpacey@wolfram.com

Office Hours

Office Hour: Wolfram Cloud - later today at 11:30am - 12:30pm CST