SciPy 2026

Canvas Chat - non-linear workflows for AI-assisted data science
2026-07-17 , Memorial Hall

Canvas Chat is a browser-based tool that combines Python's data science stack with large language model connectivity, enabling natural language interaction with data. Built on Pyodide, it runs entirely in the browser with no server-side computation required. Users bring their own API keys for LLM access, while all session data persists locally in IndexedDB. The visual, non-linear interface represents conversations as nodes on an infinite canvas, supporting branching, merging, and stateful exploration of data analysis workflows. This talk demonstrates how browser-based Python plus LLMs can democratize data science by removing infrastructure barriers while preserving privacy and reproducibility.


Motivation

Data scientists face significant infrastructure hurdles when exploring data. Setting up Python environments, managing dependencies, and configuring cloud resources create friction before any actual analysis begins. Meanwhile, large language models have transformed how we think about interacting with code and data, yet most LLM-powered tools require cloud infrastructure and raise privacy concerns.

What if we could bring Python's full data science stack into the browser, connect it to LLMs for natural language interaction, and keep everything local and private?

Canvas Chat - architecture and approach

Canvas Chat addresses these challenges through three key design decisions:

  1. Pyodide for browser-native Python: The entire Python runtime, including NumPy, pandas, and Matplotlib, runs via WebAssembly in the browser. No installation, no server, no compute costs beyond the client machine.

  2. LLM connectivity with local-first privacy: Users bring their own API keys (OpenAI, Anthropic, Google, Groq, or local Ollama). Session data, conversation history, and analysis state persist in IndexedDB. Nothing is sent to third-party servers beyond the user's chosen LLM provider.

  3. Visual, non-linear workflows: Unlike traditional chat interfaces, Canvas Chat represents conversations as a directed acyclic graph (DAG) on an infinite canvas. Users can branch from any point, merge multiple context branches, and explore analysis paths in parallel. This matches how data scientists actually think about problems.

Key capabilities

  • Natural language to code: Users describe what they want in plain English, and the LLM generates executable Python code
  • Stateful sessions: Unlike stateless notebooks, the canvas maintains full conversation history and data lineage
  • Multi-modal input: Images, PDFs, and web content can be incorporated into analysis workflows
  • Extensible via plugins: Custom node types allow domain-specific extensions without modifying core code
  • Zero deployment: A single uvx canvas-chat command launches everything

What attendees will learn

  1. How Pyodide enables full Python data science in the browser
  2. Architectural patterns for connecting browser-based Python to LLMs
  3. Design principles for non-linear, stateful analysis interfaces
  4. Privacy-preserving approaches to AI-assisted data science
  5. How to extend Canvas Chat with custom plugins for their domain

Relevance to the SciPy community

Canvas Chat represents an unconventional application of the Python scientific stack, repurposing Pyodide for interactive AI-assisted workflows. It addresses a core SciPy value, lowering barriers to scientific computing, while introducing novel interaction patterns that could influence future tool development. The talk will include live demonstrations and practical guidance for attendees who want to experiment with browser-based Python plus LLM workflows.

Links

As Senior Principal Data Scientist at Moderna Eric leads the Data Science and Artificial Intelligence (Research) team to accelerate science to the speed of thought. Prior to Moderna, he was at the Novartis Institutes for Biomedical Research conducting biomedical data science research with a focus on using Bayesian statistical methods in the service of discovering medicines for patients. Prior to Novartis, he was an Insight Health Data Fellow in the summer of 2017 and defended his doctoral thesis in the Department of Biological Engineering at MIT in the spring of 2017.

Eric is also an open-source software developer and has led the development of pyjanitor, a clean API for cleaning data in Python, and nxviz, a visualization package for NetworkX. He is also on the core developer team of NetworkX and PyMC. In addition, he gives back to the community through code contributions, blogging, teaching, and writing.

His personal life motto is found in the Gospel of Luke 12:48.

This speaker also appears in: