Compute! Paris

Compute! Paris

@computeparis.bsky.social

🇫🇷 The Compute! Paris conference. November 25-26 2026 • Sorbonne Université

431 followers23 following291 posts

In 2001, a physics student put off his thesis to write a tool for working with Python interactively. It became IPython, then Jupyter, winning the ACM Software System Award and counted by Nature among ten pieces of code that deeply transformed science.

View full thread

25 years on, he has helped build the open ecosystem around it: co-founder of nonprofits NumFOCUS and 2i2c, director of the Berkeley Institute for Data Science, co-director of the Eric and Wendy Schmidt Data Science and Environment Center, and now working on open source and AI tools for health care.

In 2001, a physics student put off his thesis to write a tool for working with Python interactively. It became IPython, then Jupyter, winning the ACM Software System Award and counted by Nature among ten pieces of code that deeply transformed science.

Its idea was simple: you write code, see the result, decide what to try next, and think in tandem with the computer. Now AI can write the code, run it and even choose the next step. What does thinking alongside the machine mean in this new era?

View full thread

Define a data model, load data into it, query it, test it, visualize it, and reshape it, all without ever stopping the program. The tour starts with a hands-on look at Pharo's programming environment, then moves to two real projects:

A bouncing-particle Python simulation in the browser: 91 KB of SPy compiled to WebAssembly, versus 10 MB of PyScript. That's one of three live demos of SPy, a new statically compiled language that looks like Python, compiles to native code and WebAssembly, and starts as fast as Go.

Free text in, dataframe columns out. That's the promise of LLM-based extraction, until the model returns JSON that doesn't parse and your batch job dies halfway through.

View full thread

Free text in, dataframe columns out. That's the promise of LLM-based extraction, until the model returns JSON that doesn't parse and your batch job dies halfway through.

Two techniques attack this from different angles: structured outputs, where the model fills a schema through tool calling, and structured generation, which constrains token sampling so the JSON is valid by construction.

AlphaEarth, TerraMind, TESSERA, Copernicus-FM: Earth observation now has more foundation models than anyone has time and capacity to test. At Compute! Paris, Gijs van den Dool offers a practical way out of this model fatigue.

How to evaluate models on your own use case with accessible open-source tools, and how to run those tests in parallel on standard cloud GPUs, no HPC cluster needed. One early finding: combining features from several models beats any single one.

AI can extract scientific facts from a paper. But can it understand the relationships between them? At Compute! Paris, Feryal Batoul Talbi presents OntoGeoRAG, an open-source pipeline that turns scientific PDFs into knowledge graphs.

View full thread

Not random, they fall exactly where the meaning lies in the relationships themselves, which way a link runs, wheter it is a cause or association, or a step an expert infers across sentences. Illustrated with geophysics, this is built to generalize to other fields.

AI can extract scientific facts from a paper. But can it understand the relationships between them? At Compute! Paris, Feryal Batoul Talbi presents OntoGeoRAG, an open-source pipeline that turns scientific PDFs into knowledge graphs.

Every extracted relation gets traced back to the exact passage that justifies it, so the gap between "found it in the text" and "understood why it's true" becomes visible. The system's failures are particularly interesting.

The smallest unit of science to trust isn't a paper, it's a single claim. At Compute! Paris, Anne Fouilloux and Jean Iaquinta explore "nanopublications": small, cryptographically verifiable, machine-readable claims you can cite, link, and trust.

One row inserted or deleted seems innocent enough, but with ordinary Parquet, it shifts every row after it into a different page than before. And once a page's rows change, its compressed bytes come out entirely different.

View full thread

Rows untouched by an edit fall back into the exact same pages as before, remain byte-identical, and deduplicable nicely. Simple examples first: append, insert, delete, and the actual bytes saved on each. Then the real numbers, straight from that 100PB+ platform.

One row inserted or deleted seems innocent enough, but with ordinary Parquet, it shifts every row after it into a different page than before. And once a page's rows change, its compressed bytes come out entirely different.

At Compute! Paris, Quentin Lhoest, maintainer of the popular datasets library, introduces Content Defined Chunking to Parquet, ending a page based on the row data itself rather than counting rows. This makes page boundaries, and thus Parquet file byte content, more robust to change.

For years, Google Earth Engine has been the only real option for scientists who want to run algorithms across petabytes of satellite data and see results fast. That's starting to change.

View full thread

For years, Google Earth Engine has been the only real option for scientists who want to run algorithms across petabytes of satellite data and see results fast. That's starting to change.

Statistical distributions directly in Polars. No .to_numpy(), no round-trip through scipy.stats, no broken laziness or GIL lock. Just Normal(mu=..., sigma=...).cdf(x), one distribution per row, fully vectorized, lazy all the way through.

View full thread

While that's all neat, the talk's spicy part is the design history: abstractions they built and removed, parameterizations they flipped, the null-vs-panic contract they rewrote after hitting bad rows in production at scale. Benchmarks against scipy + Polars included.

Statistical distributions directly in Polars. No .to_numpy(), no round-trip through scipy.stats, no broken laziness or GIL lock. Just Normal(mu=..., sigma=...).cdf(x), one distribution per row, fully vectorized, lazy all the way through.

At Compute! Paris, Francesco Bruzzesi introduces polars-stats, a Polars expression plugin doing exactly that, Rust (statrs) underneath, column-valued parameters as a first-class feature, sampling reproducible across platforms.

github.comGitHub - FBruzzesi/polars-stats: Polars expression plugin that exposes `scipy.stats`-style probability distributionsPolars expression plugin that exposes `scipy.stats`-style probability distributions - FBruzzesi/polars-stats
View full thread

You'll understand the Grammar of Graphics underneath (marks, encodings, the four encoding types), how to keep a chart responsive on gigabytes of data by pushing aggregation upstream to Polars or DuckDB, and leave with a sharper eye for every chart you see afterwards. No Altair experience required.

Every chart has a purpose, every choice gets a moment: which visual channel to use, whether the scale is honest, whether an interaction earned its place, all worked through live with Altair.